@import url("https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800&family=Roboto+Mono:wght@400;500;600&display=swap");
/* === BIGSYS:THEME:FONTS_AND_SIZES START === */
/*
  Archivo para editar rapido fuentes, tamanos y densidad visual.
  Regla:
  - Cambiar fuentes/tamanos aca.
  - No tocar render.
  - No tocar acciones.
  - No tocar zonas.
*/

:root {
  /* Fuente general */
  --font-base: system-ui, -apple-system, "Segoe UI", Arial, sans-serif;
  --font-mono: ui-monospace, "SFMono-Regular", Menlo, Consolas, monospace;

  /* Escala global */
  --font-scale: 1;

  /* Titulos */
  --fs-app-title: calc(24px * var(--font-scale));
  --fs-section-title: calc(14px * var(--font-scale));
  --fs-subtitle: calc(13px * var(--font-scale));

  /* Texto normal */
  --fs-body: calc(13px * var(--font-scale));
  --fs-small: calc(12px * var(--font-scale));
  --fs-mini: calc(11px * var(--font-scale));

  /* Lineas de factura */
  --fs-line-label: calc(10px * var(--font-scale));
  --fs-line-value: calc(13px * var(--font-scale));
  --fs-line-status: calc(13px * var(--font-scale));

  /* Burbujas y botones */
  --fs-bubble: calc(11px * var(--font-scale));
  --fs-button: calc(12px * var(--font-scale));
  --fs-filter: calc(12px * var(--font-scale));

  /* Pesos */
  --fw-normal: 500;
  --fw-strong: 800;
  --fw-title: 900;

  /* Alturas y compactacion */
  --line-height-normal: 1.25;
  --line-height-tight: 1.15;
  --button-padding-y: 8px;
  --button-padding-x: 11px;
  --bubble-padding-y: 6px;
  --bubble-padding-x: 9px;

  /* Anchos visuales faciles */
  --invoice-left-width: 300px;
  --invoice-right-width: 430px;
  --invoice-center-min: 660px;
}

/* Fuente base */
html,
body,
button,
input {
  font-family: var(--font-base);
  font-size: var(--fs-body);
}

/* Mono */
.mono {
  font-family: var(--font-mono);
}

/* Header */
.header-card h1 {
  font-size: var(--fs-app-title);
  font-weight: var(--fw-title);
  line-height: var(--line-height-tight);
}

.header-card p {
  font-size: var(--fs-subtitle);
}

.candidate-pill,
.loading-pill {
  font-size: var(--fs-small);
}

/* Titulos de zonas */
.zone-title {
  font-size: var(--fs-section-title);
  font-weight: var(--fw-strong);
}

/* Botones */
.btn,
.filter-btn {
  font-size: var(--fs-button);
  padding: var(--button-padding-y) var(--button-padding-x);
}

.filter-btn {
  font-size: var(--fs-filter);
}

/* Listado facturas */
.invoice-list-item strong {
  font-size: var(--fs-body);
  font-weight: var(--fw-strong);
}

.invoice-list-item span {
  font-size: var(--fs-small);
}

/* Cards generales */
.info-grid span,
.totals-grid span,
.supplier-card span {
  font-size: var(--fs-small);
}

.info-grid strong,
.totals-grid strong,
.supplier-card strong {
  font-size: var(--fs-body);
  font-weight: var(--fw-strong);
}

/* Lineas */
.line-status-pill {
  font-size: var(--fs-line-status);
  font-weight: var(--fw-normal);
}

.line-label {
  font-size: var(--fs-line-label);
}

.line-value {
  font-size: var(--fs-line-value);
  font-weight: var(--fw-strong);
  line-height: var(--line-height-normal);
}

/* Burbujas */
.bubble {
  font-size: var(--fs-bubble);
  padding: var(--bubble-padding-y) var(--bubble-padding-x);
}

/* Preview */
.preview-test-title {
  font-size: var(--fs-small);
}

.preview-test-btn {
  font-size: var(--fs-body);
}

.preview-test-btn small,
.preview-meta {
  font-size: var(--fs-small);
}

/* Layout principal editable por variables */
.app-shell {
  grid-template-columns: var(--invoice-left-width) minmax(var(--invoice-center-min), 1fr) var(--invoice-right-width);
}

/* === BIGSYS:THEME:FONTS_AND_SIZES END === */


/* === BIGSYS:THEME:FONTS_SOFT_V1 START === */
/*
  Ajuste visual:
  - Menos bold.
  - Textos mas livianos.
  - Botones menos pesados.
  - Lineas mas legibles.
*/

