/* Estilos exclusivos de acceso y Dashboard. No altera el CSS de los módulos. */
.auth-card form{display:flex;flex-direction:column;gap:10px;margin-top:25px}.auth-card form label{font-weight:700;font-size:13px;color:#24385e}.auth-card form input{width:100%;border:1px solid #d5e0f2;border-radius:12px;padding:14px 15px;font:inherit;font-size:15px;outline:none;background:#fff;color:#172949;margin-bottom:9px}.auth-card form input:focus{border-color:#527bf0;box-shadow:0 0 0 3px #527bf022}.auth-submit{border:0;width:100%;cursor:pointer;margin-top:7px}.auth-error{padding:12px;border-radius:10px;background:#fff0f0;color:#9e1d2e;font-size:13px}.auth-caption{font-size:12px!important;color:#7785a2!important;margin-top:25px}
.private-app{font-family:Inter,system-ui,sans-serif;display:flex;min-height:100vh;margin:0;background:#f6f8fd;color:#15284b}.private-app *{box-sizing:border-box}.side{width:250px;flex-shrink:0;background:#122547;padding:27px 15px;color:white;display:flex;flex-direction:column;gap:15px}.side-brand{display:block;background:white;border-radius:12px;overflow:hidden;padding:8px}.side-brand img{width:100%;height:64px;object-fit:contain}.tenant-label{font-size:12px;color:#b6c9e7;padding:4px 12px 12px;overflow-wrap:anywhere}.side nav{display:flex;flex-direction:column;gap:3px}.side nav a{padding:12px;color:#d6e2f4;text-decoration:none;border-radius:9px;font-size:13px}.side nav a:hover,.side nav a.selected{background:#27477e;color:#fff}.side-label{font-size:10px;letter-spacing:2px;color:#9caeca;padding:22px 12px 7px}.side form{margin-top:auto}.side button{cursor:pointer;background:none;color:#edf3ff;border:1px solid #607ca8;border-radius:10px;width:100%;padding:12px}.dashboard{flex:1;min-width:0;padding:45px clamp(20px,5vw,80px)}.dash-header{display:flex;justify-content:space-between;gap:15px;align-items:center}.dash-header span{font-size:13px;color:#62748f}.dash-header h1{font-size:clamp(25px,3vw,40px);margin:8px 0}.user-chip{background:white;border:1px solid #e2e9f5;border-radius:30px;padding:12px 17px;font-size:12px}.lead{color:#667793;line-height:1.7}.kpi-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;margin:33px 0}.kpi,.quick-grid a{border:1px solid #e3eaf5;background:white;border-radius:18px;padding:26px;box-shadow:0 9px 25px #22375b08}.kpi span,.kpi small{display:block;color:#65758c;font-size:13px}.kpi strong{font-size:42px;display:block;margin:13px 0}.kpi .kpi-word{font-size:22px;overflow-wrap:anywhere}.dashboard h2{font-size:21px}.quick-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:15px}.quick-grid a{text-decoration:none;color:#142c58;display:flex;flex-direction:column;gap:14px;transition:transform .15s}.quick-grid a:hover{transform:translateY(-3px);border-color:#a8bceb}.quick-grid small{color:#677993}.stage-note{margin-top:40px;font-size:12px;color:#75849b}@media(max-width:850px){.side{width:190px}.quick-grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:600px){.private-app{display:block}.side{width:100%;padding:15px}.side nav{display:grid;grid-template-columns:repeat(2,1fr)}.side-brand img{height:46px}.dashboard{padding:25px 18px}.dash-header{display:block}.user-chip{display:inline-block}.kpi-grid,.quick-grid{grid-template-columns:1fr}}

/* Identidad visual Typixia, versión de revisión */
.side{width:278px;background:#102248;padding:22px 16px}
.side-brand{background:#fff;border-radius:16px;padding:0;min-height:122px;display:flex;align-items:center;justify-content:center}
.side-brand img{display:block;width:100%;height:116px;object-fit:contain}
/* Solo logo del panel privado /inicio: ampliar sin alterar login ni dimensiones del menú. */
.private-app .side-brand img{transform:scale(1.38);transform-origin:center}
.tenant-label{font-weight:600;font-size:13px;color:#d3e6ff;padding:8px 10px 16px}
.side nav a.selected,.side nav a:hover{background:linear-gradient(100deg,#1765ee,#5d35ed);color:#fff}
.side button:hover{background:#243f74}
.private-app{background:#f6f9ff;color:#0b214b}
.dashboard h1,.dashboard h2{color:#071d48}
.kpi,.quick-grid a{box-shadow:0 10px 28px rgba(17,52,107,.05);border-color:#dce6f7}
.quick-grid a:hover{border-color:#6d8eff}
@media(max-width:850px){.side{width:220px}}
@media(max-width:600px){.side{width:100%}.side-brand{min-height:76px}.side-brand img{height:75px}}

/* En pantallas pequeñas evitamos que el logo se recorte. */
@media(max-width:600px){.private-app .side-brand img{transform:scale(1.12)}}

/* Sidebar: mantener siempre visible Cerrar sesión, independiente del alto del contenido. */
@media (min-width:601px) {
  .private-app .side {
    height: 100vh;
    position: sticky;
    top: 0;
    overflow: hidden;
  }
  .private-app .side nav {
    flex: 1 1 auto;
    min-height: 0;
    overflow-y: auto;
    scrollbar-width: thin;
  }
  .private-app .side form {
    flex: 0 0 auto;
    margin-top: 0;
  }
}


/* V630 · Panel privado Asisto IA · proporciones legibles a zoom 100% */
@media (min-width: 601px) {
  .private-app .side {width:clamp(206px,17.5vw,238px);padding:15px 13px;gap:8px}
  .private-app .side-brand{min-height:82px;border-radius:13px;padding:8px 12px}
  .private-app .side-brand img{height:66px;width:100%;transform:none;object-fit:contain}
  .private-app .tenant-label{font-size:12px;padding:5px 9px 9px}
  .private-app .side nav a{font-size:13px;padding:9px 11px}
  .private-app .side-label{padding:13px 9px 4px}
  .private-app .side button{padding:10px}
}
.private-app .dashboard{padding:clamp(20px,3vw,42px) clamp(22px,3.4vw,58px)}
.private-app .dash-header h1{font-size:clamp(26px,2.2vw,34px);line-height:1.15;margin:7px 0}
.private-app .dash-header span{font-size:12px}
.private-app .user-chip{padding:10px 15px;font-size:12px}
.private-app .lead{font-size:clamp(13px,1vw,15px);line-height:1.5;margin:18px 0}
.private-app .kpi-grid{gap:15px;margin:23px 0}
.private-app .kpi{min-height:137px;padding:19px 22px;border-radius:15px}
.private-app .kpi span,.private-app .kpi small{font-size:12px}
.private-app .kpi strong{font-size:34px;margin:10px 0}
.private-app .kpi .kpi-word{font-size:clamp(17px,1.45vw,22px)}
.private-app .dashboard h2{font-size:19px;margin:22px 0 15px}
.private-app .quick-grid{gap:13px}
.private-app .quick-grid a{min-height:100px;border-radius:15px;padding:18px 21px;gap:9px}
.private-app .quick-grid a strong{font-size:15px}
.private-app .quick-grid a small{font-size:12px}
.private-app .stage-note{margin-top:22px;line-height:1.5}
@media (min-width: 601px) and (max-width: 1050px){
  .private-app .quick-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .private-app .side{width:205px}
  .private-app .dashboard{padding:26px}
}
@media (max-width: 600px){
  .private-app .side{width:100%;padding:13px;gap:8px}
  .private-app .side-brand{min-height:67px;padding:6px}
  .private-app .side-brand img{height:56px;transform:none}
  .private-app .side nav a{padding:9px;font-size:12px}
  .private-app .dashboard{padding:22px 17px}
  .private-app .dash-header h1{font-size:26px}
  .private-app .user-chip{margin-top:8px}
  .private-app .kpi-grid,.private-app .quick-grid{grid-template-columns:1fr}
}
