/* Boket Motor — estilos PLATA / CRECIMIENTO / TALLER
   Cargado después de modules.css. Reusa tokens + base de tablas. */

/* ===== base de tabla compartida para los módulos nuevos ===== */
.caja-table, .fact-table, .comis-table, .mkt-table { width: 100%; font-size: 12.5px; }
.caja-table .row, .fact-table .row, .comis-table .row, .mkt-table .row {
  display: grid; gap: 12px; padding: 11px 18px; align-items: center;
  border-bottom: 0.5px solid var(--line); transition: background .1s;
}
.caja-table .row:last-child, .fact-table .row:last-child, .comis-table .row:last-child, .mkt-table .row:last-child { border-bottom: 0; }
.fact-table .row:not(.head), .comis-table .row:not(.head), .mkt-table .reminder .row:not(.head) { cursor: pointer; }
.fact-table .row:not(.head):hover, .comis-table .row:not(.head):hover, .mkt-table .row:not(.head):hover, .caja-table .row:not(.head):hover { background: var(--bg-soft); }
.caja-table .head, .fact-table .head, .comis-table .head, .mkt-table .head {
  font-family: var(--ff-mono); font-size: 9.5px; color: var(--ink-3); letter-spacing: 0.08em;
  background: var(--bg-soft); padding: 9px 18px; border-bottom: 0.5px solid var(--line);
}
.amt { font-family: var(--ff-mono); font-size: 12px; text-align: right; }
.amt.ingreso { color: var(--st-ready); }
.amt.egreso { color: var(--st-repair); }
.nmx b { font-weight: 500; }
.nmx small { display: block; font-family: var(--ff-mono); font-size: 10.5px; color: var(--ink-3); letter-spacing: 0.03em; margin-top: 1px; }
.num2 { font-family: var(--ff-mono); font-size: 12px; text-align: center; color: var(--ink-2); }

/* ===================== CAJA ===================== */
.caja-table .head, .caja-table .row { grid-template-columns: 92px 1.7fr 130px 130px; }
.caja-table .hr { font-family: var(--ff-mono); font-size: 11px; color: var(--ink-2); }
.caja-table .cpt b { font-weight: 500; }
.caja-table .cpt small { display: block; font-family: var(--ff-mono); font-size: 10px; color: var(--ink-3); margin-top: 1px; }
.pay-pill { font-family: var(--ff-mono); font-size: 9.5px; letter-spacing: 0.04em; padding: 3px 9px; border-radius: 999px; color: var(--pc); background: color-mix(in srgb, var(--pc) 12%, transparent); }
.pay-breakdown { display: flex; flex-direction: column; gap: 13px; }
.pay-row { display: grid; grid-template-columns: 12px 96px 1fr auto; gap: 10px; align-items: center; }
.pay-row .dot { width: 9px; height: 9px; border-radius: 50%; }
.pay-row .pl { font-size: 12px; color: var(--ink-2); }
.pay-row .bar { height: 7px; border-radius: 999px; background: var(--card-2); overflow: hidden; }
.pay-row .bar span { display: block; height: 100%; border-radius: 999px; }
.pay-row .pv { font-family: var(--ff-mono); font-size: 11.5px; min-width: 78px; text-align: right; }
.arqueo-res { display: flex; align-items: center; justify-content: space-between; padding: 12px 14px; border-radius: 10px; margin-top: 12px; }
.arqueo-res.ok { background: rgba(47,107,58,0.1); border: 0.5px solid rgba(47,107,58,0.25); }
.arqueo-res.over { background: rgba(45,95,184,0.1); border: 0.5px solid rgba(45,95,184,0.25); }
.arqueo-res.short { background: rgba(199,90,61,0.1); border: 0.5px solid rgba(199,90,61,0.25); }
.arqueo-res .l { font-size: 12.5px; font-weight: 500; }
.arqueo-res .v { font-family: var(--ff-mono); font-size: 16px; font-weight: 600; }