:root {
  --font-scale: .94;

  --fs-app-title: 20px;
  --fs-section-title: 12px;
  --fs-subtitle: 11px;

  --fs-body: 12px;
  --fs-small: 11px;
  --fs-mini: 10px;

  --fs-line-label: 9px;
  --fs-line-value: 12px;
  --fs-line-status: 12px;

  --fs-bubble: 10px;
  --fs-button: 11px;
  --fs-filter: 11px;

  --fw-normal: 400;
  --fw-strong: 600;
  --fw-title: 700;

  --line-height-normal: 1.28;
  --line-height-tight: 1.18;
}

html,
body,
button,
input {
  font-weight: 400;
  letter-spacing: 0;
}

/* Header */
.header-card h1 {
  font-size: var(--fs-app-title) !important;
  font-weight: 700 !important;
  letter-spacing: -0.015em;
}

.header-card p {
  font-size: var(--fs-subtitle) !important;
  font-weight: 400;
}

/* Titulos de secciones */
.zone-title {
  font-size: var(--fs-section-title) !important;
  font-weight: 600 !important;
  letter-spacing: .08em;
  opacity: .9;
}

/* Botones */
.btn,
.filter-btn,
.doc-tab,
.doc-zoom-btn {
  font-size: var(--fs-button) !important;
  font-weight: 500 !important;
}

.btn-upload-server {
  font-weight: 600 !important;
}

/* Cards generales */
.info-grid strong,
.totals-grid strong,
.supplier-card strong,
.invoice-list-item strong,
.doc-invoice-item strong {
  font-weight: 600 !important;
}

.info-grid span,
.totals-grid span,
.supplier-card span,
.invoice-list-item span,
.doc-invoice-item span {
  font-weight: 400 !important;
}

/* Lineas */
.line-status-pill {
  font-weight: 400 !important;
}

.line-label {
  font-size: var(--fs-line-label) !important;
  font-weight: 500 !important;
  letter-spacing: .05em;
  opacity: .75;
}

.line-value {
  font-size: var(--fs-line-value) !important;
  font-weight: 600 !important;
}

/* Burbujas */
.bubble {
  font-size: var(--fs-bubble) !important;
  font-weight: 400 !important;
}

.bubble strong {
  font-weight: 500 !important;
}

.bubble em {
  font-weight: 500 !important;
}

/* Panel documento */
.doc-console-title strong {
  font-weight: 600 !important;
}

.doc-ocr-text {
  font-size: 10.5px !important;
  font-weight: 400 !important;
}

/* Debug */
.debug-panel,
.debug-panel p,
.debug-panel summary {
  font-weight: 400 !important;
}
/* === BIGSYS:THEME:FONTS_SOFT_V1 END === */


/* === BIGSYS:THEME:FONTS_SIZE_UP_V2 START === */
/*
  Ajuste:
  - Fuente mas grande.
  - Mantiene peso liviano.
  - Mejora lectura de lineas y botones.
*/

:root {
  --font-scale: 1;

  --fs-app-title: 22px;
  --fs-section-title: 13px;
  --fs-subtitle: 12px;

  --fs-body: 13px;
  --fs-small: 12px;
  --fs-mini: 11px;

  --fs-line-label: 10px;
  --fs-line-value: 13.5px;
  --fs-line-status: 13px;

  --fs-bubble: 11.5px;
  --fs-button: 12px;
  --fs-filter: 12px;

  --fw-normal: 400;
  --fw-strong: 600;
  --fw-title: 700;

  --line-height-normal: 1.32;
  --line-height-tight: 1.18;
}

html,
body,
button,
input {
  font-size: var(--fs-body) !important;
  font-weight: 400 !important;
}

.header-card h1 {
  font-size: var(--fs-app-title) !important;
  font-weight: 700 !important;
}

.header-card p {
  font-size: var(--fs-subtitle) !important;
}

.zone-title {
  font-size: var(--fs-section-title) !important;
  font-weight: 600 !important;
}

.btn,
.filter-btn,
.doc-tab,
.doc-zoom-btn {
  font-size: var(--fs-button) !important;
  font-weight: 500 !important;
}

.btn-upload-server {
  font-size: 12px !important;
  font-weight: 600 !important;
}

.info-grid span,
.totals-grid span,
.supplier-card span,
.invoice-list-item span,
.doc-invoice-item span {
  font-size: var(--fs-small) !important;
}

.info-grid strong,
.totals-grid strong,
.supplier-card strong,
.invoice-list-item strong,
.doc-invoice-item strong {
  font-size: var(--fs-body) !important;
  font-weight: 600 !important;
}

.line-status-pill {
  font-size: var(--fs-line-status) !important;
  font-weight: 400 !important;
}

.line-label {
  font-size: var(--fs-line-label) !important;
  font-weight: 500 !important;
}

.line-value {
  font-size: var(--fs-line-value) !important;
  font-weight: 600 !important;
  line-height: var(--line-height-normal) !important;
}

.bubble {
  font-size: var(--fs-bubble) !important;
  font-weight: 400 !important;
}

