/* UC: reglas comunes de componentes. Cargar despues de los estilos de vistas.
 * No cambia estructura, visibilidad, eventos, permisos ni estilos de impresion.
 * Los alias explicitos cubren los componentes existentes sin seleccionar
 * controles de Leaflet, canvas, recibos o botones nativos por accidente.
 */
body.uc-app-shell, body.uc-login-body {
  --uc-primary:#365a3f;
  --uc-primary-2:#47704e;
  --uc-primary-soft:#e9f0e6;
  --uc-bg:#f5f4ef;
  --uc-surface:#fff;
  --uc-surface-alt:#f5f7f3;
  --uc-text:#192b21;
  --uc-ink:var(--uc-text);
  --uc-muted:#607066;
  --uc-border:#dce3da;
  --uc-border-strong:#a8baac;
  --uc-radius:16px;
  --uc-radius-sm:10px;
  --uc-control-h:44px;
  --uc-shadow-sm:0 2px 8px rgba(25,43,33,.04);
  --uc-shadow:0 4px 14px rgba(25,43,33,.06);
  --uc-component-font:system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;
  --uc-component-primary:#365a3f;
  --uc-component-hover:#2c4a34;
  --uc-component-danger:#a13632;
  --uc-component-warning:#805b12;
  --uc-component-info:#28597a;
  --uc-component-focus:#8b7946;
}
/* Integracion de modulos: alias propios, sin tocar eventos ni identidad financiera. */
@media screen {
  body.uc-app-shell,body.uc-login-body {
    font-family:var(--uc-component-font);
    --font-display:var(--uc-component-font);--font-body:var(--uc-component-font);
  }
  html[data-theme=dark] body.uc-app-shell {
    --uc-bg:#131b16;--uc-surface:#1c2820;--uc-surface-alt:#223127;
    --uc-text:#e7eee7;--uc-ink:var(--uc-text);--uc-muted:#b1bfb3;
    --uc-border:#364639;--uc-border-strong:#758c7b;--uc-primary-soft:#2a3c2d;
    --uc-component-primary:#497953;--uc-component-hover:#3e6947;--uc-component-focus:#c4b68a;
  }
  body.uc-app-shell.cf-shell {
    --cf-bg:var(--uc-bg);--cf-ink:var(--uc-text);--cf-muted:var(--uc-muted);
    --cf-green:var(--uc-component-primary);--cf-soft:var(--uc-primary-soft);--cf-line:var(--uc-border);
  }
  body.uc-app-shell .uc-menu :is(.menu-link,.menu-sublink) {font-family:var(--uc-component-font);font-weight:600}
  body.uc-app-shell .cf-dialog {background:var(--uc-surface);color:var(--uc-text)}
  body.uc-app-shell #main-content .cobros-page {
    --c26-radius:var(--uc-radius);--c26-surface:var(--uc-surface);
    --c26-ink:var(--uc-text);--c26-ink-soft:var(--uc-muted);--c26-neutral:var(--uc-border);
  }
  body.uc-app-shell #main-content .cobros-page .cliente-card {
    border-radius:var(--uc-radius)!important;background:var(--uc-surface)!important;
    box-shadow:var(--uc-shadow-sm)!important;
    /* Preserve left border and its overdue/paid/today colors. */
  }
  body.uc-app-shell #main-content .cobros-page .cliente-card.is-vencido {border-left-color:var(--c26-danger)!important}
  body.uc-app-shell #main-content .cobros-page .cliente-card.is-hoy {border-left-color:var(--c26-hoy)!important}
  body.uc-app-shell #main-content .cobros-page .cliente-card.is-cobrado {border-left-color:var(--c26-ok)!important}
  body.uc-app-shell #main-content .cobros-page :is(.btn-pay,.btn-square,.contact-btn,.door-btn,.btn-fullpay) {
    border-radius:var(--uc-radius-sm)!important;font-family:var(--uc-component-font)!important;
    font-weight:600!important;box-shadow:none!important;min-height:44px;
  }
  body.uc-app-shell #main-content .cobros-page .btn-pay.main {
    background:var(--uc-component-primary)!important;border-color:var(--uc-component-primary)!important;color:#fff!important;
    min-height:48px;
  }
  body.uc-app-shell #main-content .cobros-page .btn-pay.main:hover {background:var(--uc-component-hover)!important}
  body.uc-app-shell #main-content .cobros-page .status-pill {font-weight:600;text-transform:none;letter-spacing:0;line-height:1.3}
  body.uc-app-shell #main-content .cobros-page .cli-name {font-weight:700}
  body.uc-app-shell #main-content .imp-m110-page {
    --uc-green:var(--uc-component-primary);color:var(--uc-text);
  }
  body.uc-app-shell #main-content :is(.imp-simple-hero-card,.imp-simple-chip,.imp-simple-proof-step,.imp-simple-empty,.imp-native-printer,.imp-force-reset-fixed) {
    background:var(--uc-surface)!important;color:var(--uc-text)!important;
    border-radius:var(--uc-radius)!important;box-shadow:var(--uc-shadow-sm)!important;
  }
  body.uc-app-shell #main-content :is(.imp-simple-visual,.imp-simple-footer) {background:var(--uc-surface-alt)!important}
  body.uc-app-shell #main-content :is(.imp-simple-primary,.imp-simple-secondary,.imp-force-reset-button) {
    border-radius:var(--uc-radius-sm)!important;font-family:var(--uc-component-font)!important;
    font-weight:600!important;min-height:48px;box-shadow:none!important;
  }
  body.uc-app-shell #main-content :is(.imp-simple-primary,.imp-force-reset-button) {
    background:var(--uc-component-primary)!important;color:#fff!important;border-color:var(--uc-component-primary)!important;
  }
  body.uc-app-shell #main-content .imp-simple-secondary {background:var(--uc-surface)!important;color:var(--uc-text)!important;border-color:var(--uc-border-strong)!important}
  body.uc-app-shell #main-content :is(.imp-simple-label,.imp-simple-chip span,.imp-force-reset-note) {color:var(--uc-muted)!important;font-weight:600}
  body.uc-app-shell #main-content .rs-page {
    --c-ink:var(--uc-text);--c-muted:var(--uc-muted);--c-surface:var(--uc-surface);
    --c-surface-2:var(--uc-surface-alt);--c-soft:var(--uc-surface-alt);--c-tint:var(--uc-primary-soft);
    --c-line:var(--uc-border);--c-line-2:var(--uc-border);--c-brand:var(--uc-component-primary);
    --c-brand-600:var(--uc-component-primary);--c-brand-700:var(--uc-component-primary);--c-brand-900:#203d2b;
    --r-lg:var(--uc-radius);--r-xl:var(--uc-radius);--r-md:var(--uc-radius-sm);
  }
  body.uc-app-shell #main-content .rs-page :is(.rs-ai-shell,.imp-day-card,.imp-split-card,.rs-client-stat) {
    border-radius:var(--uc-radius)!important;box-shadow:var(--uc-shadow-sm)!important;
  }
  body.uc-app-shell #main-content .rs-page :is(.imp-day-card,.imp-split-card,.rs-client-stat) {background:var(--uc-surface)!important}
  body.uc-app-shell #main-content .rs-page .imp-day-card::before {background:#c4b68a!important}
  body.uc-app-shell #main-content .rs-page :is(.imp-day-card,.imp-split-card):hover {border-color:var(--uc-border-strong)!important;transform:none!important}
  body.uc-app-shell #main-content .rs-page .rs-ai-header {background:#203d2b!important}
  body.uc-app-shell #main-content .rs-page .rs-ai-header::before {background:none!important}
  body.uc-app-shell #main-content .rs-page :is(.rs-ai-orb,.rs-ai-step) {box-shadow:none!important}
  body.uc-app-shell #main-content .rs-page :is(.rs-ai-step,.rs-ai-header h3,.rs-conc-head h5,.rs-conc-item-top strong) {font-weight:700!important}
  body.uc-login-body .brand__wordmark,body.uc-login-body .panel h2 {font-family:var(--uc-component-font)!important}
  body.uc-login-body.uc-recovery-body .card-wrap {
    background:var(--uc-surface);color:var(--uc-text);border:1px solid var(--uc-border);
    border-radius:22px;box-shadow:var(--uc-shadow);
  }
  body.uc-recovery-body :is(h1,.brand strong,.form-label) {color:var(--uc-text)}
  body.uc-recovery-body .form-control {
    background:var(--uc-surface);color:var(--uc-text);border:1px solid var(--uc-border-strong);
    border-radius:var(--uc-radius-sm);min-height:48px;
  }
  body.uc-recovery-body .btn-main {
    background:var(--uc-component-primary);color:#fff;border:1px solid var(--uc-component-primary);
    border-radius:var(--uc-radius-sm);min-height:48px;font-weight:600;box-shadow:none;
  }
  body.uc-recovery-body .btn-main:hover {background:var(--uc-component-hover)}
  @media(prefers-reduced-motion:reduce){
    body.uc-app-shell #main-content :is(.btn-pay,.btn-square,.contact-btn,.door-btn,.btn-fullpay) {transition:none;transform:none!important}
  }
}
body.uc-app-shell:is(.theme-dark,.dark-mode),body.uc-login-body.theme-dark {
  --uc-bg:#131b16;--uc-surface:#1c2820;--uc-surface-alt:#223127;
  --uc-text:#e7eee7;--uc-muted:#b1bfb3;--uc-border:#364639;
  --uc-border-strong:#758c7b;--uc-primary-soft:#2a3c2d;
  --uc-component-primary:#497953;--uc-component-hover:#3e6947;
  --uc-component-focus:#c4b68a;
}
@media(prefers-color-scheme:dark){body.uc-login-body {
  --uc-bg:#131b16;--uc-surface:#1c2820;--uc-surface-alt:#223127;
  --uc-text:#e7eee7;--uc-muted:#b1bfb3;--uc-border:#364639;
  --uc-border-strong:#758c7b;--uc-primary-soft:#2a3c2d;
  --uc-component-primary:#497953;--uc-component-hover:#3e6947;
  --uc-component-focus:#c4b68a;
}}
@media screen {
  /* Geometry common to Bootstrap and UC buttons; compact/table buttons retain size. */
  body.uc-app-shell :is(#main-content,.modal,.offcanvas) :is(.btn,.uc-btn-primary,.uc-btn-secondary,.uc-btn-danger,.ucds-btn) {
    font-family:var(--uc-component-font)!important;
    font-weight:600!important;border-radius:var(--uc-radius-sm)!important;
    box-shadow:none!important;text-shadow:none!important;
    transition:background-color .15s,border-color .15s,color .15s;
  }
  body.uc-app-shell :is(#main-content,.modal,.offcanvas) :is(.btn,.uc-btn-primary,.uc-btn-secondary,.uc-btn-danger,.ucds-btn):not(.btn-sm):not(.btn-link) {
    min-height:var(--uc-control-h);
  }
  body.uc-app-shell :is(#main-content,.modal,.offcanvas) :is(.btn-primary,.btn-success,.uc-btn-primary,.btn-add-user) {
    --bs-btn-bg:var(--uc-component-primary);--bs-btn-border-color:var(--uc-component-primary);
    --bs-btn-hover-bg:var(--uc-component-hover);--bs-btn-active-bg:var(--uc-component-hover);
    background:var(--uc-component-primary)!important;border-color:var(--uc-component-primary)!important;color:#fff!important;
  }
  body.uc-app-shell :is(#main-content,.modal,.offcanvas) :is(.btn-primary,.btn-success,.uc-btn-primary,.btn-add-user):hover {
    background:var(--uc-component-hover)!important;border-color:var(--uc-component-hover)!important;
  }
  body.uc-app-shell :is(#main-content,.modal,.offcanvas) :is(.btn-outline-primary,.btn-outline-success,.btn-secondary,.btn-outline-secondary,.uc-btn-secondary,.btn-ghost) {
    background:var(--uc-surface)!important;color:var(--uc-text)!important;border-color:var(--uc-border-strong)!important;
  }
  body.uc-app-shell :is(#main-content,.modal,.offcanvas) :is(.btn-outline-primary,.btn-outline-success,.btn-secondary,.btn-outline-secondary,.uc-btn-secondary,.btn-ghost):hover {
    background:var(--uc-primary-soft)!important;
  }
  body.uc-app-shell :is(#main-content,.modal,.offcanvas) :is(.btn-danger,.uc-btn-danger) {
    background:var(--uc-component-danger)!important;border-color:var(--uc-component-danger)!important;color:#fff!important;
  }
  body.uc-app-shell :is(#main-content,.modal,.offcanvas) .btn-outline-danger {
    color:var(--uc-component-danger)!important;border-color:var(--uc-component-danger)!important;background:var(--uc-surface)!important;
  }
  body.uc-app-shell :is(#main-content,.modal,.offcanvas) .btn-warning {
    background:#f5edda!important;color:var(--uc-component-warning)!important;border-color:#d8c99f!important;
  }
  body.uc-app-shell :is(#main-content,.modal,.offcanvas) .btn-info {
    background:var(--uc-component-info)!important;color:#fff!important;border-color:var(--uc-component-info)!important;
  }
  body.uc-app-shell :is(#main-content,.modal,.offcanvas) :is(.btn,.uc-btn-primary,.uc-btn-secondary,.uc-btn-danger):is(:disabled,.disabled) {
    opacity:.55!important;transform:none!important;box-shadow:none!important;
  }
  /* Text controls only: preserve checkbox, radio, range and hidden inputs. */
  body.uc-app-shell :is(#main-content,.modal,.offcanvas) :is(.form-control,.form-select,input[type=text],input[type=search],input[type=email],input[type=tel],input[type=date],input[type=datetime-local],input[type=number],input[type=password],textarea,select),
  body.uc-login-body .field :is(input[type=text],input[type=password]) {
    font-family:var(--uc-component-font)!important;font-size:1rem;
    border:1px solid var(--uc-border-strong)!important;
    border-radius:var(--uc-radius-sm)!important;
    background-color:var(--uc-surface)!important;color:var(--uc-text)!important;
    min-height:var(--uc-control-h);box-shadow:none!important;
  }
  body.uc-app-shell :is(#main-content,.modal,.offcanvas) :is(input,textarea)::placeholder,
  body.uc-login-body .field input::placeholder {color:var(--uc-muted);opacity:1}
  body.uc-app-shell :is(#main-content,.modal,.offcanvas) :is(input,textarea,select):disabled {
    background-color:var(--uc-surface-alt)!important;color:var(--uc-muted)!important;opacity:1;
  }
  body.uc-app-shell :is(#main-content,.modal,.offcanvas) :is(.form-control,.form-select):is(.is-invalid,[aria-invalid=true]) {
    border-color:var(--uc-component-danger)!important;
  }
  body.uc-app-shell :is(#main-content,.modal,.offcanvas) :is(.form-control,.form-select).is-valid {border-color:var(--uc-component-primary)!important}
  body.uc-app-shell :is(#main-content,.modal,.offcanvas) :is(button,a,input,textarea,select):focus-visible,
  body.uc-login-body :is(button,a,input):focus-visible {
    outline:3px solid var(--uc-component-focus)!important;outline-offset:2px;box-shadow:none!important;
  }
  body.uc-app-shell :is(#main-content,.modal,.offcanvas) :is(.form-label,.form-group>label) {
    font-size:.875rem;font-weight:600;color:var(--uc-text);
  }
  body.uc-app-shell :is(#main-content,.modal,.offcanvas) :is(.form-text,.text-muted) {color:var(--uc-muted)!important}
  /* Cards: alias existing names; do not modify padding, grids, height or overflow. */
  body.uc-app-shell #main-content :is(.card,.uc-card,.uc-table-card,.ucds-card,.ucds-table-card,.card-soft,.hc-card,.hc-section,.refi-card,.cps-card,.rs-card,.client-panel,.credit-card,.ac-card,.ce-card,.edit-card,.loan-card,.user-card,.imp-card,.mig-card,.nc-card) {
    background:var(--uc-surface)!important;color:var(--uc-text)!important;
    border:1px solid var(--uc-border)!important;border-radius:var(--uc-radius)!important;
    box-shadow:var(--uc-shadow-sm)!important;
  }
  body.uc-app-shell #main-content :is(.card-header,.card-footer) {
    background:var(--uc-surface-alt);color:var(--uc-text);border-color:var(--uc-border);
  }
  body.uc-app-shell :is(.modal-content,.offcanvas) {
    background-color:var(--uc-surface);color:var(--uc-text);border-color:var(--uc-border);
  }
  body.uc-app-shell .modal-content {border-radius:var(--uc-radius)}
  body.uc-app-shell :is(.modal-header,.modal-footer) {border-color:var(--uc-border)}
  body.uc-app-shell #main-content .table {
    --bs-table-color:var(--uc-text);--bs-table-bg:var(--uc-surface);
    --bs-table-border-color:var(--uc-border);--bs-table-hover-bg:var(--uc-primary-soft);
    --bs-table-striped-bg:var(--uc-surface-alt);font-variant-numeric:tabular-nums;
  }
  body.uc-app-shell #main-content :is(.table,.uc-table,.ucds-table) thead th {
    font-size:.8125rem;font-weight:600;border-color:var(--uc-border);
  }
  /* Input groups retain connected corners; keep Bootstrap validation icons. */
  body.uc-app-shell :is(#main-content,.modal) .input-group>:not(:first-child):not(.dropdown-menu) {
    border-top-left-radius:0!important;border-bottom-left-radius:0!important;
  }
  body.uc-app-shell :is(#main-content,.modal) .input-group>:not(:last-child):not(.dropdown-menu) {
    border-top-right-radius:0!important;border-bottom-right-radius:0!important;
  }
  body.uc-app-shell .input-group-text {background:var(--uc-surface-alt);color:var(--uc-muted);border-color:var(--uc-border-strong)}
  body.uc-app-shell :is(#main-content,.modal,.offcanvas) .alert {
    border-radius:var(--uc-radius-sm);font-family:var(--uc-component-font);
  }
  body.uc-app-shell :is(#main-content,.modal,.offcanvas) :is(.badge,.uc-chip,.ucds-chip) {
    font-family:var(--uc-component-font);font-weight:600;line-height:1.3;
  }
  body.uc-app-shell #main-content .page-link {
    color:var(--uc-text);background:var(--uc-surface);border-color:var(--uc-border);
  }
  body.uc-app-shell #main-content .page-item.active .page-link {
    color:#fff;background:var(--uc-component-primary);border-color:var(--uc-component-primary);
  }
  body.uc-app-shell #main-content .page-item.disabled .page-link {color:var(--uc-muted);background:var(--uc-surface-alt)}
  body.uc-login-body {background:var(--uc-bg);--ink:var(--uc-text);--ink-2:var(--uc-muted);--ink-3:var(--uc-muted)}
  body.uc-login-body .auth {border-radius:22px;border-color:var(--uc-border);box-shadow:var(--uc-shadow)}
  body.uc-login-body .btn {
    background:var(--uc-component-primary);color:#fff;border:1px solid var(--uc-component-primary);
    border-radius:var(--uc-radius-sm);min-height:48px;box-shadow:none;font-weight:600;
  }
  body.uc-login-body .btn:hover {background:var(--uc-component-hover);box-shadow:none}
  body.uc-login-body .btn::after {content:none}
  @media(max-width:991.98px){
    body.uc-app-shell :is(#main-content,.modal,.offcanvas) .btn-sm {min-height:44px}
  }
  @media(prefers-reduced-motion:reduce){
    body.uc-app-shell :is(#main-content,.modal,.offcanvas) .btn {transition:none;transform:none!important}
  }
}
