/* Propuesta local: estilos sobre el sistema completo, sin cambios de funciones. */
:root{--bg:#f3f6fb;--surface:#fff;--surface-2:#f7f9fc;--border:#dfe7f1;--text-1:#23364e;--text-2:#52657b;--text-3:#687b90;--accent:#1264ce;--accent-2:#3c82de;--accent-lt:#eaf2ff;--sidebar:#fafcff;--sidebar-hover:#edf3fc;--sidebar-active:#e7f0ff;--sidebar-text:#52657b;--sidebar-text-active:#1264ce;--sans:'Segoe UI',Arial,sans-serif;--serif:'Segoe UI',Arial,sans-serif;--shadow-sm:0 2px 8px rgba(28,54,85,.025);--shadow:0 5px 18px rgba(28,54,85,.06);--radius:11px}
.app{grid-template-columns:224px minmax(0,1fr)}
.sidebar{border-right:1px solid var(--border)}
.brand{padding:25px 18px 20px;border-bottom:1px solid var(--border)}
.brand-logo{max-height:92px;border-radius:8px}
.brand-name{color:var(--text-1);text-shadow:none;font-family:var(--sans);font-size:15px}
.brand-sub{color:var(--text-2)}
.nav-sec{color:var(--text-3);font-size:10px;padding:20px 22px 8px;letter-spacing:.1em}
.nav-item{margin:3px 12px;padding:11px 32px 11px 12px;border-radius:7px;font-size:13px;border-left:0;gap:11px}
.nav-item:hover{color:var(--accent);background:var(--sidebar-hover)}
.nav-item.active{color:var(--accent);background:var(--sidebar-active);border-left:0;font-weight:600}
.nav-item svg{width:17px;height:17px;opacity:.8}
.sidebar-footer{padding:18px 14px;border-top:1px solid var(--border)}
.av-name{color:var(--text-1)}.av-role{color:var(--text-2)}.logout-btn{color:var(--text-2)}.cuenta-btn{color:var(--text-2)}
.avatar{background:var(--accent-lt);color:var(--accent)}
.main{background:var(--bg);padding:30px 28px}
.topbar h1{font-family:var(--sans);font-size:27px;font-weight:600;letter-spacing:-.7px}
.topbar span{color:var(--text-2);font-size:12px;font-weight:400}
.page-hdr h2{font-family:var(--sans);font-size:25px;font-weight:600;color:var(--text-1)}
.metric{box-shadow:none;padding:21px;border-radius:11px}
.metric::before{height:0;background:none}.metric:hover{transform:none}
.m-label{font-size:12px;text-transform:none;letter-spacing:0;color:var(--text-2);font-weight:500}
.m-val{font-family:var(--sans);font-size:31px;font-weight:500;color:var(--text-1)}
.m-sub{font-size:12px;font-weight:400}
.card{box-shadow:none;border-radius:11px;padding:22px}
.card-title{font-size:14px;text-transform:none;letter-spacing:0;font-weight:600;color:var(--text-1)}
.row{padding:12px 0}.row-title{font-size:13px}.row-meta{font-size:12px;font-weight:400}
.btn{background:var(--accent);box-shadow:none;font-weight:500}.btn:hover{background:#0d56b5;transform:none;box-shadow:none}
.btn-sm{border-radius:7px}.btn-sm.primary{background:var(--accent);border-color:var(--accent)}
.login-wrap{background:radial-gradient(ellipse at 25% 20%,#dae8fa,transparent 65%),#eff4fb}
.login-box{border:1px solid var(--border);border-radius:16px;box-shadow:0 16px 55px rgba(27,62,105,.1);width:410px;max-width:calc(100vw - 32px)}
.login-sub{color:var(--text-2);font-weight:400}.field label{font-size:11px}.field input{font-size:14px;background:var(--surface-2);border-width:1px}
.modal{border-radius:13px}.form-group label{color:var(--text-2)}
.propuesta-local-aviso{padding:8px 18px;font:12px/1.4 var(--sans);background:#eaf2ff;color:#244c83;text-align:center;border-bottom:1px solid #d7e5f8}
.propuesta-local-aviso a{color:#1264ce;margin-left:12px}
@media(max-width:900px){.app{grid-template-columns:180px minmax(0,1fr)}.main{padding:24px 18px}.nav-item{margin-left:8px;margin-right:8px}}
@media(max-width:600px){.app{grid-template-columns:1fr}.main{padding:20px 12px}}
/* Dirección visual v2: referencia 3031, propuesta independiente 3001. */
:root{--accent:#2c65ad;--accent-2:#397bca;--accent-lt:#eaf1fb;--bg:#eef2f8;--surface-2:#f7f9fc;--border:#e1e7f0;--text-1:#26364b;--text-2:#526378;--text-3:#66788e;--sidebar:#f8fafd;--sidebar-active:#e8f0fb;--shadow-sm:0 3px 12px rgba(28,51,82,.04)}
.sidebar{box-shadow:2px 0 12px rgba(32,54,82,.025)}
.brand{background:linear-gradient(115deg,#214976,#326cad);padding:18px;color:#fff;min-height:110px}
.brand-logo{max-height:66px;background:white;padding:5px;max-width:180px;margin:0 auto 10px}
.brand-name,.brand-sub{color:#fff;text-shadow:none}.brand-sub{opacity:.85}
.propuesta-identidad{font-size:13px;font-weight:600;color:white;margin-top:9px;line-height:1.45}
.propuesta-identidad small{display:block;font-size:11px;font-weight:400;color:#e2edfc}
.nav-item{font-size:13px;padding-top:10px;padding-bottom:10px;margin-top:2px;margin-bottom:2px;transition:background .15s}
.nav-item:not(.active) svg,.nav-item:not(.active) .nav-icon{color:#657b94!important;stroke:currentColor}
.nav-item.active{background:white;box-shadow:0 2px 9px rgba(28,51,82,.065);border-left:3px solid var(--accent);padding-left:9px;color:var(--accent)}
.nav-badge{background:#2c65ad;border:0;box-shadow:none;font-size:10px;min-width:18px;height:18px}
.main{padding:28px 30px;background:var(--bg)}
.page-hdr{background:white;border:1px solid var(--border);border-radius:11px;padding:17px 20px;margin-bottom:18px;box-shadow:var(--shadow-sm)}
.page-hdr h2{color:var(--accent);font-size:23px;letter-spacing:-.4px}
.metric{box-shadow:var(--shadow-sm);border-color:var(--border);position:relative;overflow:hidden}
.metric::before{height:3px;background:var(--accent)}
.metric:has(.m-val.d)::before{background:#b74949}.metric:has(.m-val.w)::before{background:#ad742f}
.card{box-shadow:var(--shadow-sm);padding:20px;border-color:var(--border)}
.search-bar{background:white;border:1px solid var(--border);border-radius:10px;padding:12px;box-shadow:var(--shadow-sm);gap:10px}
.search-bar input,.search-bar select{background:#fff;border:1px solid #d5deea;border-radius:6px;color:var(--text-1);min-height:38px}
.page table{background:white;border-collapse:separate;border-spacing:0;border-radius:10px;overflow:hidden;border:1px solid var(--border);box-shadow:var(--shadow-sm)}
.page table th{background:#f5f8fc;color:#526378;font-size:12px;font-weight:600;border-bottom:1px solid var(--border);padding-top:13px;padding-bottom:13px;text-transform:none;letter-spacing:0}
.page table td{color:var(--text-1);font-size:13px;border-bottom:1px solid #edf1f6;padding-top:13px;padding-bottom:13px;line-height:1.45}
.page table tbody tr:nth-child(even){background:#fafbfd}.page table tbody tr:hover{background:#edf4ff}
.page table td a,.page table td .accion-tabla,.page table td .cliente-nombre{color:var(--accent)}
.page table td button{font-weight:500}.badge{font-weight:500;padding:3px 9px}
.modal{background:#fff;box-shadow:0 18px 65px rgba(23,43,70,.18);border:1px solid var(--border)}
.modal h3{font-family:var(--sans);color:var(--text-1);font-size:21px;letter-spacing:-.3px}
.modal input:not([type=checkbox]):not([type=radio]):not([type=file]):not([type=color]),.modal select,.modal textarea{border:1px solid #d5deea;border-radius:7px;background:#fbfcfe;color:var(--text-1);font-family:var(--sans);font-size:14px}
.modal input:focus,.modal select:focus,.modal textarea:focus{outline:2px solid #c4d9f7;outline-offset:1px;border-color:var(--accent)}
.modal label{font-size:12px;color:var(--text-2)}
.btn-sm{background:#fff;border:1px solid #d5deea;box-shadow:none;color:var(--text-2);border-radius:6px}
.btn-sm.primary,.btn-sm.btn-primary{background:var(--accent);color:#fff;border-color:var(--accent)}
.btn-sm:hover{background:var(--accent-lt);border-color:#9bb9e0}
.cerrar-sesion-visible{background:white;border:1px solid #c9d8eb;color:var(--accent);border-radius:7px}
.propuesta-local-aviso{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;padding:9px 18px;text-align:left;background:#f8fafd;color:#526378}
.propuesta-local-controles{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.propuesta-local-controles label{display:flex;gap:7px;align-items:center;font-size:12px}
.propuesta-local-controles select{background:#fff;color:#334b68;border:1px solid #d5deea;padding:4px 8px;border-radius:5px;font:12px var(--sans)}
body.propuesta-compacta .page table td{padding-top:8px;padding-bottom:8px}body.propuesta-compacta .row{padding-top:8px;padding-bottom:8px}
body.propuesta-texto-grande .page table td,body.propuesta-texto-grande .row-title,body.propuesta-texto-grande .nav-item{font-size:15px}body.propuesta-texto-grande .row-meta{font-size:13px}
@media(prefers-reduced-motion:reduce){.nav-item,.metric,.btn{transition:none}}
@media(max-width:900px){.main{padding:22px 16px}.page-hdr{padding:14px}.propuesta-local-aviso{padding:8px 12px}}

/* Inicio comercial inspirado en la referencia del propietario. */
.login-wrap{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);background:#f5f6f8;min-height:calc(100vh - 48px);align-items:center;gap:0}
.login-presentacion{align-self:stretch;display:flex;flex-direction:column;justify-content:center;background:linear-gradient(135deg,#103e60 0%,#126bb8 65%,#2585d6 100%);padding:70px clamp(32px,5vw,90px);color:#fff}
.login-producto{font-size:12px;letter-spacing:.18em;color:#cfe3f6;margin-bottom:30px;font-weight:600}
.login-presentacion h1{font:600 clamp(32px,3.3vw,52px)/1.16 var(--sans);letter-spacing:-1px;margin:0 0 38px;color:#fff}
.login-presentacion p{font-size:clamp(17px,1.5vw,23px);line-height:1.7;color:#deebf8;margin:0 0 25px;max-width:690px}
.login-producto-pie{font-size:13px;color:#d4e7f9;margin-top:28px}
.login-box{width:calc(100% - 80px);max-width:530px;margin:45px auto;padding:45px 40px;border-radius:14px;background:#fff}
.login-box .login-logo{display:none!important}
.login-acceso-titulo{font:600 24px/1.3 var(--sans);color:var(--text-1);text-align:center;margin:0 0 10px}
.login-box .login-sub{font-size:14px;margin-bottom:35px;text-align:center}
.login-box .field label{text-transform:none;letter-spacing:0;font-size:14px;font-weight:500;margin-bottom:8px}
.login-box .field input{background:#fff;padding:13px 14px;border:1px solid #ccd6e2;font-size:15px;border-radius:6px}
.login-box .login-password-wrap input{padding-right:48px}
.login-box .btn{font-size:15px;padding:13px;margin-top:10px;border-radius:6px}
.login-box .error-msg{font-size:13px;line-height:1.6}
@media(max-width:850px){.login-wrap{grid-template-columns:1fr}.login-presentacion{padding:35px 28px}.login-presentacion h1{margin-bottom:18px}.login-presentacion p{font-size:16px;margin-bottom:12px}.login-producto{margin-bottom:15px}.login-producto-pie{display:none}.login-box{width:calc(100% - 32px);max-width:470px;margin:28px auto;padding:30px}}

/* Usuario solicita retirar Mis gastos únicamente del menú de la propuesta. */
.sidebar .nav-item[onclick="abrirMisGastos(this)"],.sidebar #navMisGastos{display:none!important}

/* Cabecera del despacho: no reducirla cuando el menú excede la altura. */
.sidebar .brand{flex:0 0 auto;height:auto;min-height:110px;overflow:visible;padding-bottom:22px}
.sidebar .propuesta-identidad{white-space:normal;overflow-wrap:break-word}
.sidebar .propuesta-identidad small{color:#fff;opacity:1;line-height:1.5;margin-top:4px}

/* Compactación del menú aprobada por el usuario: 7px por lado. */
.sidebar .nav-item{padding-top:7px;padding-bottom:7px}

/* Vista estrecha: reservar barra superior sin modificar escritorio ancho. */
@media(max-width:768px){
 .modal-overlay{top:58px}
 .modal-overlay .modal,.modal-overlay .modal.task-modal,.modal-overlay .agenda-modal,
 #modalFichaExpediente .modal,#modalFichaCliente .modal,
 #modalEstadoCuentaFinanzas .modal,#modalVerProformaFinanciera>.modal{
  max-height:calc(100dvh - 58px);
 }
}

body:not(:has(.app.visible))>.propuesta-local-aviso{display:none}