.bubble strong,
.bubble em {
  font-weight: 500 !important;
}

.doc-ocr-text {
  font-size: 11.5px !important;
  font-weight: 400 !important;
  line-height: 1.38 !important;
}
/* === BIGSYS:THEME:FONTS_SIZE_UP_V2 END === */


/* === BIGSYS:THEME:FONTS_SIZE_UP_V3 START === */
/*
  Ajuste:
  - Un poco mas grande que V2.
  - Mantiene pesos livianos.
  - Mejora lectura sin volver a fuente pesada.
*/

:root {
  --font-scale: 1.04;

  --fs-app-title: 23px;
  --fs-section-title: 13.5px;
  --fs-subtitle: 12.5px;

  --fs-body: 13.8px;
  --fs-small: 12.5px;
  --fs-mini: 11.5px;

  --fs-line-label: 10.5px;
  --fs-line-value: 14.2px;
  --fs-line-status: 13.5px;

  --fs-bubble: 12px;
  --fs-button: 12.5px;
  --fs-filter: 12.5px;

  --fw-normal: 400;
  --fw-strong: 600;
  --fw-title: 700;

  --line-height-normal: 1.34;
  --line-height-tight: 1.2;
}

html,
body,
button,
input {
  font-size: var(--fs-body) !important;
  font-weight: 400 !important;
}

.header-card h1 {
  font-size: var(--fs-app-title) !important;
  font-weight: 700 !important;
}

.header-card p {
  font-size: var(--fs-subtitle) !important;
}

.zone-title {
  font-size: var(--fs-section-title) !important;
  font-weight: 600 !important;
}

.btn,
.filter-btn,
.doc-tab,
.doc-zoom-btn {
  font-size: var(--fs-button) !important;
  font-weight: 500 !important;
}

.btn-upload-server {
  font-size: 12.5px !important;
  font-weight: 600 !important;
}

.info-grid span,
.totals-grid span,
.supplier-card span,
.invoice-list-item span,
.doc-invoice-item span {
  font-size: var(--fs-small) !important;
}

.info-grid strong,
.totals-grid strong,
.supplier-card strong,
.invoice-list-item strong,
.doc-invoice-item strong {
  font-size: var(--fs-body) !important;
  font-weight: 600 !important;
}

.line-status-pill {
  font-size: var(--fs-line-status) !important;
  font-weight: 400 !important;
}

.line-label {
  font-size: var(--fs-line-label) !important;
  font-weight: 500 !important;
}

.line-value {
  font-size: var(--fs-line-value) !important;
  font-weight: 600 !important;
  line-height: var(--line-height-normal) !important;
}

.bubble {
  font-size: var(--fs-bubble) !important;
  font-weight: 400 !important;
}

.bubble strong,
.bubble em {
  font-weight: 500 !important;
}

.doc-ocr-text {
  font-size: 12px !important;
  font-weight: 400 !important;
  line-height: 1.4 !important;
}
/* === BIGSYS:THEME:FONTS_SIZE_UP_V3 END === */


/* === BIGSYS:THEME:DATA_WEB_FONT_V1 START === */
/*
  Fuente clara para interfaz y datos:
  - Inter para textos.
  - Roboto Mono para numeros/codigos/importes.
  - Numeros tabulares para que columnas y precios se lean mejor.
*/

:root {
  --font-base: "Inter", system-ui, -apple-system, "Segoe UI", Arial, sans-serif;
  --font-data: "Roboto Mono", "Cascadia Mono", "Consolas", "SFMono-Regular", monospace;
  --font-mono: var(--font-data);

  --font-scale: 1.05;

  --fs-app-title: 23px;
  --fs-section-title: 13.5px;
  --fs-subtitle: 12.5px;

  --fs-body: 13.8px;
  --fs-small: 12.5px;
  --fs-mini: 11.5px;

  --fs-line-label: 10.5px;
  --fs-line-value: 14px;
  --fs-line-status: 13.5px;

  --fs-bubble: 12px;
  --fs-button: 12.5px;
  --fs-filter: 12.5px;

  --fw-normal: 400;
  --fw-strong: 600;
  --fw-title: 700;

  --letter-body: .01em;
  --letter-data: .015em;
  --letter-label: .055em;

  --line-height-normal: 1.38;
  --line-height-tight: 1.22;
}

html,
body,
button,
input {
  font-family: var(--font-base) !important;
  font-size: var(--fs-body) !important;
  font-weight: 400 !important;
  letter-spacing: var(--letter-body);
  text-rendering: optimizeLegibility;
  -webkit-font-smoothing: antialiased;
  font-variant-numeric: tabular-nums;
}

.header-card h1 {
  font-family: var(--font-base) !important;
  font-size: var(--fs-app-title) !important;
  font-weight: 700 !important;
  letter-spacing: .005em;
  line-height: 1.15;
}

