/* Factura IA · Solo azul #0B5FA8 y blanco (con transparencias del mismo azul). */
.iaef { --a: #0B5FA8; --w: #fff; --a80: rgba(11,95,168,.8); --a60: rgba(11,95,168,.62); --a20: rgba(11,95,168,.2); --a12: rgba(11,95,168,.12); --a06: rgba(11,95,168,.06); color: var(--a); font-family: var(--f-body, system-ui, sans-serif); font-size: 16px; }
.iaef *, .iaef-modal * { box-sizing: border-box; }
.iaef [hidden], .iaef-modal [hidden] { display: none !important; }
.iaef-ic { width: 20px; height: 20px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; flex: none; }
.iaef-sr { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
.iaef-cargando { padding: 40px; text-align: center; color: var(--a60); }
.iaef-muted { color: var(--a60); margin: 6px 0; }
.mono { font-family: var(--f-mono, ui-monospace, monospace); font-size: .92em; }

/* Barra superior y navegación */
.iaef-top { display: flex; flex-wrap: wrap; gap: 12px 20px; align-items: center; justify-content: space-between; padding: 16px 20px; background: var(--a); color: var(--w); border-radius: 18px 18px 0 0; }
.iaef-brand { display: flex; align-items: center; gap: 12px; }
.iaef-brand b { display: block; font-family: var(--f-display, Georgia, serif); font-weight: 500; font-size: 24px; line-height: 1.1; }
.iaef-brand small { opacity: .85; font-size: 14px; }
.iaef-logo { width: 44px; height: 44px; border-radius: 12px; background: var(--w); color: var(--a); display: inline-flex; align-items: center; justify-content: center; }
.iaef-logo .iaef-ic { width: 26px; height: 26px; }
.iaef-top-r { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }
.iaef-pill { display: inline-flex; align-items: center; gap: 6px; padding: 6px 12px; border-radius: 999px; background: rgba(255,255,255,.14); border: 1px solid rgba(255,255,255,.35); font-size: 13px; font-weight: 600; }
.iaef-pill .iaef-ic { width: 16px; height: 16px; }
.iaef-pill.is-ok { background: var(--w); color: var(--a); }
.iaef-emp { font: inherit; font-size: 14px; padding: 6px 10px; border-radius: 10px; border: 0; color: var(--a); max-width: 220px; }
.iaef-top .iaef-btn.ghost { color: var(--w); border-color: rgba(255,255,255,.6); }
.iaef-nav { display: flex; gap: 4px; overflow-x: auto; padding: 8px; background: var(--w); border: 1px solid var(--a20); border-top: 0; scrollbar-width: thin; }
.iaef-nav button { font: inherit; font-size: 14.5px; font-weight: 600; display: inline-flex; align-items: center; gap: 8px; white-space: nowrap; padding: 9px 12px; border: 0; border-radius: 10px; background: none; color: var(--a); cursor: pointer; }
.iaef-nav button:hover { background: var(--a06); }
.iaef-nav button[aria-current="page"] { background: var(--a); color: var(--w); }
.iaef-nav .iaef-ic { width: 18px; height: 18px; }
.iaef-n { display: inline-flex; align-items: center; justify-content: center; min-width: 22px; height: 22px; border-radius: 50%; border: 1.5px solid currentColor; font-size: 12px; font-family: var(--f-mono, monospace); }
.iaef-main { padding: 24px 20px 32px; background: var(--a06); border: 1px solid var(--a20); border-top: 0; border-radius: 0 0 18px 18px; min-height: 420px; }

/* Encabezados, tarjetas y KPIs */
.iaef-head { display: flex; flex-wrap: wrap; gap: 12px; align-items: end; justify-content: space-between; margin-bottom: 16px; }
.iaef-head h2 { margin: 0; font-family: var(--f-display, Georgia, serif); font-weight: 500; font-size: clamp(26px, 3vw, 34px); line-height: 1.1; color: var(--a); }
.iaef-head-r { display: flex; gap: 8px; }
.iaef-kicker { margin: 0 0 4px; font-family: var(--f-mono, monospace); font-size: 12px; letter-spacing: .08em; text-transform: uppercase; color: var(--a60); }
.iaef-card { background: var(--w); border: 1px solid var(--a20); border-radius: 16px; padding: 18px 20px; margin-bottom: 16px; min-width: 0; }
.iaef-card h3 { margin: 0 0 12px; font-size: 18px; display: flex; align-items: center; gap: 10px; color: var(--a); }
.iaef-card.is-bad { border-color: var(--a); border-style: dashed; }
.iaef-card-h { display: flex; justify-content: space-between; align-items: center; }
.iaef-grid2 { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
.iaef-grid2 .iaef-card { margin: 0; }
.iaef-grid2 + .iaef-card { margin-top: 16px; }
.iaef-kpis { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; margin-bottom: 16px; }
.iaef-kpi { background: var(--a); color: var(--w); border-radius: 14px; padding: 16px 18px; display: grid; gap: 4px; }
.iaef-kpi span { font-size: 13.5px; opacity: .88; }
.iaef-kpi b { font-family: var(--f-display, Georgia, serif); font-weight: 500; font-size: clamp(22px, 2.4vw, 30px); line-height: 1.1; font-variant-numeric: tabular-nums; }
.iaef-kpi small { font-size: 13px; opacity: .85; }
.iaef-alerts { display: grid; gap: 8px; margin-bottom: 16px; }
.iaef-alert { font: inherit; text-align: left; display: flex; gap: 10px; align-items: center; padding: 12px 14px; border-radius: 12px; border: 1.5px dashed var(--a); background: var(--w); color: var(--a); cursor: pointer; }
.iaef-alert:hover { background: var(--a06); }
.iaef-empty { text-align: center; padding: 40px 16px; background: var(--w); border: 1px dashed var(--a20); border-radius: 16px; color: var(--a80); }
.iaef-empty .iaef-ic { width: 40px; height: 40px; }
.iaef-ruta { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 10px; }
.iaef-ruta button { font: inherit; width: 100%; height: 100%; text-align: left; display: grid; gap: 4px; padding: 14px; border-radius: 12px; border: 1px solid var(--a20); background: var(--w); color: var(--a); cursor: pointer; transition: transform .2s, box-shadow .2s; }
.iaef-ruta button:hover { transform: translateY(-2px); box-shadow: 0 10px 24px rgba(11,95,168,.14); }
.iaef-ruta small { color: var(--a80); font-size: 13.5px; }
.iaef-bars { display: flex; gap: 10px; align-items: flex-end; height: 200px; padding-top: 24px; }
.iaef-bars.is-big { height: 240px; margin-bottom: 14px; }
.iaef-bar { flex: 1; display: flex; flex-direction: column; align-items: center; justify-content: flex-end; height: 100%; min-width: 0; position: relative; }
.iaef-bar i { display: block; width: 70%; max-width: 64px; background: var(--a); border-radius: 6px 6px 0 0; }
.iaef-bar b { font-size: 12px; margin-bottom: 4px; order: -1; white-space: nowrap; }
.iaef-bar span { font-size: 12px; color: var(--a60); margin-top: 6px; white-space: nowrap; }
.iaef-hbars { display: grid; gap: 8px; margin-bottom: 10px; }
.iaef-hb { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr) auto; gap: 10px; align-items: center; font-size: 14px; }
.iaef-hb-l { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.iaef-hb-t { height: 10px; background: var(--a12); border-radius: 5px; overflow: hidden; }
.iaef-hb-t i { display: block; height: 100%; background: var(--a); border-radius: 5px; }
.iaef-hb-v { font-variant-numeric: tabular-nums; font-size: 13px; white-space: nowrap; }

/* Botones */
.iaef-btn { font: inherit; font-weight: 700; font-size: 15px; display: inline-flex; align-items: center; gap: 8px; padding: 11px 18px; border-radius: 999px; border: 1.5px solid var(--a); background: var(--a); color: var(--w); cursor: pointer; text-decoration: none; white-space: nowrap; }
.iaef-btn:hover { box-shadow: 0 8px 20px rgba(11,95,168,.25); }
.iaef-btn.ghost { background: transparent; color: var(--a); }
.iaef-btn.sm { padding: 7px 13px; font-size: 14px; }
.iaef-btn.xs { padding: 4px 10px; font-size: 12.5px; }
.iaef-btn:disabled { opacity: .55; cursor: wait; }
.iaef-btn.is-loading { position: relative; color: transparent; }
.iaef-btn.is-loading::after { content: ""; position: absolute; left: 50%; top: 50%; width: 18px; height: 18px; margin: -9px; border-radius: 50%; border: 2.5px solid rgba(255,255,255,.4); border-top-color: var(--w); animation: iaefSpin .8s linear infinite; }
@keyframes iaefSpin { to { transform: rotate(360deg); } }
.iaef-icon-btn { font: inherit; width: 34px; height: 34px; display: inline-flex; align-items: center; justify-content: center; border-radius: 10px; border: 1px solid var(--a20); background: var(--w); color: var(--a); cursor: pointer; }
.iaef-icon-btn:hover { background: var(--a); color: var(--w); }
.iaef-link { font: inherit; background: none; border: 0; color: var(--a); text-decoration: underline; cursor: pointer; padding: 0; font-weight: 600; }
.iaef-actions { display: flex; flex-wrap: wrap; gap: 10px; justify-content: flex-end; margin-top: 14px; }
.iaef-actions.is-center { justify-content: center; }
.iaef-seg { display: inline-flex; gap: 4px; padding: 4px; background: var(--w); border: 1px solid var(--a20); border-radius: 999px; }
.iaef-seg button { font: inherit; font-weight: 600; font-size: 14px; padding: 7px 14px; border: 0; border-radius: 999px; background: none; color: var(--a); cursor: pointer; }
.iaef-seg button[aria-pressed="true"] { background: var(--a); color: var(--w); }

/* Formularios */
.iaef-form fieldset { border: 1px solid var(--a20); border-radius: 14px; padding: 12px 16px 16px; margin: 0 0 14px; }
.iaef-form legend { font-weight: 700; padding: 0 6px; }
.iaef-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px 14px; align-items: start; }
.iaef-f { display: grid; gap: 4px; min-width: 0; }
.iaef-f.is-wide, .iaef-grid .is-wide { grid-column: 1 / -1; }
.iaef-f label { font-size: 13.5px; font-weight: 600; color: var(--a80); }
.iaef-f input, .iaef-f select, .iaef-f textarea, .iaef-table input, .iaef-table select, .iaef-search input, .iaef-retf input { font: inherit; font-size: 15px; width: 100%; min-width: 0; padding: 9px 11px; border: 1.5px solid var(--a20); border-radius: 10px; background: var(--w); color: var(--a); }
.iaef-f input:focus, .iaef-f select:focus, .iaef-f textarea:focus, .iaef-table input:focus, .iaef-search input:focus { outline: none; border-color: var(--a); box-shadow: 0 0 0 3px var(--a12); }
.iaef-help { font-size: 12.5px; color: var(--a60); line-height: 1.4; }
.iaef-check { display: flex; gap: 10px; align-items: center; font-size: 14.5px; font-weight: 600; padding: 9px 0; cursor: pointer; }
.iaef-check input { width: 18px; height: 18px; accent-color: #0B5FA8; }
.iaef-chips { display: flex; flex-wrap: wrap; gap: 6px; }
.iaef-chip { display: inline-flex; align-items: center; gap: 6px; padding: 6px 10px; border: 1px solid var(--a20); border-radius: 999px; font-size: 13px; cursor: pointer; background: var(--w); }
.iaef-chip input { accent-color: #0B5FA8; }
.iaef-err { color: var(--a); font-weight: 700; border-left: 3px solid var(--a); padding-left: 10px; margin: 10px 0; }
.iaef-search { position: relative; display: flex; align-items: center; flex: 1; min-width: 220px; }
.iaef-search .iaef-ic { position: absolute; left: 12px; color: var(--a60); }
.iaef-search input { padding-left: 40px; }
.iaef-main > .iaef-search { margin-bottom: 14px; max-width: 520px; }
.iaef-filters { display: flex; flex-wrap: wrap; gap: 12px; align-items: end; margin-bottom: 16px; }
.iaef-filters .iaef-f { min-width: 150px; }
.iaef-sticky { position: sticky; bottom: 12px; z-index: 5; display: flex; justify-content: flex-end; align-items: center; gap: 12px; padding: 10px 12px; background: rgba(255,255,255,.92); border: 1px solid var(--a20); border-radius: 14px; backdrop-filter: blur(6px); }

/* Tablas */
.iaef-table-wrap { overflow-x: auto; border: 1px solid var(--a12); border-radius: 12px; background: var(--w); }
/* 1.3.0 (revisión): las tablas que se desplazan de lado se enfocan con el teclado (Tab y flechas). */
.iaef-table-wrap[tabindex]:focus-visible { outline: 3px solid var(--a); outline-offset: 2px; }
.iaef-table { width: 100%; border-collapse: collapse; font-size: 14px; }
.iaef-table th, .iaef-table td { padding: 10px 12px; text-align: left; border-bottom: 1px solid var(--a06); vertical-align: middle; }
.iaef-table thead th { background: var(--a06); font-size: 12.5px; text-transform: uppercase; letter-spacing: .03em; color: var(--a80); white-space: nowrap; }
.iaef-table .num { text-align: right; font-variant-numeric: tabular-nums; white-space: nowrap; }
.iaef-table td small { display: block; color: var(--a60); font-size: 12px; }
.iaef-table tr.is-total td { font-weight: 700; background: var(--a06); }
.iaef-lines input { padding: 7px 8px; font-size: 14px; }
.iaef-lines td:first-child { min-width: 220px; }
.iaef-lines td:nth-child(2), .iaef-lines td:nth-child(4) { width: 90px; }
.iaef-lines td:nth-child(3) { width: 140px; }
.iaef-res input { padding: 6px 8px; font-size: 13.5px; min-width: 90px; }
.iaef-acts { white-space: nowrap; }
.iaef-acts > * { margin: 2px; vertical-align: middle; }
.iaef-tag { display: inline-block; margin-left: 6px; padding: 1px 8px; border-radius: 999px; background: var(--a12); font-size: 12px; font-weight: 600; }
.iaef-est { display: inline-block; padding: 3px 10px; border-radius: 999px; font-size: 12.5px; font-weight: 700; border: 1px solid var(--a); white-space: nowrap; }
.iaef-est.is-ok { background: var(--a); color: var(--w); }
.iaef-est.is-bad { border-style: dashed; }
.iaef-est.is-warn { background: var(--a06); }
.iaef-ok { font-weight: 700; }

/* Facturar */
.iaef-cli, .iaef-add { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; margin-bottom: 10px; }
.iaef-cli-sel { display: flex; flex-wrap: wrap; gap: 6px 16px; align-items: center; padding: 12px 14px; border-radius: 12px; background: var(--a06); width: 100%; }
.iaef-ret { display: flex; flex-wrap: wrap; gap: 10px; align-items: end; }
.iaef-retf { display: grid; gap: 4px; font-size: 13px; font-weight: 600; width: 160px; }
.iaef-totales { display: grid; grid-template-columns: minmax(0, 1fr); }
.iaef-tot dl { display: grid; grid-template-columns: 1fr auto; gap: 6px 24px; margin: 0 0 0 auto; max-width: 420px; font-variant-numeric: tabular-nums; }
.iaef-tot dt { color: var(--a80); }
.iaef-tot dd { margin: 0; text-align: right; }
.iaef-tot .is-total { font-family: var(--f-display, Georgia, serif); font-size: 26px; color: var(--a); border-top: 1px solid var(--a20); padding-top: 6px; }
.iaef-ref-list { display: grid; gap: 6px; max-height: 50vh; overflow: auto; margin-top: 12px; }
.iaef-ref-list button { font: inherit; display: grid; grid-template-columns: 120px 1fr auto; gap: 10px; text-align: left; padding: 10px 12px; border: 1px solid var(--a20); border-radius: 10px; background: var(--w); color: var(--a); cursor: pointer; }
.iaef-ref-list button:hover { background: var(--a06); }

/* Empresa y DIAN */
.iaef-hab { list-style: none; margin: 0; padding: 0; display: grid; gap: 10px; }
.iaef-hab li { display: grid; grid-template-columns: 34px 1fr; gap: 12px; align-items: start; padding: 12px; border-radius: 12px; border: 1px solid var(--a12); }
.iaef-hab li.is-ok { background: var(--a06); }
.iaef-hab li.is-ok .iaef-n { background: var(--a); color: var(--w); }
.iaef-hab .iaef-n { width: 30px; height: 30px; font-size: 14px; }
.iaef-hab p { margin: 4px 0 0; font-size: 14.5px; color: var(--a80); }
.iaef-hab a { color: var(--a); font-weight: 700; }
.iaef-cert { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 12px; align-items: center; margin-top: 14px; padding: 14px; border-radius: 12px; background: var(--a06); }
.iaef-cert > div { display: flex; gap: 12px; align-items: center; }
.iaef-cert p { margin: 2px 0 0; font-size: 14px; }
.iaef-cert label { cursor: pointer; }

/* Ventanas */
.iaef-modal { position: fixed; inset: 0; z-index: 100000; background: rgba(11,95,168,.35); display: flex; align-items: flex-start; justify-content: center; padding: 5vh 16px; overflow-y: auto; color: #0B5FA8; font-family: var(--f-body, system-ui, sans-serif); --a: #0B5FA8; --w: #fff; --a80: rgba(11,95,168,.8); --a60: rgba(11,95,168,.62); --a20: rgba(11,95,168,.2); --a12: rgba(11,95,168,.12); --a06: rgba(11,95,168,.06); }
.iaef-modal-box { position: relative; width: min(560px, 100%); background: var(--w); border-radius: 20px; padding: 26px 24px; box-shadow: 0 30px 80px rgba(11,95,168,.35); }
.iaef-modal.is-wide .iaef-modal-box { width: min(960px, 100%); }
.iaef-modal.is-rep .iaef-modal-box { width: min(880px, 100%); }
.iaef-modal h3 { margin: 0 0 14px; font-family: var(--f-display, Georgia, serif); font-weight: 500; font-size: 26px; }
.iaef-modal-x { position: absolute; right: 12px; top: 12px; width: 38px; height: 38px; border-radius: 50%; border: 1px solid var(--a20); background: var(--w); color: var(--a); cursor: pointer; display: inline-flex; align-items: center; justify-content: center; }
.iaef-ok-box { text-align: center; }
.iaef-big-ic { display: inline-flex; width: 64px; height: 64px; border-radius: 50%; background: var(--a); color: var(--w); align-items: center; justify-content: center; margin-bottom: 10px; }
.iaef-big-ic .iaef-ic { width: 34px; height: 34px; }
.iaef-cufe { word-break: break-all; font-size: 12px; color: var(--a60); }
.iaef-errs { text-align: left; font-size: 13.5px; }
.iaef-toast { position: fixed; right: 16px; bottom: 16px; z-index: 100001; display: flex; gap: 10px; align-items: center; max-width: min(440px, calc(100vw - 32px)); padding: 12px 16px; border-radius: 12px; background: #0B5FA8; color: #fff; box-shadow: 0 14px 40px rgba(11,95,168,.35); font: 600 15px var(--f-body, system-ui, sans-serif); transition: opacity .35s, transform .35s; }
.iaef-toast.is-error { background: #fff; color: #0B5FA8; border: 2px solid #0B5FA8; }
.iaef-toast.is-out { opacity: 0; transform: translateY(10px); }
.iaef-toast .iaef-ic { width: 20px; height: 20px; fill: none; stroke: currentColor; stroke-width: 2; }

/* Bienvenida */
.iaef-welcome { max-width: 860px; margin: 0 auto; padding: 32px 24px; background: var(--w); border: 1px solid var(--a20); border-radius: 20px; text-align: center; }
.iaef-welcome h2 { font-family: var(--f-display, Georgia, serif); font-weight: 500; font-size: clamp(28px, 3vw, 38px); margin: 6px 0 10px; }
.iaef-welcome .iaef-form { text-align: left; margin-top: 18px; }

/* Representación gráfica */
.iaef-rep-tools { display: flex; flex-wrap: wrap; gap: 8px; margin: 0 40px 16px 0; }
.iaef-rep { color: var(--a); font-size: 13px; }
.iaef-rep-test { text-align: center; font-weight: 700; letter-spacing: .06em; border: 1.5px dashed var(--a); border-radius: 8px; padding: 6px; }
.iaef-rep-h { display: flex; justify-content: space-between; gap: 16px; align-items: flex-start; border-bottom: 2px solid var(--a); padding-bottom: 12px; }
.iaef-rep-h h2 { margin: 0 0 4px; font-size: 20px; }
.iaef-rep-h p { margin: 0; line-height: 1.5; }
.iaef-rep-n { background: var(--a); color: var(--w); border-radius: 12px; padding: 12px 16px; text-align: center; min-width: 200px; display: grid; gap: 2px; }
.iaef-rep-n span { font-size: 11px; text-transform: uppercase; letter-spacing: .05em; }
.iaef-rep-n b { font-size: 22px; }
.iaef-rep-c { display: grid; grid-template-columns: 1fr 1fr 168px; gap: 16px; padding: 12px 0; }
.iaef-rep-c h4 { margin: 0 0 4px; font-size: 11px; text-transform: uppercase; letter-spacing: .06em; }
.iaef-rep-c p { margin: 0; line-height: 1.5; }
.iaef-rep-qr svg { width: 168px; height: 168px; display: block; } /* 1.1.1: antes 110 px, unos 1,4 px por módulo en pantalla: no se podía leer */
.iaef-rep-qr svg rect { fill: #fff; }
.iaef-rep-qr svg path { fill: #0B5FA8; }
.iaef-rep-t { width: 100%; border-collapse: collapse; }
.iaef-rep-t th, .iaef-rep-t td { padding: 6px 8px; border-bottom: 1px solid var(--a12); text-align: left; }
.iaef-rep-t thead th { background: var(--a06); font-size: 11px; text-transform: uppercase; }
.iaef-rep-t .num { text-align: right; white-space: nowrap; }
.iaef-rep-f { display: grid; grid-template-columns: 1fr 280px; gap: 20px; padding-top: 12px; }
.iaef-rep-notes p { margin: 0 0 6px; }
.iaef-rep-res { font-size: 11.5px; }
.iaef-rep-tot { display: grid; grid-template-columns: 1fr auto; gap: 4px 14px; margin: 0; }
.iaef-rep-tot dd { margin: 0; text-align: right; }
.iaef-rep-tot .is-total { font-size: 18px; font-weight: 700; border-top: 1px solid var(--a); padding-top: 4px; }
.iaef-rep-pie { border-top: 1px solid var(--a20); margin-top: 12px; padding-top: 8px; font-size: 11px; overflow-wrap: anywhere; }
.iaef-rep-pie .mono { word-break: break-all; }
@media print {
	body.iaef-printing * { visibility: hidden; }
	body.iaef-printing .iaef-rep, body.iaef-printing .iaef-rep * { visibility: visible; }
	body.iaef-printing .iaef-rep { position: absolute; left: 0; top: 0; width: 100%; }
	body.iaef-printing .iaef-modal { position: static; background: none; padding: 0; }
}

@media (max-width: 1000px) { .iaef-kpis { grid-template-columns: repeat(2, minmax(0, 1fr)); } .iaef-ruta { grid-template-columns: repeat(2, minmax(0, 1fr)); } .iaef-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } .iaef-grid2 { grid-template-columns: minmax(0, 1fr); } }
@media (max-width: 600px) {
	.iaef-top { border-radius: 14px 14px 0 0; padding: 14px; }
	.iaef-main { padding: 18px 12px 24px; }
	.iaef-grid, .iaef-ruta { grid-template-columns: minmax(0, 1fr); }
	.iaef-nav button span:not(.iaef-n) { display: none; }
	.iaef-nav button[aria-current="page"] span:not(.iaef-n) { display: inline; }
	.iaef-kpi b { font-size: 22px; }
	.iaef-hb { grid-template-columns: minmax(0, 1fr) 70px; }
	.iaef-hb-v { grid-column: 1 / -1; }
	.iaef-rep-h, .iaef-rep-f { display: block; }
	.iaef-rep-c { grid-template-columns: 1fr; }
	.iaef-modal-box { padding: 22px 16px; }
	.iaef-retf { width: calc(50% - 6px); }
}
@media (prefers-reduced-motion: reduce) { .iaef *, .iaef-toast { transition: none !important; animation: none !important; } }

.iaef-peligro { border-color: rgba(180, 35, 24, .25); }
.iaef-btn.ghost.danger { color: #B42318; border-color: rgba(180, 35, 24, .35); }
.iaef-btn.ghost.danger:hover { background: rgba(180, 35, 24, .08); }

/* 1.1.0: avisos de estado, corrección, pagos y textos de ayuda */
.iaef-aviso { display: flex; gap: 10px; align-items: flex-start; margin: 0 0 16px; padding: 12px 14px; border-radius: 12px; border: 1px solid var(--a20); background: var(--w); color: var(--a); font-size: 14px; line-height: 1.45; }
.iaef-aviso .iaef-ic { flex: 0 0 auto; margin-top: 1px; }
.iaef-lbl { display: block; font-size: 13.5px; font-weight: 600; color: var(--a80); }
.iaef-dato { margin: 6px 0 4px; font-weight: 700; color: var(--a); }
.iaef-estado-doc { display: grid; gap: 6px; margin: 0 0 12px; padding: 12px 14px; border-radius: 12px; background: var(--a06); border: 1px solid var(--a20); }
.iaef-estado-doc p { margin: 0; font-size: 14px; }
.iaef-estado-doc .iaef-est { justify-self: start; }
.iaef-table .iaef-est { white-space: normal; max-width: 220px; line-height: 1.3; }
.iaef-table tr.is-anulado td { opacity: .6; }
.iaef-table td small { display: block; }
.iaef-err .iaef-btn { margin-top: 8px; }
.iaef-form h4 { margin: 18px 0 8px; font-size: 16px; color: var(--a); }
.iaef-modal .iaef-table-wrap { margin: 8px 0 12px; }
.iaef-tag.is-alerta { background: var(--w); border: 1.5px solid var(--a); cursor: help; white-space: nowrap; margin: 4px 0 0; }
@media (max-width: 600px) {
	.iaef-rep-tools { display: grid; grid-template-columns: 1fr; gap: 8px; }
	.iaef-rep-tools .iaef-btn { justify-content: center; white-space: normal; }
	/* En el celular cada línea de la factura se lee como una tarjeta: descripción arriba y valores con su nombre. */
	.iaef-rep-t, .iaef-rep-t tbody { display: block; width: 100%; }
	.iaef-rep-t thead { display: none; }
	.iaef-rep-t tr { display: grid; grid-template-columns: minmax(0, 1fr); gap: 2px; padding: 10px 0; border-bottom: 1px solid var(--a12); }
	.iaef-rep-t td { display: block; padding: 0; border: 0; min-width: 0; overflow-wrap: anywhere; }
	.iaef-rep-t td.c-n { display: none; }
	.iaef-rep-t td.c-desc { order: -2; font-weight: 700; font-size: 14px; }
	.iaef-rep-t td.c-cod { order: -1; font-size: 12px; color: var(--a80); }
	.iaef-rep-t td.c-cod:empty, .iaef-rep-t td.num:empty { display: none; }
	.iaef-rep-t td.num { display: flex; justify-content: space-between; gap: 12px; white-space: normal; text-align: right; }
	.iaef-rep-t td.num::before { content: attr(data-t); text-align: left; color: var(--a80); }
	.iaef-rep-t td.c-tot { font-weight: 700; }
}

/* 1.1.1: en el celular, la lista de documentos y las líneas de la factura se leen como tarjetas (antes eran tablas que había
   que desplazar de lado para ver el total, el estado y los botones de cada documento). */
@media (max-width: 600px) {
	.iaef-docs, .iaef-docs tbody, .iaef-lines, .iaef-lines tbody { display: block; width: 100%; }
	.iaef-docs thead, .iaef-lines thead { display: none; }
	.iaef-docs tr { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 4px 12px; padding: 12px; border-bottom: 1px solid var(--a12); }
	.iaef-docs td, .iaef-lines td { display: block; padding: 0; border: 0; min-width: 0; text-align: left; white-space: normal; }
	.iaef-docs td.c-cli { grid-column: 1 / -1; font-weight: 600; }
	.iaef-docs td.num { text-align: left; }
	.iaef-docs td[data-t]::before, .iaef-lines td[data-t]::before { content: attr(data-t); display: block; font-size: 11.5px; color: var(--a80); text-transform: uppercase; letter-spacing: .03em; }
	.iaef-docs td.c-est, .iaef-docs td.iaef-acts { grid-column: 1 / -1; }
	.iaef-docs td.iaef-acts { white-space: normal; display: flex; flex-wrap: wrap; gap: 6px; }
	.iaef-docs td.iaef-acts > * { margin: 0; }
	.iaef-lines tr { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px 10px; padding: 12px; border-bottom: 1px solid var(--a12); }
	.iaef-lines td:first-child { grid-column: 1 / -1; min-width: 0; }
	.iaef-lines td:nth-child(2), .iaef-lines td:nth-child(3), .iaef-lines td:nth-child(4) { width: auto; }
	.iaef-lines td input, .iaef-lines td select { width: 100%; }
	.iaef-lines td.c-tot, .iaef-lines td.num { align-self: end; font-weight: 700; font-size: 15px; text-align: left; }
	.iaef-lines td.c-quitar { display: flex; justify-content: flex-end; align-items: end; }
}

/* 1.2.0: importar, buscar por NIT, precio con IVA, cuadre, cotizaciones y logo */
.iaef-head-r { flex-wrap: wrap; }
.iaef-seg.is-wrap { flex-wrap: wrap; border-radius: 18px; max-width: 100%; }
.iaef-seg.is-wrap button { min-height: 32px; }
.iaef-link { min-height: 24px; }
.iaef-file:focus-within, .iaef-mini:focus-within { outline: 3px solid var(--a20); outline-offset: 2px; }
.iaef-mini { display: inline-flex; align-items: center; gap: 6px; min-height: 28px; margin-top: 4px; font-size: 12.5px; font-weight: 600; color: var(--a80); cursor: pointer; white-space: nowrap; }
.iaef-mini input { width: 18px; height: 18px; accent-color: #0B5FA8; margin: 0; }
.iaef-desc { display: flex; gap: 4px; align-items: center; }
.iaef-desc input { flex: 1; min-width: 0; }
.iaef-table .iaef-desc select { width: 56px; flex: none; padding: 7px 4px; }
.iaef-lines td:nth-child(4) { width: 150px; }
.iaef-lines td.c-tot small { display: block; font-weight: 400; color: var(--a60); }
.iaef-cuadre-card h3 .iaef-ic { width: 20px; height: 20px; }
.iaef-opc { display: flex; flex-wrap: wrap; gap: 8px 24px; align-items: end; margin-bottom: 10px; }
.iaef-opc .iaef-f { min-width: 220px; }
.iaef-cuadre-t th { text-align: left; font-weight: 600; white-space: nowrap; color: var(--a80); }
.iaef-cuadre-t td { white-space: normal; }
.iaef-q { display: inline-flex; align-items: center; gap: 4px; margin-left: 4px; padding: 1px 8px; border-radius: 999px; font-size: 12px; font-weight: 700; border: 1px solid var(--a); }
.iaef-q .iaef-ic { width: 14px; height: 14px; }
.iaef-q.is-ok { background: var(--a); color: var(--w); }
.iaef-q.is-bad { border-style: dashed; background: var(--w); }
.iaef-cli-nit { display: flex; flex-wrap: wrap; gap: 8px 12px; align-items: center; width: 100%; padding: 10px 12px; border-radius: 12px; border: 1.5px dashed var(--a); background: var(--w); font-size: 14px; }
.iaef-buscar-nit { display: grid; gap: 8px; }
.iaef-buscar-fila { display: flex; flex-wrap: wrap; gap: 6px 12px; align-items: center; }
.iaef-hallazgo { padding: 12px 14px; border-radius: 12px; background: var(--a06); border: 1px solid var(--a20); font-size: 14px; }
.iaef-hallazgo p { margin: 0 0 6px; }
.iaef-hallazgo ul { margin: 0 0 6px; padding-left: 18px; display: grid; gap: 4px; }
.iaef-hallazgo small, .iaef-fuente { display: block; color: var(--a60); font-size: 12px; }
.iaef-fuente { font-weight: 600; }
.iaef-leyenda, .iaef-rep-leyenda { margin: 0 0 8px; padding: 8px 12px; border: 1.5px solid var(--a); border-radius: 10px; font-weight: 700; text-align: center; }
.iaef-card.is-cot { border-style: dashed; border-color: var(--a); }
.iaef-aviso.is-cot { border-color: var(--a); }
.iaef-docs tr.is-cot td:first-child b { font-style: italic; }
.iaef-rep-em { display: flex; gap: 14px; align-items: flex-start; min-width: 0; }
.iaef-rep-logo { max-width: 150px; max-height: 76px; width: auto; height: auto; object-fit: contain; flex: none; }
.iaef-rep-leyenda { margin: 10px 0 0; }
.iaef-rep.is-cot .iaef-rep-c { grid-template-columns: 1fr 1fr; }
.iaef-rep-t td.c-desc small { display: block; font-size: 11px; color: var(--a80); }
.iaef-logo-box { display: flex; flex-wrap: wrap; gap: 12px 20px; align-items: center; justify-content: space-between; }
.iaef-logo-prev { max-width: 220px; max-height: 90px; object-fit: contain; padding: 8px; border: 1px dashed var(--a20); border-radius: 10px; background: var(--w); }
.iaef-logo-box .iaef-actions { margin-top: 0; }
.iaef-drop { display: flex; flex-wrap: wrap; gap: 10px 16px; align-items: center; padding: 18px; margin: 12px 0; border: 1.5px dashed var(--a); border-radius: 14px; background: var(--a06); }
.iaef-map { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px 14px; }
.iaef-map select { font: inherit; font-size: 14px; width: 100%; min-width: 0; padding: 8px 10px; border: 1.5px solid var(--a20); border-radius: 10px; background: var(--w); color: var(--a); }
.iaef-radios { display: grid; gap: 2px; }
.iaef-radios input { width: 18px; height: 18px; accent-color: #0B5FA8; }
.iaef-chip.is-ok { background: var(--a); color: var(--w); border-color: var(--a); }
.iaef-chip.is-bad { border: 1.5px dashed var(--a); font-weight: 700; }
.iaef-imp .iaef-chips { margin: 8px 0 12px; }
.iaef-prev { max-height: 52vh; overflow: auto; }
.iaef-prev td small { max-width: 360px; }
.iaef-prev tr.is-error td { background: var(--a06); }
.iaef-prog { height: 12px; border-radius: 6px; background: var(--a12); overflow: hidden; }
.iaef-prog i { display: block; height: 100%; background: var(--a); transition: width .3s; }
@media (max-width: 1000px) { .iaef-map { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 600px) {
	.iaef-head-r { width: 100%; }
	.iaef-map { grid-template-columns: minmax(0, 1fr); }
	.iaef-opc .iaef-f { min-width: 0; width: 100%; }
	.iaef-cuadre-t, .iaef-cuadre-t tbody { display: block; width: 100%; }
	.iaef-cuadre-t tr { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 2px 10px; padding: 8px 10px; border-bottom: 1px solid var(--a06); }
	.iaef-cuadre-t th, .iaef-cuadre-t td { padding: 0; border: 0; white-space: normal; }
	.iaef-cuadre-t td:last-child { grid-column: 1 / -1; font-size: 13px; }
	.iaef-rep-em { flex-direction: column; gap: 8px; }
	.iaef-rep-logo { max-width: 140px; max-height: 64px; }
	.iaef-rep.is-cot .iaef-rep-c { grid-template-columns: 1fr; }
	.iaef-lines td:nth-child(4) { width: auto; }
	.iaef-ref-list button { grid-template-columns: minmax(0, 1fr); }
}
.iaef-nw { white-space: nowrap; }
@media (max-width: 600px) {
	.iaef-cuadre-t tr.is-total { background: var(--a06); }
	.iaef-cuadre-t tr.is-total td, .iaef-cuadre-t tr.is-total th { background: none; }
}

/* 1.2.1: leer el RUT en PDF (cliente y empresa) y datos nuevos de SECOP II */
.iaef-rut { display: grid; gap: 8px; margin: 0 0 14px; padding: 12px 14px; border: 1.5px dashed var(--a20); border-radius: 14px; background: var(--w); min-width: 0; }
.iaef-rut .iaef-file { min-height: 36px; }
.iaef-rut-nota { display: flex; gap: 8px; align-items: flex-start; margin: 0; }
.iaef-rut-nota .iaef-ic { width: 16px; height: 16px; margin-top: 1px; }
.iaef-rut-alerta { display: flex; gap: 8px; align-items: flex-start; margin: 6px 0; padding: 8px 10px; border-radius: 10px; border: 1.5px solid var(--a); background: var(--w); color: var(--a); font-size: 13.5px; font-weight: 600; line-height: 1.4; }
.iaef-rut-alerta .iaef-ic { width: 18px; height: 18px; margin-top: 1px; }
.iaef-rut-rev { padding: 12px 14px; border-radius: 12px; background: var(--a06); border: 1px solid var(--a20); font-size: 14px; min-width: 0; }
.iaef-rut-rev > p { margin: 0 0 6px; }
.iaef-rut-rev ul { list-style: none; margin: 8px 0; padding: 0; display: grid; gap: 0; }
.iaef-rut-rev li { display: grid; grid-template-columns: minmax(0, 12em) minmax(0, 1fr) auto; gap: 2px 12px; align-items: baseline; padding: 7px 0; border-bottom: 1px solid var(--a12); }
.iaef-rut-rev li > span { color: var(--a80); font-size: 13px; }
.iaef-rut-rev li > b { overflow-wrap: anywhere; }
.iaef-rut-cas { font-family: var(--f-mono, ui-monospace, monospace); font-size: 11.5px; white-space: nowrap; padding: 1px 8px; border-radius: 999px; background: var(--a12); color: var(--a); }
.iaef-rut-rev .iaef-actions { margin-top: 10px; }
.iaef-rut-clave { display: grid; gap: 6px; }
.iaef-rut-clave input { font: inherit; font-size: 15px; flex: 1 1 180px; min-width: 0; padding: 8px 11px; border: 1.5px solid var(--a20); border-radius: 10px; background: var(--w); color: var(--a); }
.iaef-rut-clave input:focus { outline: none; border-color: var(--a); box-shadow: 0 0 0 3px var(--a12); }
/* Las casillas de las responsabilidades heredaban el ancho de 100 % de los campos del formulario y se veían estiradas. */
.iaef-f .iaef-chip input { width: 18px; height: 18px; min-width: 18px; padding: 0; margin: 0; flex: none; }
@media (max-width: 600px) {
	.iaef-rut { padding: 10px 12px; }
	.iaef-rut .iaef-file { white-space: normal; text-align: left; }
	.iaef-rut-rev li { grid-template-columns: minmax(0, 1fr) auto; }
	.iaef-rut-rev li > b { grid-column: 1 / -1; grid-row: 2; }
	.iaef-rut-rev .iaef-actions .iaef-btn { flex: 1 1 auto; justify-content: center; }
}

/* ---------- 1.3.0 ---------- */
/* Ayudas "?" (mismo patrón de las demás aplicaciones de IA Empresarial), con área táctil de 24 px o más. */
.iaef-ayuda { display: inline-flex; align-items: center; justify-content: center; width: 24px; height: 24px; min-width: 24px; border-radius: 50%; border: 1.5px solid var(--a60); background: var(--w); color: var(--a); font: 700 13px/1 var(--f-body, system-ui, sans-serif); cursor: pointer; padding: 0; margin-left: 6px; vertical-align: middle; flex: none; }
.iaef-ayuda:hover { background: var(--a06); border-color: var(--a); }
.iaef-ayuda:focus-visible, .iaef-btn:focus-visible, .iaef-link:focus-visible, .iaef-alert:focus-visible { outline: 3px solid var(--a); outline-offset: 2px; }
.iaef-top .iaef-ayuda { border-color: rgba(255,255,255,.7); }
.iaef-lbl-row { display: flex; align-items: center; gap: 2px; flex-wrap: wrap; }
.iaef-lbl-row .iaef-check { flex: 0 1 auto; }
.iaef-head h2 .iaef-ayuda { width: 26px; height: 26px; font-size: 14px; }
.iaef-modal.is-ayuda .iaef-modal-box { width: min(520px, 100%); }
.iaef-ayuda-txt { font-size: 16.5px; line-height: 1.55; margin: 0 0 6px; }
.iaef-h4 { margin: 18px 0 6px; font-size: 16px; display: flex; align-items: center; }
.iaef-glosario { list-style: none; margin: 8px 0 0; padding: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 6px 14px; }
.iaef-glosario .iaef-link { text-align: left; min-height: 32px; }
.iaef-actions.is-left { justify-content: flex-start; }
.iaef-btn[aria-pressed="true"] { background: var(--a); color: var(--w); }
.iaef-btn.xs { font-size: 13px; padding: 5px 12px; }
.iaef-video { display: block; width: 100%; aspect-ratio: 16 / 9; border-radius: 12px; overflow: hidden; background: var(--a12); }
.iaef-video iframe { width: 100%; height: 100%; border: 0; }
.iaef-cufe-l { word-break: break-all; font-size: 12.5px; color: var(--a80); display: flex; flex-wrap: wrap; align-items: center; gap: 4px; }
.iaef-cufe-l .mono, .iaef-cufe .mono { color: var(--a60); }
/* Rechazos explicados */
.iaef-expl { list-style: none; margin: 10px 0; padding: 0; display: grid; gap: 10px; text-align: left; }
.iaef-expl li { border: 1.5px dashed var(--a); border-radius: 12px; padding: 10px 12px; background: var(--w); }
.iaef-expl li.is-aviso { border-style: solid; border-color: var(--a20); }
.iaef-expl p { margin: 4px 0; font-size: 14.5px; line-height: 1.45; }
.iaef-expl small { display: block; margin: 6px 0; font-size: 12.5px; color: var(--a60); word-break: break-word; }
/* Revisión de la habilitación */
.iaef-rev { list-style: none; margin: 8px 0 0; padding: 0; display: grid; gap: 8px; }
.iaef-rev li { display: flex; gap: 10px; align-items: flex-start; padding: 10px 12px; border-radius: 12px; border: 1px solid var(--a20); background: var(--w); }
.iaef-rev li p { margin: 2px 0 0; font-size: 14px; line-height: 1.45; color: var(--a80); }
.iaef-rev li.is-error { border: 2px dashed var(--a); }
.iaef-rev li.is-aviso { border: 1.5px solid var(--a); background: var(--a06); }
.iaef-rev li.is-ok .iaef-ic { background: var(--a); color: var(--w); border-radius: 50%; padding: 2px; }
.iaef-rev-res { font-weight: 700; margin: 0 0 6px; }
/* Eventos de la factura (RADIAN) */
.iaef-eventos { margin: 12px 0; padding: 12px 14px; border: 1px solid var(--a20); border-radius: 14px; background: var(--w); }
.iaef-eventos .iaef-h4 { margin-top: 0; }
.iaef-ev { margin: 6px 0; padding-left: 20px; display: grid; gap: 6px; }
.iaef-ev p { margin: 2px 0; font-size: 14px; }
.iaef-ev li.is-bad b { text-decoration: underline dashed; }
/* Armar la factura con la voz o con un texto */
.iaef-voz textarea { font: inherit; width: 100%; padding: 10px 12px; border-radius: 12px; border: 1.5px solid var(--a20); color: var(--a); background: var(--w); resize: vertical; min-height: 64px; }
.iaef-voz textarea:focus { outline: 3px solid var(--a20); border-color: var(--a); }
.iaef-prop { margin-top: 12px; padding: 12px 14px; border-radius: 14px; border: 1.5px solid var(--a); background: var(--a06); }
.iaef-prop.is-ia { border-style: dashed; }
.iaef-prop-h { margin: 0 0 8px; }
.iaef-prop-av { margin: 8px 0; padding-left: 18px; font-size: 14px; line-height: 1.45; }
.iaef-aviso.is-finanzas { border-color: var(--a); }
@media (max-width: 600px) {
	.iaef-glosario { grid-template-columns: minmax(0, 1fr); }
	/* La propuesta, en tarjetas: cantidad, precio e IVA a la vista sin desplazar de lado. */
	.iaef-prop-t, .iaef-prop-t tbody { display: block; width: 100%; }
	.iaef-prop-t thead { display: none; }
	.iaef-prop-t tr { display: grid; grid-template-columns: minmax(76px, 1fr) minmax(0, 1.4fr) minmax(0, .8fr); gap: 4px 10px; padding: 10px 12px; border-bottom: 1px solid var(--a12); }
	.iaef-prop .iaef-prop-t td, .iaef-prop .iaef-prop-t td.num { display: block; padding: 0; border: 0; min-width: 0; text-align: left; white-space: normal; overflow-wrap: anywhere; }
	.iaef-prop-t td.c-desc { grid-column: 1 / -1; font-weight: 600; }
	.iaef-prop-t td[data-t]::before { content: attr(data-t); display: block; font-size: 11.5px; color: var(--a80); text-transform: uppercase; letter-spacing: .03em; white-space: nowrap; overflow-wrap: normal; }
}
