/* ── Cobranza (F1) — modules/billing.js ────────────────────────────────────────────
   Todo por TEMA ACTIVO (var(--...)). Scoped a #section-billing salvo las 2 reglas
   globales señaladas abajo (botones de titlebar de ventana SO y snackbar flotante,
   que viven FUERA del árbol de la sección cuando la ficha flota en su propia ventana). */

/* Botones de la barra de título en modo rígido (mismo patrón visual que home.js/payment.js). */
#section-billing .sima-bill-tbtn {
    background: var(--win-bg); border: 1px solid var(--win-border); color: var(--win-text);
    border-radius: 7px; padding: 5px 10px; cursor: pointer; font-family: inherit; font-size: .82rem;
}
#section-billing .sima-bill-tbtn:hover { background: color-mix(in srgb, var(--accent) 14%, var(--win-bg)); }
#section-billing .sima-bill-tbtn.active { color: var(--accent); border-color: var(--accent); }

/* Variante "activo" para las herramientas de la ventana SO real (sima-win-tool, global de windows.css). */
.sima-win-tool.sima-win-tool-accent { color: var(--accent); }

#section-billing .sima-bill-toolbar { display: flex; align-items: center; gap: 12px; margin-bottom: 12px; flex-wrap: wrap; }
#section-billing .sima-bill-toolbar select {
    background: var(--win-bg); border: 1px solid var(--win-border); color: var(--win-text);
    border-radius: 8px; padding: 8px 12px; font-size: .85rem; font-family: inherit; cursor: pointer;
}
#section-billing .sima-bill-count { font-size: .78rem; color: var(--text-muted); }

/* Barra de acciones en lote (lista y ficha). */
#section-billing .sima-bill-batchbar {
    display: flex; align-items: center; gap: 8px; flex-wrap: wrap; padding: 10px 12px; margin-bottom: 12px;
    border-radius: 10px; background: color-mix(in srgb, var(--accent) 8%, transparent);
    border: 1px solid color-mix(in srgb, var(--accent) 25%, transparent);
}
#section-billing .sima-bill-batchcount { font-size: .8rem; font-weight: 600; color: var(--text-main); margin-right: 4px; }
#section-billing .sima-bill-more {
    background: var(--win-bg); border: 1px solid var(--win-border); color: var(--win-text);
    border-radius: 7px; padding: 5px 10px; font-size: .8rem; font-family: inherit; cursor: pointer; margin-left: auto;
}

/* Modo ráfaga. */
#section-billing .sima-bill-burstbar {
    padding: 9px 12px; margin-bottom: 12px; border-radius: 10px; font-size: .8rem; color: var(--accent);
    background: color-mix(in srgb, var(--accent) 10%, transparent); border: 1px solid color-mix(in srgb, var(--accent) 30%, transparent);
}
#section-billing .sima-bill-burstbar kbd {
    background: color-mix(in srgb, var(--text-main) 10%, transparent); border: 1px solid var(--glass-border);
    border-radius: 4px; padding: 0 5px; font-size: .74rem; font-family: ui-monospace, monospace; margin: 0 1px;
}
#section-billing tr.sima-bill-burst-active td { outline: 2px solid var(--accent); outline-offset: -2px; background: color-mix(in srgb, var(--accent) 10%, transparent); }

/* Chips de estado de cobro. */
#section-billing .sima-bill-chip { display: inline-flex; align-items: center; gap: 5px; padding: 3px 9px; border-radius: 20px; font-size: .74rem; font-weight: 600; white-space: nowrap; }
#section-billing .sima-bill-chip-ok       { background: color-mix(in srgb, var(--success) 14%, transparent); color: var(--success); border: 1px solid color-mix(in srgb, var(--success) 32%, transparent); }
#section-billing .sima-bill-chip-duesoon  { background: color-mix(in srgb, var(--warn) 16%, transparent);    color: var(--warn);    border: 1px solid color-mix(in srgb, var(--warn) 34%, transparent); }
#section-billing .sima-bill-chip-pastdue  { background: color-mix(in srgb, var(--warn) 24%, transparent);    color: var(--warn);    border: 1px solid color-mix(in srgb, var(--warn) 45%, transparent); }
#section-billing .sima-bill-chip-readonly { background: color-mix(in srgb, var(--danger) 16%, transparent);  color: var(--danger);  border: 1px solid color-mix(in srgb, var(--danger) 35%, transparent); }
#section-billing .sima-bill-chip-exempt   { background: color-mix(in srgb, var(--accent) 14%, transparent);  color: var(--accent);  border: 1px solid color-mix(in srgb, var(--accent) 32%, transparent); }
#section-billing .sima-bill-chip-none     { background: color-mix(in srgb, var(--text-main) 8%, transparent); color: var(--text-muted); border: 1px solid var(--glass-border); }