.header-card p {
  font-size: var(--fs-subtitle) !important;
  font-weight: 400 !important;
  letter-spacing: .015em;
}

.zone-title {
  font-size: var(--fs-section-title) !important;
  font-weight: 600 !important;
  letter-spacing: .09em !important;
}

/* Textos comunes */
.info-grid span,
.totals-grid span,
.supplier-card span,
.invoice-list-item span,
.doc-invoice-item span,
.line-label {
  letter-spacing: var(--letter-label) !important;
}

.info-grid strong,
.totals-grid strong,
.supplier-card strong,
.invoice-list-item strong,
.doc-invoice-item strong {
  font-weight: 600 !important;
  letter-spacing: .01em;
}

/* Datos numericos y codigos */
.mono,
.line-field .line-value,
.totals-grid strong,
.info-grid strong,
.supplier-card strong,
.doc-zoom-value,
.bubble em {
  font-family: var(--font-data) !important;
  font-variant-numeric: tabular-nums lining-nums;
  letter-spacing: var(--letter-data) !important;
}

/* Descripciones: fuente normal, no mono */
.line-description .line-value,
.invoice-list-item strong,
.doc-invoice-item strong,
.supplier-card div:first-child strong {
  font-family: var(--font-base) !important;
  letter-spacing: .005em !important;
}

/* Lineas */
.line-status-pill {
  font-size: var(--fs-line-status) !important;
  font-weight: 400 !important;
  line-height: var(--line-height-normal) !important;
}

.line-label {
  font-size: var(--fs-line-label) !important;
  font-weight: 500 !important;
  opacity: .78;
}

.line-value {
  font-size: var(--fs-line-value) !important;
  font-weight: 600 !important;
  line-height: var(--line-height-normal) !important;
}

/* Botones */
.btn,
.filter-btn,
.doc-tab,
.doc-zoom-btn {
  font-size: var(--fs-button) !important;
  font-weight: 500 !important;
  letter-spacing: .01em;
}

/* Burbujas */
.bubble {
  font-size: var(--fs-bubble) !important;
  font-weight: 400 !important;
  letter-spacing: .005em;
}

.bubble strong {
  font-family: var(--font-base) !important;
  font-weight: 500 !important;
  letter-spacing: .015em;
}

.bubble em {
  font-weight: 500 !important;
}

/* OCR */
.doc-ocr-text {
  font-family: var(--font-data) !important;
  font-size: 12px !important;
  font-weight: 400 !important;
  line-height: 1.48 !important;
  letter-spacing: .01em !important;
}

/* Mejor lectura de cards chicas */
.line-status-pill,
.line-description,
.line-field,
.info-grid div,
.totals-grid div,
.supplier-card div {
  line-height: var(--line-height-normal);
}

/* === BIGSYS:THEME:DATA_WEB_FONT_V1 END === */


/* === BIGSYS:THEME:FONT_WEIGHT_SOFT_DATA_V2 START === */
/*
  Baja peso visual de:
  - numeros
  - codigos
  - precios
  - totales
  - descripcion de productos
  Mantiene buena lectura sin verse pesado.
*/

:root {
  --fw-normal: 400;
  --fw-strong: 500;
  --fw-title: 650;
}

/* Descripciones de productos */
.line-description .line-value {
  font-weight: 500 !important;
  letter-spacing: .002em !important;
}

/* Numeros/codigos dentro de lineas */
.line-field .line-value,
.mono {
  font-weight: 400 !important;
  letter-spacing: .012em !important;
}

/* Codigos, cantidades, precios y totales */
.line-field .line-value.mono,
.line-field .line-value {
  font-family: var(--font-data) !important;
  font-weight: 400 !important;
}

/* Datos de cabecera, proveedor y totales */
.info-grid strong,
.totals-grid strong,
.supplier-card strong {
  font-weight: 500 !important;
}

/* Totales/precios con menos peso */
.totals-grid strong,
.line-field .line-value,
.bubble em {
  font-weight: 400 !important;
}

/* Lista de facturas */
.invoice-list-item strong,
.doc-invoice-item strong {
  font-weight: 500 !important;
}

/* Burbujas */
.bubble strong {
  font-weight: 400 !important;
  opacity: .9;
}

.bubble em {
  font-weight: 400 !important;
}

/* Estado de linea */
.line-status-pill {
  font-weight: 400 !important;
}

/* Botones mantienen un poco de presencia */
.btn,
.filter-btn,
.doc-tab,
.doc-zoom-btn {
  font-weight: 500 !important;
}

/* Titulo principal apenas menos pesado */
.header-card h1 {
  font-weight: 650 !important;
}

/* === BIGSYS:THEME:FONT_WEIGHT_SOFT_DATA_V2 END === */
