/* Adaptador visual Facturación Express -> STE Design System v1.0 (original del CRM) */
/* No cambia validaciones ni cálculos. */
.fx-app .content{max-width:var(--ste-ds-content-max);margin-left:auto;margin-right:auto;min-height:calc(100vh - 160px)}
.fx-app .page-header{margin-bottom:16px}
.fx-app .panel{background:var(--ste-ds-surface);padding:20px;border:1px solid var(--ste-ds-border);border-radius:var(--ste-ds-radius-md);box-shadow:var(--ste-ds-shadow-sm);margin:14px 0 18px}
.fx-app .panel h2,.fx-app .panel h3{margin-top:0;color:var(--ste-ds-text)}
.fx-app h2{font-size:1.25rem;color:var(--ste-ds-text);margin:0 0 14px}
.fx-app h3{font-size:1.05rem}
.fx-app a{color:var(--ste-ds-info)}
.fx-app .sidebar a{color:#cad6df}
.fx-app .pair{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.fx-app .triple{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.fx-app label{display:block;font-size:13px;font-weight:750;color:#475764;margin:8px 0}
.fx-app label input,.fx-app label select,.fx-app label textarea{display:block;width:100%;margin:5px 0 12px}
.fx-app label input[type=checkbox]{display:inline-block;width:auto;min-height:0!important;margin:0 6px 0 0}
.fx-app input,.fx-app select,.fx-app textarea{font:inherit}
.fx-app textarea{min-height:100px}
.fx-app button:not(.sidebar-collapse):not(.sidebar-mobile-close):not(.topbar-menu):not(.sidebar-backdrop),.fx-app a.button{display:inline-flex;align-items:center;justify-content:center;gap:7px;border:0;border-radius:8px;min-height:38px;padding:8px 14px;background:var(--ste-ds-primary);color:#fff!important;cursor:pointer;font-size:13px;font-weight:750;text-decoration:none}
.fx-app button:not(.sidebar-collapse):not(.sidebar-mobile-close):not(.topbar-menu):not(.sidebar-backdrop):hover,.fx-app a.button:hover{background:#203f5a;text-decoration:none}
.fx-app button.secondary{background:#475d70}.fx-app button.danger{background:var(--ste-ds-danger)}
.fx-app .fx-logout-form button.btn.ghost{background:#fff;color:var(--ste-ds-primary)!important;border:1px solid var(--ste-ds-border-strong)}
.fx-app .fx-logout-form{margin:0;display:flex;align-items:center}
.fx-app .tag{display:inline-flex;align-items:center;border-radius:999px;background:#e9eef2;color:#52616d;padding:3px 8px;font-size:12px;font-weight:700}
.fx-app .row{display:flex;justify-content:space-between;align-items:center;gap:14px;flex-wrap:wrap}
.fx-app .tablewrap{overflow-x:auto;border:1px solid var(--ste-ds-border);border-radius:10px;margin:8px 0}
.fx-app table{width:100%;border-collapse:collapse;min-width:620px;background:#fff}
.fx-app th,.fx-app td{padding:11px 12px;border-bottom:1px solid var(--ste-ds-border);text-align:left;vertical-align:top}
.fx-app th{background:#f5f8fa;font-size:12px;letter-spacing:.01em;color:#52616d}
.fx-app .alert{padding:12px 15px!important;margin:12px 0;border:1px solid var(--ste-ds-border);border-radius:9px}
.fx-app .alert.warn{background:var(--ste-ds-warning-bg);color:var(--ste-ds-warning);border-color:#efd89e}
.fx-app .alert.ok{background:var(--ste-ds-success-bg);color:var(--ste-ds-success);border-color:#a8dbc6}
.fx-app .alert.error{background:var(--ste-ds-danger-bg);color:var(--ste-ds-danger);border-color:#efbbbb}
.fx-app small,.fx-app .muted{color:var(--ste-ds-text-muted);font-size:13px}
.fx-app .fx-topbar-brand{display:flex;align-items:center;gap:7px;color:var(--ste-ds-text-muted);font-size:11px}
.fx-app .fx-topbar-mark{font-size:12px;font-weight:850;color:var(--ste-ds-primary);padding:5px 7px;border:1px solid var(--ste-ds-border);border-radius:7px}
.fx-app .fx-test-badge{display:inline-block;background:var(--ste-ds-warning-bg);color:var(--ste-ds-warning);border:1px solid #eddbac;border-radius:100px;padding:4px 9px;font-size:11px;font-weight:850;white-space:nowrap}
.fx-app .fx-sidebar-foot{padding:14px 18px 20px;font-size:11px;color:#91a7b8;display:flex;gap:8px;align-items:center}
.fx-app .fx-environment-dot{width:7px;height:7px;border-radius:50%;background:#e3a23a}
.fx-app .top-user .user-chip{min-width:0;max-width:270px}
.fx-app .top-user .user-copy{min-width:0}.fx-app .top-user .user-copy span,.fx-app .top-user .user-copy small{max-width:150px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.fx-app .sidebar nav{padding:10px 10px 18px}
.fx-app .sidebar nav a{font-weight:700}
.fx-app .sidebar nav a.active{color:#fff!important}
.fx-app .sidebar-backdrop[hidden]{display:none!important}
.fx-app .sidebar-backdrop{position:fixed;inset:0;z-index:18;background:rgba(8,21,33,.46);border:0;cursor:pointer}
.fx-app .sidebar{z-index:20}
.fx-login{display:flex!important;align-items:center;justify-content:center;min-height:100vh}
.fx-login-shell{width:min(480px,100%);margin:auto;display:grid;gap:16px}
.fx-login-brand{text-align:center;display:grid;justify-items:center;gap:5px;color:var(--ste-ds-primary)}
.fx-login-brand img{width:75px;height:75px;object-fit:contain}
.fx-login-brand strong{font-size:24px}
.fx-login-brand span{color:var(--ste-ds-text-muted);font-size:13px}
.fx-login-brand .fx-test-badge{color:var(--ste-ds-warning);background:var(--ste-ds-warning-bg);border:1px solid #eddbac;border-radius:30px;padding:3px 10px;font-weight:800;margin-top:7px}
.fx-login .fx-auth-card{width:100%;margin:0;padding:28px}
.fx-login .fx-auth-card h2{margin:0 0 16px}
.fx-login .fx-auth-card form label{display:block;margin:12px 0;font-size:13px;font-weight:750}
.fx-login .fx-auth-card input{display:block;width:100%;margin:5px 0 12px}
.fx-login .fx-auth-card .fx-login-submit{display:flex;width:100%;justify-content:center}
.fx-login .fx-auth-card .muted{color:var(--ste-ds-text-muted);font-size:12px;margin-top:15px}
.fx-login .alert{padding:12px!important;margin:8px 0}
@media(max-width:1200px){.fx-app .fx-topbar-brand{display:none}.fx-app .top-user .user-copy{display:none}}
@media(max-width:860px){
 .fx-app .pair,.fx-app .triple{grid-template-columns:1fr}
 .fx-app .sidebar{transform:translateX(-105%)}
 .fx-app .sidebar.open{transform:translateX(0)}
 .fx-app .topbar-menu{display:inline-grid}
 .fx-app .main{margin-left:0!important;width:100%!important}
 .fx-app .sidebar-collapse{display:none}
 .fx-app .sidebar-mobile-close{display:inline-grid}
 .fx-app .fx-topbar-brand{display:none}
 .fx-app .top-user .user-copy{display:none}
 .fx-app .content{padding:18px 16px 32px}
 .fx-app .page-header{align-items:start}
}
@media(max-width:520px){.fx-app .topbar{padding:10px 12px}.fx-app .top-user{gap:5px}.fx-app .top-user .fx-test-badge{display:none}.fx-app .content{padding:14px 12px}.fx-login .fx-auth-card{padding:20px}}

/* Pantalla de diagnóstico, sin reactivar ni incluir el instalador inicial. */
.fx-utility{background:var(--ste-ds-bg);color:var(--ste-ds-text);padding:32px 16px}
.fx-utility .container.small{width:min(780px,100%);margin:24px auto}
.fx-utility h1{font-size:1.65rem;color:var(--ste-ds-primary)}
.fx-utility .panel{background:#fff;border:1px solid var(--ste-ds-border);border-radius:12px;box-shadow:var(--ste-ds-shadow-sm);padding:20px;margin:14px 0}
.fx-utility th,.fx-utility td{padding:12px;border-bottom:1px solid var(--ste-ds-border);text-align:left}
.fx-utility .alert{padding:12px 14px;border-radius:9px;margin:14px 0}
.fx-utility .alert.warn{background:var(--ste-ds-warning-bg);color:var(--ste-ds-warning)}
.fx-utility .alert.error{background:var(--ste-ds-danger-bg);color:var(--ste-ds-danger)}
.fx-utility a{color:var(--ste-ds-info)}

/* V0.5: Salir con contraste claro en header, sin depender de botón ghost heredado. */
.fx-app .topbar .fx-logout-form button.fx-logout-contrast {
  appearance:none!important;display:inline-flex!important;align-items:center;justify-content:center;
  min-width:74px;min-height:38px;padding:8px 15px;
  background:#102b4a!important;background-image:none!important;border:1px solid #102b4a!important;
  color:#ffffff!important;font-weight:800!important;font-size:13px!important;letter-spacing:.01em;
  border-radius:9px!important;opacity:1!important;visibility:visible!important;cursor:pointer;
}
.fx-app .topbar .fx-logout-form button.fx-logout-contrast:hover,
.fx-app .topbar .fx-logout-form button.fx-logout-contrast:focus-visible {
  background:#194774!important;color:#fff!important;border-color:#194774!important;
  outline:2px solid #13b5e8;outline-offset:2px;
}

/* V0.8.2: contraste accesible, marca oficial intacta y estados vacíos explícitos. */
.fx-app .fx-logout-form button.fx-logout-contrast,
.fx-app .topbar .fx-logout-form button.fx-logout-contrast {
  background:#102b4a!important;color:#fff!important;border:2px solid #102b4a!important;
  background-image:none!important;opacity:1!important;text-shadow:none!important;
}
.fx-app .fx-logout-form button.fx-logout-contrast:hover,
.fx-app .fx-logout-form button.fx-logout-contrast:focus-visible {
  background:#194774!important;color:#fff!important;border-color:#194774!important;
  outline:2px solid #13b5e8!important;outline-offset:2px!important;
}
.fx-app .fx-empty {background:#f5f9fc;border:1px dashed #9ab6cc;border-radius:10px;
  padding:19px 22px;margin:10px 0;color:#263c4e;}
.fx-app .fx-empty strong{display:block;margin-bottom:5px;font-size:15px;}
.fx-app .fx-empty p{margin:0 0 13px;}
.fx-app button:disabled{opacity:.55;cursor:not-allowed;}
@media(max-width:860px){.fx-app .sidebar-head .brand img{width:83px!important;height:83px!important;}}

/* V0.8.3 — CRM STE: mismo recurso original logo_nav_2x.png, sin recuadros ni recreaciones. */
.fx-login.login-page{min-height:100vh;min-height:100svh;display:grid!important;place-items:center!important;
  padding:24px 16px!important;background:linear-gradient(135deg,#edf2f6,#f8fafb)!important;}
.fx-login .fx-login-card{box-sizing:border-box;width:min(430px,100%)!important;max-width:430px;
  margin:0!important;padding:28px!important;border-radius:18px!important;
  background:#fff!important;border:1px solid #dce4eb!important;
  box-shadow:0 24px 60px rgba(15,35,68,.11)!important;}
.fx-login .fx-login-header{display:flex;align-items:center;gap:13px;margin:0 0 12px;min-width:0;}
.fx-login .fx-login-logo{display:block;flex:0 0 46px;width:46px!important;height:46px!important;
  object-fit:contain;box-sizing:border-box;border:0!important;border-radius:0!important;
  padding:0!important;background:transparent!important;box-shadow:none!important;}
.fx-login .fx-login-heading{min-width:0;}
.fx-login .fx-login-heading h1{font-size:20px;line-height:1.2;color:#102b4a;margin:0 0 5px;
  overflow-wrap:anywhere;letter-spacing:-.025em;}
.fx-login .fx-login-heading p{color:#64748b;font-size:12px;line-height:1.35;margin:0;}
.fx-login .fx-login-environment{font-size:11px;font-weight:800;letter-spacing:.02em;color:#855b12;
  display:inline-block;padding:5px 9px;background:#fff6de;border:1px solid #f0dda9;
  border-radius:999px;margin:6px 0 17px;}
.fx-login .fx-login-form .field{display:grid;gap:6px;margin:0 0 13px;}
.fx-login .fx-login-form .field label{font-size:13px;font-weight:750;color:#475764;margin:0;}
.fx-login .fx-login-form .field input{box-sizing:border-box;display:block;width:100%;min-width:0;
  padding:11px 12px;min-height:44px;background:#fff;color:#132b40;
  border:1px solid #b7c5d2;border-radius:10px;font:inherit;font-size:14px;}
.fx-login .fx-login-form .field input:focus-visible{border-color:#168cc5;outline:3px solid rgba(0,173,239,.20);outline-offset:1px;}
.fx-login .fx-login-form .fx-login-submit{appearance:none!important;box-sizing:border-box;
  width:100%!important;display:flex!important;align-items:center!important;justify-content:center!important;
  min-height:46px!important;margin-top:6px!important;padding:11px 16px!important;
  border-radius:10px!important;border:1px solid #102b4a!important;
  background:#102b4a!important;background-image:none!important;color:white!important;
  font-size:14px!important;font-weight:800!important;cursor:pointer;}
.fx-login .fx-login-form .fx-login-submit:hover{background:#194774!important;border-color:#194774!important;color:white!important;}
.fx-login .fx-login-form .fx-login-submit:focus-visible{outline:3px solid #13b5e8!important;outline-offset:3px!important;}
.fx-app .sidebar-head .brand{display:flex!important;align-items:center!important;gap:10px!important;
  min-width:0;margin:0!important;padding:0!important;color:#fff!important;text-decoration:none;}
.fx-app .sidebar-head .brand img.brand-logo{display:block!important;flex:0 0 46px!important;
  width:46px!important;height:46px!important;max-width:46px!important;max-height:46px!important;
  object-fit:contain!important;box-sizing:border-box!important;padding:0!important;
  background:transparent!important;border:0!important;border-radius:0!important;
  box-shadow:none!important;filter:drop-shadow(0 2px 5px rgba(0,0,0,.23));}
.fx-app .sidebar-head .brand .brand-copy{display:block;min-width:0;overflow:hidden;color:#fff!important;}
.fx-app .sidebar-head .brand .brand-copy strong{font-size:14px;color:#fff!important;line-height:1.25;white-space:normal;}
.fx-app .sidebar-head .brand .brand-copy span{font-size:11px;color:#acbfcd!important;line-height:1.3;white-space:normal;}
.fx-app .fx-revision-notice{border:1px solid #8ad1b4;background:#e8f7ef;color:#145438;
  border-radius:10px;padding:15px 18px;margin:0 0 18px;}
.fx-app .fx-revision-notice strong{display:block;color:#145438;font-size:15px;}
.fx-app .fx-revision-notice p{margin:6px 0;line-height:1.5;}
.fx-app .fx-revision-notice a,.fx-app .fx-revision-origin a{font-weight:800;text-decoration:underline;}
.fx-app .fx-revision-origin{border:1px solid #c9dce9;background:#f1f7fb;color:#2c5269;
  border-radius:8px;padding:9px 12px;margin:11px 0;}
@media(max-width:860px){.fx-app .sidebar-head .brand img.brand-logo{width:44px!important;height:44px!important;max-width:44px!important;max-height:44px!important;flex-basis:44px!important;}}
@media(max-width:520px){.fx-login.login-page{padding:16px 12px!important;}
 .fx-login .fx-login-card{padding:21px 18px!important;border-radius:16px!important;}
 .fx-login .fx-login-logo{width:42px!important;height:42px!important;flex-basis:42px;}
 .fx-login .fx-login-heading h1{font-size:18px;}
 .fx-app .sidebar-head .brand .brand-copy strong{font-size:13px;}}

/* V0.8.3 — Contraste reforzado de la acción Salir (CRM STE / topbar). */
.fx-app .topbar .fx-logout-form button.btn.fx-logout-contrast {
  appearance:none!important;display:inline-flex!important;align-items:center!important;
  justify-content:center!important;min-height:40px!important;padding:9px 16px!important;
  background:#102b4a!important;background-color:#102b4a!important;background-image:none!important;
  color:#fff!important;-webkit-text-fill-color:#fff!important;border:1px solid #102b4a!important;
  border-radius:9px!important;font-weight:800!important;opacity:1!important;box-shadow:none!important;
}
.fx-app .topbar .fx-logout-form button.btn.fx-logout-contrast:hover {
  background:#194774!important;background-color:#194774!important;color:#fff!important;
  -webkit-text-fill-color:#fff!important;border-color:#194774!important;
}
.fx-app .topbar .fx-logout-form button.btn.fx-logout-contrast:focus-visible {
  outline:3px solid #13b5e8!important;outline-offset:2px!important;
}

/* V0.9: indicadores fiscales sin alterar la plantilla CRM */
.panel ul{padding-left:1.45rem;margin:8px 0 12px}.panel ul li{margin:4px 0}.panel button[disabled]{opacity:.55;cursor:not-allowed}.panel .alert.success{background:#eef9f0;color:#166534;border:1px solid #bbebc8}