/* Avisos y textos secundarios. */
#section-billing .sima-bill-notice { font-size: .78rem; }
#section-billing .sima-bill-notice-ok i   { color: var(--success); }
#section-billing .sima-bill-notice-fail i { color: var(--danger); }
#section-billing .sima-bill-notice-skip i { color: var(--text-muted); }
#section-billing .sima-bill-muted { color: var(--text-muted); font-size: .76rem; }
#section-billing .sima-bill-legacy { color: var(--warn); font-size: .74rem; }
#section-billing .sima-bill-id { color: var(--text-muted); font-size: .74rem; font-family: ui-monospace, monospace; }

/* Botón de deshacer inline (fila / ficha). */
#section-billing .sima-bill-undo, #section-billing .sima-bill-rowbtn {
    background: transparent; border: 1px solid var(--glass-border); color: var(--text-muted);
    border-radius: 6px; padding: 2px 6px; cursor: pointer; font-family: inherit; font-size: .76rem; margin-left: 4px;
}
#section-billing .sima-bill-undo:hover, #section-billing .sima-bill-rowbtn:hover { color: var(--accent); border-color: var(--accent); }

/* Badge "Anulada"/"Revertido" (reusa .badge de shell.css, sin el rojo de badge-suspended). */
#section-billing .badge.sima-bill-badge-void { background: color-mix(in srgb, var(--text-main) 12%, transparent); color: var(--text-muted); border: 1px solid var(--glass-border); }

/* Ficha por consultorio. */
#section-billing .sima-bill-crumb { display: inline-flex; align-items: center; gap: 6px; font-size: .84rem; color: var(--accent); margin-bottom: 12px; }
#section-billing .sima-bill-crumb:hover { text-decoration: underline; }
#section-billing .sima-bill-detail-head { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; margin-bottom: 14px; }
#section-billing .sima-bill-detail-head h3 { margin: 0; font-size: 1.05rem; color: var(--text-main); }
#section-billing .sima-bill-section-title { font-size: .84rem; font-weight: 700; color: var(--text-main); margin: 18px 0 8px; }
#section-billing .sima-bill-empty-note { font-size: .8rem; color: var(--text-muted); padding: 10px 0 4px; }

/* Configuración: secciones de texto colapsables. */
#section-billing .sima-bill-placeholders { font-size: .76rem; color: var(--text-muted); margin: 8px 0 14px; line-height: 1.5; }
.sima-bill-cfg-kind { margin-bottom: 10px; border: 1px solid var(--glass-border); border-radius: 8px; padding: 8px 12px; }
.sima-bill-cfg-kind summary { cursor: pointer; font-size: .84rem; font-weight: 600; color: var(--text-main); }
.sima-bill-cfg-kind .field { margin-top: 8px; }

/* Snackbar de "Deshacer lote" — flotante, FUERA de #section-billing (document.body). */
.sima-bill-undosnack {
    position: fixed; left: 50%; bottom: 24px; transform: translateX(-50%); z-index: 99998;
    display: flex; align-items: center; gap: 10px; padding: 10px 16px; border-radius: 10px;
    background: var(--win-pop, rgba(20,20,30,.97)); border: 1px solid var(--glass-border);
    color: var(--text-main); font-size: .84rem; box-shadow: 0 8px 30px rgba(0,0,0,.4);
}
