/* Mi Balance 3.9 Premium V4.3 — Sistema de avisos, diálogos y estados.
   Solo apariencia. La base financiera, los flujos y acciones siguen intactos. */
:root{
 --mb43-surface:#FFFFFF; --mb43-nested:#F4F6F9;
 --mb43-border:#D7DFE9;--mb43-ink:#19232F;--mb43-muted:#5A6879;
 --mb43-dialog-shadow:0 24px 70px rgba(12,18,28,.21);
}
html[data-mbv-theme="dark"]{
 --mb43-surface:#1C2028;--mb43-nested:#282E38;
 --mb43-border:#434D5A;--mb43-ink:#F5F8FC;--mb43-muted:#C6CFDC;
 --mb43-dialog-shadow:0 28px 80px rgba(0,0,0,.52);
}
/* Actualización. No controla cuándo se ofrece ni cuándo se instala. */
#mb-pwa-update-banner{
 background:var(--mb43-surface);color:var(--mb43-ink);
 border:1px solid var(--mb43-border);box-shadow:var(--mb43-dialog-shadow);
}
#mb-pwa-update-banner strong{color:var(--mb43-ink)}
#mb-pwa-update-banner p{color:var(--mb43-muted)}
#mb-pwa-update-banner .mb-pwa-update-now{background:#C6FF3D;border:1px solid #C6FF3D;color:#151A0F}
#mb-pwa-update-banner .mb-pwa-update-later{background:var(--mb43-nested);border:1px solid var(--mb43-border);color:var(--mb43-ink)}
#mb-pwa-update-banner button:focus-visible{outline:3px solid #C6FF3D;outline-offset:3px}
/* Cierre y confirmaciones: misma familia visual que el banner. */
#modal-root .mb-confirm-backdrop{background:rgba(3,5,9,.67);backdrop-filter:blur(4px)}
#modal-root .mb-confirm-sheet{
 background:var(--mb43-surface)!important;
 border:1px solid var(--mb43-border)!important;
 color:var(--mb43-ink)!important;
 box-shadow:var(--mb43-dialog-shadow);
}
#modal-root .mb-confirm-symbol{
 background:var(--mb43-nested);color:var(--mb43-ink);
 border:1px solid var(--mb43-border);
}
#modal-root .mb-confirm-sheet h2{color:var(--mb43-ink)!important}
#modal-root .mb-confirm-sheet>p{color:var(--mb43-muted)!important}
#modal-root .mb-confirm-actions .btn{
 border-radius:14px;min-height:48px;font-size:14px;font-weight:750;
}
#modal-root .mb-confirm-actions .btn.subtle{
 background:var(--mb43-nested);border:1px solid var(--mb43-border);
 color:var(--mb43-ink);
}
#modal-root .mb-confirm-actions .btn:not(.subtle):not(.danger){
 background:#C6FF3D;border:1px solid #C6FF3D;color:#151A0F;
}
#modal-root .mb-confirm-actions .btn:focus-visible{
 outline:3px solid #C6FF3D;outline-offset:3px;
}
/* La guía interactiva es modal, pero no debe parecer un parche claro. */
.mb-tour-panel{
 background:var(--mb43-surface)!important;
 border:1px solid var(--mb43-border)!important;
 box-shadow:var(--mb43-dialog-shadow);color:var(--mb43-ink)!important;
}
.mb-tour-panel :is(h3,.mb-tour-counter){color:var(--mb43-ink)!important}
.mb-tour-panel p{color:var(--mb43-muted)!important}
/* Avisos breves, tarjetas vacías y ayuda de primera acción. */
#toast-root .toast{
 background:var(--mb43-surface)!important;color:var(--mb43-ink)!important;
 border:1px solid var(--mb43-border)!important;
 box-shadow:var(--mb43-dialog-shadow);border-radius:15px;
 font-size:14px;line-height:1.5;
}
#app .empty,
#app .mb-alert-empty{
 background:var(--mb43-surface);color:var(--mb43-ink);
 border:1px solid var(--mb43-border);border-radius:20px;
}
#app .empty :is(h3,strong,svg),#app .mb-alert-empty :is(h3,strong){color:var(--mb43-ink)}
#app .empty p,#app .mb-alert-empty p{color:var(--mb43-muted)!important}
/* Botones secundarios claramente reconocibles en ambos temas. No ocultar estados deshabilitados. */
html[data-mbv-theme="dark"] :is(
 .mb-settings-section,.mb35-project,.mb-biz-card,.mb-review-step,.ux-advisor-sectionhead,
 .mb37-result,.mb36-event,.mb-settings-hub,.mb-bill-card,.monthly-priority-card,
 .mb-confirm-sheet,.modal,.mb-tour-panel
) .btn:is(.ghost,.subtle):not(:disabled){
 background:#2B313C;color:#F2F6FC;border:1px solid #545E6D;
}
html[data-mbv-theme="dark"] :is(
 .mb-settings-section,.mb35-project,.mb-biz-card,.mb-review-step,
 .mb37-result,.mb36-event,.mb-bill-card,.monthly-priority-card,.modal
) .btn:is(.ghost,.subtle):not(:disabled):hover{border-color:#7A8799;background:#353D48}
html[data-mbv-theme="dark"] .btn:is(.ghost,.subtle):focus-visible,
html[data-mbv-theme="dark"] button:focus-visible{outline:3px solid #C6FF3D;outline-offset:2px}
/* Textos secundarios en notas y confirmaciones, sin neutralizar alerta/error. */
html[data-mbv-theme="dark"] #app :is(.mb-settings-callout,.mb-mini-guide,.mb-local-tag,.mb-form-summary) {
 border-color:#414C59;color:#E8EFF7;
}
html[data-mbv-theme="dark"] #app :is(.mb-settings-callout,.mb-mini-guide,.mb-local-tag,.mb-form-summary) :is(p,small,span){color:#D2DCE8}
@media(max-width:420px){
 #mb-pwa-update-banner{width:calc(100vw - 24px);padding:16px}
 #mb-pwa-update-banner>div{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
 #mb-pwa-update-banner button{font-size:14px;min-height:48px;padding:10px 8px}
}
@media(prefers-reduced-motion:reduce){
 #mb-pwa-update-banner button,#modal-root .mb-confirm-actions button{transition:none!important}
}
/* V4.2 dark banner used a more specific selector than the generic palette. */
html[data-mbv-theme="dark"] #mb-pwa-update-banner{background:var(--mb43-surface);border-color:var(--mb43-border);color:var(--mb43-ink);box-shadow:var(--mb43-dialog-shadow)}
html[data-mbv-theme="dark"] #mb-pwa-update-banner strong{color:var(--mb43-ink)}
html[data-mbv-theme="dark"] #mb-pwa-update-banner p{color:var(--mb43-muted)}
html[data-mbv-theme="dark"] #mb-pwa-update-banner .mb-pwa-update-later{background:var(--mb43-nested);border-color:var(--mb43-border);color:var(--mb43-ink)}
