/* base-paginas.css (pantallas: asesores, comparativo, presupuesto, cuentas anuales) — estilos de index.html extraídos a un fichero sellado (ARQ-07, 31/10/2026). Mantén el sitio del <link>: el orden
   respecto a las demás hojas es parte de la cascada. */
    /* ════════ RE-PIEL ATLAS — Módulo Informe (piloto) ════════
       Solo CSS + clases. Tokens canónicos en /css/atlas-tokens.css (:root).
       Aquí se re-afirman, acotados a esta pantalla, los pocos tokens que la
       capa legacy :root sobreescribe (legacy carga después), para que el
       piloto use la paleta Atlas pura sin afectar al resto de la app. */
    #page-seguimiento_unificado, #sg-modal {
      --bg:#f6f8f9; --surface:#ffffff; --border:#e7eceb; --text:#16201d;
      --radius:14px; --radius-lg:20px; --warn:#c5870f;
    }

    /* ── Filtros (selects Atlas) ── */
    #page-seguimiento_unificado .sg-filters { display:flex; flex-wrap:wrap; gap:var(--s-3); align-items:flex-end; padding:var(--s-3) 0; }
    #page-seguimiento_unificado .sg-filters select {
      appearance:none; border:1px solid var(--border);
      background:var(--surface) var(--select-arrow) no-repeat right 9px center;
      color:var(--text); font-family:var(--font-sans); font-size:13px; font-weight:500;
      padding:7px 28px 7px 12px; border-radius:var(--radius-sm); min-width:130px; cursor:pointer;
    }
    #page-seguimiento_unificado .sg-filters select:focus { outline:2px solid var(--accent-weak); border-color:var(--accent); }
    #page-seguimiento_unificado .sg-filters select:disabled { opacity:.5; cursor:not-allowed; }

    /* ── Segmento período (Mensual / YTD) ── */
    #page-seguimiento_unificado .seg { display:inline-flex; gap:2px; padding:3px; background:var(--emp-track); border:var(--emp-track-border); border-radius:var(--emp-radius); }
    #page-seguimiento_unificado .seg__btn { border:0; background:transparent; color:var(--text-2); font-family:var(--font-sans); font-size:12px; font-weight:600; padding:6px 14px; border-radius:var(--emp-btn-radius); transition:all .15s; cursor:pointer; }
    #page-seguimiento_unificado .seg__btn:hover { color:var(--text); }
    #page-seguimiento_unificado .seg__btn.is-active { background:var(--emp-active-bg); color:var(--emp-active-fg); box-shadow:var(--emp-active-shadow); }

    /* ── Segmento de empresa (botones unidos con subtítulo) ── */
    #page-seguimiento_unificado .empresa { display:inline-flex; gap:var(--emp-gap); padding:var(--emp-pad); background:var(--emp-track); border:var(--emp-track-border); border-radius:var(--emp-radius); }
    #page-seguimiento_unificado .empresa__btn { border:0; background:transparent; color:var(--text-2); font-family:var(--font-sans); font-size:12px; font-weight:600; padding:7px 13px; border-radius:var(--emp-btn-radius); transition:all .15s; line-height:1.15; text-align:left; cursor:pointer; }
    #page-seguimiento_unificado .empresa__btn small { display:block; font-size:9px; font-weight:500; color:var(--text-3); text-transform:uppercase; letter-spacing:.04em; margin-top:1px; }
    #page-seguimiento_unificado .empresa__btn:hover { color:var(--text); }
    #page-seguimiento_unificado .empresa__btn.is-active { background:var(--emp-active-bg); color:var(--emp-active-fg); box-shadow:var(--emp-active-shadow); }
    #page-seguimiento_unificado .empresa__btn.is-active small { color:var(--emp-active-sub); }
    /* Multi-selección: tarjeta no seleccionada = atenuada (oscurecida); seleccionada = brillo (is-active) */
    #page-seguimiento_unificado .empresa__btn.is-dim { opacity:.4; }
    #page-seguimiento_unificado .empresa__btn.is-dim:hover { opacity:.72; }

    /* Selector de empresa (lenguaje Atlas) reutilizado en los módulos de taller */
    #page-taller_mecanico .empresa, #page-taller_carroceria .empresa, #page-asesores_taller .empresa { display:inline-flex; gap:var(--emp-gap); padding:var(--emp-pad); background:var(--emp-track); border:var(--emp-track-border); border-radius:var(--emp-radius); }
    #page-taller_mecanico .empresa__btn, #page-taller_carroceria .empresa__btn, #page-asesores_taller .empresa__btn { border:0; background:transparent; color:var(--text-2); font-family:var(--font-sans); font-size:12px; font-weight:600; padding:7px 13px; border-radius:var(--emp-btn-radius); transition:all .15s; line-height:1.15; text-align:left; cursor:pointer; }
    #page-taller_mecanico .empresa__btn small, #page-taller_carroceria .empresa__btn small, #page-asesores_taller .empresa__btn small { display:block; font-size:9px; font-weight:500; color:var(--text-3); text-transform:uppercase; letter-spacing:.04em; margin-top:1px; }
    #page-taller_mecanico .empresa__btn:hover, #page-taller_carroceria .empresa__btn:hover, #page-asesores_taller .empresa__btn:hover { color:var(--text); }
    #page-taller_mecanico .empresa__btn.is-active, #page-taller_carroceria .empresa__btn.is-active, #page-asesores_taller .empresa__btn.is-active { background:var(--emp-active-bg); color:var(--emp-active-fg); box-shadow:var(--emp-active-shadow); }
    #page-taller_mecanico .empresa__btn.is-active small, #page-taller_carroceria .empresa__btn.is-active small, #page-asesores_taller .empresa__btn.is-active small { color:var(--emp-active-sub); }
    #page-taller_mecanico .empresa__btn.is-dim, #page-taller_carroceria .empresa__btn.is-dim, #page-asesores_taller .empresa__btn.is-dim { opacity:.4; }
    #page-taller_mecanico .empresa__btn.is-dim:hover, #page-taller_carroceria .empresa__btn.is-dim:hover, #page-asesores_taller .empresa__btn.is-dim:hover { opacity:.72; }

    /* ── Campo con etiqueta (año/mes/marca/sede en lenguaje Atlas) ── */
    #page-seguimiento_unificado .field { display:flex; flex-direction:column; gap:3px; }
    #page-seguimiento_unificado .field__lbl { font-size:9.5px; font-weight:600; letter-spacing:.08em; text-transform:uppercase; color:var(--text-3); padding-left:2px; }

    /* ── Tabs de departamento (cápsula pill Atlas) ── */
    #page-seguimiento_unificado .depttabs { display:flex; gap:var(--tab-gap); align-items:stretch; flex-wrap:wrap; margin:4px 0 var(--s-4); }
    #page-seguimiento_unificado .depttab { border:var(--tab-border); background:var(--tab-bg); color:var(--text-2); font-family:var(--font-sans); font-size:12.5px; font-weight:600; letter-spacing:.02em; padding:var(--tab-py) var(--tab-px); border-radius:var(--tab-radius); transition:all .18s; white-space:nowrap; cursor:pointer; text-align:center; }
    #page-seguimiento_unificado .depttab small { display:block; font-size:9.5px; font-weight:500; color:var(--text-3); text-transform:none; letter-spacing:0; margin-top:1px; }
    #page-seguimiento_unificado .depttab:hover { color:var(--text); background:var(--tab-bg-hover); }
    #page-seguimiento_unificado .depttab.is-active { color:var(--tab-active-fg); background:var(--tab-active-bg); border-color:var(--tab-active-border); box-shadow:0 4px 12px color-mix(in srgb, var(--accent) 32%, transparent); }
    #page-seguimiento_unificado .depttab.is-active small { color:var(--tab-active-sub); }

    /* ── KPI cards Atlas ── */
    #page-seguimiento_unificado .sg-kpi-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(180px,1fr)); gap:var(--kpi-gap); margin:var(--s-4) 0 var(--s-5); }
    #page-seguimiento_unificado .kpi { position:relative; background:var(--surface); border:var(--card-border); border-radius:var(--radius); padding:var(--kpi-pad); box-shadow:var(--shadow-card); display:flex; flex-direction:column; gap:var(--kpi-inner-gap); transition:box-shadow .18s, transform .18s, border-color .18s; }
    #page-seguimiento_unificado .kpi:hover { box-shadow:0 6px 22px rgba(15,40,30,.10), 0 1px 3px rgba(15,40,30,.06); transform:translateY(-2px); border-color:color-mix(in srgb, var(--accent) 28%, var(--border)); }
    #page-seguimiento_unificado .kpi.kpi--tip-open { z-index:70; }
    #page-seguimiento_unificado .kpi__top { display:flex; align-items:center; gap:8px; }
    #page-seguimiento_unificado .kpi__chip { width:24px; height:24px; border-radius:var(--radius-sm); display:grid; place-items:center; font-size:12px; flex-shrink:0; background:var(--accent-weak); color:var(--accent-strong); transition:background .18s, color .18s; }
    #page-seguimiento_unificado .kpi:hover .kpi__chip { background:var(--accent); color:#fff; }
    #page-seguimiento_unificado .kpi__label { font-size:10.5px; font-weight:600; letter-spacing:.07em; text-transform:uppercase; color:var(--text-3); }
    #page-seguimiento_unificado .kpi__info { margin-left:auto; flex:none; width:16px; height:16px; display:inline-flex; align-items:center; justify-content:center; border-radius:50%; background:var(--accent-weak); color:var(--accent-strong); border:1px solid color-mix(in srgb, var(--accent) 35%, var(--border)); font-size:11px; font-weight:700; font-style:normal; line-height:1; cursor:help; transition:background .18s, color .18s; }
    #page-seguimiento_unificado .kpi__info:hover,
    #page-seguimiento_unificado .kpi__info[aria-expanded="true"] { background:var(--accent); color:#fff; }
    #page-seguimiento_unificado .kpi__tip { position:absolute; top:36px; right:10px; z-index:60; width:300px; max-width:calc(100vw - 40px); text-align:left; background:var(--surface); border:1px solid var(--border); border-radius:var(--radius); box-shadow:var(--shadow-pop); padding:12px 14px; cursor:default; text-transform:none; letter-spacing:normal; }
    #page-seguimiento_unificado .kpi__tip[hidden] { display:none; }
    #page-seguimiento_unificado .kpi__tip-title { font-size:12px; font-weight:700; color:var(--text); margin-bottom:6px; }
    #page-seguimiento_unificado .kpi__tip-eq { font-size:11.5px; font-weight:600; color:var(--text); background:var(--surface-2); border-radius:var(--radius-sm); padding:6px 8px; margin-bottom:8px; }
    #page-seguimiento_unificado .kpi__tip-sub { font-size:11px; font-weight:600; color:var(--text-2); margin-top:6px; }
    #page-seguimiento_unificado .kpi__tip-list { margin:4px 0 0; padding-left:16px; }
    #page-seguimiento_unificado .kpi__tip-list li { font-size:11px; color:var(--text-2); line-height:1.5; }
    #page-seguimiento_unificado .kpi__val { font-family:var(--font-num); font-variant-numeric:tabular-nums; font-feature-settings:"tnum" 1,"zero" 1; font-size:var(--kpi-val-fs); font-weight:var(--kpi-val-fw); letter-spacing:-.01em; color:var(--text); line-height:1; white-space:nowrap; }
    #page-seguimiento_unificado .kpi__delta { display:inline-flex; align-items:center; gap:4px; font-family:var(--font-num); font-size:12px; font-weight:600; padding:2px 7px; border-radius:var(--radius-pill); width:fit-content; }
    #page-seguimiento_unificado .kpi__delta.is-pos { color:var(--pos); background:var(--pos-bg); }
    #page-seguimiento_unificado .kpi__delta.is-neg { color:var(--neg); background:var(--neg-bg); }
    #page-seguimiento_unificado .kpi__delta.is-neu { color:var(--text-2); background:var(--hover); }
    #page-seguimiento_unificado .sg-kpi-sub { font-size:11px; color:var(--text-3); margin-top:2px; }

    /* ── Tabla en cascada (.ledger / .lrow--*) ── */
    #page-seguimiento_unificado .ledger { width:100%; border-collapse:collapse; font-size:var(--fs-table); font-family:var(--font-sans); }
    #page-seguimiento_unificado .ledger thead th {
      position:sticky; top:0; z-index:2; background:var(--thead-bg); color:var(--text-3);
      font-size:10.5px; font-weight:600; letter-spacing:.06em; text-transform:uppercase;
      text-align:right; padding:var(--cell-py) var(--cell-px); white-space:nowrap;
      border-bottom:1px solid var(--border-strong); box-shadow:0 1px 0 var(--border-strong);
    }
    #page-seguimiento_unificado .ledger thead th.col-concept { text-align:left; }
    #page-seguimiento_unificado .ledger tbody td { padding:var(--cell-py) var(--cell-px); text-align:right; white-space:nowrap; border-bottom:1px solid var(--row-border); color:var(--text); }
    #page-seguimiento_unificado .ledger tbody td:first-child { text-align:left; }
    #page-seguimiento_unificado .ledger td.sg-num { font-family:var(--font-num); font-variant-numeric:tabular-nums; font-feature-settings:"tnum" 1,"zero" 1; font-size:var(--fs-num); }
    #page-seguimiento_unificado .ledger td.sg-pct { color:var(--text-3); }
    #page-seguimiento_unificado .ledger td.sg-presup { color:var(--text-2); }

    /* ── Grupos de columnas: ACTUAL (Real·%Fact) | AA (Real AA·%Fact AA·Desv.%AA) |
       PRESUPUESTO (Presup.·%Fact P·Desv.·Desv.%) ──
       Con 11 columnas el espacio es justo: padding horizontal compacto en toda la
       tabla. El cuerpo es UNIFORME (sin fondos ni colores de columna: cada fila
       conserva su fondo propio normal/total/strong en las 11 columnas; las celdas
       AA usan los mismos tokens que sus equivalentes). Los grupos se delimitan con
       filete vertical fino en las 2 fronteras internas (th+td) y su identidad se
       marca SOLO en cabecera con una línea de acento de 2px sobre los th. */
    #page-seguimiento_unificado .ledger thead th,
    #page-seguimiento_unificado .ledger tbody td { padding-left:8px; padding-right:8px; }
    #page-seguimiento_unificado .ledger thead th { font-variant-numeric:tabular-nums; }
    #page-seguimiento_unificado .ledger th.sg-aa--first,
    #page-seguimiento_unificado .ledger td.sg-aa--first { border-left:1px solid var(--border); }
    #page-seguimiento_unificado .ledger th.sg-aa--last,
    #page-seguimiento_unificado .ledger td.sg-aa--last { border-right:1px solid var(--border); }
    #page-seguimiento_unificado .ledger th.sg-g-act { border-top:2px solid var(--border-strong); }
    #page-seguimiento_unificado .ledger th.sg-g-aa  { border-top:2px solid var(--accent-strong); }
    #page-seguimiento_unificado .ledger th.sg-g-pre { border-top:2px solid var(--warn); }

    /* tipos de fila */
    #page-seguimiento_unificado .lrow { transition:background .12s; }
    #page-seguimiento_unificado .lrow:hover { background:var(--row-hover); }
    #page-seguimiento_unificado .lrow--group > td { font-weight:700; color:var(--text); background:var(--surface-2); border-top:1px solid var(--border-strong); border-bottom:1px solid var(--border); }
    #page-seguimiento_unificado .lrow--child > td { color:var(--text-2); }
    #page-seguimiento_unificado .lrow--fact > td { font-weight:600; }
    #page-seguimiento_unificado .lrow--total > td { font-weight:700; background:var(--row-total-bg); border-top:var(--row-total-border); border-bottom:var(--row-total-border); color:var(--text); }
    #page-seguimiento_unificado .lrow--strong > td { background:var(--row-strong-bg); color:var(--row-strong-fg); }
    /* Memo de balance (040111, fuera del P&G): bloque propio bajo el P&G del tab. Cabecera en versalitas con
       la fecha de corte a la derecha, línea con fondo suave y filete izquierdo de acento; las celdas que no
       aplican (%Fact, presupuesto) van vacías. Las cuentas cuelgan como hijas, sin fondo. */
    #page-seguimiento_unificado .lrow--memo-head > td { padding-top:16px; padding-bottom:6px; border-top:2px dashed var(--border-strong); border-bottom:0; background:transparent; }
    #page-seguimiento_unificado .sg-memo-head { display:flex; justify-content:space-between; align-items:baseline; gap:12px; font-size:10.5px; font-weight:700; letter-spacing:.08em; text-transform:uppercase; color:var(--text-3); }
    #page-seguimiento_unificado .sg-memo-head__corte { font-weight:500; letter-spacing:.02em; text-transform:none; font-size:11.5px; }
    #page-seguimiento_unificado .lrow--memo > td { background:var(--surface-2); color:var(--text); border-bottom:1px solid var(--border); }
    #page-seguimiento_unificado .lrow--memo > td:first-child { border-left:3px solid var(--accent-strong); }
    #page-seguimiento_unificado .lrow--memo > td.sg-num { font-weight:600; }
    #page-seguimiento_unificado .lrow--memo-total > td { font-weight:700; border-top:var(--row-total-border); }
    #page-seguimiento_unificado .lrow--memo-nota > td { color:var(--text-2); font-size:12px; white-space:normal; padding:6px 8px 14px; border-bottom:0; }
    #page-seguimiento_unificado .lrow--memo.lrow--memo-cta > td { background:transparent; color:var(--text-2); border-bottom:1px solid var(--row-border); }
    #page-seguimiento_unificado .lrow--memo.lrow--memo-cta > td.sg-num { font-weight:400; }
    #page-seguimiento_unificado .sg-memo-cta { font-family:var(--font-num); font-variant-numeric:tabular-nums; font-size:10.5px; color:var(--text-3); margin-left:8px; letter-spacing:.02em; }
    #page-seguimiento_unificado .lrow--strong > td:first-child { border-top-left-radius:10px; border-bottom-left-radius:10px; }
    #page-seguimiento_unificado .lrow--strong > td:last-child { border-top-right-radius:10px; border-bottom-right-radius:10px; }

    /* twistie / lupa / indents */
    #page-seguimiento_unificado .sg-indent-1 { padding-left:var(--cell-px) !important; }
    #page-seguimiento_unificado .sg-indent-2 { padding-left:calc(var(--cell-px) + var(--indent)) !important; color:var(--text-2); }
    #page-seguimiento_unificado .sg-expand { cursor:pointer; font-size:10px; color:var(--text-3); user-select:none; transition:color .15s; }
    #page-seguimiento_unificado .lrow:hover .sg-expand { color:var(--accent); }
    #page-seguimiento_unificado .sg-no-expand { display:inline-block; width:14px; }
    /* concepto: punto de categoría + etiqueta (maqueta Atlas) */
    #page-seguimiento_unificado .concept { display:inline-flex; align-items:center; gap:8px; }
    #page-seguimiento_unificado .concept__dot { width:7px; height:7px; border-radius:2px; flex-shrink:0; background:var(--cat); }
    #page-seguimiento_unificado .concept__dot--pos { background:var(--pos); }
    #page-seguimiento_unificado .concept__dot--neg { background:var(--neg); }
    #page-seguimiento_unificado .concept__dot--neu { background:var(--cat); }
    #page-seguimiento_unificado .concept__label { font-weight:inherit; }
    #page-seguimiento_unificado .btn-lupa { background:none; border:0; cursor:pointer; font-size:13px; padding:3px 5px; border-radius:var(--radius-sm); color:var(--text-3); transition:all .14s; }
    #page-seguimiento_unificado .btn-lupa:hover { background:var(--accent-weak); color:var(--accent-strong); }
    #page-seguimiento_unificado .sg-version-info { font-size:11px; color:var(--text-3); margin-top:var(--s-3); text-align:right; }
    #page-seguimiento_unificado .sg-badge-fecha { align-self:center; font-size:11px; color:var(--text-3); background:var(--accent-weak); border-radius:var(--radius-sm); padding:3px 9px; white-space:nowrap; }

    /* ── Modal drill-down (apuntes) ── */
    #sg-modal { display:none; position:fixed; inset:0; background:rgba(10,12,16,.5); z-index:1000; align-items:center; justify-content:center; }
    #sg-modal .sg-modal-box { background:var(--surface); border-radius:var(--radius-lg); max-width:95vw; width:1280px; max-height:85vh; display:flex; flex-direction:column; overflow:hidden; box-shadow:var(--shadow-modal); font-family:var(--font-sans); }
    #sg-modal .sg-modal-header { display:flex; justify-content:space-between; align-items:center; padding:16px 20px; border-bottom:1px solid var(--border); }
    #sg-modal .sg-modal-title { font-weight:700; font-size:16px; color:var(--text); }
    #sg-modal .sg-modal-body { flex:1; overflow-y:auto; padding:16px; }
    #sg-modal .sg-modal-footer { padding:12px 20px; border-top:1px solid var(--border); font-size:13px; color:var(--text-2); background:var(--surface-2); }
    #sg-modal .sg-table-drill { width:100%; border-collapse:collapse; font-size:12.5px; }
    #sg-modal .sg-table-drill th { background:var(--thead-bg); color:var(--text-3); padding:9px 12px; text-align:left; position:sticky; top:0; font-size:10px; font-weight:600; letter-spacing:.05em; text-transform:uppercase; border-bottom:1px solid var(--border-strong); }
    #sg-modal .sg-table-drill td { padding:8px 12px; border-bottom:1px solid var(--row-border); color:var(--text); }
    #sg-modal .sg-table-drill td.sg-num { text-align:right; font-family:var(--font-num); font-variant-numeric:tabular-nums; }
    #sg-modal .sg-table-drill tr:hover td { background:var(--row-hover); }
    /* Drill-down: layout fijo — CONCEPTO (col 5, sin width) absorbe todo el sobrante; la tabla nunca desborda el modal */
    #sg-modal .sg-table-drill { table-layout:fixed; }
    #sg-modal .sg-table-drill th:nth-child(1) { width:88px; }   /* Fecha */
    #sg-modal .sg-table-drill th:nth-child(2) { width:80px; }   /* Asiento */
    #sg-modal .sg-table-drill th:nth-child(3) { width:88px; }   /* Cuenta */
    #sg-modal .sg-table-drill th:nth-child(4) { width:200px; }  /* Nombre (trunc 25 + nowrap = filas de 1 línea) */
    #sg-modal .sg-table-drill td:nth-child(4) { white-space:nowrap; overflow:hidden; }
    #sg-modal .sg-table-drill th:nth-child(6),
    #sg-modal .sg-table-drill th:nth-child(7),
    #sg-modal .sg-table-drill th:nth-child(8) { width:100px; }  /* Debe·Haber·Saldo */
    #sg-modal .sg-table-drill th:nth-child(9) { width:100px; }  /* Usuario */
    #sg-modal .sg-table-drill td.sg-num { white-space:nowrap; }
    #sg-modal .sg-table-drill td.sg-fecha { white-space:nowrap; }
    #sg-modal .sg-table-drill .sg-conc-scroll { overflow-x:auto; white-space:nowrap; scrollbar-width:thin; }

    /* ── Colores semánticos en celdas (al final: ganan al color de fila) ── */
    #page-seguimiento_unificado .ledger td.sg-verde, #sg-modal td.sg-verde { color:var(--pos); }
    #page-seguimiento_unificado .ledger td.sg-rojo,  #sg-modal td.sg-rojo  { color:var(--neg); }
    #page-seguimiento_unificado .ledger td.sg-ambar { color:var(--warn); }

    /* ── Modal Evolución mensual (patrón Evolución de taller, scoped sg-evo) ── */
    #sg-evo-modal .sg-evo-overlay { position:fixed; inset:0; z-index:1200; background:rgba(15,23,42,.45); display:flex; align-items:center; justify-content:center; padding:24px; }
    #sg-evo-modal .sg-evo-box { background:var(--surface); border:1px solid var(--border); border-radius:var(--radius-lg,16px); box-shadow:var(--shadow-card); width:min(1500px,calc(100vw - 48px)); max-height:calc(100vh - 64px); display:flex; flex-direction:column; overflow:hidden; }
    #sg-evo-modal .sg-evo-head { display:flex; align-items:flex-start; justify-content:space-between; gap:16px; padding:20px 28px 14px; border-bottom:1px solid var(--border); }
    #sg-evo-modal .sg-evo-head h3 { margin:0; font-size:18px; line-height:1.2; }
    #sg-evo-modal .sg-evo-sub { margin-top:4px; font-size:12.5px; color:var(--text2); }
    #sg-evo-modal .sg-evo-x { background:none; border:none; font-size:20px; cursor:pointer; color:var(--text2); }
    #sg-evo-modal .sg-evo-body { padding:18px 28px 24px; overflow-y:auto; }
    #sg-evo-modal .sg-evo-section { margin-bottom:20px; }
    #sg-evo-modal .sg-evo-section h4 { margin:0 0 10px; font-size:13px; text-transform:uppercase; letter-spacing:.04em; color:var(--text2); }
    #sg-evo-modal .sg-evo-tablewrap { overflow-x:auto; border:1px solid var(--border); border-radius:var(--radius,10px); -webkit-overflow-scrolling:touch; }
    #sg-evo-modal .sg-evo-table { width:100%; min-width:1180px; border-collapse:collapse; font-size:12.5px; }
    #sg-evo-modal .sg-evo-table th, #sg-evo-modal .sg-evo-table td { padding:9px 12px; border-bottom:1px solid var(--row-border,var(--border)); white-space:nowrap; }
    #sg-evo-modal .sg-evo-table thead th { font-size:10.5px; text-transform:uppercase; color:var(--text2); text-align:right; background:var(--surface-2); }
    #sg-evo-modal .sg-evo-table thead th:first-child { text-align:left; }
    #sg-evo-modal .sg-evo-table tbody th { position:sticky; left:0; background:var(--surface); text-align:left; font-weight:700; border-right:1px solid var(--row-border,var(--border)); }
    #sg-evo-modal .sg-evo-table td.sg-num { text-align:right; font-variant-numeric:tabular-nums; }
    #sg-evo-modal .sg-evo-table td.sg-verde { color:var(--pos); }
    #sg-evo-modal .sg-evo-table td.sg-rojo { color:var(--neg); }
    #sg-evo-modal .sg-evo-table .sg-evo-total { font-weight:700; border-left:1px solid var(--row-border,var(--border)); }
    #sg-evo-modal .sg-evo-rowtotal th, #sg-evo-modal .sg-evo-rowtotal td { font-weight:800; background:var(--surface-2); }
    #sg-evo-modal .sg-evo-tabletitle { margin:14px 0 8px; font-size:12px; text-transform:uppercase; letter-spacing:.04em; color:var(--text2); }
    #sg-evo-modal .sg-evo-tabletitle:first-child { margin-top:0; }
    #sg-evo-modal .sg-evo-rowpct th { font-weight:600; font-style:italic; color:var(--text2); }
    #sg-evo-modal .sg-evo-pctrow { font-size:11.5px; color:var(--text2); font-style:italic; }
    #sg-evo-modal .sg-evo-chartcard { border:1px solid var(--border); border-radius:var(--radius,10px); padding:14px 16px 6px; }
    #sg-evo-modal .sg-evo-legend { display:flex; gap:18px; font-size:12px; color:var(--text2); margin-bottom:6px; }
    #sg-evo-modal .sg-evo-legend span { display:inline-flex; align-items:center; gap:6px; }
    #sg-evo-modal .sg-evo-swatch { width:14px; height:3px; border-radius:2px; display:inline-block; }
    #sg-evo-modal .sg-evo-swatch--fact { background:var(--pos); }
    #sg-evo-modal .sg-evo-swatch--gasto { background:var(--neg); }
    #sg-evo-modal .sg-evo-tabs { display:flex; gap:6px; flex-wrap:wrap; margin-bottom:14px; }
    #sg-evo-modal .sg-evo-tab { background:var(--surface-2); border:1px solid var(--border); border-radius:999px; padding:5px 14px; font-size:12.5px; font-weight:600; color:var(--text2); cursor:pointer; }
    #sg-evo-modal .sg-evo-tab.is-active { background:var(--text); color:var(--surface); border-color:var(--text); }
    #sg-evo-modal .sg-evo-tablehead { display:flex; align-items:center; justify-content:space-between; gap:12px; flex-wrap:wrap; margin-bottom:10px; }
    #sg-evo-modal .sg-evo-tablehead h4 { margin:0; }
    #sg-evo-modal .sg-evo-modobar { display:flex; align-items:center; gap:6px; flex-wrap:wrap; }
    #sg-evo-modal .sg-evo-modolbl { font-size:11.5px; color:var(--text2); }
    #sg-evo-modal .sg-evo-modo { padding:3px 10px; font-size:11.5px; border-radius:8px; }
    #sg-evo-modal .sg-evo-cell-delta { font-size:10.5px; font-weight:600; line-height:1.3; opacity:.9; }
    #sg-evo-modal .sg-evo-cell-delta.sg-verde { color:var(--pos); }
    #sg-evo-modal .sg-evo-cell-delta.sg-rojo { color:var(--neg); }
    #sg-evo-modal .sg-evo-swatch--dot { background:repeating-linear-gradient(90deg, var(--text2) 0 2px, transparent 2px 5px); }
    #sg-evo-modal .sg-evo-swatch--dash { background:repeating-linear-gradient(90deg, var(--text2) 0 7px, transparent 7px 11px); }
    #sg-evo-modal .sg-evo-swatch--margen { background:#d97706; }
    #sg-evo-modal .sg-evo-swatch--res { background:#7c3aed; }
    #sg-evo-modal .sg-evo-line--fact-aa { stroke:var(--pos); opacity:.45; }
    #sg-evo-modal .sg-evo-line--gasto-aa { stroke:var(--neg); opacity:.45; }
    #sg-evo-modal .sg-evo-line--margen { stroke:#d97706; }
    #sg-evo-modal .sg-evo-line--res { stroke:#7c3aed; }
    #sg-evo-modal .sg-evo-zero { stroke:var(--text2); stroke-width:1; stroke-dasharray:4,4; opacity:.6; }
    #sg-evo-modal .sg-evo-charthead { display:flex; align-items:flex-start; justify-content:space-between; gap:12px; flex-wrap:wrap; margin-bottom:6px; }
    /* small multiples */
    #sg-evo-modal .sg-evo-panels { display:grid; grid-template-columns:repeat(2, minmax(0,1fr)); gap:14px; }
    @media (max-width: 900px) { #sg-evo-modal .sg-evo-panels { grid-template-columns:1fr; } }
    #sg-evo-modal .sg-evo-panel { border:1px solid var(--border); border-radius:var(--radius,10px); padding:10px 12px 6px; background:var(--surface); }
    #sg-evo-modal .sg-evo-panel h5 { margin:0 0 6px; font-size:12px; font-weight:700; color:var(--text); display:flex; align-items:center; gap:7px; }
    #sg-evo-modal .sg-evo-panel h5 em { font-style:normal; font-size:10px; color:var(--text2); font-weight:500; }
    #sg-evo-modal .sg-evo-panel svg { display:block; width:100%; height:auto; }
    #sg-evo-modal .sg-evo-line--aa { opacity:.4; }
    #sg-evo-modal .sg-evo-band { stroke:none; }
    #sg-evo-modal .sg-evo-band--pos { fill:var(--pos); opacity:.16; }
    #sg-evo-modal .sg-evo-band--neg { fill:var(--neg); opacity:.16; }
    #sg-evo-modal .sg-evo-hovercol { fill:transparent; cursor:crosshair; }
    #sg-evo-modal .sg-evo-hovercol:hover { fill:var(--text2); opacity:.08; }
    #sg-evo-modal .sg-evo-swatch--solid { background:var(--text); }
    #sg-evo-modal .sg-evo-swatch--bandpos { background:var(--pos); opacity:.35; width:14px; height:8px; }
    #sg-evo-modal .sg-evo-swatch--bandneg { background:var(--neg); opacity:.35; width:14px; height:8px; }
    #sg-evo-tip { position:fixed; z-index:1300; min-width:190px; max-width:240px; background:var(--surface); border:1px solid var(--border); border-radius:10px; box-shadow:var(--shadow-card,0 8px 24px rgba(0,0,0,.18)); padding:10px 12px; font-size:12px; pointer-events:none; }
    #sg-evo-tip .sg-evo-tip__head { font-weight:800; margin-bottom:6px; }
    #sg-evo-tip .sg-evo-tip__head em { font-style:normal; font-weight:500; color:var(--text2); }
    #sg-evo-tip .sg-evo-tip__row { display:flex; align-items:baseline; gap:8px; justify-content:space-between; line-height:1.7; }
    #sg-evo-tip .sg-evo-tip__row span { color:var(--text2); }
    #sg-evo-tip .sg-evo-tip__row i { font-style:normal; font-size:11px; font-weight:700; }
    #sg-evo-tip .sg-evo-tip__row i.sg-verde { color:var(--pos); }
    #sg-evo-tip .sg-evo-tip__row i.sg-rojo { color:var(--neg); }
    #sg-evo-modal .sg-evo-vistas { display:flex; gap:6px; flex:0 0 auto; }
    #sg-evo-modal .sg-evo-legend em { font-style:normal; font-size:10px; opacity:.75; }
    #sg-evo-modal .sg-evo-axis--r { text-anchor:start; }
    #sg-evo-modal .sg-evo-grid { stroke:var(--border); stroke-width:1; }
    #sg-evo-modal .sg-evo-axis { fill:var(--text2); font-size:10px; }
    #sg-evo-modal .sg-evo-line { fill:none; stroke-width:2.4; }
    #sg-evo-modal .sg-evo-line--fact { stroke:var(--pos); }
    #sg-evo-modal .sg-evo-line--gasto { stroke:var(--neg); }
    #sg-evo-modal .sg-evo-dot--fact { fill:var(--pos); }
    #sg-evo-modal .sg-evo-dot--gasto { fill:var(--neg); }
    @media (max-width: 900px) {
      #sg-evo-modal .sg-evo-overlay { padding:10px; }
      #sg-evo-modal .sg-evo-box { width:100%; max-height:92vh; }
      #sg-evo-modal .sg-evo-head, #sg-evo-modal .sg-evo-body { padding-left:16px; padding-right:16px; }
    }

    #page-finanzas_comparativo {
      --fc-border:#e5e7eb;
      --fc-muted:#6b7280;
    }
    #page-finanzas_comparativo .fc-filters { display:flex; flex-wrap:wrap; gap:var(--s-3); align-items:flex-end; padding:var(--s-3) 0; }
    #page-finanzas_comparativo .field { display:flex; flex-direction:column; gap:4px; }
    #page-finanzas_comparativo .field__lbl { font-size:10px; font-weight:700; color:var(--text-3); text-transform:uppercase; letter-spacing:.04em; }
    #page-finanzas_comparativo select {
      font-family:var(--font-sans); font-size:13px; color:var(--text); background:var(--surface) var(--select-arrow) no-repeat right 10px center;
      border:1px solid var(--border); border-radius:var(--radius-sm); padding:7px 28px 7px 10px; min-height:34px; -webkit-appearance:none; appearance:none;
    }
    #page-finanzas_comparativo select:focus { outline:2px solid var(--accent-weak); border-color:var(--accent); }
    #page-finanzas_comparativo select:disabled { opacity:.55; cursor:not-allowed; }
    #page-finanzas_comparativo .seg { display:inline-flex; gap:2px; padding:3px; background:var(--emp-track); border:var(--emp-track-border); border-radius:var(--emp-radius); }
    #page-finanzas_comparativo .seg__btn { border:0; background:transparent; color:var(--text-2); font-family:var(--font-sans); font-size:12px; font-weight:600; padding:6px 14px; border-radius:var(--emp-btn-radius); transition:all .15s; cursor:pointer; white-space:nowrap; }
    #page-finanzas_comparativo .seg__btn:hover { color:var(--text); }
    #page-finanzas_comparativo .seg__btn.is-active { background:var(--emp-active-bg); color:var(--emp-active-fg); box-shadow:var(--emp-active-shadow); }
    #page-finanzas_comparativo .fc-switch { display:inline-flex; align-items:center; gap:8px; min-height:34px; padding:3px 0; color:var(--text-2); font-family:var(--font-sans); font-size:12px; font-weight:700; cursor:pointer; }
    #page-finanzas_comparativo .fc-switch input { position:absolute; width:1px; height:1px; opacity:0; pointer-events:none; }
    #page-finanzas_comparativo .fc-switch__track { width:42px; height:24px; padding:3px; border-radius:999px; background:var(--border-strong); transition:background .15s; flex:0 0 auto; }
    #page-finanzas_comparativo .fc-switch__thumb { display:block; width:18px; height:18px; border-radius:50%; background:var(--surface); box-shadow:0 1px 4px rgba(15,23,42,.24); transition:transform .15s; }
    #page-finanzas_comparativo .fc-switch input:checked + .fc-switch__track { background:var(--accent); }
    #page-finanzas_comparativo .fc-switch input:checked + .fc-switch__track .fc-switch__thumb { transform:translateX(18px); }
    #page-finanzas_comparativo .fc-switch input:focus-visible + .fc-switch__track { outline:2px solid var(--accent-weak); outline-offset:2px; }
    #page-finanzas_comparativo .fc-switch.is-disabled { opacity:.5; cursor:not-allowed; }
    #page-finanzas_comparativo .fc-switch__text { white-space:nowrap; }
    #page-finanzas_comparativo .empresa { display:inline-flex; gap:var(--emp-gap); padding:var(--emp-pad); background:var(--emp-track); border:var(--emp-track-border); border-radius:var(--emp-radius); overflow-x:auto; max-width:100%; }
    #page-finanzas_comparativo .empresa__btn { border:0; background:transparent; color:var(--text-2); font-family:var(--font-sans); font-size:12px; font-weight:600; padding:7px 13px; border-radius:var(--emp-btn-radius); transition:all .15s; line-height:1.15; text-align:left; cursor:pointer; min-width:92px; }
    #page-finanzas_comparativo .empresa__btn small { display:block; font-size:9px; font-weight:500; color:var(--text-3); margin-top:2px; white-space:nowrap; }
    #page-finanzas_comparativo .empresa__btn.is-active { background:var(--emp-active-bg); color:var(--emp-active-fg); box-shadow:var(--emp-active-shadow); }
    #page-finanzas_comparativo .empresa__btn.is-dim { opacity:.55; }
    #page-finanzas_comparativo .depttabs { display:flex; gap:6px; overflow-x:auto; padding:var(--s-2) 0 var(--s-3); scrollbar-width:thin; }
    #page-finanzas_comparativo .depttab { flex:0 0 auto; border:1px solid var(--border); background:var(--surface); color:var(--text-2); border-radius:var(--radius-sm); padding:8px 12px; min-width:116px; text-align:left; cursor:pointer; font-family:var(--font-sans); font-size:12px; font-weight:700; }
    #page-finanzas_comparativo .depttab small { display:block; margin-top:2px; font-size:10px; font-weight:500; color:var(--text-3); }
    #page-finanzas_comparativo .depttab.is-active { border-color:var(--accent); color:var(--accent); background:var(--accent-weak); }
    #page-finanzas_comparativo .ledger { width:100%; border-collapse:collapse; font-size:12px; min-width:640px; table-layout:fixed; }
    #page-finanzas_comparativo .ledger thead th { position:sticky; top:0; z-index:2; background:var(--thead-bg); color:var(--text-3); font-size:10px; font-weight:700; letter-spacing:.04em; text-transform:uppercase; text-align:left; padding:8px 8px; border-bottom:1px solid var(--border-strong); white-space:nowrap; }
    #page-finanzas_comparativo .ledger thead th.sg-num { text-align:right; }
    #page-finanzas_comparativo .ledger thead th.fc-company-head { text-align:center; color:var(--text); border-left:1px solid var(--fc-border); }
    #page-finanzas_comparativo .ledger tbody td { padding:7px 8px; border-bottom:1px solid var(--row-border); color:var(--text-2); vertical-align:middle; }
    #page-finanzas_comparativo .ledger tbody tr:hover { background:var(--row-hover); }
    #page-finanzas_comparativo .ledger td.sg-num { text-align:right; font-family:var(--font-num); font-variant-numeric:tabular-nums; color:var(--text); white-space:nowrap; }
    #page-finanzas_comparativo .fc-company-start { border-left:1px solid var(--fc-border); }
    #page-finanzas_comparativo .lrow--group td { background:var(--surface-2); color:var(--text); font-weight:700; }
    #page-finanzas_comparativo .lrow--fact td { background:rgba(16,185,129,.06); }
    #page-finanzas_comparativo .lrow--total td { font-weight:700; color:var(--text); background:rgba(31,41,55,.03); }
    #page-finanzas_comparativo .lrow--strong td { border-top:1px solid var(--border-strong); border-bottom:1px solid var(--border-strong); }
    #page-finanzas_comparativo .ledger tbody tr.fc-row-global-fact td { font-weight:800; color:var(--text); background:rgba(16,185,129,.10); }
    #page-finanzas_comparativo .ledger tbody tr.fc-row-global-fact td.sg-num { font-weight:800; }
    #page-finanzas_comparativo .fc-row-global-fact .concept__label { font-weight:800; }
    body #page-finanzas_comparativo .fc-mobile-card.fc-row-global-fact { border-color:rgba(16,185,129,.35); background:rgba(16,185,129,.08); }
    #page-finanzas_comparativo .fc-mobile-card.fc-row-global-fact .fc-mobile-title,
    #page-finanzas_comparativo .fc-mobile-card.fc-row-global-fact .fc-mobile-real { font-size:15px; font-weight:900; }
    #page-finanzas_comparativo .lrow--child td { font-size:12px; color:var(--text-3); }
    #page-finanzas_comparativo .sg-indent-1 { padding-left:14px !important; }
    #page-finanzas_comparativo .sg-indent-2 { padding-left:34px !important; }
    #page-finanzas_comparativo .concept { display:inline-flex; align-items:center; gap:7px; min-width:0; max-width:100%; }
    #page-finanzas_comparativo .concept__label { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
    #page-finanzas_comparativo .concept__dot { width:7px; height:7px; border-radius:50%; flex:0 0 auto; background:var(--text-3); }
    #page-finanzas_comparativo .concept__dot--pos { background:var(--pos); }
    #page-finanzas_comparativo .concept__dot--neg { background:var(--neg); }
    #page-finanzas_comparativo .concept__dot--neu { background:var(--text-3); }
    #page-finanzas_comparativo .sg-expand, #page-finanzas_comparativo .sg-no-expand { width:14px; display:inline-block; flex:0 0 14px; color:var(--text-3); cursor:pointer; }
    #page-finanzas_comparativo .sg-version-info { font-size:11px; color:var(--text-3); margin-top:var(--s-3); text-align:right; }
    #page-finanzas_comparativo .fc-empty { padding:28px 12px; text-align:center; color:var(--fc-muted); }
    #page-finanzas_comparativo .ledger td.sg-verde { color:var(--pos); }
    #page-finanzas_comparativo .ledger td.sg-rojo { color:var(--neg); }
    @media (max-width:780px) {
      #page-finanzas_comparativo .page-header { align-items:flex-start; }
      #page-finanzas_comparativo .empresa { width:100%; }
      #page-finanzas_comparativo .field { min-width:120px; }
      #page-finanzas_comparativo .ledger { min-width:620px; }
    }

    /* Presupuesto — piel Atlas (in-place; mismos selectores/clases, solo tokens). */
    .pm-empresa-selector { display:flex; gap:8px; margin-bottom:24px; }
    .pm-empresa-btn { padding:10px 16px; background:var(--surface); border:1px solid var(--border); border-radius:var(--radius); cursor:pointer; text-align:left; font-family:var(--font-sans); transition:all .15s; }
    .pm-empresa-btn:hover { border-color:var(--accent); background:var(--hover); }
    .pm-empresa-btn.active { border-color:var(--accent); background:var(--emp-active-bg); box-shadow:var(--emp-active-shadow); }
    .pm-empresa-btn-title { font-size:13px; font-weight:600; color:var(--text); }
    .pm-empresa-btn.active .pm-empresa-btn-title { color:var(--emp-active-fg); }
    .pm-empresa-btn-sub { font-size:10.5px; color:var(--text-3); margin-top:2px; }
    .pm-empresa-btn.active .pm-empresa-btn-sub { color:var(--emp-active-sub); }
    .pm-kpi-grid { display:grid; grid-template-columns:1fr 1fr; gap:20px; margin-bottom:24px; }
    .pm-kpi-card { background:var(--surface); border:1px solid var(--border); border-radius:var(--radius); box-shadow:var(--shadow-card); padding:22px 24px; display:flex; align-items:center; gap:18px; }
    .pm-kpi__chip { flex:0 0 auto; width:44px; height:44px; border-radius:var(--radius); background:var(--accent-weak); color:var(--accent-strong); display:flex; align-items:center; justify-content:center; font-size:20px; font-weight:700; }
    .pm-kpi__body { flex:1 1 auto; min-width:0; }
    .pm-kpi-label { font-size:11px; color:var(--text-3); letter-spacing:.5px; text-transform:uppercase; }
    .pm-kpi-value { font-size:30px; font-weight:600; margin-top:8px; color:var(--text); font-family:var(--font-num); font-variant-numeric:tabular-nums; }
    .pm-kpi-sub { font-size:12px; color:var(--text-3); margin-top:4px; }
    .pm-verde { color:var(--pos); }
    .pm-rojo  { color:var(--neg); }
    .pm-dept-tab { background:var(--surface); border:1px solid var(--border); padding:8px 16px; font-size:13px; font-weight:600; color:var(--text-2); cursor:pointer; font-family:var(--font-sans); border-radius:var(--radius-pill); white-space:nowrap; transition:all .15s; }
    .pm-dept-tab.active { color:var(--accent-on); background:var(--accent); border-color:var(--accent); }
    .pm-dept-tab:hover:not(.active) { color:var(--text); border-color:var(--accent); }
    .pm-card { background:var(--surface); border:1px solid var(--border); border-radius:var(--radius-lg); box-shadow:var(--shadow-card); overflow:hidden; margin-bottom:20px; }
    .pm-card-header { display:flex; justify-content:space-between; align-items:center; padding:16px 20px; border-bottom:1px solid var(--border); gap:16px; flex-wrap:wrap; }
    .pm-card-title { font-size:14px; font-weight:700; color:var(--text); }
    .pm-card-sub { font-size:12px; color:var(--text-3); margin-top:2px; }
    .pm-table { width:100%; border-collapse:collapse; }
    .pm-table th { background:var(--thead-bg); text-align:left; padding:10px 16px; font-size:11px; text-transform:uppercase; color:var(--text-3); border-bottom:1px solid var(--border-strong); font-weight:600; letter-spacing:.3px; }
    .pm-num { text-align:right !important; }
    .pm-table td { padding:12px 16px; border-bottom:1px solid var(--row-border); color:var(--text-2); }
    .pm-table td.pm-num { font-family:var(--font-num); font-variant-numeric:tabular-nums; color:var(--text); }
    .pm-row-calc td { background:var(--surface-2); font-weight:700; color:var(--text); }
    .pm-orig-csv    { color:var(--accent-strong); font-size:11px; font-weight:600; }
    .pm-orig-manual { color:var(--warn); font-size:11px; font-weight:600; }
    .pm-orig-auto   { color:var(--text-3); font-size:11px; }
    .pm-table-mensual { width:100%; border-collapse:collapse; font-size:12px; }
    .pm-table-mensual th { background:var(--thead-bg); padding:6px 10px; font-size:10px; text-transform:uppercase; color:var(--text-3); border-bottom:1px solid var(--border-strong); text-align:left; }
    .pm-table-mensual td { padding:5px 10px; border-bottom:1px solid var(--row-border); white-space:nowrap; }
    .pm-table-mensual td.pm-num, .pm-table-mensual th.pm-num { text-align:right; font-variant-numeric:tabular-nums; }
    .pm-table-mensual td.pm-num { font-family:var(--font-num); color:var(--text); }
    .pm-table-mensual .pm-row-calc td { background:var(--surface-2); font-weight:700; color:var(--text); }
    /* segmento Anual / Detalle mensual (estilo .seg de la maqueta) */
    .pm-seg { display:inline-flex; gap:4px; padding:4px; background:var(--bg); border:1px solid var(--border); border-radius:var(--radius); }
    .pm-seg__btn { border:none; background:none; padding:6px 16px; font-size:12.5px; font-weight:600; color:var(--text-2); border-radius:calc(var(--radius) - 4px); cursor:pointer; font-family:var(--font-sans); transition:all .15s; }
    .pm-seg__btn:hover { color:var(--text); }
    .pm-seg__btn.is-active { background:var(--surface); color:var(--accent-strong); box-shadow:var(--shadow-card); }
    /* botones de cabecera (scoped) */
    #page-presupuesto_motor .page-header-right { display:flex; gap:10px; align-items:center; flex-wrap:wrap; }
    #page-presupuesto_motor .pm-year-field { display:inline-flex; align-items:center; gap:7px; height:34px; padding:0 10px; border:1px solid var(--border); background:var(--surface); border-radius:var(--radius-sm); }
    #page-presupuesto_motor .pm-year-label { font-size:11px; font-weight:700; color:var(--text-3); text-transform:uppercase; letter-spacing:.04em; }
    #page-presupuesto_motor .pm-year-select { min-width:82px; height:28px; border:0; background:transparent; color:var(--text); font-family:var(--font-num); font-size:13px; font-weight:700; cursor:pointer; }
    #page-presupuesto_motor .pm-year-select:focus { outline:none; }
    .pm-dept-tabs-wrap { display:flex; gap:8px; flex-wrap:wrap; }
    .pm-cell-editable { cursor:text; }
    .pm-cell-editable[contenteditable="true"] { background:var(--accent-weak); cursor:text; outline:1px dashed var(--accent); outline-offset:2px; }
    .pm-versiones-card { background:var(--surface); border:1px solid var(--border); border-radius:var(--radius-lg); box-shadow:var(--shadow-card); overflow:hidden; margin-bottom:20px; }
    .pm-versiones-header { display:flex; justify-content:space-between; align-items:center; padding:14px 20px; border-bottom:1px solid var(--border); }
    .pm-version-item { display:flex; align-items:center; justify-content:space-between; padding:10px 20px; border-bottom:1px solid var(--row-border); gap:12px; }
    .pm-version-item:last-child { border-bottom:none; }
    .pm-version-vigente { background:var(--accent-weak); }
    .pm-version-info { display:flex; flex-direction:column; gap:2px; flex:1; min-width:0; }
    .pm-version-num { font-weight:600; font-size:13px; color:var(--text); }
    .pm-version-desc { font-size:12px; color:var(--text); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
    .pm-version-meta { font-size:11px; color:var(--text-3); }
    .pm-version-badge-vigente { background:var(--accent); color:var(--accent-on); padding:3px 10px; border-radius:var(--radius-pill); font-size:11px; font-weight:600; white-space:nowrap; }
    /* relayout: toolbar superior (dept-tabs + empresa) + 2 columnas tabla|versiones */
    .pm-toolbar { display:flex; align-items:center; justify-content:space-between; gap:16px; flex-wrap:wrap; margin-bottom:20px; }
    .pm-toolbar #pm-dept-tabs { flex:1 1 auto; }
    .pm-toolbar .pm-empresa-selector { margin-bottom:0; flex:0 1 auto; }
    #page-presupuesto_motor #pm-content { display:grid; grid-template-columns:1fr 304px; gap:var(--s-4); align-items:start; }
    /* FIX 2-col: el JS revela #pm-content con display:block inline (pmCargar); */
    /* este override solo aplica cuando ya está revelado, sin tocar el estado oculto de carga/error. */
    #page-presupuesto_motor #pm-content[style*="display: block"]{ display:grid !important; }
    #page-presupuesto_motor #pm-content > .pm-card, #page-presupuesto_motor #pm-content > .pm-versiones-card { margin-bottom:0; }
    @media (max-width:1140px){ #page-presupuesto_motor #pm-content { grid-template-columns:1fr; } }
    @media (max-width:768px){
      #page-presupuesto_motor .pm-empresa-selector { overflow-x:auto; flex-wrap:nowrap; padding-bottom:4px; margin-bottom:14px; scrollbar-width:none; }
      #page-presupuesto_motor .pm-empresa-selector::-webkit-scrollbar { display:none; }
      #page-presupuesto_motor .pm-empresa-btn { flex:0 0 132px; min-height:44px; padding:8px 10px; }
      #page-presupuesto_motor .pm-toolbar { align-items:stretch; gap:10px; }
      #page-presupuesto_motor .pm-dept-tabs-wrap { flex-wrap:nowrap; overflow-x:auto; padding-bottom:4px; scrollbar-width:none; }
      #page-presupuesto_motor .pm-dept-tabs-wrap::-webkit-scrollbar { display:none; }
      #page-presupuesto_motor .pm-dept-tab { min-height:44px; padding:8px 14px; }
      #page-presupuesto_motor .pm-kpi-grid { grid-template-columns:1fr; gap:12px; margin-bottom:16px; }
      #page-presupuesto_motor .pm-kpi-card { padding:16px; gap:12px; }
      #page-presupuesto_motor .pm-kpi-value { font-size:24px; }
      #page-presupuesto_motor .pm-card-header { padding:14px; align-items:stretch; }
      #page-presupuesto_motor .pm-seg { width:100%; }
      #page-presupuesto_motor .pm-seg__btn { flex:1 1 0; min-height:40px; padding:6px 10px; }
      #page-presupuesto_motor #pm-table-anual,
      #page-presupuesto_motor #pm-table-anual thead,
      #page-presupuesto_motor #pm-table-anual tbody,
      #page-presupuesto_motor #pm-table-anual tr,
      #page-presupuesto_motor #pm-table-anual td {
        display:block;
        width:100%;
      }
      #page-presupuesto_motor #pm-table-anual thead { display:none; }
      #page-presupuesto_motor #pm-tbody-main {
        display:grid;
        gap:10px;
        padding:12px;
      }
      #page-presupuesto_motor #pm-table-anual tr {
        border:1px solid var(--border);
        border-radius:14px;
        background:var(--surface);
        box-shadow:0 1px 3px rgba(15,23,42,.05);
        overflow:hidden;
      }
      #page-presupuesto_motor #pm-table-anual td {
        min-height:40px;
        display:flex;
        align-items:center;
        justify-content:space-between;
        gap:12px;
        padding:9px 12px;
        border-bottom:1px solid var(--row-border);
        white-space:normal;
        text-align:right !important;
      }
      #page-presupuesto_motor #pm-table-anual td:last-child { border-bottom:0; }
      #page-presupuesto_motor #pm-table-anual td::before {
        content:"";
        color:var(--text-3);
        font:800 10px/1.2 var(--font-sans);
        letter-spacing:.06em;
        text-transform:uppercase;
        text-align:left;
      }
      #page-presupuesto_motor #pm-table-anual td:nth-child(1)::before { content:"Concepto"; }
      #page-presupuesto_motor #pm-table-anual td:nth-child(2)::before { content:"Presup."; }
      #page-presupuesto_motor #pm-table-anual td:nth-child(3)::before { content:"% fact."; }
      #page-presupuesto_motor #pm-table-anual td:first-child {
        text-align:left !important;
        font-weight:800;
        color:var(--text);
      }
      #page-presupuesto_motor #pm-table-anual td:first-child::before { display:none; }
      #page-presupuesto_motor #pm-mensual-wrap { padding:0 12px 12px !important; overflow-x:auto; }
      #page-presupuesto_motor .pm-versiones-header,
      #page-presupuesto_motor .pm-version-item { padding-left:14px; padding-right:14px; }
      #page-presupuesto_motor .pm-version-item { align-items:flex-start; flex-direction:column; }
      #page-presupuesto_motor .pm-version-desc { white-space:normal; }
    }

    #page-cuentas_anuales .ca-card { background:var(--surface); border:1px solid var(--border); border-radius:var(--radius-lg); box-shadow:var(--shadow-card); padding:20px 24px; margin-bottom:20px; }
    #page-cuentas_anuales .ca-card-head { font-size:13px; font-weight:700; color:var(--text); text-transform:uppercase; letter-spacing:.4px; margin-bottom:16px; }
    #page-cuentas_anuales .ca-form { display:flex; gap:18px; align-items:flex-end; flex-wrap:wrap; }
    #page-cuentas_anuales .ca-field { display:flex; flex-direction:column; gap:6px; }
    #page-cuentas_anuales .ca-field label { font-size:11px; text-transform:uppercase; letter-spacing:.4px; color:var(--text-3); font-weight:600; }
    #page-cuentas_anuales .ca-select, #page-cuentas_anuales .ca-input { padding:9px 12px; background:var(--surface); border:1px solid var(--border); border-radius:var(--radius); color:var(--text); font-family:var(--font-sans); font-size:13px; min-width:240px; }
    #page-cuentas_anuales .ca-input { min-width:180px; font-variant-numeric:tabular-nums; }
    #page-cuentas_anuales .ca-empty { color:var(--text-3); font-size:13px; padding:32px 4px; text-align:center; }
    #page-cuentas_anuales .ca-error { color:var(--neg); font-size:13px; padding:18px 20px; background:var(--surface); border:1px solid var(--border); border-left:3px solid var(--neg); border-radius:var(--radius); margin-bottom:20px; }
    #page-cuentas_anuales .ca-head-row { display:flex; justify-content:space-between; align-items:flex-start; gap:16px; flex-wrap:wrap; border-bottom:1px solid var(--border); padding-bottom:14px; margin-bottom:16px; }
    #page-cuentas_anuales .ca-razon { font-size:16px; font-weight:700; color:var(--text); }
    #page-cuentas_anuales .ca-fiscal { font-size:12px; color:var(--text-3); margin-top:3px; }
    #page-cuentas_anuales .ca-periodo { font-size:12px; color:var(--text-2); margin-top:6px; }
    #page-cuentas_anuales .ca-badge { font-size:11px; font-weight:700; padding:3px 10px; border-radius:var(--radius-pill); border:1px solid var(--warn); color:var(--warn); white-space:nowrap; }
    #page-cuentas_anuales .ca-badge.def { border-color:var(--pos); color:var(--pos); }
    #page-cuentas_anuales .ca-kpis { display:grid; grid-template-columns:repeat(3,1fr); gap:16px; margin-bottom:14px; }
    #page-cuentas_anuales .ca-kpi { background:var(--surface-2); border:1px solid var(--border); border-radius:var(--radius); padding:14px 16px; }
    #page-cuentas_anuales .ca-kpi-label { font-size:10.5px; text-transform:uppercase; letter-spacing:.4px; color:var(--text-3); }
    #page-cuentas_anuales .ca-kpi-value { font-size:22px; font-weight:600; color:var(--text); font-family:var(--font-num); font-variant-numeric:tabular-nums; margin-top:6px; }
    #page-cuentas_anuales .ca-cuadre { font-size:12px; color:var(--text-3); margin-bottom:8px; }
    #page-cuentas_anuales .ca-cuadre .ok { color:var(--pos); }
    #page-cuentas_anuales .ca-cuadre .no { color:var(--neg); }
    #page-cuentas_anuales .ca-aviso { font-size:12px; color:var(--warn); background:var(--surface); border:1px solid var(--border); border-left:3px solid var(--warn); border-radius:var(--radius); padding:10px 14px; margin:10px 0 4px; }
    #page-cuentas_anuales .ca-actions { display:flex; gap:10px; margin-top:18px; flex-wrap:wrap; }
    @media (max-width:760px){ #page-cuentas_anuales .ca-kpis { grid-template-columns:1fr; } }

/* Carga de pantallas bajo demanda (plantillas.js, ARQ-07). */
.plantilla-estado { position: fixed; top: 76px; right: 24px; z-index: 900; display: flex; align-items: center; gap: 10px;
  padding: 10px 14px; border: 1px solid var(--border, #d8d8d8); border-radius: 8px; background: var(--surface, #fff); font-size: 13px;
  box-shadow: 0 4px 16px rgba(0, 0, 0, .12); }
.plantilla-estado[hidden] { display: none; }
