/* Fuel Nexus V120 Clean Preview 6 · estilos globales consolidados */

/* source: portal-professional-v120rc35.css */

html{background:#f4f7f9}
body{min-height:100vh}
.dashboard-content{transition:opacity .12s ease}
html.fn1174-switching::after{
  content:"";position:fixed;z-index:99999;left:0;top:0;height:3px;width:35%;
  background:linear-gradient(90deg,#0b63d8,#0e9ca4);
  animation:fn1174-progress .9s ease-in-out infinite alternate;
  box-shadow:0 1px 8px rgba(11,99,216,.24)
}
@keyframes fn1174-progress{from{transform:translateX(-35vw)}to{transform:translateX(250vw)}}
.fn26-upload-replaced{display:none!important}
#fn26-excel-validator{content-visibility:auto;contain-intrinsic-size:720px}
#fn-google-logistics-v1174{content-visibility:auto;contain-intrinsic-size:760px}
@media(prefers-reduced-motion:reduce){
  .dashboard-content{transition:none}
  html.fn1174-switching::after{animation:none;width:100%}
}


/* V1186: protección estructural del app-shell */
.app-shell > #fn35-freshness,
.app-shell > #fn35-visit-changes,
.app-shell > .fn35-freshness,
.app-shell > .fn35-visit {
  display: none !important;
}

.app-shell {
  grid-template-columns: 270px minmax(0,1fr) !important;
}

.app-shell > .sidebar {
  grid-column: 1 !important;
  min-width: 0;
  width: auto !important;
}

.app-shell > .workspace {
  grid-column: 2 !important;
  min-width: 0 !important;
  width: auto !important;
}

.workspace.fn109-custom-active #fn109-experience-root {
  width: 100%;
  min-width: 0;
}

/* V1187: invariantes de producción */
#fn-scenarios-slot{display:block;width:100%;min-height:320px}
.fn1187-slot-loading{display:flex;min-height:240px;align-items:center;justify-content:center;color:#687b8d;font-size:12px}
#fn-scenarios-slot:has(#fn34-sensitivity)>.fn1187-slot-loading{display:none!important}
.workspace.fn109-custom-active > #fn109-experience-root{display:block!important}
html.fn1187-scenarios-view #fn-google-logistics-v1187{display:none!important}
.fn109-nav-group{margin-bottom:10px}.fn109-nav-item strong{line-height:1.2}

/* source: portal-experience-v111.css */
:root {
  --fn109-navy: #071a2f;
  --fn109-navy-2: #0c2b48;
  --fn109-teal: #0e9ca4;
  --fn109-cyan: #13b8c4;
  --fn109-blue: #0b64d8;
  --fn109-green: #15a36d;
  --fn109-amber: #e99a13;
  --fn109-red: #d94d45;
  --fn109-ink: #10253b;
  --fn109-muted: #67798c;
  --fn109-line: #dce6eb;
  --fn109-soft: #f5f8fa;
  --fn109-white: #fff;
}

.fn109-native-nav {
  display: none !important;
}

.sidebar {
  overflow-y: auto;
  scrollbar-width: thin;
  scrollbar-color: rgba(255,255,255,.18) transparent;
}

.sidebar .fn109-nav {
  display: grid;
  gap: 13px;
  padding-bottom: 10px;
}

.fn109-nav-group {
  display: grid;
  gap: 3px;
}

.fn109-nav-group > span {
  color: #8da8bb;
  font-size: 9px;
  font-weight: 800;
  letter-spacing: .12em;
  margin: 0 11px 3px;
  text-transform: uppercase;
}

.fn109-nav-item {
  align-items: center;
  background: transparent;
  border: 0;
  border-radius: 9px;
  color: #cbd8e1;
  display: flex;
  gap: 11px;
  min-height: 40px;
  padding: 9px 12px;
  text-align: left;
  transition: background .18s ease, color .18s ease, box-shadow .18s ease;
  width: 100%;
}

.fn109-nav-item:hover {
  background: rgba(255,255,255,.07);
  color: #fff;
}

.fn109-nav-item.active {
  background: rgba(17,184,196,.16);
  box-shadow: inset 3px 0 0 var(--fn109-cyan);
  color: #fff;
}

.fn109-nav-item.fn109-nav-featured.active,
.fn109-nav-item.fn109-nav-featured:hover {
  background: linear-gradient(90deg, rgba(14,156,164,.38), rgba(17,184,196,.18));
}

.fn109-nav-icon {
  color: #91aabd;
  display: grid;
  flex: 0 0 22px;
  height: 22px;
  place-items: center;
  width: 22px;
}

.fn109-nav-item.active .fn109-nav-icon {
  color: #2ce0e8;
}

.fn109-nav-icon svg,
.fn109-card-icon svg,
.fn109-flow-icon svg,
.fn109-module-card header span svg,
.fn109-quick-link span svg,
.fn109-quick-link i svg,
.fn109-flow-step i svg,
.fn109-guide-steps i svg,
.fn109-operation-note svg,
.fn109-dap-card p svg,
.fn109-focus-list svg,
.fn109-ai-strip svg,
.fn109-plan-bar svg,
.fn109-market-strip svg,
.fn109-recommendation-card svg,
.fn109-errors-card svg,
.fn109-modal header svg,
.fn109-toast svg,
.fn109-error svg {
  fill: none;
  stroke: currentColor;
  stroke-linecap: round;
  stroke-linejoin: round;
  stroke-width: 1.8;
  width: 100%;
  height: 100%;
}

.fn109-nav-item strong {
  font-size: 12px;
  font-weight: 700;
  line-height: 1.25;
}

.workspace.fn109-custom-active > :not(.topbar):not(#fn109-experience-root) {
  display: none !important;
}

#fn109-experience-root[hidden] {
  display: none !important;
}

.fn109-view {
  min-width: 0;
}

.fn109-page {
  color: var(--fn109-ink);
  margin: 0 auto;
  max-width: 1540px;
  padding: 22px 28px 34px;
}

.fn109-page button,
.fn109-page input,
.fn109-page select {
  font: inherit;
}

.fn109-page button {
  cursor: pointer;
}

.fn109-flow-card,
.fn109-guide-card,
.fn109-operation-card,
.fn109-module-card,
.fn109-ai-strip,
.fn109-focus-card,
.fn109-action-card,
.fn109-quick-card,
.fn109-status-card,
.fn109-chart-card,
.fn109-dap-card,
.fn109-coverage-card,
.fn109-scenarios-card,
.fn109-recommendation-card,
.fn109-errors-card,
.fn109-plan-bar,
.fn109-market-strip {
  background: #fff;
  border: 1px solid var(--fn109-line);
  border-radius: 13px;
  box-shadow: 0 7px 20px rgba(12, 43, 72, .035);
}

.fn109-section-title {
  align-items: baseline;
  display: flex;
  gap: 12px;
  justify-content: space-between;
}

.fn109-section-title > span,
.fn109-section-heading span {
  color: var(--fn109-ink);
  font-size: 13px;
  font-weight: 800;
}

.fn109-section-title small,
.fn109-section-heading small {
  color: var(--fn109-muted);
  font-size: 10px;
}

.fn109-flow-card,
.fn109-guide-card {
  padding: 15px 17px;
}

.fn109-flow {
  display: grid;
  gap: 0;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  margin-top: 12px;
}

.fn109-flow-step {
  align-items: center;
  background: transparent;
  border: 0;
  display: grid;
  gap: 9px;
  grid-template-columns: 24px 38px minmax(0, 1fr) 20px;
  min-width: 0;
  padding: 8px 9px;
  text-align: left;
}

.fn109-flow-step:hover {
  background: #f7fbfc;
  border-radius: 10px;
}

.fn109-flow-step > b,
.fn109-guide-steps b {
  background: linear-gradient(145deg, var(--fn109-teal), var(--fn109-blue));
  border-radius: 50%;
  color: #fff;
  display: grid;
  font-size: 11px;
  height: 24px;
  place-items: center;
  width: 24px;
}

.fn109-flow-icon {
  border: 1px solid #cae6ea;
  border-radius: 50%;
  color: var(--fn109-teal);
  display: grid;
  height: 38px;
  padding: 9px;
  place-items: center;
  width: 38px;
}

.fn109-flow-step > span:nth-child(3),
.fn109-guide-steps span {
  display: grid;
  gap: 3px;
  min-width: 0;
}

.fn109-flow-step strong,
.fn109-guide-steps strong {
  font-size: 11px;
  line-height: 1.25;
}

.fn109-flow-step small,
.fn109-guide-steps small {
  color: var(--fn109-muted);
  font-size: 9px;
  line-height: 1.4;
}

.fn109-flow-step > i,
.fn109-guide-steps i {
  color: #7d94a7;
  display: grid;
  height: 18px;
  width: 18px;
}

.fn109-home-layout {
  align-items: start;
  display: grid;
  gap: 17px;
  grid-template-columns: minmax(0, 1fr) 280px;
  margin-top: 17px;
}

.fn109-section-heading {
  align-items: flex-end;
  display: flex;
  justify-content: space-between;
  margin: 0 1px 10px;
}

.fn109-section-heading h2 {
  font-size: 17px;
  letter-spacing: -.02em;
  margin: 3px 0 0;
}

.fn109-module-grid {
  display: grid;
  gap: 11px;
  grid-template-columns: repeat(5, minmax(0, 1fr));
}

.fn109-module-card {
  display: flex;
  flex-direction: column;
  min-height: 250px;
  padding: 15px;
}

.fn109-module-card header {
  align-items: center;
  display: flex;
  gap: 9px;
  min-height: 38px;
}

.fn109-module-card header span {
  color: var(--fn109-teal);
  display: grid;
  flex: 0 0 24px;
  height: 24px;
  width: 24px;
}

.fn109-module-card header strong {
  font-size: 12px;
  line-height: 1.25;
}

.fn109-module-card dl {
  display: grid;
  gap: 0;
  margin: 13px 0 14px;
}

.fn109-module-card dl > div {
  align-items: baseline;
  border-bottom: 1px solid #edf2f4;
  display: flex;
  gap: 8px;
  justify-content: space-between;
  min-height: 39px;
  padding: 9px 0;
}

.fn109-module-card dl > div:last-child {
  border-bottom: 0;
}

.fn109-module-card dt {
  color: var(--fn109-muted);
  font-size: 9px;
  line-height: 1.25;
}

.fn109-module-card dd {
  color: var(--fn109-ink);
  font-size: 10px;
  font-weight: 800;
  margin: 0;
  text-align: right;
}

.fn109-module-card dd small {
  color: var(--fn109-muted);
  display: block;
  font-size: 7px;
  font-weight: 500;
  margin-top: 2px;
}

.fn109-module-card > button,
.fn109-ai-strip > button,
.fn109-action-card > button,
.fn109-coverage-card > button,
.fn109-recommendation-card > button,
.fn109-plan-bar > button,
.fn109-market-strip > button {
  background: #fff;
  border: 1px solid #63bdd0;
  border-radius: 7px;
  color: #087ca0;
  font-size: 9px;
  font-weight: 800;
  min-height: 34px;
  padding: 8px 11px;
}

.fn109-module-card > button {
  margin-top: auto;
  width: 100%;
}

.fn109-module-card > button:hover,
.fn109-ai-strip > button:hover,
.fn109-coverage-card > button:hover,
.fn109-recommendation-card > button:hover,
.fn109-plan-bar > button:hover,
.fn109-market-strip > button:hover {
  background: #f0fafb;
}

.fn109-ai-strip {
  align-items: center;
  display: grid;
  gap: 12px;
  grid-template-columns: 32px minmax(0, 1fr) auto;
  margin-top: 12px;
  padding: 12px 15px;
}

.fn109-card-icon {
  color: var(--fn109-teal);
  display: grid;
  height: 28px;
  width: 28px;
}

.fn109-ai-strip div {
  display: grid;
  gap: 3px;
}

.fn109-ai-strip strong {
  font-size: 11px;
}

.fn109-ai-strip small {
  color: var(--fn109-muted);
  font-size: 9px;
}

.fn109-focus-card {
  margin-top: 12px;
  padding: 13px 15px 10px;
}

.fn109-focus-list {
  display: grid;
  gap: 5px;
  margin-top: 9px;
}

.fn109-focus-list article {
  align-items: center;
  border: 1px solid #e4ecef;
  border-radius: 8px;
  display: grid;
  gap: 9px;
  grid-template-columns: 20px 1fr;
  min-height: 36px;
  padding: 7px 10px;
}

.fn109-focus-list article > span {
  display: grid;
  height: 18px;
  width: 18px;
}

.fn109-focus-list article.info > span { color: var(--fn109-blue); }
.fn109-focus-list article.warning > span { color: var(--fn109-amber); }
.fn109-focus-list article.success > span { color: var(--fn109-green); }

.fn109-focus-list p {
  color: var(--fn109-muted);
  font-size: 9px;
  margin: 0;
}

.fn109-focus-list p strong { color: var(--fn109-ink); }

.fn109-home-aside {
  display: grid;
  gap: 12px;
}

.fn109-action-card,
.fn109-quick-card,
.fn109-status-card {
  padding: 16px;
}

.fn109-action-card {
  display: grid;
  gap: 12px;
}

.fn109-action-card .fn109-card-icon {
  height: 31px;
  width: 31px;
}

.fn109-action-card div {
  display: grid;
  gap: 7px;
}

.fn109-action-card strong {
  font-size: 13px;
}

.fn109-action-card p {
  color: var(--fn109-muted);
  font-size: 10px;
  line-height: 1.55;
  margin: 0;
}

.fn109-action-card > button,
.fn109-coverage-card > button.primary,
.fn109-plan-bar > button.primary {
  background: linear-gradient(90deg, #0a68d8, #0757c8);
  border-color: #0a68d8;
  color: #fff;
}

.fn109-action-card > button:hover,
.fn109-coverage-card > button.primary:hover,
.fn109-plan-bar > button.primary:hover {
  background: #0757c8;
}

.fn109-quick-card .fn109-section-title,
.fn109-status-card .fn109-section-title {
  margin-bottom: 10px;
}

.fn109-quick-link {
  align-items: center;
  background: #fff;
  border: 1px solid #e0e8ec;
  border-radius: 8px;
  color: var(--fn109-ink);
  display: grid;
  gap: 9px;
  grid-template-columns: 20px 1fr 14px;
  margin-top: 6px;
  min-height: 38px;
  padding: 8px 10px;
  text-align: left;
  width: 100%;
}

.fn109-quick-link:hover { background: #f7fbfc; }
.fn109-quick-link span { color: var(--fn109-teal); display: grid; height: 18px; width: 18px; }
.fn109-quick-link strong { font-size: 9px; }
.fn109-quick-link i { color: #8297a7; display: grid; height: 13px; width: 13px; }

.fn109-status-row {
  align-items: center;
  border-bottom: 1px solid #edf2f4;
  display: grid;
  gap: 8px;
  grid-template-columns: 8px 1fr auto;
  min-height: 34px;
}

.fn109-status-row:last-child { border-bottom: 0; }
.fn109-status-row > span { border-radius: 50%; height: 7px; width: 7px; }
.fn109-status-row > span.ready { background: var(--fn109-green); box-shadow: 0 0 0 3px rgba(21,163,109,.11); }
.fn109-status-row > span.pending { background: var(--fn109-amber); }
.fn109-status-row strong { font-size: 9px; }
.fn109-status-row small { background: #edf8f2; border-radius: 6px; color: #19724f; font-size: 7px; padding: 5px 7px; }

.fn109-guide-steps {
  display: grid;
  gap: 0;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  margin-top: 12px;
}

.fn109-guide-steps > div {
  align-items: center;
  display: grid;
  gap: 10px;
  grid-template-columns: 29px minmax(0, 1fr) 18px;
  min-width: 0;
  padding: 5px 12px;
}

.fn109-guide-steps b {
  height: 29px;
  width: 29px;
}

.fn109-operation-card {
  margin-top: 12px;
  padding: 14px 15px 10px;
}

.fn109-operation-grid {
  display: grid;
  gap: 10px;
  grid-template-columns: 1.1fr .7fr 1.4fr 1fr 1.35fr 1fr;
}

.fn109-field {
  display: grid;
  gap: 6px;
  min-width: 0;
}

.fn109-field > span {
  color: var(--fn109-ink);
  font-size: 8px;
  font-weight: 800;
}

.fn109-field select,
.fn109-field input {
  background: #fff;
  border: 1px solid #d5e1e7;
  border-radius: 7px;
  color: var(--fn109-ink);
  font-size: 9px;
  height: 36px;
  min-width: 0;
  outline: none;
  padding: 0 10px;
  width: 100%;
}

.fn109-field select:focus,
.fn109-field input:focus {
  border-color: var(--fn109-teal);
  box-shadow: 0 0 0 3px rgba(14,156,164,.1);
}

.fn109-field > div {
  align-items: center;
  display: flex;
  position: relative;
}

.fn109-field > div input { padding-right: 55px; }
.fn109-field > div small { color: var(--fn109-muted); font-size: 7px; position: absolute; right: 9px; }

.fn109-operation-note {
  align-items: center;
  border-top: 1px solid #edf2f4;
  color: var(--fn109-muted);
  display: grid;
  gap: 8px;
  grid-template-columns: 18px 1fr auto;
  margin-top: 11px;
  padding-top: 9px;
}

.fn109-operation-note > span { color: var(--fn109-blue); display: grid; height: 16px; width: 16px; }
.fn109-operation-note p { font-size: 8px; margin: 0; }
.fn109-operation-note button { background: transparent; border: 0; color: #087ca0; font-size: 8px; font-weight: 800; }

.fn109-assumptions {
  background: #f7fafb;
  border: 1px solid #e2eaee;
  border-radius: 9px;
  display: grid;
  gap: 10px;
  grid-template-columns: 1.7fr 1fr 1fr 1fr;
  margin-top: 10px;
  padding: 11px;
}

.fn109-assumptions[hidden] { display: none; }

.fn109-futures-primary {
  align-items: stretch;
  display: grid;
  gap: 12px;
  grid-template-columns: minmax(0, 1.3fr) minmax(300px, .78fr) 250px;
  margin-top: 12px;
}

.fn109-chart-card,
.fn109-dap-card,
.fn109-coverage-card,
.fn109-scenarios-card,
.fn109-recommendation-card,
.fn109-errors-card {
  overflow: hidden;
}

.fn109-chart-card > header,
.fn109-dap-card > header,
.fn109-scenarios-card > header,
.fn109-recommendation-card > header,
.fn109-errors-card > header {
  align-items: flex-start;
  border-bottom: 1px solid #e7edf0;
  display: flex;
  justify-content: space-between;
  padding: 13px 15px 11px;
}

.fn109-chart-card header span,
.fn109-dap-card header span,
.fn109-scenarios-card header span,
.fn109-recommendation-card header span,
.fn109-errors-card header span,
.fn109-coverage-card header span {
  color: var(--fn109-teal);
  font-size: 8px;
  font-weight: 800;
  letter-spacing: .07em;
  text-transform: uppercase;
}

.fn109-chart-card h2,
.fn109-dap-card h2,
.fn109-scenarios-card h2 {
  font-size: 13px;
  margin: 3px 0 0;
}

.fn109-chart-card header small,
.fn109-dap-card header small,
.fn109-scenarios-card header small {
  color: var(--fn109-muted);
  font-size: 8px;
}

.fn109-curve-svg {
  display: block;
  height: auto;
  padding: 5px 8px 0;
  width: 100%;
}

.fn109-curve-grid line { stroke: #e1eaee; stroke-dasharray: 4 5; }
.fn109-curve-grid text { fill: #718493; font-size: 10px; }
.fn109-curve-svg > polyline { fill: none; stroke: #0b64d8; stroke-linecap: round; stroke-linejoin: round; stroke-width: 3; }
.fn109-curve-dots circle { fill: #fff; stroke: #0b64d8; stroke-width: 3; }
.fn109-curve-dots .selected circle { fill: #18aeb7; stroke: #dff7f8; stroke-width: 6; }
.fn109-curve-value { fill: #31506a; font-size: 9px; font-weight: 700; }
.fn109-curve-month { fill: #65798a; font-size: 9px; }
.fn109-empty-chart { color: var(--fn109-muted); display: grid; min-height: 220px; place-items: center; }

.fn109-chart-card > footer {
  align-items: center;
  background: #f7fafb;
  border-top: 1px solid #e7edf0;
  display: grid;
  gap: 8px;
  grid-template-columns: auto 1fr auto;
  padding: 9px 13px;
}

.fn109-chart-card > footer strong { font-size: 9px; }
.fn109-chart-card > footer span { color: var(--fn109-muted); font-size: 8px; }
.fn109-chart-card > footer button { background: transparent; border: 0; color: #087ca0; font-size: 8px; font-weight: 800; }
.fn109-chart-card > footer.success strong { color: var(--fn109-green); }
.fn109-chart-card > footer.warning strong { color: var(--fn109-amber); }
.fn109-chart-card > footer.info strong { color: var(--fn109-blue); }

.fn109-dap-card dl {
  margin: 0;
  padding: 6px 15px 0;
}

.fn109-dap-card dl > div {
  align-items: baseline;
  border-bottom: 1px solid #edf2f4;
  display: flex;
  gap: 10px;
  justify-content: space-between;
  min-height: 34px;
  padding: 8px 0;
}

.fn109-dap-card dt { color: var(--fn109-muted); font-size: 8px; }
.fn109-dap-card dd { color: var(--fn109-ink); font-size: 9px; font-weight: 800; margin: 0; }
.fn109-dap-card .subtotal dt,
.fn109-dap-card .subtotal dd { color: #7b5c1b; }
.fn109-dap-card .total { background: #eef6ff; border: 1px solid #9fc4f5; border-radius: 7px; margin: 6px -5px 0; padding: 9px 6px; }
.fn109-dap-card .total dt { color: #0757c8; font-weight: 800; }
.fn109-dap-card .total dd { color: #0757c8; font-size: 13px; }
.fn109-dap-card > p { align-items: flex-start; color: var(--fn109-muted); display: grid; font-size: 8px; gap: 7px; grid-template-columns: 15px 1fr; line-height: 1.45; margin: 9px 15px 13px; }
.fn109-dap-card > p span { color: var(--fn109-blue); display: grid; height: 14px; width: 14px; }

.fn109-coverage-card {
  display: flex;
  flex-direction: column;
  padding: 13px;
}

.fn109-coverage-card > header {
  align-items: center;
  display: flex;
  justify-content: space-between;
}

.fn109-coverage-card header button { background: transparent; border: 0; color: #087ca0; font-size: 7px; font-weight: 800; }

.fn109-gauge {
  --coverage: 50;
  align-items: flex-end;
  background: conic-gradient(from 270deg at 50% 100%, #0b64d8 0 calc(var(--coverage) * .5%), #58c1c9 calc(var(--coverage) * .5%) 42%, #dce8ed 42% 50%, transparent 50% 100%);
  border-radius: 150px 150px 0 0;
  display: flex;
  height: 110px;
  justify-content: center;
  margin: 12px auto 7px;
  overflow: hidden;
  position: relative;
  width: 190px;
}

.fn109-gauge:after {
  background: #fff;
  border-radius: 110px 110px 0 0;
  bottom: 0;
  content: "";
  height: 73px;
  position: absolute;
  width: 132px;
}

.fn109-gauge > div {
  bottom: 5px;
  display: grid;
  gap: 2px;
  position: absolute;
  text-align: center;
  z-index: 1;
}

.fn109-gauge strong { font-size: 27px; letter-spacing: -.04em; }
.fn109-gauge small { color: var(--fn109-muted); font-size: 8px; }

.fn109-coverage-card > dl { display: grid; gap: 0; margin: 4px 0 8px; }
.fn109-coverage-card > dl > div { align-items: center; border-bottom: 1px solid #edf2f4; display: flex; justify-content: space-between; min-height: 31px; }
.fn109-coverage-card dt { color: var(--fn109-muted); font-size: 8px; }
.fn109-coverage-card dd { color: #087ca0; font-size: 8px; font-weight: 800; margin: 0; }
.fn109-coverage-card dd.high { color: var(--fn109-red); }

.fn109-coverage-control {
  display: grid;
  gap: 5px;
  grid-template-columns: 1fr auto;
  margin: 6px 0 8px;
}

.fn109-coverage-control span,
.fn109-coverage-control output { font-size: 8px; font-weight: 800; }
.fn109-coverage-control output { color: #087ca0; }
.fn109-coverage-control input { accent-color: var(--fn109-blue); grid-column: 1 / -1; width: 100%; }

.fn109-contract-summary {
  background: #f5f9fb;
  border: 1px solid #e0e9ee;
  border-radius: 8px;
  display: grid;
  gap: 3px;
  margin-bottom: 8px;
  padding: 8px 10px;
}

.fn109-contract-summary span { color: var(--fn109-muted); font-size: 7px; }
.fn109-contract-summary strong { font-size: 9px; }
.fn109-contract-summary small { color: #087ca0; font-size: 7px; }
.fn109-coverage-card > button { margin-top: 6px; width: 100%; }

.fn109-futures-secondary {
  align-items: stretch;
  display: grid;
  gap: 12px;
  grid-template-columns: minmax(0, 1.55fr) minmax(250px, .68fr) minmax(230px, .62fr);
  margin-top: 12px;
}

.fn109-table-wrap { overflow-x: auto; }
.fn109-scenarios-card table { border-collapse: collapse; min-width: 720px; width: 100%; }
.fn109-scenarios-card th,
.fn109-scenarios-card td { border-bottom: 1px solid #e9eff2; font-size: 8px; padding: 10px 9px; text-align: right; }
.fn109-scenarios-card th:first-child,
.fn109-scenarios-card td:first-child { text-align: left; }
.fn109-scenarios-card th { background: #f7f9fa; color: var(--fn109-muted); font-size: 7px; text-transform: uppercase; }
.fn109-scenarios-card tr.base td { background: #fbfdfe; font-weight: 700; }
.fn109-scenarios-card tr.up td:last-child { color: var(--fn109-red); }
.fn109-scenarios-card tr.down td:last-child { color: var(--fn109-green); }
.fn109-scenarios-card > p { align-items: center; color: var(--fn109-muted); display: grid; font-size: 7px; gap: 7px; grid-template-columns: 14px 1fr; margin: 8px 12px 10px; }
.fn109-scenarios-card > p span { color: var(--fn109-blue); display: grid; height: 13px; width: 13px; }

.fn109-recommendation-card,
.fn109-errors-card { padding-bottom: 10px; }
.fn109-recommendation-card > header,
.fn109-errors-card > header { padding-bottom: 12px; }
.fn109-recommendation-card article,
.fn109-errors-card article { align-items: flex-start; border-bottom: 1px solid #edf2f4; display: grid; gap: 8px; grid-template-columns: 22px 1fr; margin: 0 12px; padding: 10px 0; }
.fn109-recommendation-card article > span,
.fn109-errors-card article > span { display: grid; height: 19px; width: 19px; }
.fn109-recommendation-card article.success > span { color: var(--fn109-green); }
.fn109-recommendation-card article.info > span { color: var(--fn109-blue); }
.fn109-recommendation-card article.warning > span,
.fn109-errors-card article > span { color: var(--fn109-amber); }
.fn109-recommendation-card article strong,
.fn109-errors-card article strong { font-size: 8px; }
.fn109-recommendation-card article p,
.fn109-errors-card article p { color: var(--fn109-muted); font-size: 7px; line-height: 1.45; margin: 4px 0 0; }
.fn109-recommendation-card > button { margin: 10px 12px 0; width: calc(100% - 24px); }

.fn109-plan-bar {
  align-items: end;
  display: grid;
  gap: 10px;
  grid-template-columns: minmax(240px, 1fr) minmax(220px, .9fr) auto auto;
  margin-top: 12px;
  padding: 12px 14px;
}

.fn109-plan-bar > div:first-child { align-items: center; display: grid; gap: 10px; grid-template-columns: 25px 1fr; }
.fn109-plan-bar > div:first-child > span { color: var(--fn109-teal); display: grid; height: 23px; width: 23px; }
.fn109-plan-bar p { display: grid; gap: 2px; margin: 0; }
.fn109-plan-bar p strong { font-size: 9px; }
.fn109-plan-bar p small { color: var(--fn109-muted); font-size: 7px; }
.fn109-plan-bar label { display: grid; gap: 5px; }
.fn109-plan-bar label span { font-size: 7px; font-weight: 800; }
.fn109-plan-bar input { border: 1px solid #d5e1e7; border-radius: 7px; font-size: 8px; height: 34px; padding: 0 10px; }
.fn109-plan-bar > button { white-space: nowrap; }
.fn109-plan-bar > button b { background: #eaf2ff; border-radius: 99px; color: #0757c8; margin-left: 4px; padding: 2px 5px; }

.fn109-market-strip {
  align-items: center;
  color: var(--fn109-muted);
  display: flex;
  gap: 8px;
  margin-top: 12px;
  min-height: 42px;
  padding: 8px 12px;
}

.fn109-market-strip > span { color: var(--fn109-blue); display: grid; flex: 0 0 16px; height: 16px; width: 16px; }
.fn109-market-strip strong { color: var(--fn109-ink); font-size: 8px; }
.fn109-market-strip small { font-size: 7px; }
.fn109-market-strip i { background: #dce6eb; height: 18px; width: 1px; }
.fn109-market-strip button { margin-left: auto; min-height: 30px; }

.fn109-loading {
  align-items: center;
  color: var(--fn109-muted);
  display: grid;
  gap: 8px;
  justify-items: center;
  min-height: 420px;
  padding: 50px;
  text-align: center;
}

.fn109-loading > span {
  animation: fn109-spin 1s linear infinite;
  border: 3px solid #dce9ed;
  border-top-color: var(--fn109-teal);
  border-radius: 50%;
  height: 35px;
  width: 35px;
}

.fn109-loading strong { color: var(--fn109-ink); font-size: 14px; }
.fn109-loading small { font-size: 9px; }
@keyframes fn109-spin { to { transform: rotate(360deg); } }

.fn109-error {
  align-items: center;
  background: #fff7f4;
  border: 1px solid #f0c7bd;
  border-radius: 12px;
  display: grid;
  gap: 12px;
  grid-template-columns: 30px 1fr auto;
  margin: 28px;
  padding: 18px;
}

.fn109-error > span { color: var(--fn109-red); display: grid; height: 28px; width: 28px; }
.fn109-error div { display: grid; gap: 4px; }
.fn109-error strong { font-size: 12px; }
.fn109-error small { color: var(--fn109-muted); font-size: 8px; }
.fn109-error button { background: var(--fn109-blue); border: 0; border-radius: 7px; color: #fff; font-size: 9px; font-weight: 800; padding: 9px 13px; }

.fn109-focus-ring { animation: fn109-focus 1.7s ease; }
@keyframes fn109-focus { 0%,100% { box-shadow: inherit; } 35% { box-shadow: 0 0 0 5px rgba(14,156,164,.22), 0 14px 34px rgba(7,26,47,.16); } }

.fn109-modal-backdrop {
  align-items: center;
  background: rgba(3, 16, 31, .62);
  display: flex;
  inset: 0;
  justify-content: center;
  padding: 24px;
  position: fixed;
  z-index: 10000;
}

.fn109-modal {
  background: #fff;
  border-radius: 16px;
  box-shadow: 0 30px 100px rgba(0,0,0,.28);
  max-height: min(760px, 90vh);
  max-width: 760px;
  overflow-y: auto;
  position: relative;
  width: 100%;
}

.fn109-modal-close {
  background: #f0f4f6;
  border: 0;
  border-radius: 50%;
  color: #536779;
  font-size: 20px;
  height: 32px;
  line-height: 1;
  position: absolute;
  right: 14px;
  top: 14px;
  width: 32px;
}

.fn109-modal > header {
  align-items: center;
  border-bottom: 1px solid #e5edf0;
  display: grid;
  gap: 12px;
  grid-template-columns: 38px 1fr;
  padding: 22px 55px 18px 22px;
}

.fn109-modal > header > span { color: var(--fn109-teal); display: grid; height: 34px; width: 34px; }
.fn109-modal header small { color: var(--fn109-teal); font-size: 8px; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.fn109-modal h2 { font-size: 20px; margin: 3px 0 0; }
.fn109-modal-body { color: var(--fn109-muted); font-size: 11px; line-height: 1.65; padding: 20px 22px 23px; }
.fn109-modal-body > p:first-child { margin-top: 0; }
.fn109-modal-guide { display: grid; gap: 10px; }
.fn109-modal-guide article { background: #f7fafb; border: 1px solid #e2eaee; border-radius: 10px; padding: 13px; }
.fn109-modal-guide strong { color: var(--fn109-ink); }
.fn109-modal-guide p { margin: 5px 0 0; }
.fn109-method-grid,
.fn109-plan-summary { display: grid; gap: 9px; grid-template-columns: repeat(4, 1fr); margin: 16px 0; }
.fn109-method-grid div,
.fn109-plan-summary div { background: #f7fafb; border: 1px solid #e2eaee; border-radius: 9px; display: grid; gap: 3px; padding: 12px; }
.fn109-method-grid strong,
.fn109-plan-summary strong { color: var(--fn109-ink); font-size: 14px; }
.fn109-method-grid small,
.fn109-plan-summary span { font-size: 8px; }
.fn109-disclaimer { background: #eef6ff; border-left: 3px solid var(--fn109-blue); color: #31506a; font-size: 9px; margin: 16px 0 0; padding: 10px 12px; }
.fn109-strategy-grid { display: grid; gap: 11px; grid-template-columns: repeat(2, 1fr); }
.fn109-strategy-grid article { border: 1px solid #e1e9ed; border-radius: 11px; display: flex; flex-direction: column; min-height: 220px; padding: 15px; }
.fn109-strategy-grid article > span { color: var(--fn109-teal); font-size: 9px; font-weight: 800; }
.fn109-strategy-grid h3 { color: var(--fn109-ink); font-size: 15px; margin: 7px 0; }
.fn109-strategy-grid p { font-size: 9px; }
.fn109-strategy-grid article strong { color: #0757c8; font-size: 8px; margin-top: auto; }
.fn109-strategy-grid > .fn109-disclaimer { grid-column: 1 / -1; }
.fn109-reason-list { display: grid; gap: 8px; margin: 0; padding-left: 20px; }
.fn109-reason-list li::marker { color: var(--fn109-teal); }

.fn109-plans { display: grid; gap: 10px; }
.fn109-plans article { border: 1px solid #e1e9ed; border-radius: 11px; padding: 13px; }
.fn109-plans article > div { display: grid; gap: 3px; }
.fn109-plans article > div strong { color: var(--fn109-ink); font-size: 11px; }
.fn109-plans article > div small { font-size: 8px; }
.fn109-plans dl { display: grid; gap: 8px; grid-template-columns: repeat(3, 1fr); margin: 11px 0; }
.fn109-plans dl div { background: #f7fafb; border-radius: 7px; padding: 8px; }
.fn109-plans dt { font-size: 7px; }
.fn109-plans dd { color: var(--fn109-ink); font-size: 10px; font-weight: 800; margin: 3px 0 0; }
.fn109-plans footer { display: flex; gap: 7px; justify-content: flex-end; }
.fn109-plans button { background: #fff; border: 1px solid #63bdd0; border-radius: 7px; color: #087ca0; font-size: 8px; font-weight: 800; padding: 7px 10px; }
.fn109-plans button.danger { border-color: #efb7b2; color: var(--fn109-red); }
.fn109-empty-plans { align-items: center; display: grid; gap: 7px; justify-items: center; min-height: 180px; text-align: center; }
.fn109-empty-plans > span { color: var(--fn109-teal); display: grid; height: 38px; width: 38px; }
.fn109-empty-plans strong { color: var(--fn109-ink); }
.fn109-empty-plans p { margin: 0; }

.fn109-toast {
  align-items: center;
  background: #09243c;
  border: 1px solid rgba(255,255,255,.12);
  border-radius: 10px;
  bottom: 22px;
  box-shadow: 0 18px 55px rgba(0,0,0,.25);
  color: #fff;
  display: flex;
  gap: 9px;
  left: 50%;
  max-width: 440px;
  opacity: 0;
  padding: 11px 14px;
  position: fixed;
  transform: translate(-50%, 18px);
  transition: all .22s ease;
  z-index: 10010;
}
.fn109-toast.visible { opacity: 1; transform: translate(-50%, 0); }
.fn109-toast > span { color: #45d39c; display: grid; height: 20px; width: 20px; }
.fn109-toast.warning > span { color: #ffc257; }
.fn109-toast strong { font-size: 9px; }

@media (max-width: 1320px) {
  .fn109-module-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .fn109-module-card { min-height: 230px; }
  .fn109-operation-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .fn109-futures-primary { grid-template-columns: minmax(0, 1.3fr) minmax(280px, .8fr); }
  .fn109-coverage-card { grid-column: 1 / -1; display: grid; gap: 10px; grid-template-columns: 160px 1fr 220px; }
  .fn109-coverage-card > header { grid-column: 1 / -1; }
  .fn109-gauge { grid-row: span 3; margin: 0 auto; }
  .fn109-coverage-card > dl { align-self: center; }
  .fn109-coverage-control,
  .fn109-contract-summary,
  .fn109-coverage-card > button { grid-column: 3; }
  .fn109-futures-secondary { grid-template-columns: minmax(0, 1.3fr) minmax(240px, .7fr); }
  .fn109-errors-card { grid-column: 1 / -1; }
}

@media (max-width: 1000px) {
  .sidebar .fn109-nav { display: flex; gap: 7px; overflow-x: auto; padding: 0; }
  .fn109-nav-group { display: contents; }
  .fn109-nav-group > span { display: none; }
  .fn109-nav-item { min-width: max-content; width: auto; }
  .fn109-home-layout { grid-template-columns: 1fr; }
  .fn109-home-aside { grid-template-columns: repeat(3, 1fr); }
  .fn109-flow { grid-template-columns: repeat(2, 1fr); }
  .fn109-module-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .fn109-guide-steps { grid-template-columns: repeat(2, 1fr); }
  .fn109-futures-primary,
  .fn109-futures-secondary { grid-template-columns: 1fr; }
  .fn109-coverage-card,
  .fn109-coverage-card > header,
  .fn109-coverage-control,
  .fn109-contract-summary,
  .fn109-coverage-card > button { grid-column: auto; }
  .fn109-coverage-card { display: flex; }
  .fn109-plan-bar { grid-template-columns: 1fr 1fr; }
  .fn109-strategy-grid { grid-template-columns: 1fr; }
  .fn109-strategy-grid article { min-height: 0; }
  .fn109-method-grid,
  .fn109-plan-summary { grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 720px) {
  .fn109-page { padding: 14px 11px 26px; }
  .fn109-flow,
  .fn109-guide-steps,
  .fn109-module-grid,
  .fn109-home-aside,
  .fn109-operation-grid,
  .fn109-assumptions,
  .fn109-plan-bar { grid-template-columns: 1fr; }
  .fn109-flow-step > i,
  .fn109-guide-steps i { display: none; }
  .fn109-module-card { min-height: 0; }
  .fn109-section-title { align-items: flex-start; flex-direction: column; gap: 4px; }
  .fn109-ai-strip { grid-template-columns: 28px 1fr; }
  .fn109-ai-strip > button { grid-column: 1 / -1; }
  .fn109-market-strip { align-items: flex-start; flex-wrap: wrap; }
  .fn109-market-strip i { display: none; }
  .fn109-market-strip button { margin-left: 0; width: 100%; }
  .fn109-method-grid,
  .fn109-plan-summary,
  .fn109-plans dl { grid-template-columns: 1fr; }
  .fn109-modal-backdrop { padding: 10px; }
}

/* Fuel Nexus V110 · Mapa logístico y estrategias avanzadas */
.fn110-logistics-page,
.fn109-futures-page {
  --fn110-map-line: #1672e8;
  --fn110-map-alt: #53b8c5;
}

.fn109-page select option:disabled {
  color: #8a98a5;
  background: #f3f5f6;
}

.fn109-operation-note strong {
  color: #315a74;
  font-weight: 800;
}

.fn110-logistics-controls,
.fn110-map-card,
.fn110-route-card,
.fn110-terminals-card,
.fn110-reading-card,
.fn110-corridors-card,
.fn110-dap-relocation,
.fn110-advanced-panel {
  background: #fff;
  border: 1px solid var(--fn109-line);
  border-radius: 13px;
  box-shadow: 0 7px 20px rgba(12, 43, 72, .035);
}

.fn110-logistics-controls {
  align-items: end;
  display: grid;
  gap: 12px;
  grid-template-columns: 1fr 1fr 1fr .72fr 1.15fr;
  margin-top: 14px;
  padding: 14px 16px;
}

.fn110-logistics-field {
  min-width: 0;
}

.fn110-metric-control {
  display: grid;
  gap: 7px;
}

.fn110-metric-control > span {
  color: var(--fn109-muted);
  font-size: 8px;
  font-weight: 800;
  letter-spacing: .02em;
}

.fn110-metric-control > div {
  background: #f2f6f8;
  border: 1px solid #dce6eb;
  border-radius: 8px;
  display: grid;
  gap: 3px;
  grid-template-columns: repeat(3, 1fr);
  padding: 3px;
}

.fn110-metric-control button {
  background: transparent;
  border: 0;
  border-radius: 6px;
  color: #5e7386;
  font-size: 8px;
  font-weight: 800;
  min-height: 29px;
  padding: 6px 8px;
}

.fn110-metric-control button.active {
  background: #fff;
  box-shadow: 0 2px 7px rgba(12, 43, 72, .1);
  color: var(--fn109-blue);
}

.fn110-logistics-layout {
  display: grid;
  gap: 14px;
  grid-template-columns: minmax(0, 1fr) 340px;
  margin-top: 14px;
}

.fn110-map-card {
  min-width: 0;
  overflow: hidden;
}

.fn110-map-card > header,
.fn110-corridors-card > header {
  align-items: flex-start;
  border-bottom: 1px solid #e5edf0;
  display: flex;
  justify-content: space-between;
  padding: 14px 16px 12px;
}

.fn110-map-card header > div,
.fn110-corridors-card header > div {
  display: grid;
  gap: 2px;
}

.fn110-map-card header span,
.fn110-corridors-card header span {
  color: var(--fn109-teal);
  font-size: 8px;
  font-weight: 900;
  letter-spacing: .07em;
  text-transform: uppercase;
}

.fn110-map-card h2,
.fn110-corridors-card h2 {
  color: var(--fn109-ink);
  font-size: 15px;
  margin: 0;
}

.fn110-map-card header small,
.fn110-corridors-card header small {
  color: var(--fn109-muted);
  font-size: 8px;
}

.fn110-map-svg {
  aspect-ratio: 940 / 590;
  display: block;
  height: auto;
  max-height: 590px;
  min-height: 390px;
  width: 100%;
}

.fn110-map-ocean {
  fill: #eaf5f8;
}

.fn110-map-country {
  fill: #f8f5ed;
  fill-rule: evenodd;
  stroke: #a8bbc4;
  stroke-width: 1;
  vector-effect: non-scaling-stroke;
}

.fn110-map-country-bolivia {
  fill: #fffdf7;
  stroke: #6d8796;
  stroke-width: 1.35;
}

.fn110-map-country-label {
  fill: #81909b;
  font-size: 14px;
  font-weight: 800;
  letter-spacing: .12em;
  opacity: .72;
  pointer-events: none;
  text-anchor: middle;
}

.fn110-map-route {
  cursor: pointer;
  fill: none;
  opacity: .55;
  pointer-events: stroke;
  stroke: var(--fn110-map-alt);
  stroke-dasharray: 7 7;
  stroke-linecap: round;
  stroke-linejoin: round;
  stroke-width: 2.2;
  vector-effect: non-scaling-stroke;
}

.fn110-map-route:hover {
  opacity: .9;
  stroke-width: 3.4;
}

.fn110-map-route.selected {
  opacity: 1;
  stroke: var(--fn110-map-line);
  stroke-dasharray: none;
  stroke-width: 4;
}

.fn110-map-marker circle {
  fill: #fff;
  stroke: #445e70;
  stroke-width: 1.6;
  vector-effect: non-scaling-stroke;
}

.fn110-map-marker.terminal circle {
  fill: #156fe5;
  stroke: #fff;
  stroke-width: 2.2;
}

.fn110-map-marker.border circle {
  fill: #fff;
  stroke: var(--fn109-amber);
  stroke-width: 2.2;
}

.fn110-map-marker.city circle {
  fill: #fff;
  stroke: #193d57;
}

.fn110-map-marker.selected circle {
  filter: drop-shadow(0 2px 4px rgba(11,100,216,.28));
  stroke: #fff;
  stroke-width: 2.5;
}

.fn110-map-marker text {
  fill: #20394d;
  font-size: 10px;
  font-weight: 800;
  paint-order: stroke;
  pointer-events: none;
  stroke: rgba(255,255,255,.96);
  stroke-linejoin: round;
  stroke-width: 3px;
}

.fn110-map-card > footer {
  align-items: center;
  border-top: 1px solid #e5edf0;
  display: flex;
  flex-wrap: wrap;
  gap: 13px;
  padding: 10px 14px;
}

.fn110-map-card > footer div {
  align-items: center;
  color: #53697a;
  display: flex;
  font-size: 8px;
  font-weight: 700;
  gap: 5px;
}

.fn110-map-card > footer div i {
  border-top: 2px dashed var(--fn110-map-alt);
  display: inline-block;
  width: 20px;
}

.fn110-map-card > footer div i.selected {
  border-top: 3px solid var(--fn110-map-line);
}

.fn110-map-card > footer div b,
.fn110-map-card > footer div em {
  background: #156fe5;
  border: 2px solid #fff;
  border-radius: 50%;
  box-shadow: 0 0 0 1px #156fe5;
  display: inline-block;
  height: 8px;
  width: 8px;
}

.fn110-map-card > footer div em {
  background: #fff;
  box-shadow: 0 0 0 1px var(--fn109-amber);
}

.fn110-map-card > footer > span {
  color: #80909c;
  font-size: 7px;
  line-height: 1.35;
  margin-left: auto;
  max-width: 450px;
  text-align: right;
}

.fn110-logistics-aside {
  display: grid;
  gap: 12px;
  grid-auto-rows: max-content;
  min-width: 0;
}

.fn110-route-card,
.fn110-terminals-card,
.fn110-reading-card {
  padding: 14px;
}

.fn110-route-card > header {
  align-items: center;
  display: grid;
  gap: 9px;
  grid-template-columns: 28px minmax(0, 1fr) auto;
  margin-bottom: 10px;
}

.fn110-route-card > header > span,
.fn110-reading-card > span {
  color: var(--fn109-teal);
  display: grid;
  height: 26px;
  width: 26px;
}

.fn110-route-card > header svg,
.fn110-reading-card svg,
.fn110-dap-relocation svg,
.fn110-advanced-panel svg,
.fn110-advanced-disclaimer svg {
  fill: none;
  height: 100%;
  stroke: currentColor;
  stroke-linecap: round;
  stroke-linejoin: round;
  stroke-width: 1.8;
  width: 100%;
}

.fn110-route-card header small {
  color: var(--fn109-teal);
  font-size: 7px;
  font-weight: 900;
  letter-spacing: .06em;
  text-transform: uppercase;
}

.fn110-route-card h2 {
  font-size: 12px;
  line-height: 1.3;
  margin: 2px 0 0;
}

.fn110-route-card header > b,
.fn110-route-status {
  border-radius: 999px;
  font-size: 7px;
  font-weight: 900;
  padding: 5px 8px;
}

.fn110-route-card header > b.success,
.fn110-route-status.success { background: #e7f8ef; color: #128055; }
.fn110-route-card header > b.info,
.fn110-route-status.info { background: #eaf4ff; color: #1767bf; }
.fn110-route-card header > b.warning,
.fn110-route-status.warning { background: #fff3dc; color: #a56b08; }

.fn110-route-card dl {
  display: grid;
  gap: 0;
  margin: 0;
}

.fn110-route-card dl > div {
  align-items: center;
  border-top: 1px solid #edf2f4;
  display: flex;
  gap: 10px;
  justify-content: space-between;
  padding: 7px 0;
}

.fn110-route-card dt {
  color: var(--fn109-muted);
  font-size: 8px;
}

.fn110-route-card dd {
  color: var(--fn109-ink);
  font-size: 8px;
  font-weight: 800;
  margin: 0;
  text-align: right;
}

.fn110-route-card dl > div.total {
  background: #eef8f8;
  border: 1px solid #cce9e8;
  border-radius: 7px;
  margin-top: 4px;
  padding: 8px;
}

.fn110-route-card dl > div.total dt,
.fn110-route-card dl > div.total dd {
  color: #087b81;
  font-weight: 900;
}

.fn110-route-card > p {
  color: #64788a;
  font-size: 7px;
  line-height: 1.45;
  margin: 9px 0 0;
}

.fn110-terminals-card > header {
  align-items: center;
  display: flex;
  justify-content: space-between;
  margin-bottom: 5px;
}

.fn110-terminals-card > header span {
  font-size: 10px;
  font-weight: 900;
}

.fn110-terminals-card > header small {
  background: #e9f7f7;
  border-radius: 999px;
  color: #087b81;
  font-size: 7px;
  font-weight: 900;
  padding: 4px 7px;
}

.fn110-terminals-card > button {
  align-items: center;
  background: transparent;
  border: 0;
  border-top: 1px solid #edf2f4;
  display: grid;
  gap: 8px;
  grid-template-columns: 8px minmax(0, 1fr) auto;
  padding: 8px 2px;
  text-align: left;
  width: 100%;
}

.fn110-terminals-card > button:hover,
.fn110-terminals-card > button.active {
  background: #f7fbfc;
}

.fn110-terminals-card button > i {
  background: #25a36d;
  border-radius: 50%;
  height: 7px;
  width: 7px;
}

.fn110-terminals-card button > span {
  display: grid;
  gap: 2px;
}

.fn110-terminals-card button strong {
  color: var(--fn109-ink);
  font-size: 8px;
}

.fn110-terminals-card button small {
  color: var(--fn109-muted);
  font-size: 7px;
}

.fn110-terminals-card button b {
  color: var(--fn109-teal);
  font-size: 8px;
}

.fn110-reading-card {
  align-items: start;
  display: grid;
  gap: 10px;
  grid-template-columns: 27px 1fr;
}

.fn110-reading-card strong {
  font-size: 10px;
}

.fn110-reading-card p {
  color: #5e7386;
  font-size: 8px;
  line-height: 1.5;
  margin: 4px 0 0;
}

.fn110-corridors-card {
  margin-top: 14px;
  overflow: hidden;
}

.fn110-corridors-card table {
  min-width: 980px;
}

.fn110-corridors-card tbody tr {
  cursor: pointer;
}

.fn110-corridors-card tbody tr:hover,
.fn110-corridors-card tbody tr.selected {
  background: #f0f8ff;
}

.fn110-corridors-card td:first-child {
  color: var(--fn109-teal);
  font-weight: 900;
}

.fn110-corridors-card td > small {
  color: var(--fn109-muted);
  display: block;
  font-size: 7px;
  margin-top: 2px;
}

.fn110-dap-relocation {
  align-items: center;
  display: grid;
  gap: 11px;
  grid-template-columns: 25px minmax(0, 1fr) auto;
  margin-top: 14px;
  padding: 12px 15px;
}

.fn110-dap-relocation > span {
  color: var(--fn109-blue);
  display: grid;
  height: 23px;
  width: 23px;
}

.fn110-dap-relocation div {
  display: grid;
  gap: 2px;
}

.fn110-dap-relocation strong {
  font-size: 10px;
}

.fn110-dap-relocation p {
  color: var(--fn109-muted);
  font-size: 8px;
  margin: 0;
}

.fn110-dap-relocation button {
  background: var(--fn109-blue);
  border: 0;
  border-radius: 7px;
  color: #fff;
  font-size: 8px;
  font-weight: 900;
  padding: 9px 13px;
}

.fn110-advanced-panel {
  margin-top: 14px;
  overflow: hidden;
}

.fn110-advanced-panel > summary {
  align-items: center;
  cursor: pointer;
  display: grid;
  gap: 11px;
  grid-template-columns: 28px minmax(0, 1fr) auto 18px;
  list-style: none;
  padding: 14px 16px;
}

.fn110-advanced-panel > summary::-webkit-details-marker { display: none; }
.fn110-advanced-panel > summary > span { color: var(--fn109-teal); display: grid; height: 26px; width: 26px; }
.fn110-advanced-panel > summary > div { display: grid; gap: 2px; }
.fn110-advanced-panel > summary strong { font-size: 11px; }
.fn110-advanced-panel > summary small { color: var(--fn109-muted); font-size: 8px; }
.fn110-advanced-panel > summary > b { background: #edf4ff; border-radius: 999px; color: var(--fn109-blue); font-size: 7px; padding: 5px 8px; }
.fn110-advanced-panel > summary > i { color: #668093; display: grid; height: 16px; transition: transform .18s ease; width: 16px; }
.fn110-advanced-panel[open] > summary > i { transform: rotate(90deg); }
.fn110-advanced-panel[open] > summary { border-bottom: 1px solid #e5edf0; }

.fn110-advanced-body {
  background: #fbfdfe;
  padding: 14px 16px 16px;
}

.fn110-advanced-inputs {
  display: grid;
  gap: 10px;
  grid-template-columns: repeat(5, minmax(0, 1fr));
}

.fn110-net-exposure-inputs {
  align-items: end;
  border-top: 1px solid #e5edf0;
  display: grid;
  gap: 10px;
  grid-template-columns: 150px repeat(3, minmax(0, 1fr));
  margin-top: 12px;
  padding-top: 12px;
}

.fn110-net-exposure-inputs > span {
  align-self: center;
  color: var(--fn109-ink);
  font-size: 9px;
  font-weight: 900;
}

.fn110-advanced-grid {
  display: grid;
  gap: 10px;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  margin-top: 13px;
}

.fn110-advanced-card {
  background: #fff;
  border: 1px solid #dfe8ed;
  border-radius: 10px;
  display: grid;
  gap: 10px;
  min-height: 155px;
  padding: 12px;
}

.fn110-advanced-card > header {
  align-items: start;
  display: grid;
  gap: 8px;
  grid-template-columns: 24px 1fr;
}

.fn110-advanced-card header > b {
  background: #eaf6f7;
  border-radius: 50%;
  color: #087b81;
  display: grid;
  font-size: 7px;
  height: 24px;
  place-items: center;
  width: 24px;
}

.fn110-advanced-card header > div,
.fn110-advanced-card > div {
  display: grid;
  gap: 3px;
}

.fn110-advanced-card header strong {
  font-size: 9px;
}

.fn110-advanced-card header small,
.fn110-advanced-card > div small {
  color: var(--fn109-muted);
  font-size: 7px;
  line-height: 1.35;
}

.fn110-advanced-card > div > strong {
  color: var(--fn109-blue);
  font-size: 12px;
}

.fn110-advanced-card > button {
  align-self: end;
  background: #fff;
  border: 1px solid #63bdd0;
  border-radius: 7px;
  color: #087ca0;
  font-size: 8px;
  font-weight: 900;
  padding: 7px 9px;
}

.fn110-advanced-disclaimer {
  align-items: center;
  background: #eef6ff;
  border-left: 3px solid var(--fn109-blue);
  color: #31506a;
  display: grid;
  font-size: 8px;
  gap: 8px;
  grid-template-columns: 18px 1fr;
  margin: 13px 0 0;
  padding: 9px 11px;
}

.fn110-advanced-disclaimer > span {
  display: grid;
  height: 17px;
  width: 17px;
}

@media (max-width: 1320px) {
  .fn110-logistics-controls { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .fn110-metric-control { grid-column: span 2; }
  .fn110-logistics-layout { grid-template-columns: minmax(0, 1fr) 310px; }
  .fn110-advanced-inputs { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .fn110-advanced-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

@media (max-width: 1000px) {
  .fn110-logistics-layout { grid-template-columns: 1fr; }
  .fn110-logistics-aside { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .fn110-reading-card { grid-column: 1 / -1; }
  .fn110-map-svg { min-height: 340px; }
  .fn110-net-exposure-inputs { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .fn110-net-exposure-inputs > span { grid-column: 1 / -1; }
  .fn110-advanced-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 720px) {
  .fn110-logistics-controls,
  .fn110-logistics-aside,
  .fn110-advanced-inputs,
  .fn110-net-exposure-inputs,
  .fn110-advanced-grid { grid-template-columns: 1fr; }
  .fn110-metric-control { grid-column: auto; }
  .fn110-reading-card { grid-column: auto; }
  .fn110-map-svg { min-height: 260px; }
  .fn110-map-card > footer > span { margin-left: 0; max-width: none; text-align: left; width: 100%; }
  .fn110-dap-relocation { grid-template-columns: 24px 1fr; }
  .fn110-dap-relocation button { grid-column: 1 / -1; }
  .fn110-advanced-panel > summary { grid-template-columns: 26px 1fr 16px; }
  .fn110-advanced-panel > summary > b { display: none; }
}


/* Fuel Nexus V111 · Mapa maestro de terminales */
.fn111-logistics-page { --fn111-green:#179b69; --fn111-amber:#df9714; --fn111-blue:#166ed8; --fn111-gray:#9aa8b3; }
.fn111-logistics-hero,
.fn111-kpi-strip,
.fn111-route-builder,
.fn111-filter-bar,
.fn111-catalog-card,
.fn111-map-card,
.fn111-terminal-detail,
.fn111-detail-empty,
.fn111-route-detail,
.fn111-route-empty,
.fn111-comparison-card {
  background:#fff; border:1px solid var(--fn109-line); border-radius:13px; box-shadow:0 7px 20px rgba(12,43,72,.035);
}
.fn111-logistics-hero { align-items:center; display:flex; gap:20px; justify-content:space-between; padding:17px 18px; }
.fn111-logistics-hero > div:first-child { display:grid; gap:3px; }
.fn111-logistics-hero span { color:var(--fn109-teal); font-size:8px; font-weight:900; letter-spacing:.09em; }
.fn111-logistics-hero h2 { color:var(--fn109-ink); font-size:21px; margin:0; }
.fn111-logistics-hero p { color:var(--fn109-muted); font-size:9px; margin:0; }
.fn111-hero-badges { display:flex; flex-wrap:wrap; gap:6px; justify-content:flex-end; }
.fn111-hero-badges small { background:#eef8f8; border:1px solid #cde8e8; border-radius:999px; color:#28747a; font-size:7px; font-weight:800; padding:5px 8px; }
.fn111-kpi-strip { display:grid; gap:0; grid-template-columns:repeat(5,minmax(0,1fr)); margin-top:12px; overflow:hidden; }
.fn111-kpi-strip article { border-right:1px solid #e4ecef; display:grid; gap:3px; padding:11px 14px; }
.fn111-kpi-strip article:last-child { border-right:0; }
.fn111-kpi-strip span { color:var(--fn109-muted); font-size:7px; font-weight:800; text-transform:uppercase; }
.fn111-kpi-strip strong { color:var(--fn109-ink); font-size:18px; }
.fn111-kpi-strip article.pending strong { color:#7b8995; }
.fn111-route-builder { align-items:end; display:grid; gap:12px; grid-template-columns:1.5fr 1fr .58fr .9fr; margin-top:12px; padding:13px 15px; }
.fn111-route-builder-note { align-items:center; background:#f4f8fa; border:1px solid #e0eaee; border-radius:8px; color:#5d7383; display:flex; gap:7px; min-height:46px; padding:8px 10px; }
.fn111-route-builder-note span { color:var(--fn109-teal); display:grid; height:18px; width:18px; }
.fn111-route-builder-note svg { height:100%; width:100%; }
.fn111-route-builder-note p { font-size:8px; line-height:1.35; margin:0; }
.fn111-filter-bar { align-items:end; display:grid; gap:10px; grid-template-columns:1.7fr .72fr .85fr .9fr; margin-top:10px; padding:11px 13px; }
.fn111-search { align-items:center; background:#f7fafb; border:1px solid #dbe6ea; border-radius:8px; display:flex; gap:8px; min-height:44px; padding:0 11px; }
.fn111-search span { color:#6e8292; display:grid; height:17px; width:17px; }
.fn111-search svg { height:100%; width:100%; }
.fn111-search input { background:transparent; border:0; color:var(--fn109-ink); font:inherit; font-size:9px; outline:0; width:100%; }
.fn111-logistics-layout { display:grid; gap:12px; grid-template-columns:280px minmax(440px,1fr) 325px; margin-top:12px; }
.fn111-catalog-card,.fn111-map-card,.fn111-details-column { min-width:0; }
.fn111-catalog-card { display:flex; flex-direction:column; max-height:675px; overflow:hidden; }
.fn111-catalog-card > header,.fn111-map-card > header,.fn111-comparison-card > header { align-items:flex-start; border-bottom:1px solid #e5edef; display:flex; justify-content:space-between; padding:13px 14px 11px; }
.fn111-catalog-card header > div,.fn111-map-card header > div,.fn111-comparison-card header > div { display:grid; gap:2px; }
.fn111-catalog-card header span,.fn111-map-card header span,.fn111-comparison-card header span { color:var(--fn109-teal); font-size:7px; font-weight:900; letter-spacing:.06em; text-transform:uppercase; }
.fn111-catalog-card h2,.fn111-map-card h2,.fn111-comparison-card h2 { color:var(--fn109-ink); font-size:14px; margin:0; }
.fn111-catalog-card header small { background:#eef7f8; border-radius:999px; color:#31777d; font-size:7px; font-weight:900; padding:4px 7px; }
.fn111-terminal-list { overflow:auto; padding:6px; scrollbar-width:thin; }
.fn111-terminal-row { align-items:center; background:transparent; border:0; border-bottom:1px solid #edf2f4; border-radius:8px; color:inherit; cursor:pointer; display:grid; gap:8px; grid-template-columns:8px minmax(0,1fr) auto; padding:9px 8px; text-align:left; width:100%; }
.fn111-terminal-row:hover,.fn111-terminal-row.active { background:#f1f8fa; }
.fn111-terminal-row.active { box-shadow:inset 3px 0 0 var(--fn109-teal); }
.fn111-terminal-row > i,.fn111-catalog-card > footer i { border-radius:50%; display:block; height:7px; width:7px; }
.fn111-terminal-row i.success,.fn111-catalog-card > footer i.success { background:var(--fn111-green); }
.fn111-terminal-row i.warning,.fn111-catalog-card > footer i.warning { background:var(--fn111-amber); }
.fn111-terminal-row i.info,.fn111-catalog-card > footer i.info { background:var(--fn111-blue); }
.fn111-terminal-row i.pending,.fn111-catalog-card > footer i.pending { background:var(--fn111-gray); }
.fn111-terminal-row > span { display:grid; gap:1px; min-width:0; }
.fn111-terminal-row strong { color:#17344a; font-size:8.5px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.fn111-terminal-row small { color:#6e8190; font-size:7px; }
.fn111-terminal-row em { color:#8a98a3; font-size:6.5px; font-style:normal; }
.fn111-terminal-row > b { border-radius:999px; font-size:6px; font-weight:900; padding:4px 6px; white-space:nowrap; }
.fn111-terminal-row > b.success,.fn111-terminal-detail header b.success { background:#e4f7ef; color:#137c55; }
.fn111-terminal-row > b.warning,.fn111-terminal-detail header b.warning { background:#fff3da; color:#a66b00; }
.fn111-terminal-row > b.info,.fn111-terminal-detail header b.info { background:#e7f1ff; color:#155fad; }
.fn111-terminal-row > b.pending,.fn111-terminal-detail header b.pending { background:#eef1f3; color:#687680; }
.fn111-catalog-card > footer { align-items:center; border-top:1px solid #e5edef; color:#70818e; display:flex; flex-wrap:wrap; font-size:6.5px; gap:5px; padding:8px 10px; }
.fn111-map-card { overflow:hidden; }
.fn111-map-controls { display:flex; gap:5px; }
.fn111-map-controls button { background:#fff; border:1px solid #cfdee4; border-radius:7px; color:#24485e; font-size:10px; font-weight:900; min-height:29px; min-width:29px; padding:4px 8px; }
.fn111-map-controls button:last-child { font-size:7px; }
.fn111-map-stage { background:#eaf5f8; min-height:490px; overflow:hidden; }
.fn111-map-svg { aspect-ratio:1000/660; display:block; height:auto; min-height:490px; width:100%; }
.fn111-map-ocean { fill:#eaf5f8; }
.fn111-map-country { fill:#faf7ef; fill-rule:evenodd; stroke:#a8bbc4; stroke-width:1; vector-effect:non-scaling-stroke; }
.fn111-map-country-bolivia { fill:#fffdf7; stroke:#607f91; stroke-width:1.35; }
.fn111-map-country-label { fill:#81919c; font-size:13px; font-weight:900; letter-spacing:.12em; opacity:.58; pointer-events:none; text-anchor:middle; }
.fn111-map-route { fill:none; opacity:.95; pointer-events:none; stroke:#116bd8; stroke-dasharray:8 7; stroke-linecap:round; stroke-linejoin:round; stroke-width:3.1; vector-effect:non-scaling-stroke; }
.fn111-map-terminal { cursor:pointer; outline:none; }
.fn111-map-terminal circle { fill:#fff; stroke-width:2.5; vector-effect:non-scaling-stroke; }
.fn111-map-terminal.with-freight circle { fill:var(--fn111-green); stroke:#fff; }
.fn111-map-terminal.route-no-freight circle { fill:var(--fn111-amber); stroke:#fff; }
.fn111-map-terminal.mapped-no-route circle { fill:var(--fn111-blue); stroke:#fff; }
.fn111-map-terminal.selected circle { filter:drop-shadow(0 2px 4px rgba(12,43,72,.35)); stroke:#092d47; stroke-width:3; }
.fn111-map-terminal text.count { fill:#fff; font-size:7px; font-weight:900; pointer-events:none; text-anchor:middle; }
.fn111-map-terminal text.label,.fn111-map-support-marker text { fill:#20394d; font-size:8.5px; font-weight:900; paint-order:stroke; pointer-events:none; stroke:rgba(255,255,255,.97); stroke-linejoin:round; stroke-width:3px; }
.fn111-map-support-marker circle { fill:#fff; stroke:#d28a11; stroke-width:2; vector-effect:non-scaling-stroke; }
.fn111-map-support-marker.city circle { stroke:#173f58; }
.fn111-map-card > footer { align-items:center; border-top:1px solid #e5edef; display:flex; flex-wrap:wrap; gap:11px; padding:9px 11px; }
.fn111-map-card > footer div { align-items:center; color:#5e7383; display:flex; font-size:6.5px; font-weight:800; gap:5px; }
.fn111-map-card > footer i { border-radius:50%; display:inline-block; height:7px; width:7px; }
.fn111-map-card > footer i.with-freight { background:var(--fn111-green); }
.fn111-map-card > footer i.route-no-freight { background:var(--fn111-amber); }
.fn111-map-card > footer i.mapped-no-route { background:var(--fn111-blue); }
.fn111-map-card > footer b { border-top:2px dashed #116bd8; display:inline-block; width:20px; }
.fn111-map-card > footer > span { color:#8797a2; font-size:6px; line-height:1.25; margin-left:auto; max-width:360px; text-align:right; }
.fn111-details-column { display:grid; gap:10px; grid-auto-rows:max-content; }
.fn111-terminal-detail,.fn111-detail-empty,.fn111-route-detail,.fn111-route-empty { padding:13px; }
.fn111-terminal-detail > header { align-items:center; display:grid; gap:8px; grid-template-columns:27px minmax(0,1fr) auto; margin-bottom:9px; }
.fn111-terminal-detail header > span { color:var(--fn109-teal); display:grid; height:25px; width:25px; }
.fn111-terminal-detail header svg,.fn111-detail-empty svg,.fn111-route-empty svg { height:100%; width:100%; }
.fn111-terminal-detail header small,.fn111-route-detail header small { color:var(--fn109-teal); font-size:6.5px; font-weight:900; text-transform:uppercase; }
.fn111-terminal-detail h2,.fn111-route-detail h2 { color:var(--fn109-ink); font-size:13px; margin:1px 0 0; }
.fn111-terminal-detail header b,.fn111-route-detail header b { border-radius:999px; font-size:6px; font-weight:900; padding:5px 7px; }
.fn111-terminal-detail dl,.fn111-route-detail dl { display:grid; gap:0; margin:0; }
.fn111-terminal-detail dl div,.fn111-route-detail dl div { border-bottom:1px solid #edf2f4; display:grid; gap:6px; grid-template-columns:92px minmax(0,1fr); padding:7px 0; }
.fn111-terminal-detail dt,.fn111-route-detail dt { color:#748693; font-size:6.5px; font-weight:800; }
.fn111-terminal-detail dd,.fn111-route-detail dd { color:#1e3a4e; font-size:7.5px; font-weight:700; margin:0; text-align:right; }
.fn111-terminal-detail > p,.fn111-route-detail > p { color:#72828e; font-size:7px; line-height:1.45; margin:8px 0; }
.fn111-related-terminals { border-top:1px solid #e8eef1; display:flex; flex-wrap:wrap; gap:5px; padding-top:8px; }
.fn111-related-terminals > span { color:#728490; font-size:6.5px; font-weight:900; width:100%; }
.fn111-related-terminals button { background:#f4f8fa; border:1px solid #dbe6ea; border-radius:999px; color:#31576b; font-size:6.5px; padding:4px 7px; }
.fn111-related-terminals button.active { background:#e2f5f5; border-color:#9dd3d5; color:#137278; }
.fn111-use-origin,.fn111-route-detail > button { background:var(--fn109-blue); border:0; border-radius:8px; color:#fff; font-size:7.5px; font-weight:900; margin-top:9px; min-height:34px; padding:8px 10px; width:100%; }
.fn111-location-block { background:#f3f5f6; border-radius:7px; color:#7a8993; display:block; font-size:7px; line-height:1.4; margin-top:9px; padding:8px; }
.fn111-detail-empty,.fn111-route-empty { align-items:center; color:#6b7d89; display:grid; gap:9px; grid-template-columns:31px minmax(0,1fr); }
.fn111-detail-empty > span,.fn111-route-empty > span { color:var(--fn109-teal); display:grid; height:27px; width:27px; }
.fn111-route-empty.warning > span { color:var(--fn111-amber); }
.fn111-detail-empty strong,.fn111-route-empty strong { color:#24465a; font-size:9px; }
.fn111-detail-empty p,.fn111-route-empty p { font-size:7px; line-height:1.45; margin:2px 0 0; }
.fn111-route-detail > header { align-items:flex-start; display:flex; justify-content:space-between; margin-bottom:9px; }
.fn111-route-detail header b.success { background:#e4f7ef; color:#137c55; }
.fn111-route-detail header b.warning { background:#fff3da; color:#a66b00; }
.fn111-route-detail header b.info { background:#e7f1ff; color:#155fad; }
.fn111-route-kpis { display:grid; gap:5px; grid-template-columns:repeat(3,1fr); }
.fn111-route-kpis article { background:#f5f8fa; border:1px solid #e1e9ed; border-radius:8px; display:grid; gap:1px; padding:7px; }
.fn111-route-kpis article.total { background:#eaf7f7; border-color:#c6e6e7; }
.fn111-route-kpis span { color:#748590; font-size:6px; }
.fn111-route-kpis strong { color:#143a51; font-size:11px; }
.fn111-route-kpis small { color:#81909a; font-size:6px; }
.fn111-comparison-card { margin-top:12px; overflow:hidden; }
.fn111-comparison-card .fn110-metric-control { min-width:250px; }
.fn111-comparison-card table tbody tr { cursor:pointer; }
.fn111-comparison-card table tbody tr.selected { background:#eaf7f8; }
.fn111-pending-value { background:#fff3da; border-radius:999px; color:#9b6808; font-size:6.5px; font-weight:900; padding:4px 6px; }
.fn111-no-results { color:#7b8a94; font-size:8px; padding:20px 12px; text-align:center; }
@media (max-width:1450px) {
  .fn111-logistics-layout { grid-template-columns:250px minmax(390px,1fr) 300px; }
  .fn111-route-builder { grid-template-columns:1.35fr .9fr .55fr .8fr; }
}
@media (max-width:1180px) {
  .fn111-logistics-layout { grid-template-columns:280px minmax(0,1fr); }
  .fn111-details-column { grid-column:1/-1; grid-template-columns:repeat(2,minmax(0,1fr)); }
  .fn111-filter-bar { grid-template-columns:1.4fr repeat(3,1fr); }
}
@media (max-width:900px) {
  .fn111-route-builder,.fn111-filter-bar { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .fn111-logistics-layout { grid-template-columns:1fr; }
  .fn111-catalog-card { max-height:520px; }
  .fn111-details-column { grid-template-columns:1fr; }
  .fn111-kpi-strip { grid-template-columns:repeat(3,1fr); }
  .fn111-kpi-strip article:nth-child(3) { border-right:0; }
}
@media (max-width:620px) {
  .fn111-logistics-hero { align-items:flex-start; flex-direction:column; }
  .fn111-hero-badges { justify-content:flex-start; }
  .fn111-kpi-strip,.fn111-route-builder,.fn111-filter-bar { grid-template-columns:1fr; }
  .fn111-kpi-strip article { border-bottom:1px solid #e4ecef; border-right:0; }
  .fn111-map-stage,.fn111-map-svg { min-height:390px; }
  .fn111-map-card > footer > span { margin-left:0; text-align:left; }
  .fn111-route-kpis { grid-template-columns:repeat(2,1fr); }
  .fn111-comparison-card .fn110-metric-control { min-width:0; width:100%; }
  .fn111-comparison-card > header { gap:10px; flex-direction:column; }
}

/* source: navigation-accordion-v120rc36.css */
/* Fuel Nexus V120 RC36 Preview · navegación progresiva por perfil */
.sidebar .fn109-nav[data-fn120-accordion-version="v120rc36"] {
  gap: 4px;
}

.sidebar .fn109-nav .fn109-nav-group {
  margin-bottom: 0;
}

.fn120-nav-static {
  margin-bottom: 7px !important;
}

.fn120-nav-static-label {
  display: block;
  margin-bottom: 5px !important;
}

.fn120-nav-group-toggle {
  align-items: center;
  background: transparent;
  border: 0;
  border-radius: 8px;
  color: #8da8bb;
  cursor: pointer;
  display: flex;
  font: inherit;
  justify-content: space-between;
  min-height: 31px;
  padding: 7px 11px;
  text-align: left;
  transition: background .16s ease, color .16s ease;
  width: 100%;
}

.fn120-nav-group-toggle:hover,
.fn120-nav-group-toggle:focus-visible {
  background: rgba(255, 255, 255, .06);
  color: #d5e3eb;
}

.fn120-nav-group-toggle:focus-visible {
  outline: 2px solid rgba(44, 224, 232, .8);
  outline-offset: -2px;
}

.fn120-nav-group-caption {
  font-size: 9px;
  font-weight: 850;
  letter-spacing: .115em;
  line-height: 1.25;
  text-transform: uppercase;
}

.fn120-nav-group-chevron {
  border-bottom: 1.5px solid currentColor;
  border-right: 1.5px solid currentColor;
  display: block;
  flex: 0 0 6px;
  height: 6px;
  margin: -2px 2px 0 8px;
  transform: rotate(-45deg);
  transition: transform .16s ease;
  width: 6px;
}

.fn120-nav-collapsible.is-open > .fn120-nav-group-toggle,
.fn120-nav-collapsible.has-active-item > .fn120-nav-group-toggle {
  color: #b7cbd8;
}

.fn120-nav-collapsible.is-open > .fn120-nav-group-toggle {
  background: rgba(255, 255, 255, .035);
}

.fn120-nav-collapsible.is-open > .fn120-nav-group-toggle .fn120-nav-group-chevron {
  transform: rotate(45deg);
}

.fn120-nav-group-panel {
  display: grid;
  gap: 3px;
  padding: 2px 0 7px;
}

.fn120-nav-group-panel[hidden] {
  display: none !important;
}

.fn120-nav-group-panel .fn109-nav-item {
  min-height: 39px;
}

.fn120-nav-group-panel .fn109-nav-item strong {
  font-size: 11.5px;
}

@media (max-width: 1000px) {
  .sidebar .fn109-nav .fn120-nav-group-toggle,
  .sidebar .fn109-nav .fn120-nav-static-label {
    display: none !important;
  }

  .sidebar .fn109-nav .fn120-nav-group-panel,
  .sidebar .fn109-nav .fn120-nav-group-panel[hidden] {
    display: contents !important;
  }

  .sidebar .fn109-nav .fn120-nav-collapsible,
  .sidebar .fn109-nav .fn120-nav-static {
    display: contents !important;
  }
}

@media (prefers-reduced-motion: reduce) {
  .fn120-nav-group-toggle,
  .fn120-nav-group-chevron {
    transition: none;
  }
}

/* source: v120-suite-v120rc35.css */
#v120-suite-root{display:none;padding:26px 32px 36px;min-height:60vh;max-width:1500px;margin:0 auto}html[data-v120-active] #v120-suite-root{display:block}.sidebar nav{overflow-y:auto;min-height:0;padding-right:3px}.sidebar-foot{flex-shrink:0}.v120-page{display:grid;gap:18px}.v120-hero{display:flex;justify-content:space-between;gap:24px;padding:26px;border-radius:22px;background:linear-gradient(135deg,#0b1f32,#123c50);color:#fff;box-shadow:0 16px 40px rgba(10,31,50,.12)}.v120-hero.compact{padding:22px}.v120-hero h2{margin:5px 0 8px;font-size:26px}.v120-hero p{margin:0;max-width:760px;color:rgba(255,255,255,.78);line-height:1.55}.v120-kicker{font-size:11px;letter-spacing:.14em;font-weight:800;color:#6ee7d8}.v120-score{min-width:150px;display:grid;align-content:center;text-align:right}.v120-score strong{font-size:48px;line-height:1}.v120-score span{font-size:13px;color:#9fd7d0}.v120-score small{margin-top:7px;color:#d7eeeb}.v120-grid2,.v120-grid3,.v120-grid4{display:grid;gap:14px}.v120-grid2{grid-template-columns:repeat(2,minmax(0,1fr))}.v120-grid3{grid-template-columns:repeat(3,minmax(0,1fr))}.v120-grid4{grid-template-columns:repeat(4,minmax(0,1fr))}.v120-card,.v120-panel{background:#fff;border:1px solid #e6edf2;border-radius:18px;box-shadow:0 8px 26px rgba(20,44,65,.055)}.v120-card{padding:18px;display:grid;gap:7px}.v120-card>span,.v120-panel-head span{font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:#718291;font-weight:800}.v120-card strong{font-size:17px;color:#14293a}.v120-card small{color:#728392}.v120-panel{padding:20px}.v120-panel-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px}.v120-panel-head h3{margin:4px 0 0;font-size:18px;color:#173043}.v120-health{padding:6px 10px;border-radius:999px;background:#fff6d9;color:#8a6510;font-size:12px;font-weight:800}.v120-health.ok{background:#ddf8ef;color:#16765d}.v120-driver-list{display:grid}.v120-driver{display:flex;justify-content:space-between;gap:20px;padding:13px 0;border-top:1px solid #edf2f5}.v120-driver:first-child{border-top:0}.v120-driver div:first-child{display:grid;gap:4px}.v120-driver small{color:#7d8c98}.v120-driver div:last-child{display:grid;text-align:right;gap:3px}.v120-driver b{font-size:20px}.v120-driver span{font-size:11px;color:#80909b}.v120-metric{display:grid;gap:4px;margin-bottom:12px}.v120-metric strong{font-size:28px;color:#163449}.v120-metric span{color:#70808d}.v120-line{display:flex;justify-content:space-between;gap:16px;border-top:1px solid #edf2f5;padding:10px 0;margin:0}.v120-line span{color:#647682}.v120-line b{color:#213b4c}.v120-line b.good{color:#13785e}.v120-line b.warn{color:#9a6a00}.v120-note{padding:10px 12px;margin:7px 0;background:#f5f8fa;border-radius:10px;color:#455b6b;line-height:1.45}.v120-muted{color:#778894}.v120-form-row,.v120-form-grid{display:grid;gap:12px;align-items:end}.v120-form-row{grid-template-columns:repeat(4,minmax(140px,1fr)) auto}.v120-form-grid{grid-template-columns:repeat(4,minmax(150px,1fr))}.v120-form-row label,.v120-form-grid label{display:grid;gap:6px;font-size:12px;font-weight:800;color:#526a79}.v120-form-row input,.v120-form-row select,.v120-form-grid input,.v120-form-grid select,.v120-table input,.v120-table select{width:100%;box-sizing:border-box;border:1px solid #ced9e0;border-radius:10px;padding:10px;background:#fff;color:#203947}.v120-primary,.v120-secondary{border:0;border-radius:11px;padding:11px 15px;font-weight:800;cursor:pointer}.v120-primary{background:#0d786d;color:#fff}.v120-secondary{background:#e8f2f1;color:#155f58}.v120-result-empty{margin-top:16px;padding:18px;background:#f7f9fb;border-radius:14px;color:#70808d}.v120-dap{margin-top:16px;display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:10px}.v120-dap>div{padding:14px;background:#f6f9fa;border-radius:13px;display:grid;gap:5px}.v120-dap span{font-size:11px;text-transform:uppercase;color:#73838e}.v120-dap strong{font-size:17px}.v120-dap small{color:#778895}.v120-dap .total{background:#0f2b3d;color:#fff}.v120-dap .total span,.v120-dap .total small{color:#c4d8df}.v120-table-wrap{overflow:auto}.v120-table{width:100%;border-collapse:collapse;font-size:13px}.v120-table th{text-align:left;padding:10px;color:#6f808c;font-size:11px;text-transform:uppercase;border-bottom:1px solid #dfe7ec}.v120-table td{padding:10px;border-bottom:1px solid #edf2f5;vertical-align:middle;color:#2b4352}.v120-loading,.v120-error{padding:30px;border-radius:18px;background:#fff;border:1px solid #e5edf1;color:#677b89}.v120-error{display:grid;gap:6px;border-color:#f0c7c7;background:#fff7f7;color:#8b3434}.v120-toast{position:fixed;right:22px;bottom:22px;z-index:99999;padding:12px 16px;border-radius:12px;background:#123e38;color:#fff;box-shadow:0 10px 35px rgba(0,0,0,.18)}.v120-toast.bad{background:#8c3232}.bad{color:#9e3030}@media(max-width:1100px){.v120-grid4{grid-template-columns:repeat(2,1fr)}.v120-grid3{grid-template-columns:1fr}.v120-form-row,.v120-form-grid{grid-template-columns:repeat(2,1fr)}.v120-dap{grid-template-columns:repeat(2,1fr)}}@media(max-width:700px){#v120-suite-root{padding:16px 12px 20px}.v120-hero{display:grid;padding:18px}.v120-score{text-align:left}.v120-grid2,.v120-grid4,.v120-form-row,.v120-form-grid,.v120-dap{grid-template-columns:1fr}.v120-panel{padding:14px}.v120-table{min-width:760px}}

.bolivia-view .data-panel table{min-width:1680px}
.fn-operation-detail{position:static;text-align:left}
.fn-operation-detail summary{color:#087b82;cursor:pointer;font-size:11px;font-weight:800;list-style:none;white-space:nowrap}
.fn-operation-detail summary::-webkit-details-marker{display:none}
.fn-operation-detail-card{background:#f8fbfc;border:1px solid #d9e5ea;border-radius:12px;display:grid;gap:0;grid-template-columns:1fr;margin-top:8px;max-height:420px;min-width:300px;overflow:auto;padding:10px;position:static}
.fn-operation-detail-card>div{border-bottom:1px solid #edf2f4;display:grid;gap:4px;padding:9px 10px}
.fn-operation-detail-card dt{color:#6a7c8b;font-size:9px;font-weight:800;text-transform:uppercase}
.fn-operation-detail-card dd{color:#152f43;font-size:11px;margin:0;overflow-wrap:anywhere}
@media(max-width:720px){.fn-operation-detail-card{min-width:min(300px,78vw)}}
.dashboard-content.admin-view .upload-panel{display:none!important}
.v120-data-slot{min-height:120px}
.v120-data-slot>.fn26-excel-validator{margin:0}
.v120-data-loading{display:grid;gap:6px;min-height:120px;box-sizing:border-box;align-content:center}
.v120-data-loading strong{color:#173b4e;font-size:16px}
.v120-data-loading small{color:#748692}
.v120-commercial-tabs{display:grid;gap:14px;min-width:0}
.v120-commercial-tablist{display:flex;gap:8px;padding:6px;border:1px solid #dfe8ed;border-radius:16px;background:#fff;box-shadow:0 8px 26px rgba(20,44,65,.045);overflow-x:auto;scrollbar-width:thin}
.v120-commercial-tab{display:flex;align-items:center;justify-content:center;gap:8px;min-height:44px;padding:10px 15px;border:1px solid transparent;border-radius:11px;background:transparent;color:#426070;font:inherit;font-size:12px;font-weight:900;white-space:nowrap;cursor:pointer}
.v120-commercial-tab small{display:grid;place-items:center;min-width:20px;height:20px;padding:0 5px;border-radius:999px;background:#edf4f6;color:#607986;font-size:10px}
.v120-commercial-tab:hover{background:#f3f8f9;color:#0a6670}
.v120-commercial-tab.active{background:#0b2b41;color:#fff;box-shadow:0 6px 16px rgba(11,43,65,.18)}
.v120-commercial-tab.active small{background:rgba(255,255,255,.16);color:#fff}
.v120-commercial-tab:focus-visible{outline:3px solid rgba(12,164,176,.28);outline-offset:2px}
.v120-commercial-tabbody{min-width:0}
.v120-commercial-tabpanel{display:grid;gap:18px;min-width:0}
.v120-commercial-tabpanel[hidden]{display:none!important}
.v120-data-error{min-height:120px;box-sizing:border-box;align-content:center}
@media(max-width:700px){.v120-commercial-tablist{justify-content:flex-start}.v120-commercial-tab{padding:9px 12px}}
.v120-installation-form .v120-form-wide{grid-column:span 2}
.v120-analysis-tabs{display:flex;gap:8px;overflow-x:auto;padding:6px;border:1px solid #dce7ec;border-radius:15px;background:#fff}.v120-analysis-tabs button{border:0;border-radius:10px;background:transparent;padding:11px 18px;font-weight:900;color:#496779;white-space:nowrap;cursor:pointer}.v120-analysis-tabs button.active{background:#092d45;color:#fff}.v120-market-timeline{grid-column:1/-1;display:grid;grid-template-columns:minmax(190px,.8fr) repeat(2,minmax(220px,1fr));gap:16px;align-items:end;margin-top:16px;padding:16px 18px;border:1px solid #dbe7ec;border-radius:14px;background:linear-gradient(90deg,#f7fafb,#edf8f8)}.v120-market-timeline>div{display:grid;gap:3px}.v120-market-timeline>div span{font-size:10px;font-weight:900;letter-spacing:.1em;text-transform:uppercase;color:#008894}.v120-market-timeline>div strong{color:#15364a}.v120-market-timeline>div small{color:#6d8290}.v120-market-timeline label{display:grid;grid-template-columns:auto 1fr auto;gap:10px;align-items:center;font-size:11px;font-weight:800;color:#526a79}.v120-market-timeline input[type=range]{accent-color:#0099a4;min-width:0}.v120-market-timeline label span{min-width:74px;text-align:right;color:#173b4e}.v120-formula-preview{display:grid;grid-template-columns:auto 1fr;gap:4px 14px;margin-top:16px;padding:14px 16px;border:1px solid #d9e8ec;border-radius:13px;background:#f5fafb;color:#446274}.v120-formula-preview strong{grid-row:1/3;color:#123a50}.v120-formula-preview small{color:#6a808d}.v120-evaluation-evidence>.v120-grid4 article{display:grid;gap:6px;padding:14px;border:1px solid #e0e9ed;border-radius:13px;background:#f8fbfc}.v120-evaluation-evidence>.v120-grid4 article>span{font-size:10px;font-weight:900;letter-spacing:.08em;text-transform:uppercase;color:#708493}.v120-evaluation-evidence>.v120-grid4 article>strong{color:#15364a}.v120-evaluation-evidence>.v120-grid4 article>small{color:#6b808e;line-height:1.35}.v120-data-chip{display:inline-flex;padding:7px 10px;border-radius:999px;font-size:10px!important;font-weight:900;letter-spacing:.05em}.v120-data-chip.real{background:#e7f7f1;color:#14745b}.v120-data-chip.estimate{background:#fff5d9;color:#8a6100}.v120-data-chip.user{background:#e9effd;color:#345a99}@media(max-width:900px){.v120-market-timeline{grid-template-columns:1fr}.v120-formula-preview{grid-template-columns:1fr}.v120-formula-preview strong{grid-row:auto}}
.v120-installation-table{min-width:1800px}
.v120-installation-table td:first-child{min-width:220px}
.v120-installation-table td:nth-child(2){min-width:130px}
.v120-installation-table td:nth-child(3),.v120-installation-table td:nth-child(6),.v120-installation-table td:nth-child(7){min-width:220px}
.v120-installation-table td:nth-child(4),.v120-installation-table td:nth-child(5){min-width:160px}
.v120-installation-table td:first-child code{display:block;color:#0a6b73;font-size:11px;overflow-wrap:anywhere}
.v120-installation-table td:first-child small{display:block;margin-top:5px;color:#708391;font-size:10px}
.v120-average-grid{display:grid;grid-template-columns:repeat(4,minmax(180px,1fr));gap:12px}.v120-average-card{display:grid;gap:8px;padding:14px;border:1px solid #dfe8ed;border-radius:14px;background:#f8fbfc}.v120-average-card>span{font-weight:900;color:#173b4e}.v120-average-card label{display:grid;gap:5px;font-size:11px;color:#637987;font-weight:800}.v120-average-card input{width:100%;box-sizing:border-box;border:1px solid #ced9e0;border-radius:10px;padding:10px;background:#fff}.v120-average-card small{min-height:30px;color:#748692;line-height:1.35}.v120-actions{display:flex;gap:7px}.v120-danger{border:0;border-radius:11px;padding:11px 13px;background:#fff0f0;color:#a53c3c;font-weight:800;cursor:pointer}.v120-freight-table{min-width:1120px}.v120-freight-table td:nth-child(2){min-width:220px}.v120-freight-table td:nth-child(3),.v120-freight-table td:nth-child(4){min-width:170px}@media(max-width:1100px){.v120-average-grid{grid-template-columns:repeat(2,minmax(180px,1fr))}}@media(max-width:700px){.v120-average-grid{grid-template-columns:1fr}}

/* V121 Preview · motor central de ofertas del proveedor */
.fn121-provider-fields {
  display: contents;
}

.fn121-provider-fields[hidden],
.fn121-provider-fields input[hidden],
.fn-user-editor [hidden] {
  display: none !important;
}

.fn121-provider-label:empty {
  display: none;
}
.v120-onboarding-callout{display:flex;align-items:center;gap:14px;border-color:#8ddbd2;background:linear-gradient(90deg,#effcf9,#f7fbff);color:#315765}.v120-onboarding-callout strong{color:#08786e}.v120-data-chip.good{background:#e2f8ef;color:#14745b}.v120-data-chip.warn{background:#fff5d9;color:#8a6100}.v120-data-chip.bad{background:#fff0f0;color:#9e3030}.v120-data-chip.muted{background:#edf2f5;color:#617784}.v120-actions{flex-wrap:wrap}.v120-primary:disabled,.v120-secondary:disabled{cursor:not-allowed;opacity:.55}.v120-table td>small{display:block;margin-top:4px;color:#748692;line-height:1.35}
.v120-data-tags{display:flex;flex-wrap:wrap;gap:8px;margin-top:16px}.v120-data-tags span,.v120-quality-chip{display:inline-flex;align-items:center;border-radius:999px;background:#e8f7f2;color:#087754;padding:5px 9px;font-size:11px;font-weight:800;letter-spacing:.02em}.v120-data-tags .estimate{background:#e7f7fa;color:#007f8a}.v120-data-tags .user{background:#fff5da;color:#8c6200}.v120-action-card button{border:0;background:transparent;color:#008f9b;font-weight:800;padding:10px 0 0;text-align:left;cursor:pointer}.v120-alert-list{display:grid;gap:10px}.v120-alert-list p{display:grid;grid-template-columns:145px 1fr;gap:12px;margin:0;padding:12px;border-radius:12px;background:#f4f8fa}.v120-alert-list span{color:#5d7385}.v120-bar-chart{height:265px;display:flex;align-items:flex-end;gap:8px;padding:24px 4px 36px;border-bottom:1px solid #d7e4ea}.v120-bar-chart>div{height:100%;min-width:28px;flex:1;display:flex;position:relative;align-items:flex-end;justify-content:center}.v120-bar-chart>div>span{width:72%;background:linear-gradient(180deg,#14b7c1,#006a87);border-radius:8px 8px 2px 2px;min-height:5px}.v120-bar-chart small{position:absolute;bottom:-25px;font-size:9px;color:#60798c;transform:rotate(-35deg)}.v120-bar-chart b{position:absolute;top:-18px;font-size:9px;color:#24465c;display:none}.v120-bar-chart>div:hover b{display:block}.v120-intensity-map{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.v120-intensity-map article{min-height:78px;padding:12px;border:1px solid rgba(0,143,155,.3);border-radius:12px;background:rgba(0,143,155,var(--intensity));color:#062b3e;display:flex;flex-direction:column}.v120-intensity-map article strong{font-size:14px}.v120-intensity-map article span{font-size:18px;font-weight:900}.v120-intensity-map article small{font-size:10px}.v120-privacy{border-left:4px solid #02a7b5;background:#eefafb;padding:11px 14px;border-radius:8px;color:#31596c;font-size:12px}.v120-range{display:grid;grid-template-columns:1fr 1.2fr 1fr;gap:8px;align-items:center;text-align:center;margin:12px 0}.v120-range>*{padding:16px 8px;border-radius:12px;background:#eef5f8}.v120-range strong{background:#07304b;color:#fff}.v120-table td small{display:block;color:#6d8190;margin-top:3px}.v120-installation-table small{display:block;max-width:220px}.v120-form-grid input,.v120-form-grid select{min-width:0}@media(max-width:900px){.v120-intensity-map{grid-template-columns:repeat(2,minmax(0,1fr))}.v120-alert-list p{grid-template-columns:1fr}.v120-bar-chart{overflow-x:auto}.v120-bar-chart>div{min-width:36px}.v120-range{grid-template-columns:1fr}}
.v120-desk-tabs{display:flex;gap:8px;overflow-x:auto;padding:6px;border:1px solid #dce7ec;border-radius:15px;background:#fff}.v120-desk-tabs button{border:0;border-radius:10px;background:transparent;padding:11px 18px;font-weight:900;color:#496779;white-space:nowrap;cursor:pointer}.v120-desk-tabs button.active{background:#092d45;color:#fff}.v120-desk-panel{display:grid;gap:18px}.v120-desk-panel[hidden]{display:none!important}.v120-form-wide{grid-column:span 2}.v120-catalog summary{cursor:pointer;color:#0a6b73;font-weight:900}.v120-catalog[open] summary{margin-bottom:16px}.v120-dap-detail{display:grid;gap:14px;margin-top:16px}.v120-commercial-result{margin-top:0}.v120-dap-evidence{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;padding:13px 15px;border:1px solid #dbe8ed;border-radius:13px;background:#f7fafb;color:#607887;font-size:12px}.v120-dap-evidence b{color:#173b4e}.v120-ranking-table{min-width:1040px}.v120-ranking-table .v120-evaluated-row{background:#eaf9f7;box-shadow:inset 4px 0 #00a3ad}.v120-own-price{display:block;width:max-content;margin-top:4px;padding:3px 6px;border-radius:999px;background:#007f88;color:#fff;font-size:9px;font-weight:900;letter-spacing:.06em}.v120-ranked-outside{display:flex;justify-content:space-between;gap:14px;margin-top:12px;padding:13px 15px;border:1px solid #f0ca6b;border-radius:12px;background:#fff8df;color:#674e0c}.v120-exposure-alerts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.v120-exposure-alerts article{display:grid;gap:5px;padding:13px 15px;border-radius:12px;background:#edf6f8;border-left:4px solid #4194a4}.v120-exposure-alerts article.high{background:#fff0f0;border-color:#c74949}.v120-exposure-alerts article.medium{background:#fff7df;border-color:#d69a18}.v120-exposure-alerts article.ok{background:#eaf8f2;border-color:#238969}.v120-exposure-alerts span{color:#5d7382;font-size:12px;line-height:1.4}.v120-operations-table{min-width:1320px}.v120-operations-table td:nth-child(3){min-width:290px}.v120-operations-table td:nth-child(4){min-width:190px}.v120-operations-table td input,.v120-operations-table td select{min-width:120px}.v120-operations-table td:nth-child(3) select{min-width:270px}@media(max-width:900px){.v120-exposure-alerts{grid-template-columns:1fr}.v120-dap-evidence{grid-template-columns:1fr}.v120-form-wide{grid-column:auto}}
.v120-product-availability{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:13px 17px;border-color:#cfe4e8;background:#f2fafb;color:#526f7e}.v120-product-availability strong{color:#087c85;font-size:12px;white-space:nowrap}.v120-product-availability span{font-size:11px;line-height:1.45}.v120-form-grid label>small{min-height:14px;color:#728794;font-size:9px;font-weight:500;line-height:1.35}.v120-cost-editor{margin:0;padding:14px;border:1px solid #d7e3e8;border-radius:14px;background:#f8fbfc}.v120-cost-editor legend{padding:0 7px;color:#426171;font-size:12px;font-weight:900}.v120-cost-grid{display:grid;grid-template-columns:repeat(2,minmax(150px,1fr));gap:10px}.v120-cost-grid label{display:grid;gap:5px;color:#587180;font-size:11px;font-weight:800}.v120-cost-total{display:flex;align-items:center;justify-content:flex-end;gap:10px;margin-top:10px;padding-top:10px;border-top:1px solid #e0e9ed;color:#617988;font-size:11px}.v120-cost-total strong{color:#12394d;font-size:15px}.v120-cost-total small{color:#718692}.v120-applied-costs{display:grid;grid-template-columns:repeat(4,minmax(130px,1fr));gap:8px;padding:14px;border:1px solid #dce8ec;border-radius:14px;background:#f8fbfc}.v120-applied-costs>div{grid-column:1/-1;display:flex;justify-content:space-between;color:#173b4e}.v120-applied-costs>p{display:flex;justify-content:space-between;gap:8px;margin:0;padding:8px 10px;border-radius:9px;background:#fff;color:#607887;font-size:11px}.v120-applied-costs b{color:#23485b}@media(max-width:900px){.v120-product-availability{align-items:flex-start;flex-direction:column}.v120-product-availability strong{white-space:normal}.v120-cost-grid,.v120-applied-costs{grid-template-columns:1fr}.v120-cost-total{align-items:flex-start;flex-direction:column}}

/* source: demand-market-v120rc36.css */
.v120-grid6{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:12px}
.v120-grid6 .v120-card{min-width:0}
.v120-grid6 .v120-card strong{font-size:20px}
.v120-card strong.good{color:#087754}
.v120-card strong.bad{color:#a23c3c}
.v120-filter-panel{padding:14px 18px}
.v120-filter-grid{display:grid;grid-template-columns:repeat(3,minmax(150px,1fr)) minmax(240px,1.35fr);gap:12px;align-items:end}
.v120-filter-grid label{display:grid;gap:6px;color:#536c7b;font-size:11px;font-weight:900;text-transform:uppercase;letter-spacing:.04em}
.v120-filter-grid select{width:100%;min-height:42px;padding:9px 11px;border:1px solid #ccdae1;border-radius:11px;background:#fff;color:#17384b;font:inherit;font-size:13px;font-weight:800}
.v120-filter-meta{display:grid;gap:3px;padding:2px 0 2px 12px;border-left:1px solid #dce7eb;min-width:0}
.v120-filter-meta>span{color:#758a97;font-size:9px;font-weight:900;text-transform:uppercase;letter-spacing:.08em}
.v120-filter-meta strong{color:#18394c;font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.v120-filter-meta small{color:#718492;font-size:10px}
.v120-line-chart{min-width:0}
.v120-line-chart svg{display:block;width:100%;height:auto;min-height:250px}
.v120-chart-grid line{stroke:#dbe7ec;stroke-width:1;stroke-dasharray:4 5}
.v120-chart-grid text{fill:#718696;font-size:10px}
.v120-chart-series{color:var(--series)}
.v120-chart-series polyline{fill:none;stroke:var(--series);stroke-width:3;stroke-linecap:round;stroke-linejoin:round}
.v120-chart-series circle{fill:#fff;stroke:var(--series);stroke-width:2}
.v120-chart-legend{display:flex;flex-wrap:wrap;gap:8px 15px;margin-top:8px}
.v120-chart-legend span{display:flex;align-items:center;gap:7px;color:#506a7a;font-size:11px;font-weight:800}
.v120-chart-legend span:before{content:"";width:20px;height:3px;border-radius:99px;background:var(--series)}
.v120-donut-layout{display:grid;grid-template-columns:minmax(180px,.8fr) minmax(220px,1.2fr);gap:20px;align-items:center}
.v120-donut{display:grid;place-items:center;width:min(210px,100%);aspect-ratio:1;margin:auto;border-radius:50%;box-shadow:inset 0 0 0 1px rgba(5,42,65,.05)}
.v120-donut>div{display:grid;place-items:center;width:58%;aspect-ratio:1;border-radius:50%;background:#fff;box-shadow:0 5px 18px rgba(16,48,68,.1)}
.v120-donut strong{font-size:18px;color:#173a4f}
.v120-donut span{font-size:10px;color:#748795}
.v120-donut-legend{display:grid;gap:7px}
.v120-donut-legend p{display:grid;grid-template-columns:10px 1fr auto;gap:7px 9px;align-items:center;margin:0;padding:7px 0;border-bottom:1px solid #edf2f4}
.v120-donut-legend i{width:9px;height:9px;border-radius:50%;background:var(--series)}
.v120-donut-legend span{color:#38576a;font-size:12px}
.v120-donut-legend b{color:#17394c;font-size:12px}
.v120-donut-legend small{grid-column:2/4;color:#7c8c97;font-size:10px}
.v120-ranking-bars{display:grid;gap:9px}
.v120-ranking-bars article{display:grid;grid-template-columns:24px 1fr;gap:9px;align-items:center}
.v120-ranking-bars article>b{display:grid;place-items:center;width:22px;height:22px;border-radius:7px;background:#edf5f6;color:#16737a;font-size:10px}
.v120-ranking-bars article>div{min-width:0}
.v120-ranking-bars p{display:flex;justify-content:space-between;gap:10px;margin:0 0 4px}
.v120-ranking-bars p strong{overflow:hidden;color:#2b4a5d;font-size:11px;text-overflow:ellipsis;white-space:nowrap}
.v120-ranking-bars p span{color:#718694;font-size:10px;white-space:nowrap}
.v120-ranking-bars i{display:block;height:5px;border-radius:99px;background:#edf3f5;overflow:hidden}
.v120-ranking-bars i span{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#00a8b2,#067188)}
.v120-insight-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}
.v120-insight-list p{display:grid;gap:4px;margin:0;padding:13px;border-radius:12px;background:#f5f9fa}
.v120-insight-list b{font-size:20px;color:#0a6d77}
.v120-insight-list span{color:#647987;font-size:11px;line-height:1.4}
.v120-month-chart{height:270px;display:grid;grid-template-columns:repeat(12,minmax(26px,1fr));gap:7px;align-items:end;padding:28px 3px 4px}
.v120-month-chart article{height:100%;display:grid;grid-template-rows:20px 1fr 18px;gap:4px;text-align:center;align-items:end}
.v120-month-chart article>b{visibility:hidden;color:#34556a;font-size:9px;white-space:nowrap}
.v120-month-chart article:hover>b{visibility:visible}
.v120-month-chart article>i{display:flex;height:100%;align-items:flex-end;justify-content:center;border-bottom:1px solid #dce7eb}
.v120-month-chart article>i span{display:block;width:74%;height:var(--height);min-height:4px;border-radius:7px 7px 2px 2px;background:#0b7890}
.v120-month-chart article.estimate>i span{background:#00a7ad}
.v120-month-chart article.projection>i span{background:#ed9a00}
.v120-month-chart article small{color:#687e8d;font-size:9px}
.v120-monthly-metric{display:grid;grid-template-columns:auto minmax(130px,auto);align-items:center;gap:8px;color:#607785;font-size:11px;font-weight:800}
.v120-monthly-metric select{min-height:36px;padding:7px 30px 7px 10px;border:1px solid #ccdae1;border-radius:10px;background:#fff;color:#17384b;font-size:12px;font-weight:800}
.v120-chart-unit{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:8px;padding:8px 10px;border-radius:9px;background:#f4f8f9;color:#526d7c;font-size:11px}
.v120-chart-unit span{font-weight:900;color:#0b7890}
.v120-quality-legend{display:flex;flex-wrap:wrap;gap:8px 15px;margin-top:12px}
.v120-quality-legend span{display:flex;align-items:center;gap:6px;color:#617887;font-size:10px;font-weight:800}
.v120-quality-legend span:before{content:"";width:8px;height:8px;border-radius:50%;background:#0b7890}
.v120-quality-legend .estimate:before{background:#00a7ad}
.v120-quality-legend .projection:before{background:#ed9a00}
.v120-data-tags .review{background:#fff1d5;color:#8b6200}
.v120-quality-volume{display:grid;gap:12px}
.v120-quality-volume article{display:grid;grid-template-columns:1fr auto;gap:5px 10px}
.v120-quality-volume span{color:#526b7b;font-size:12px;font-weight:800}
.v120-quality-volume strong{color:#17394e;font-size:12px}
.v120-quality-volume i{grid-column:1/3;display:block;height:7px;border-radius:99px;background:#edf3f5;overflow:hidden}
.v120-quality-volume i span{display:block;height:100%;background:#0b7890;border-radius:inherit}
.v120-quality-volume article.estimate i span{background:#00a7ad}
.v120-quality-volume article.projection i span{background:#ed9a00}
.v120-quality-volume small{grid-column:1/3;color:#718593;font-size:10px}
.v120-methodology{margin-top:16px;border-top:1px solid #e1eaee;padding-top:12px}
.v120-methodology summary{cursor:pointer;color:#08747c;font-size:11px;font-weight:900}
.v120-methodology p{margin:8px 0;color:#5d7382;font-size:11px;line-height:1.45}
.v120-demand-admin{padding:0;overflow:hidden}
.v120-general-demand-admin{grid-column:1/-1;width:100%;margin:18px 0}
.v120-demand-admin>summary{display:grid;gap:4px;padding:18px 20px;cursor:pointer;list-style:none}
.v120-demand-admin>summary::-webkit-details-marker{display:none}
.v120-demand-admin>summary span{color:#008b94;font-size:10px;font-weight:900;text-transform:uppercase;letter-spacing:.1em}
.v120-demand-admin>summary strong{color:#17394d;font-size:16px}
.v120-demand-admin>summary small{color:#738795;font-size:11px}
.v120-demand-current{display:flex;align-items:center;gap:10px;padding:12px 20px;border-top:1px solid #e3ebef;background:#fff;color:#6b808d;font-size:10px}.v120-demand-current>span{color:#008b94;font-weight:900;letter-spacing:.08em}.v120-demand-current>strong{color:#17394d;font-size:12px}.v120-demand-current>small{margin-left:auto;color:#6f8390}
.v120-demand-upload{display:grid;grid-template-columns:minmax(240px,.8fr) minmax(300px,1.2fr);gap:16px;padding:18px 20px;border-top:1px solid #e3ebef;background:#f8fbfc}
.v120-demand-upload>label{display:grid;gap:7px;padding:14px;border:1px dashed #9abec8;border-radius:12px;background:#fff;color:#365768;font-size:12px;font-weight:900}
.v120-demand-upload input{width:100%;color:#516c7c}
.v120-demand-upload label small,.v120-demand-upload [data-demand-upload-status]>p{color:#718593;font-size:10px;font-weight:400;line-height:1.45}
.v120-upload-valid{display:grid;gap:8px;padding:13px;border:1px solid #a9ddcf;border-radius:12px;background:#edf9f5}
.v120-upload-valid>strong{color:#126d57}
.v120-upload-valid>span{color:#4f6f64;font-size:11px}
.v120-upload-valid>div{display:flex;flex-wrap:wrap;gap:6px}
.v120-upload-valid small{padding:4px 7px;border-radius:999px;background:#fff;color:#4c6b62}
.v120-upload-valid button{justify-self:start}
.v120-upload-error{display:grid;gap:4px;margin-top:8px;padding:12px;border:1px solid #edc4c4;border-radius:10px;background:#fff3f3;color:#9a3a3a;font-size:11px}
@media(max-width:1250px){.v120-grid6{grid-template-columns:repeat(3,minmax(0,1fr))}.v120-filter-grid{grid-template-columns:repeat(3,minmax(130px,1fr))}.v120-filter-meta{grid-column:1/-1;border-left:0;border-top:1px solid #e1e9ed;padding:10px 0 0}}
@media(max-width:900px){.v120-grid6{grid-template-columns:repeat(2,minmax(0,1fr))}.v120-donut-layout,.v120-demand-upload{grid-template-columns:1fr}.v120-demand-current{align-items:flex-start;flex-direction:column}.v120-demand-current>small{margin-left:0}.v120-month-chart{overflow-x:auto}.v120-month-chart article{min-width:34px}.v120-insight-list{grid-template-columns:1fr}}
@media(max-width:700px){.v120-grid6,.v120-filter-grid{grid-template-columns:1fr}.v120-line-chart{overflow-x:auto}.v120-line-chart svg{min-width:700px}.v120-filter-meta{grid-column:auto}.v120-donut-layout{gap:12px}.v120-monthly-metric{grid-template-columns:1fr}.v120-panel-head:has(.v120-monthly-metric){align-items:flex-start;gap:12px}}

/* source: market-signals-v120rc25.css */
.fn123-canonical-today-status {
  align-items: center;
  background: #edf8f6;
  border: 1px solid #cbe9df;
  border-radius: 10px;
  color: #176a5c;
  display: flex;
  font-size: 10px;
  font-weight: 750;
  gap: 8px;
  margin: 0 0 12px;
  min-height: 36px;
  padding: 8px 12px;
}

.fn123-canonical-today-status::before {
  background: #1aa67a;
  border-radius: 50%;
  box-shadow: 0 0 0 4px #1aa67a1c;
  content: "";
  flex: 0 0 7px;
  height: 7px;
}

.fn123-canonical-today-status[data-state="provisional"] {
  background: #fff8e8;
  border-color: #f0dfb5;
  color: #7c5c16;
}

.fn123-canonical-today-status[data-state="provisional"]::before {
  background: #d99a13;
  box-shadow: 0 0 0 4px #d99a131c;
}

.today-view .trend-gauge-card[data-signal-state="provisional"] {
  border-color: #ead7a9;
}

.today-view .trend-gauge-heading > strong {
  white-space: nowrap;
}

.fn123-price-signals {
  margin: 2px 0 20px;
}

.fn123-price-signals > header {
  align-items: flex-end;
  display: flex;
  gap: 24px;
  justify-content: space-between;
  margin-bottom: 13px;
}

.fn123-price-signals > header span {
  color: #0099a2;
  display: block;
  font-size: 10px;
  font-weight: 950;
  letter-spacing: .1em;
}

.fn123-price-signals > header h2 {
  color: #06233d;
  font-size: 20px;
  letter-spacing: -.02em;
  margin: 3px 0 0;
}

.fn123-signal-freshness {
  align-items: flex-end;
  color: #60788a;
  display: grid;
  font-size: 9px;
  gap: 3px;
  justify-items: end;
  text-align: right;
}

.fn123-signal-freshness strong {
  align-items: center;
  background: #eaf8f2;
  border-radius: 99px;
  color: #167151;
  display: inline-flex;
  font-size: 8px;
  gap: 6px;
  padding: 6px 9px;
  text-transform: uppercase;
}

.fn123-signal-freshness strong::before {
  background: #21a878;
  border-radius: 50%;
  content: "";
  height: 6px;
  width: 6px;
}

.fn123-price-signals[data-state="provisional"] .fn123-signal-freshness strong {
  background: #fff5dc;
  color: #7b5b15;
}

.fn123-price-signals[data-state="provisional"] .fn123-signal-freshness strong::before {
  background: #d99a13;
}

.fn123-signal-grid {
  display: grid;
  gap: 13px;
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.fn123-signal-card {
  background: #fff;
  border: 1px solid #d9e4e9;
  border-radius: 15px;
  box-shadow: 0 10px 30px #0a29420b;
  min-width: 0;
  padding: 17px 18px 15px;
}

.fn123-signal-card > header {
  align-items: flex-start;
  display: flex;
  gap: 12px;
  justify-content: space-between;
}

.fn123-signal-card > header span {
  color: #708493;
  display: block;
  font-size: 8px;
  font-weight: 850;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.fn123-signal-card > header h3 {
  color: #07233d;
  font-size: 15px;
  margin: 4px 0 0;
}

.fn123-direction-badge {
  background: #e9f7f1;
  border-radius: 7px;
  color: #11724f;
  font-size: 8px;
  font-style: normal;
  font-weight: 900;
  padding: 6px 8px;
  white-space: nowrap;
}

.fn123-signal-card.bearish .fn123-direction-badge {
  background: #fcedeb;
  color: #a64139;
}

.fn123-signal-card.neutral .fn123-direction-badge {
  background: #fff4d9;
  color: #7f6017;
}

.fn123-signal-value {
  align-items: baseline;
  display: flex;
  gap: 8px;
  margin: 17px 0 12px;
}

.fn123-signal-value strong {
  color: #07233d;
  font-size: 29px;
  letter-spacing: -.04em;
  line-height: 1;
}

.fn123-signal-value span {
  color: #758896;
  font-size: 9px;
  font-weight: 750;
}

.fn123-signal-scale {
  background: linear-gradient(90deg, #e16a5f 0 42%, #efbd4d 42% 58%, #2eb981 58% 100%);
  border-radius: 99px;
  height: 7px;
  margin: 8px 5px 0;
  position: relative;
}

.fn123-signal-scale i {
  background: #07233d;
  border: 3px solid #fff;
  border-radius: 50%;
  box-shadow: 0 2px 7px #071e3440;
  height: 17px;
  position: absolute;
  top: 50%;
  transform: translate(-50%, -50%);
  width: 17px;
}

.fn123-scale-labels {
  color: #8a9aa6;
  display: flex;
  font-size: 7px;
  justify-content: space-between;
  margin: 7px 0 13px;
  text-transform: uppercase;
}

.fn123-signal-meta {
  border-top: 1px solid #edf1f3;
  display: grid;
  gap: 7px;
  margin: 0;
  padding-top: 11px;
}

.fn123-signal-meta div {
  align-items: baseline;
  display: grid;
  gap: 10px;
  grid-template-columns: 105px 1fr;
}

.fn123-signal-meta dt {
  color: #718592;
  font-size: 8px;
  font-weight: 800;
}

.fn123-signal-meta dd {
  color: #17364f;
  font-size: 8px;
  font-weight: 750;
  margin: 0;
  text-align: right;
}

.fn123-signal-basis {
  color: #5e7586;
  font-size: 9px;
  line-height: 1.5;
  margin: 12px 0 0;
  min-height: 40px;
}

.fn123-signal-card details {
  border-top: 1px solid #edf1f3;
  margin-top: 11px;
  padding-top: 9px;
}

.fn123-signal-card summary {
  color: #008c94;
  cursor: pointer;
  font-size: 8px;
  font-weight: 850;
}

.fn123-signal-card ul {
  color: #60788a;
  font-size: 8px;
  line-height: 1.5;
  margin: 9px 0 0;
  padding-left: 17px;
}

.fn123-price-signals > footer {
  align-items: center;
  color: #6f8290;
  display: flex;
  font-size: 8px;
  gap: 12px;
  justify-content: space-between;
  line-height: 1.5;
  padding: 10px 2px 0;
}

.fn123-price-signals.loading {
  background: #eef7f8;
  border: 1px solid #d1e7e9;
  border-radius: 14px;
  color: #587286;
  padding: 18px;
}

.fn123-price-signals.loading span {
  color: #0099a2;
  display: block;
  font-size: 10px;
  font-weight: 950;
  letter-spacing: .1em;
}

.fn123-price-signals.loading strong {
  color: #06233d;
  display: block;
  margin-top: 4px;
}

/* RC24 conserva el semáforo rojo–amarillo–verde como lectura principal. */
.fn123-price-signals .fn123-signal-grid {
  align-items: stretch;
}

.fn123-price-signals .fn124-signal-gauge {
  display: flex;
  flex-direction: column;
  min-width: 0;
  padding: 18px 19px 15px;
}

.fn123-price-signals .fn124-signal-gauge .trend-gauge-visual {
  margin: 4px auto 0;
  max-width: 255px;
  width: 100%;
}

.fn123-price-signals .fn124-signal-gauge .trend-gauge-result {
  align-items: baseline;
  display: flex;
  gap: 8px;
  justify-content: center;
  margin-top: -3px;
}

.fn123-price-signals .fn124-signal-gauge .trend-gauge-result strong {
  color: #07233d;
  font-size: 15px;
}

.fn123-price-signals .fn124-signal-gauge .trend-gauge-result small {
  color: #738795;
  font-size: 8px;
}

.fn123-price-signals .fn124-signal-gauge .gauge-basis {
  margin: 10px 0 0;
  min-height: 31px;
}

.fn123-price-signals .fn124-signal-gauge[data-signal-state="provisional"] {
  border-color: #ead7a9;
}

.fn124-gauge-details {
  border-top: 1px solid #edf1f3;
  margin-top: auto;
  padding-top: 10px;
}

.fn124-gauge-details summary {
  color: #008c94;
  cursor: pointer;
  font-size: 8px;
  font-weight: 850;
}

.fn124-gauge-details ul {
  color: #60788a;
  font-size: 8px;
  line-height: 1.5;
  margin: 9px 0 0;
  padding-left: 17px;
}

@media (max-width: 1050px) {
  .fn123-signal-grid { grid-template-columns: 1fr; }
  .fn123-signal-basis { min-height: 0; }
}

@media (max-width: 720px) {
  .fn123-price-signals > header,
  .fn123-price-signals > footer {
    align-items: flex-start;
    flex-direction: column;
  }
  .fn123-signal-freshness { justify-items: start; text-align: left; }
}

/* RC25: la cadencia semanal debe leerse en la curva, no sólo en la metodología. */
.fn125-weekly-cycle-note {
  display: grid;
  gap: 5px;
  margin: 10px 0 16px;
  padding: 14px 18px;
  border: 1px solid #a6dce1;
  border-left: 4px solid #008c98;
  border-radius: 12px;
  background: #edf9fa;
  color: #264e65;
  font-size: 14px;
  line-height: 1.5;
}

.fn125-weekly-cycle-note strong {
  color: #006f79;
  font-size: 13px;
  font-weight: 850;
  letter-spacing: 0.04em;
}
.fn125-weekly-cycle-note p { margin: 0; }
.fn125-weekly-cycle-note > span { color: #476575; font-size: 13px; }

.fn34-legend span small {
  color: #008c98;
  font-size: 11px;
  font-weight: 800;
}

.fn125-weekly-path {
  shape-rendering: geometricPrecision;
}

@media (max-width: 720px) {
  .fn125-weekly-cycle-note { padding: 12px 14px; font-size: 13px; }
}

/* source: portal-fixes-v84.css */
/* Ajustes editoriales y de densidad visual de la versión 39. */
.inventory-panel,
.dashboard-content.prices-view .inventory-panel,
.dashboard-content.logistics-view .map-route-legend,
.dashboard-content.logistics-view .origin-comparison-grid,
.dashboard-content.logistics-view .dap-calculator {
  display: none !important;
}

.dashboard-content.admin-view .config-panel > .data-note {
  display: none !important;
}

.fn39-ai-guidance {
  display: block;
  margin: 8px 0 12px;
  color: #5f7585;
  font-size: 12px;
  line-height: 1.45;
}

.fn39-colonia-method {
  margin: 8px 2px 0;
  color: #617a8c;
  font-size: 11px;
  line-height: 1.45;
  text-align: right;
}

.fn43-diesel-history-note {
  margin: 6px 2px 0;
  color: #617a8c;
  font-size: 11px;
  line-height: 1.45;
}

.fn40-weekly-line {
  stroke-linejoin: round;
}

.fn40-week-boundary {
  stroke: rgba(8, 34, 58, 0.18);
  stroke-width: 1;
  stroke-dasharray: 3 5;
}

.fn26-document-assistant select:invalid,
.fn26-document-assistant select:disabled {
  color: #6b7d89;
}

/* Selector temporal de Bolivia Market → Operaciones oficiales. */
.fn62-date-filters {
  align-items: end;
  background: #f6fafb;
  border: 1px solid #d7e5e9;
  border-radius: 12px;
  display: grid;
  gap: 12px;
  grid-template-columns: minmax(180px, 0.55fr) minmax(180px, 0.55fr) minmax(360px, 1.35fr);
  margin-top: 12px;
  padding: 12px;
}

.fn62-date-filters label span {
  color: #5d7487;
  display: block;
  font-size: 10px;
  font-weight: 800;
  letter-spacing: 0.04em;
  margin: 0 0 6px 2px;
  text-transform: uppercase;
}

.fn62-date-filters input {
  background: #fff;
  border: 1px solid #cbdce3;
  border-radius: 9px;
  box-sizing: border-box;
  color: #10253b;
  font: inherit;
  font-size: 11px;
  height: 42px;
  padding: 0 11px;
  width: 100%;
}

.fn62-date-filters input:focus {
  border-color: #0e9ca4;
  box-shadow: 0 0 0 3px rgba(14, 156, 164, 0.12);
  outline: none;
}

.fn62-date-shortcuts {
  display: grid;
  gap: 7px;
  grid-template-columns: repeat(4, minmax(74px, 1fr));
}

.fn62-date-shortcuts button {
  background: #fff;
  border: 1px solid #cbdce3;
  border-radius: 9px;
  color: #17364f;
  font: inherit;
  font-size: 10px;
  font-weight: 800;
  height: 42px;
  padding: 0 9px;
}

.fn62-date-shortcuts button:hover,
.fn62-date-shortcuts button.active {
  background: #08223a;
  border-color: #08223a;
  color: #fff;
}

@media (max-width: 960px) {
  .fn62-date-filters {
    grid-template-columns: 1fr 1fr;
  }

  .fn62-date-shortcuts {
    grid-column: 1 / -1;
  }
}

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

  .fn62-date-shortcuts {
    grid-column: auto;
    grid-template-columns: 1fr 1fr;
  }
}

/* v65 · depuración de módulos solicitada. */
#fn56-projection-accuracy,
.fn56-projection-accuracy,
.dashboard-content.logistics-view .origin-history,
.dashboard-content.prices-view .forward-panel,
.fn64-removed-panel {
  display: none !important;
}

.dashboard-content.prices-view .two-column-grid > .correlation-panel:only-child,
.dashboard-content.prices-view .forward-panel + .correlation-panel {
  grid-column: 1 / -1;
}

/* v65 · selección múltiple de cotizadores en Proyección integrada. */
.fn64-projection-controls {
  align-items: end;
  display: grid;
  grid-template-columns: minmax(420px, 1fr) minmax(150px, 190px);
}

.fn64-projection-controls fieldset {
  border: 0;
  margin: 0;
  min-width: 0;
  padding: 0;
}

.fn64-projection-controls legend {
  color: #60778a;
  font-size: 10px;
  font-weight: 800;
  margin-bottom: 5px;
  text-transform: uppercase;
}

.fn64-market-picker {
  display: grid;
  gap: 8px;
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.fn64-market-picker label {
  align-items: center;
  background: #fff;
  border: 1px solid #d5e3e8;
  border-radius: 10px;
  color: #17364f;
  cursor: pointer;
  display: flex;
  flex-direction: row;
  font-size: 11px;
  gap: 8px;
  min-height: 38px;
  padding: 0 10px;
  text-transform: none;
}

.fn64-market-picker label.active {
  border-color: var(--market-color);
  box-shadow: inset 0 3px 0 var(--market-color);
}

.fn64-market-picker input {
  accent-color: var(--market-color);
  height: 16px;
  margin: 0;
  width: 16px;
}

.fn64-market-picker i,
.fn64-projection-market > header i {
  background: var(--market-color);
  border-radius: 999px;
  display: inline-block;
  height: 8px;
  width: 8px;
}

.fn64-projection-comparison {
  display: grid;
  gap: 12px;
}

.fn64-projection-market {
  background: rgba(255, 255, 255, 0.72);
  border: 1px solid #dce8ec;
  border-top: 3px solid var(--market-color);
  border-radius: 13px;
  padding: 12px;
}

.fn64-projection-market > header {
  align-items: center;
  color: #102d45;
  display: flex;
  font-size: 12px;
  gap: 7px;
  margin-bottom: 10px;
}

.fn64-projection-market .fn26-band i,
.fn64-projection-market .fn26-band b {
  box-shadow: 0 0 0 2px var(--market-color);
}

.fn64-projection-market .fn26-band b {
  background: var(--market-color);
}

.fn64-projection-value {
  font-size: 9px;
}

@media (max-width: 840px) {
  .fn64-projection-controls {
    grid-template-columns: 1fr;
  }

  .fn64-market-picker {
    grid-template-columns: 1fr;
  }
}

/* v82: Radar abre el módulo; se retiran los paneles redundantes. */
.dashboard-content.intelligence-view .geopolitical-radar,
.dashboard-content.intelligence-view .assistant-panel,
.dashboard-content.intelligence-view .daily-market-brief {
  display: none !important;
}

/* source: user-admin-manage-v120rc22.css */
.row-actions {
  flex-wrap: wrap;
}

.row-actions .fn-delete-user {
  border-color: #efc6c2;
  background: #fff8f7;
  color: #a43f37;
}

.row-actions .fn-delete-user:hover {
  border-color: #d66b62;
  background: #fcebea;
}

.row-actions .fn-delete-user:disabled {
  cursor: wait;
  opacity: 0.55;
}

.fn91-admin-status {
  min-height: 0;
  margin: 8px 0;
  color: #087f67;
  font-size: 13px;
  font-weight: 700;
}

.fn91-admin-status.error {
  color: #b42318;
}

.row-actions .fn-edit-user {
  border-color: #a9d9dc;
  background: #f2fbfb;
  color: #087d83;
}

.row-actions .fn-edit-user:hover {
  border-color: #20aeb3;
  background: #e7f7f7;
}

.fn-user-editor-backdrop {
  position: fixed;
  z-index: 10000;
  inset: 0;
  padding: 24px;
  display: grid;
  place-items: center;
  background: rgba(2, 19, 34, 0.66);
  backdrop-filter: blur(4px);
}

.fn-user-editor {
  width: min(620px, 100%);
  max-height: calc(100vh - 48px);
  overflow: auto;
  padding: 28px;
  color: #071d34;
  background: #fff;
  border: 1px solid #d4e1e7;
  border-radius: 18px;
  box-shadow: 0 26px 90px rgba(0, 0, 0, 0.28);
}

.fn-user-editor-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 20px;
}

.fn-user-editor-head span {
  color: #008f97;
  font-size: 11px;
  font-weight: 900;
  letter-spacing: 0.12em;
}

.fn-user-editor-head h3 {
  margin: 6px 0 0;
  font-size: 24px;
}

.fn-user-editor-close {
  width: 36px;
  height: 36px;
  border: 1px solid #d4e1e7;
  border-radius: 10px;
  background: #f7fafb;
  color: #365368;
  cursor: pointer;
  font-size: 22px;
}

.fn-user-editor form {
  margin-top: 22px;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 15px;
}

.fn-user-editor label {
  display: flex;
  flex-direction: column;
  gap: 7px;
  color: #314d61;
  font-size: 12px;
  font-weight: 800;
}

.fn-user-editor input,
.fn-user-editor select {
  min-height: 44px;
  padding: 10px 12px;
  border: 1px solid #c8d9e1;
  border-radius: 9px;
  background: #f9fbfc;
  color: #071d34;
}

.fn-user-editor input:focus,
.fn-user-editor select:focus {
  border-color: #10b9bf;
  box-shadow: 0 0 0 3px rgba(16, 185, 191, 0.12);
  outline: none;
}

.fn-user-editor select:disabled {
  cursor: not-allowed;
  opacity: 0.65;
}

.fn-user-editor-note,
.fn-user-editor-error,
.fn-user-editor-actions {
  grid-column: 1 / -1;
}

.fn-user-editor-note {
  margin: 0;
  color: #718896;
  font-size: 11px;
  line-height: 1.5;
}

.fn-user-editor-error {
  min-height: 18px;
  color: #b42318;
  font-size: 12px;
  font-weight: 700;
}

.fn-user-editor-actions {
  display: flex;
  justify-content: flex-end;
  gap: 10px;
}

.fn-user-editor-actions button {
  min-height: 42px;
  padding: 10px 16px;
  border-radius: 9px;
  cursor: pointer;
  font-weight: 800;
}

.fn-user-editor-cancel {
  border: 1px solid #cbdbe2;
  background: #fff;
  color: #365368;
}

.fn-user-editor-save {
  border: 1px solid #087d83;
  background: #087d83;
  color: #fff;
}

.fn-user-editor-save:disabled {
  cursor: wait;
  opacity: 0.6;
}

@media (max-width: 620px) {
  .fn-user-editor-backdrop { padding: 12px; }
  .fn-user-editor { padding: 22px 18px; }
  .fn-user-editor form { grid-template-columns: 1fr; }
  .fn-user-editor-note,
  .fn-user-editor-error,
  .fn-user-editor-actions { grid-column: 1; }
}

/* source: account-views-v69.css */
/* source: portal-governance-v120rc35.css */
.fn120-alert-center{position:relative}.fn120-bell{width:43px;height:43px;border:1px solid #d7e3e8;border-radius:13px;background:#fff;color:#07304b;font-size:22px;display:grid;place-items:center;position:relative;cursor:pointer}.fn120-bell b{position:absolute;right:-4px;top:-5px;min-width:18px;height:18px;padding:0 3px;box-sizing:border-box;border-radius:99px;background:#d64c4c;color:#fff;font-size:10px;line-height:18px}.fn120-alert-popover{position:absolute;right:0;top:51px;width:min(390px,85vw);z-index:9999;border:1px solid #dbe7ec;border-radius:16px;background:#fff;box-shadow:0 18px 50px rgba(3,35,54,.2);overflow:hidden}.fn120-alert-popover header{display:flex;justify-content:space-between;padding:14px 16px;background:#082d46;color:#fff}.fn120-alert-popover header div{display:grid}.fn120-alert-popover header small{color:#a8c6d2}.fn120-alert-popover header button{border:0;background:transparent;color:#fff;font-size:20px}.fn120-alert-popover>div{display:grid;gap:8px;padding:12px}.fn120-alert-popover article{display:grid;gap:4px;padding:10px;border-left:4px solid #08a0ab;background:#f3f9fa;border-radius:8px}.fn120-alert-popover article.warn{border-color:#d34b4b;background:#fff6f6}.fn120-alert-popover article span{font-size:11px;color:#5f7583;line-height:1.4}.fn120-alert-popover footer{display:flex;flex-wrap:wrap;gap:5px;padding:10px 12px;border-top:1px solid #e8eff2}.fn120-alert-popover footer span{font-size:9px;border-radius:99px;padding:4px 7px;background:#eef5f7;color:#426474;font-weight:800}

/* V121 Preview 1D: cost evidence and account validity */
.fn121-fca-cell { min-width:190px; font-variant-numeric:tabular-nums; }
.fn121-fca-cell strong,.fn121-fca-cell small {display:block;}
.fn121-fca-cell strong {color:#08796f;white-space:nowrap;}
.fn121-fca-cell small {font-size:11px;line-height:1.55;max-width:250px;}
.fn121-fca-summary {grid-column:1/-1;background:#edf7f5;border:1px solid #cae4df;border-radius:12px;padding:14px 18px;display:flex;gap:12px;align-items:center;flex-wrap:wrap;}
.fn121-fca-summary strong{color:#08796f;font-size:20px;}.fn121-fca-summary small{color:#526777;}
.fn121-access-fields {display:grid;grid-template-columns:1fr 1fr;gap:12px;grid-column:1/-1;}
.fn121-access-fields label{display:grid;gap:6px;font-size:13px;font-weight:700;}.fn121-access-fields small{font-size:11px;font-weight:400;}
.fn121-user-access {display:block!important;max-width:320px;color:#17695f!important;line-height:1.5;white-space:normal;}
.fn-user-editor small{font-weight:400;line-height:1.5;}
@media(max-width:700px){.fn121-access-fields{grid-template-columns:1fr;}.fn121-fca-summary{align-items:flex-start;flex-direction:column;}}

/* V121 1N: separate account controls from contextual information. */
.topbar {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 16px 28px;
  min-height: 0;
  padding: 20px 28px 14px;
}
.topbar-title { min-width: 0; flex: 1 1 330px; }
.topbar .overline {
  display: block;
  font-size: 10px;
  line-height: 1.5;
  letter-spacing: .09em;
}
.topbar h1 { margin: 4px 0 0; font-size: 25px; line-height: 1.2; }
.topbar > .topbar-title > small { display: block; margin-top: 5px; font-size: 11px; }
.topbar-actions {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: flex-start;
  gap: 12px;
  min-width: 0;
  flex: 0 1 auto;
}
.topbar .fn120-profile-switch {
  display: grid;
  border: 1px solid #d6e2e8;
  background: #fff;
  min-width: 160px;
  flex: 0 0 auto;
  gap: 5px;
  padding: 8px 10px;
  border-radius: 10px;
}
.topbar .fn120-profile-switch > span { display: block; font-size: 9px; line-height: 1; text-transform: uppercase; letter-spacing: .08em; color: #5d7280; font-weight: 800; }
.topbar .fn120-profile-switch select { width: 100%; min-height: 21px; border: 0; background: transparent; color: #0b3148; font: inherit; font-size: 12px; font-weight: 700; cursor: pointer; }
.topbar .fn120-profile-switch select:disabled { opacity: .55; }
.topbar .fn120-profile-switch:focus-within { outline: 2px solid #008e98; outline-offset: 3px; }
.topbar .account-chip {
  min-width: 0;
  max-width: 310px;
  gap: 9px;
  padding: 6px 0 6px 14px;
  border: 0;
  border-left: 1px solid #dbe6ec;
  border-radius: 0;
  background: transparent;
  cursor: pointer;
}
.topbar .account-chip .avatar { width: 34px; height: 34px; flex: 0 0 34px; border-radius: 10px; }
.topbar .account-chip div { display: grid; min-width: 0; text-align: left; }
.topbar .account-chip strong { font-size: 12px; line-height: 1.4; overflow-wrap: anywhere; }
.topbar .account-chip small { font-size: 10px; line-height: 1.4; overflow-wrap: anywhere; }
.topbar .account-chip .chevron {
  display: inline;
  padding: 7px 8px;
  margin-left: 3px;
  border-radius: 7px;
  background: #f0f5f7;
  color: #476475;
  font-size: 11px;
  line-height: 1.3;
}
.topbar .account-chip:hover .chevron { background: #e3eef1; color: #07304b; }
.topbar .account-chip:focus-visible,
.topbar .fn120-bell:focus-visible { outline: 2px solid #008e98; outline-offset: 3px; }
.topbar .fn120-alert-center { position: static; flex: 0 0 42px; }
.topbar .fn120-bell { width: 42px; height: 44px; border-radius: 10px; }
.topbar .fn120-alert-popover { left: 0; right: auto; top: calc(100% + 8px); width: min(390px, 100%); }
.topbar-meta {
  flex-basis: 100%;
  width: 100%;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px 24px;
  min-width: 0;
  padding-top: 12px;
  border-top: 1px solid #e7eef2;
}
.topbar-meta .fn68-market-view-badge,
.topbar-meta .fn121-access-badge {
  display: block;
  min-height: 0;
  max-width: none;
  flex-basis: auto;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  color: #5d7280;
  font-size: 11px;
  font-weight: 400;
  line-height: 1.5;
  white-space: normal;
  overflow-wrap: anywhere;
}
.topbar-meta .fn68-market-view-badge { color: #087c81; font-weight: 600; }
.topbar-meta .fn121-access-badge { margin-left: auto; }
.topbar-meta .last-update {
  display: block;
  padding: 0;
  border: 0;
  text-align: left;
  color: #5d7280;
  font-size: 10px;
  font-weight: 400;
  line-height: 1.5;
  overflow-wrap: anywhere;
}
.topbar-meta .last-update br { display: none; }
.topbar-meta .last-update small { margin-left: 7px; font-size: 10px; color: #5d7280; }
.fn-ho-evidence { padding: 14px 18px; border: 1px solid #d8e7ed; border-radius: 14px; background: #f6fafc; color: #355369; font-size: 13px; line-height: 1.6; overflow-wrap: anywhere; }
.fn-ho-evidence-main { display: flex; flex-wrap: wrap; gap: 6px 24px; align-items: baseline; justify-content: space-between; }
.fn-ho-evidence-main a { color: #0a3f78; font-weight: 700; }
.fn-ho-evidence-main strong { color: #0a3f78; font-variant-numeric: tabular-nums; }
.fn-ho-evidence p { margin: 5px 0 0; }
.fn-ho-evidence details { margin-top: 6px; }
.fn-ho-evidence summary { cursor: pointer; color: #087c81; }
.fn-ho-evidence a:focus-visible, .fn-ho-evidence summary:focus-visible { outline: 2px solid #087c81; outline-offset: 3px; border-radius: 3px; }
.fn-ho-evidence .fn-ho-conversion-warning { color: #914b00; font-weight: 600; }
@media (max-width: 600px) {
  .topbar { padding: 18px 16px 14px; gap: 14px; position: static; }
  .topbar h1 { font-size: 23px; }
  .topbar-actions { display: grid; grid-template-columns: 42px minmax(0, 1fr); gap: 10px; flex-basis: 100%; }
  .topbar .fn120-profile-switch { min-width: 0; }
  .topbar .account-chip {
    grid-column: 1 / -1;
    width: 100%;
    max-width: none;
    padding: 4px 0;
    border: 0;
  }
  .topbar-actions:not(:has(.fn120-profile-switch)) .account-chip { grid-column: 2; }
  .topbar-meta { display: grid; gap: 6px; padding-top: 10px; }
  .topbar-meta .fn121-access-badge { margin-left: 0; }
  .topbar-meta .last-update br { display: block; }
  .topbar-meta .last-update small { margin-left: 0; }
}

/* Market operation detail: paginated rows and an on-demand PDF export. */
.fn-market-view-switch{display:flex;gap:6px;align-items:center;border-bottom:1px solid #dbe7eb;padding-bottom:12px}
.fn-market-view-switch button{border:1px solid #d6e5e9;background:#fff;color:#24475b;border-radius:10px;padding:11px 20px;font:inherit;font-weight:700;cursor:pointer}
.fn-market-view-switch button[aria-pressed="true"]{background:#0b7772;border-color:#0b7772;color:#fff}
.fn-market-view-switch small{margin-left:8px;font-size:.8em;opacity:.8}
.fn-market-detail-tools{display:grid;grid-template-columns:minmax(180px,1fr) minmax(170px,.5fr) auto;gap:14px;align-items:end}
.fn-market-detail-tools label{display:grid;gap:7px;color:#496375;font-size:13px;font-weight:700}
.fn-market-detail-tools input,.fn-market-detail-tools select{box-sizing:border-box;width:100%;min-height:43px;border:1px solid #cddfe6;border-radius:9px;padding:10px 12px;background:#fff;color:#13364b;font:inherit}
.fn-market-detail button{border:1px solid #cddfe6;border-radius:9px;background:#fff;color:#0b666a;padding:10px 14px;font:inherit;font-weight:700;cursor:pointer}
.fn-market-detail [data-detail-pdf]{background:#0b7772;color:#fff;border-color:#0b7772;min-height:43px}
.fn-market-detail button:disabled{opacity:.45;cursor:default}
.fn-market-detail :focus-visible,.fn-market-view-switch :focus-visible{outline:3px solid #14a7ac;outline-offset:3px}
.fn-market-detail-summary{display:flex;flex-wrap:wrap;gap:7px 24px;padding:18px 0 10px;color:#164458}
.fn-market-detail-summary small{flex-basis:100%;color:#607b8a;font-size:12px}
.fn-market-detail [data-detail-status]:empty{display:none}
.fn-market-detail [data-detail-status]{color:#456b7c;font-size:13px;overflow-wrap:anywhere}
.fn-market-detail-table{min-width:1100px}
.fn-market-detail-table th,.fn-market-detail-table td{text-align:left;vertical-align:top}
.fn-market-detail-table td{max-width:210px;overflow-wrap:anywhere}
.fn-market-detail-table td:nth-child(7),.fn-market-detail-table td:nth-child(8),.fn-market-detail-table td:nth-child(9){text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums}
.fn-market-detail-table td small{display:block;margin-top:5px;color:#68818f;font-size:11px}
.fn-market-detail-table button{white-space:nowrap;font-size:12px}
.fn-market-detail-expanded td{background:#f3f8f9}
.fn-market-detail-expanded dl{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:15px 22px;margin:4px 0}
.fn-market-detail-expanded dt{font-size:11px;color:#607986;margin-bottom:5px}
.fn-market-detail-expanded dd{font-size:13px;color:#12394c;margin:0;overflow-wrap:anywhere}
.fn-market-detail-pages{display:flex;justify-content:flex-end;align-items:center;gap:15px;margin-top:15px;font-size:13px;color:#567182}
@media(max-width:850px){.fn-market-detail-tools{grid-template-columns:1fr 1fr}.fn-market-detail-tools label:first-child{grid-column:1/-1}.fn-market-detail-tools [data-detail-pdf]{font-size:13px}.fn-market-detail-pages{justify-content:space-between;gap:8px;font-size:11px}.fn-market-detail-summary{display:grid}}
@media(max-width:480px){.fn-market-detail-tools{grid-template-columns:1fr}.fn-market-detail-tools [data-detail-pdf]{width:100%}.fn-market-view-switch button{flex:1;padding:11px 12px}}