/* ===================== FACTURACIÓN DIAN ===================== */
.fact-table .head, .fact-table .row { grid-template-columns: 104px 1.5fr 92px 96px 100px 104px 110px; }
.fact-table .num { font-family: var(--ff-mono); font-size: 11px; color: var(--ink-2); }
.fact-table .cli b { font-weight: 500; }
.fact-table .cli small { display: block; font-family: var(--ff-mono); font-size: 9.5px; color: var(--ink-3); margin-top: 1px; }
.fact-table .org { font-family: var(--ff-mono); font-size: 10.5px; color: var(--ink-2); }
.fact-table .fch, .fact-table .met { font-size: 11.5px; color: var(--ink-2); }
.dian-res .pb { padding: 16px 18px; }
.dian-num { display: flex; flex-direction: column; }
.dian-num b { font-family: var(--ff-mono); font-size: 22px; font-weight: 600; letter-spacing: -0.01em; }
.dian-num span { font-family: var(--ff-mono); font-size: 9.5px; color: var(--ink-3); letter-spacing: 0.05em; margin-top: 2px; }
.dian-bar { height: 8px; border-radius: 999px; background: var(--card-2); overflow: hidden; margin-top: 14px; }
.dian-bar span { display: block; height: 100%; background: var(--motor); border-radius: 999px; }
.dian-meta { display: flex; justify-content: space-between; margin-top: 8px; font-family: var(--ff-mono); font-size: 10px; color: var(--ink-3); }
.dian-meta .warn { color: var(--st-repair); font-weight: 600; }
.dian-vence { margin-top: 14px; padding-top: 12px; border-top: 0.5px solid var(--line); font-size: 12px; color: var(--ink-2); }

