/* 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;
}