/* ===================== COMISIONES ===================== */
.comis-table .head, .comis-table .row { grid-template-columns: 1.8fr 50px 96px 50px 1.3fr 96px; }
.comis-table .who { display: flex; align-items: center; gap: 9px; }
.comis-table .who .rk { font-family: var(--ff-mono); font-size: 11px; color: var(--ink-3); width: 14px; }
.comis-table .who .av { width: 28px; height: 28px; border-radius: 50%; background: var(--motor-soft); color: var(--motor-2); font-family: var(--ff-mono); font-size: 10px; font-weight: 600; display: flex; align-items: center; justify-content: center; flex-shrink: 0; }
.comis-table .who .av.mec { background: rgba(199,90,61,0.12); color: var(--st-repair); }
.comis-table .who .nmx b { font-weight: 500; }
.comis-table .osn, .comis-table .pctx { font-family: var(--ff-mono); font-size: 12px; text-align: center; color: var(--ink-2); }
.comis-table .base { font-family: var(--ff-mono); font-size: 11.5px; color: var(--ink-2); }
.comis-table .comx { display: flex; align-items: center; gap: 8px; font-family: var(--ff-mono); font-size: 11.5px; }
.comis-table .comx .bar { flex: 1; max-width: 90px; height: 6px; border-radius: 999px; background: var(--card-2); overflow: hidden; }
.comis-table .comx .bar span { display: block; height: 100%; background: var(--motor); border-radius: 999px; }
.comis-table .estx { text-align: right; }
.pay-btn { font-family: var(--ff-mono); font-size: 10px; letter-spacing: 0.05em; padding: 5px 11px; border-radius: 6px; background: var(--motor); color: #fff; }
.pay-btn:hover { background: var(--motor-2); }
.reglas { display: flex; flex-direction: column; gap: 10px; }
.regla { background: var(--bg-soft); border: 0.5px solid var(--line); border-radius: 9px; padding: 12px 14px; }
.regla .rh { display: flex; align-items: center; justify-content: space-between; }
.regla .rh b { font-size: 13px; font-weight: 600; }
.regla .rh .pc { font-family: var(--ff-mono); font-size: 15px; font-weight: 600; color: var(--motor); }
.regla .rb { font-size: 11.5px; color: var(--ink-2); margin-top: 3px; }
.regla-note { margin-top: 14px; font-size: 11.5px; color: var(--ink-3); line-height: 1.5; padding: 11px 13px; background: var(--bg-soft); border-radius: 8px; border-left: 2px solid var(--line-2); }

/* ===================== CONTABILIDAD ===================== */
.pyg { padding: 4px 4px 8px; }
.pyg-grp { margin-bottom: 4px; }
.pyg-grp .gh { font-family: var(--ff-mono); font-size: 9.5px; letter-spacing: 0.07em; color: var(--ink-3); text-transform: uppercase; padding: 12px 14px 6px; }
.pyg-line { display: flex; align-items: center; justify-content: space-between; padding: 7px 14px; font-size: 12.5px; }
.pyg-line .l { color: var(--ink-2); }
.pyg-line .v { font-family: var(--ff-mono); font-size: 12px; }
.pyg-line.tot { border-top: 0.5px solid var(--line); margin-top: 4px; padding-top: 11px; font-weight: 500; }
.pyg-line.tot .l { color: var(--ink); font-weight: 500; }
.pyg-line.strong { background: var(--bg-soft); }
.pyg-line.net { background: var(--ink); color: #f4f3ef; border-radius: 10px; margin: 8px 6px 0; padding: 14px; }
.pyg-line.net .l { color: #f4f3ef; font-weight: 600; }
.pyg-line.net .v { color: var(--citron); font-size: 16px; font-weight: 600; }
.donut-legend { display: flex; flex-direction: column; gap: 12px; }
.dl-row { display: grid; grid-template-columns: 12px 1.3fr 1fr 36px; gap: 10px; align-items: center; }
.dl-row .dot { width: 9px; height: 9px; border-radius: 50%; }
.dl-row .n { font-size: 11.5px; color: var(--ink-2); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.dl-row .bar { height: 7px; border-radius: 999px; background: var(--card-2); overflow: hidden; }
.dl-row .bar span { display: block; height: 100%; border-radius: 999px; }
.dl-row .pc { font-family: var(--ff-mono); font-size: 11px; text-align: right; color: var(--ink-2); }
.margen-box { margin-top: 16px; padding-top: 14px; border-top: 0.5px solid var(--line); display: flex; flex-direction: column; gap: 9px; }
.margen-box .mb { display: flex; align-items: center; justify-content: space-between; font-size: 12px; }
.margen-box .mb .l { color: var(--ink-2); }
.margen-box .mb .v { font-family: var(--ff-mono); font-size: 13px; font-weight: 500; }
.margen-box .mb .v.hl { color: var(--motor); font-size: 17px; font-weight: 600; }

/* ===================== MARKETING ===================== */
.mkt-table .head, .mkt-table .row { grid-template-columns: 1.7fr 100px 84px 56px 56px 96px 92px 86px; }
.mkt-table.reminder .head, .mkt-table.reminder .row { grid-template-columns: 1.4fr 92px 1fr 110px 110px 100px; }
.canal-pill { font-family: var(--ff-mono); font-size: 9.5px; letter-spacing: 0.04em; padding: 3px 9px; border-radius: 999px; color: var(--cc); background: color-mix(in srgb, var(--cc) 13%, transparent); }
.mkt-table .conv { display: flex; align-items: center; gap: 7px; font-family: var(--ff-mono); font-size: 11px; color: var(--ink-2); }
.mkt-table .conv .bar { flex: 1; max-width: 56px; height: 6px; border-radius: 999px; background: var(--card-2); overflow: hidden; }
.mkt-table .conv .bar span { display: block; height: 100%; background: var(--motor); border-radius: 999px; }
.mkt-table .estx { text-align: right; }
.mkt-table .cli { display: flex; align-items: center; gap: 9px; }
.mkt-table .cli .av { width: 26px; height: 26px; border-radius: 50%; background: var(--motor-soft); color: var(--motor-2); font-family: var(--ff-mono); font-size: 9.5px; font-weight: 600; display: flex; align-items: center; justify-content: center; flex-shrink: 0; }
.mkt-table .cuando { font-family: var(--ff-mono); font-size: 11px; color: var(--ink-2); }
.mkt-table .cuando.warn { color: #8a6a08; }
.mkt-table .cuando.crit { color: var(--st-repair); font-weight: 600; }
.send-btn { font-family: var(--ff-mono); font-size: 10px; letter-spacing: 0.05em; padding: 5px 11px; border-radius: 6px; background: var(--motor); color: #fff; }
.send-btn:hover { background: var(--motor-2); }
.src-list { display: flex; flex-direction: column; gap: 12px; }
.src-row { display: grid; grid-template-columns: 1.2fr 1fr 32px; gap: 10px; align-items: center; }
.src-row .n { font-size: 11.5px; color: var(--ink-2); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.src-row .bar { height: 7px; border-radius: 999px; background: var(--card-2); overflow: hidden; }
.src-row .bar span { display: block; height: 100%; background: var(--motor); border-radius: 999px; }
.src-row .v { font-family: var(--ff-mono); font-size: 12px; text-align: right; }

/* ===================== REPUTACIÓN ===================== */
.stars { display: inline-flex; gap: 1px; }
.stars .star { color: var(--line-2); font-size: 14px; }
.stars .star.on { color: #d4a017; }
.stars.sm .star { font-size: 11px; }
.rep-score .pb { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 8px; padding: 24px 18px; text-align: center; }
.score-big { font-family: var(--ff-serif); font-size: 56px; font-weight: 500; line-height: 1; letter-spacing: -0.02em; }
.score-big span { font-size: 22px; color: var(--ink-3); }
.score-sub { font-family: var(--ff-mono); font-size: 10px; color: var(--ink-3); letter-spacing: 0.04em; }
.dist { display: flex; flex-direction: column; gap: 8px; }
.dist-row { display: grid; grid-template-columns: 28px 1fr 32px; gap: 9px; align-items: center; }
.dist-row .e { font-family: var(--ff-mono); font-size: 11px; color: var(--ink-2); }
.dist-row .bar { height: 8px; border-radius: 999px; background: var(--card-2); overflow: hidden; }
.dist-row .bar span { display: block; height: 100%; background: #d4a017; border-radius: 999px; }
.dist-row .n { font-family: var(--ff-mono); font-size: 11px; text-align: right; color: var(--ink-2); }
.channels { display: flex; flex-direction: column; gap: 10px; }
.ch-row { display: grid; grid-template-columns: 1fr auto auto; gap: 10px; align-items: center; }
.ch-row .n { font-size: 12px; color: var(--ink-2); }
.ch-row .v { font-family: var(--ff-mono); font-size: 11px; color: var(--ink-3); }
.rep-req { display: flex; align-items: center; justify-content: space-between; margin-top: 10px; padding-top: 10px; border-top: 0.5px solid var(--line); font-size: 11.5px; }
.rep-req:nth-of-type(2) { border-top: 0; padding-top: 0; margin-top: 6px; }
.rep-req .l { color: var(--ink-2); }
.rep-req .v { font-family: var(--ff-mono); font-size: 13px; font-weight: 500; }
.rep-req .v.hl { color: var(--st-ready); }
.resenas-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; padding: 16px 18px; }
.resena { background: var(--bg-soft); border: 0.5px solid var(--line); border-radius: 11px; padding: 14px 15px; }
.resena.done { opacity: 0.7; }
.resena .rh { display: flex; align-items: center; gap: 9px; }
.resena .rh .av { width: 30px; height: 30px; border-radius: 50%; background: var(--motor-soft); color: var(--motor-2); font-family: var(--ff-mono); font-size: 10.5px; font-weight: 600; display: flex; align-items: center; justify-content: center; flex-shrink: 0; }
.resena .rh .who { flex: 1; min-width: 0; }
.resena .rh .who b { font-size: 13px; font-weight: 500; }
.resena .rh .who small { display: block; font-family: var(--ff-mono); font-size: 9.5px; color: var(--ink-3); letter-spacing: 0.03em; margin-top: 1px; }
.resena .rtext { font-size: 12.5px; color: var(--ink-2); line-height: 1.5; margin-top: 11px; }
.resena .rfoot { margin-top: 12px; }
.reply-btn { font-family: var(--ff-mono); font-size: 10px; letter-spacing: 0.05em; padding: 6px 12px; border-radius: 6px; background: var(--ink); color: var(--citron); }
.reply-btn:hover { background: #000; }

/* ===================== REPORTES ===================== */
.rep-groups { display: flex; flex-direction: column; gap: 22px; margin-top: 4px; }
.rep-group .rg-head { display: flex; align-items: center; gap: 9px; font-family: var(--ff-mono); font-size: 11px; letter-spacing: 0.06em; color: var(--ink-2); text-transform: uppercase; margin-bottom: 12px; }
.rep-group .rg-head .dot { width: 9px; height: 9px; border-radius: 50%; }
.rep-group .rg-head .rg-ct { font-size: 10px; color: var(--ink-3); background: var(--card-2); padding: 1px 7px; border-radius: 999px; }
.rep-cards { display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: 12px; }
.rep-card { background: var(--card); border: 0.5px solid var(--line); border-radius: 11px; padding: 15px 16px; cursor: pointer; transition: border-color .12s, transform .12s; }
.rep-card:hover { border-color: var(--line-2); transform: translateY(-1px); }
.rc-top { display: flex; align-items: center; justify-content: space-between; }
.rc-cat { font-family: var(--ff-mono); font-size: 9px; letter-spacing: 0.05em; padding: 2px 8px; border-radius: 999px; color: var(--cc); background: color-mix(in srgb, var(--cc) 12%, transparent); }
.rc-freq { font-family: var(--ff-mono); font-size: 9.5px; color: var(--ink-3); }
.rc-name { font-family: var(--ff-serif); font-size: 16px; font-weight: 500; letter-spacing: -0.015em; margin-top: 11px; }
.rc-desc { font-size: 12px; color: var(--ink-2); line-height: 1.45; margin-top: 6px; }
.rc-foot { display: flex; align-items: center; justify-content: space-between; margin-top: 13px; padding-top: 11px; border-top: 0.5px solid var(--line); }
.rc-last { font-family: var(--ff-mono); font-size: 10px; color: var(--ink-3); }
.rc-open { font-family: var(--ff-mono); font-size: 10px; letter-spacing: 0.05em; color: var(--motor); }

/* ===================== CONFIGURACIÓN ===================== */
.int-list { display: flex; flex-direction: column; }
.int-row { display: grid; grid-template-columns: 12px 1fr auto auto; gap: 12px; align-items: center; padding: 13px 18px; border-bottom: 0.5px solid var(--line); }
.int-row:last-child { border-bottom: 0; }
.int-row .dot { width: 9px; height: 9px; border-radius: 50%; }
.int-row .dot.ok { background: var(--st-ready); }
.int-row .dot.proc { background: var(--st-diag); }
.int-row .dot.fail { background: var(--ink-3); }
.int-row .ix b { font-size: 13px; font-weight: 500; }
.int-row .ix small { display: block; font-size: 11px; color: var(--ink-3); margin-top: 2px; }
.int-btn { font-family: var(--ff-mono); font-size: 10px; letter-spacing: 0.05em; padding: 5px 11px; border-radius: 6px; background: var(--bg-soft); border: 0.5px solid var(--line-2); color: var(--ink-2); }
.int-btn:hover { background: var(--card-2); }
.role-chips { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 16px; padding-top: 14px; border-top: 0.5px solid var(--line); }
.role-chip { font-family: var(--ff-mono); font-size: 10px; letter-spacing: 0.04em; color: var(--ink-2); background: var(--bg-soft); border: 0.5px solid var(--line); padding: 5px 10px; border-radius: 999px; display: inline-flex; align-items: center; gap: 6px; }
.role-chip b { color: var(--ink); font-weight: 600; }
.srv-list { display: flex; flex-direction: column; }
.srv-row { display: flex; align-items: center; justify-content: space-between; padding: 11px 0; border-bottom: 0.5px dashed var(--line); font-size: 12.5px; }
.srv-row:last-child { border-bottom: 0; }
.srv-row .n { color: var(--ink-2); }
.srv-row .v { font-family: var(--ff-mono); font-size: 12.5px; font-weight: 500; }

/* ===== KPI pct.up reutiliza el verde por defecto de .pct ===== */
.kpi .dl .pct.up { color: var(--st-ready); }
