*{box-sizing:border-box}body{margin:0;font-family:Segoe UI,Arial,sans-serif;background:#edf4fa;color:#063c82;font-size:14px}.windowbar{height:42px;background:linear-gradient(90deg,#083e82,#0757a8);color:#fff;padding:11px 18px;font-weight:600}.windowbar span{float:right}.shell{display:flex;min-height:100vh}.sidebar{width:240px;background:linear-gradient(180deg,#063f7b,#00356d);color:#fff;position:relative;padding-bottom:90px}.logo{height:108px;background:#fff;color:#4e28d8;padding:22px 25px;font-size:19px;line-height:16px}.logo strong{font-size:23px}.logo small{display:block;color:#15509a;font-size:8px;margin-top:5px}.nav{height:45px;display:flex;align-items:center;padding:0 20px;color:#fff;text-decoration:none;font-size:15px}.nav i{margin-left:auto}.nav.active,.nav:hover{background:#1378ed;border-radius:5px;margin:0 7px;padding-left:13px}.version{position:absolute;bottom:20px;left:20px;font-size:12px}main{flex:1;min-width:0}.topbar{height:80px;background:#fff;display:flex;align-items:center;gap:10px;padding:10px 20px;border-bottom:1px solid #dbe6ef}.hamb{border:0;background:white;font-size:25px;color:#07509b}.selector{height:58px;min-width:240px;border:1px solid #dce7f1;border-radius:9px;display:flex;align-items:center;gap:12px;padding:9px 15px;font-size:20px}.selector span{font-size:12px;flex:1;color:#06336e}.selector b{display:block;margin-bottom:6px}.user{margin-left:auto;display:grid;grid-template-columns:auto auto auto;align-items:center;gap:8px}.user small{grid-column:2}.page{padding:14px 16px 8px}.pagehead{background:#f9fcff;border:1px solid #dfeaf2;border-radius:9px 9px 0 0;padding:10px 18px;display:flex;justify-content:space-between}.pagehead h1{font-size:28px;margin:0}.pagehead p{font-size:16px;margin:2px 0}.date{text-align:right;line-height:27px}.kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin:0 0 14px}.kpi,.card{background:#fff;border:1px solid #dfe8ef;border-radius:9px;box-shadow:0 3px 12px #2a5d8b0b}.kpi{height:140px;display:flex;align-items:center;padding:18px;gap:20px}.kpi em{font-style:normal;font-size:36px;background:#147bf0;color:#fff;border-radius:10px;padding:15px}.kpi span{font-weight:600}.kpi strong{display:block;font-size:24px;margin:8px 0}.kpi small{color:#0b9e4f}.grid2{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-bottom:14px}.card{padding:14px}.card h2{margin:0 0 12px;font-size:18px}.card h2 select{float:right;padding:8px;border:1px solid #ccdbe8;border-radius:6px;color:#174c87}.chart{height:175px;border-left:1px solid #cad9e7;border-bottom:1px solid #cad9e7;display:flex;align-items:flex-end;gap:34px;padding:0 30px}.chart i{display:block;width:36px;background:linear-gradient(#398cf1,#1675df);border-radius:3px 3px 0 0}table{width:100%;border-collapse:collapse;color:#173c6a}th{background:#edf3f8;font-size:11px;text-align:left}th,td{padding:9px 10px;border-bottom:1px solid #dce5ed}.danger{color:red}.quick{display:grid;grid-template-columns:repeat(5,1fr);gap:12px}.quick a,.toolbar button{background:#0877ec;color:#fff;border:0;border-radius:6px;padding:18px;text-align:center;text-decoration:none;font-weight:600}.quick a:nth-child(1){background:#20b97b}.quick a:nth-child(3){background:#783ed0}.quick a:nth-child(4){background:#ff792a}.quick a:nth-child(5){background:#07539c}footer{margin:8px 16px;padding:15px;border-top:1px solid #dbe5ee;font-size:12px}footer span{float:right}.module{min-height:650px}.toolbar{display:flex;gap:8px;margin-bottom:12px}.toolbar input{flex:1;border:1px solid #c9d9e8;border-radius:6px;padding:0 14px}.toolbar button{padding:11px 18px}.toolbar .secondary{background:#fff;color:#0b62bc;border:1px solid #a9c7e4}.badge{background:#dff6e8;color:#098c45;padding:4px 9px;border-radius:10px;font-size:10px}.pagination{text-align:right;padding:16px}.pagination b{background:#0877ec;color:white;padding:7px 10px;border-radius:4px}@media(max-width:1200px){.selector{min-width:180px}.kpis{grid-template-columns:1fr 1fr}.sidebar{width:210px}}.primary,.pagehead button,.product-search button,.bottom-actions button,.filter-grid button{border:0;background:#0877ec;color:#fff;border-radius:6px;padding:10px 16px;font-weight:600}.sale-layout{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:14px;margin-top:0}.form-card{border-radius:0 0 9px 9px}.form-grid{display:grid;gap:12px;margin-bottom:12px}.form-grid.four{grid-template-columns:1.1fr 1.1fr .65fr 1fr}.form-grid.client-row{grid-template-columns:1.5fr .8fr .7fr .7fr}.form-grid.three{grid-template-columns:180px 150px 1fr}.form-grid label{font-size:11px;font-weight:600;color:#123d72}.form-grid input,.form-grid select,.sale-detail input,.sale-detail select,.filter-grid input,.filter-grid select{height:34px;width:100%;border:1px solid #bfd2e5;border-radius:5px;padding:0 10px;color:#173c6a;background:#fff}.input-action{display:flex;gap:6px}.input-action input{flex:1}.input-action button{border:0;background:#0877ec;color:#fff;border-radius:5px;padding:0 15px}.outline{background:#fff!important;color:#0767c9!important;border:1px solid #8cb8e6!important}.customer-box{width:50%;background:#eaf4ff;border-radius:5px;padding:10px 14px;margin:-3px 0 10px;color:#164e8d}.tabs{height:40px;display:flex;align-items:flex-end;gap:3px;margin-top:8px}.tabs b,.tabs span{padding:11px 20px;background:#fff;border:1px solid #cbddec;border-radius:6px 6px 0 0}.tabs b{color:#075eb7;border-bottom-color:#fff}.detail-card{border-radius:0 8px 8px 8px;padding:8px}.product-search{display:flex;gap:8px;align-items:center}.product-search input{height:40px;flex:1;border:1px solid #78ace0;border-radius:5px;padding:0 8px}.search-results{margin-top:5px;border:1px solid #d9e5ef;border-radius:5px;max-width:100%}.search-results table th,.search-results table td{padding:5px 9px}.search-results small,td small{display:block;color:#67809b;font-size:10px;margin-top:2px}.mini-page{text-align:right;padding:6px 10px;font-size:11px}.mini-page b{background:#0877ec;color:#fff;padding:4px 7px;border-radius:3px}.sale-detail{margin-top:8px}.sale-detail th{white-space:nowrap}.sale-detail td{padding:6px}.sale-detail input,.sale-detail select{height:30px;padding:0 5px}.sale-detail td:nth-child(2){min-width:180px}.sale-detail td:nth-child(8){min-width:150px}.iconbtn{border:0;background:#0877ec;color:#fff;border-radius:4px;width:30px;height:30px}.iconbtn.red,.redbtn{background:#e93642!important;color:#fff!important}.bottom-actions{display:grid;grid-template-columns:auto auto auto 1fr auto auto auto;gap:8px;margin:12px 0}.summary{align-self:start;margin-top:0;padding:0;overflow:hidden}.summary h2{background:#eef6ff;border-left:6px solid #0877ec;padding:14px;margin:0}.summary p{display:flex;justify-content:space-between;margin:0;padding:10px 13px;border-bottom:1px solid #dce7f0}.summary>div{display:flex;justify-content:space-between;padding:13px;font-size:18px;font-weight:700}.summary strong{font-size:26px}.summary>small{display:block;padding:13px;line-height:18px}.sale-number{display:flex;align-items:center;gap:10px}.sale-number small{border:1px solid #8bb9e9;padding:8px;border-radius:4px}.filter-grid{display:grid;grid-template-columns:2fr 1fr 1fr 1fr auto;gap:8px;margin-bottom:12px}.filter-grid input,.filter-grid select{height:38px}.inventory-kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin:14px 0}.kpi-mini{background:#fff;border:1px solid #dce7f0;border-radius:8px;padding:16px}.kpi-mini b{font-size:24px;display:block}.kpi-mini span{font-size:12px}.warningbox b,.warning{color:#e58b00}.dangerbox b{color:#e52b35}.tag{font-size:10px;padding:4px 8px;border-radius:10px}.tag.warn{background:#fff0d7;color:#c16e00}@media(max-width:1350px){.sale-layout{grid-template-columns:1fr}.summary{order:-1}.form-grid.client-row{grid-template-columns:1fr 1fr}.filter-grid{grid-template-columns:1fr 1fr}.sale-detail{font-size:11px}}
/* V003 Professional ERP consistency */
:root{--erp-blue:#0877ec;--erp-navy:#063f7b;--erp-border:#dce7f0;--erp-bg:#edf4fa;--erp-text:#173c6a}
.pagehead{min-height:72px;align-items:center}.pagehead h1{font-size:24px}.module .card{overflow:hidden}.erp-section-title{font-size:13px;text-transform:uppercase;letter-spacing:.3px;color:#174c87;border-bottom:1px solid var(--erp-border);padding:10px 0;margin:0 0 12px}.actions{display:flex;gap:5px}.btn32{width:32px;height:32px;padding:0;border:0;border-radius:5px;background:var(--erp-blue);color:#fff}.btn32.danger{background:#e93642}.status-ok{background:#dff6e8;color:#098c45}.status-pending{background:#fff0d7;color:#c16e00}.status-info{background:#e5f1ff;color:#0767c9}.status-bad{background:#ffe4e6;color:#c92a36}.status-ok,.status-pending,.status-info,.status-bad{display:inline-block;padding:4px 9px;border-radius:12px;font-size:10px;font-weight:700}.compact-table th{height:34px;text-transform:uppercase;font-size:10.5px}.compact-table td{height:42px;padding:5px 9px;font-size:11.5px}.module-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:14px}.module-tile{background:#fff;border:1px solid var(--erp-border);border-radius:8px;padding:15px;text-decoration:none;color:var(--erp-text);min-height:88px}.module-tile b{display:block;font-size:14px;margin-bottom:7px}.module-tile small{color:#6d829a}.module-tile:hover{border-color:#8cb8e6;box-shadow:0 3px 12px #2a5d8b12}.two-panels{display:grid;grid-template-columns:1.25fr .75fr;gap:14px}.form-grid.two{grid-template-columns:1fr 1fr}.form-grid.five{grid-template-columns:repeat(5,1fr)}.right{text-align:right}.muted{color:#6d829a}.total-box{background:#f4f9ff;border:1px solid #cfe1f2;border-radius:7px;padding:12px}.total-box p{display:flex;justify-content:space-between;margin:7px 0}.total-box .grand{font-size:20px;font-weight:700;border-top:1px solid #cfe1f2;padding-top:10px}.sidebar{overflow-y:auto}.version{position:sticky;top:calc(100vh - 95px);background:#00356d;padding:10px 0;margin-left:0}.nav{flex-shrink:0}@media(max-width:1100px){.module-grid{grid-template-columns:1fr 1fr}.two-panels{grid-template-columns:1fr}.form-grid.five{grid-template-columns:1fr 1fr}}

/* V004 - apariencia aprobada obligatoria */
.professional-tiles{margin-top:14px}.professional-tiles .module-tile{border-top:3px solid #0877ec}.pagehead+.professional-tiles+.card{border-top-left-radius:9px;border-top-right-radius:9px}.compact-table tbody tr:hover{background:#f4f9ff}.compact-table th{cursor:pointer}.primary{min-height:36px}.sidebar,.topbar,.pagehead,.card,.module-tile{font-family:Segoe UI,Arial,sans-serif}

/* V005 - búsqueda de productos compacta moderada, estándar ERP */
.search-results table tbody tr{height:48px}.search-results table td{height:48px;padding:5px 9px;vertical-align:middle;line-height:16px}.search-results table th{height:32px;padding:5px 9px}.search-results table td small{line-height:13px;margin-top:1px}.search-results .btn32,.search-results .iconbtn{width:32px;height:32px}.search-results .product-name{white-space:normal;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;max-height:32px}.transaction-actions{display:flex;gap:8px;justify-content:flex-end;margin-top:12px}.transaction-actions button{height:36px}.audit-note{font-size:10.5px;color:#6d829a;margin-top:8px}.money{text-align:right;font-variant-numeric:tabular-nums}.number{text-align:right;font-variant-numeric:tabular-nums}
/* V006 - mantiene apariencia aprobada; operación real sin alterar layout */
.search-results table tbody tr{height:48px!important}.search-results table td{height:48px!important;vertical-align:middle!important}.fefo-mark{font-size:10px;font-weight:700;color:#098c45;background:#dff6e8;border-radius:10px;padding:3px 7px}.stock-low{color:#c16e00;font-weight:700}.flow-strip{display:flex;gap:6px;align-items:center;padding:8px 10px;margin:8px 0;background:#f4f9ff;border:1px solid #cfe1f2;border-radius:6px;font-size:10.5px}.flow-strip b{color:#0767c9}.flow-strip i{font-style:normal;color:#8aa0b7}.sale-detail tbody tr{min-height:42px}.sale-detail td{vertical-align:middle}
/* V009 - inventario: conserva el patrón visual aprobado */
.erp-tabs{display:flex;gap:6px;flex-wrap:wrap;border-bottom:1px solid #e7edf5;margin:-4px 0 14px;padding-bottom:8px}.erp-tabs button{height:32px;padding:0 12px;border:1px solid #dce5f0;background:#fff;border-radius:5px;color:#536174;font-size:11px;font-weight:600}.erp-tabs button.active{background:#0B66D4;color:#fff;border-color:#0B66D4}.pagehead .primary{height:34px;padding:0 14px;border:0;border-radius:5px;background:#0B66D4;color:#fff;font-size:12px;font-weight:600}
/* V011 - catálogo farmacéutico profesional sin alterar el patrón visual aprobado */
.product-tabs{display:flex;gap:3px;margin:10px 0 0}.product-tabs button{height:34px;padding:0 14px;border:1px solid #cbddec;background:#fff;color:#174c87;border-radius:6px 6px 0 0}.product-tabs button.active{color:#075eb7;font-weight:700;border-bottom-color:#fff}.pharma-meta{display:flex;gap:6px;flex-wrap:wrap;margin-top:3px}.pharma-meta span{font-size:9.5px;background:#eef6ff;color:#18548e;border-radius:9px;padding:2px 6px}.price-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}.price-grid label{font-size:10.5px;font-weight:600}.price-grid input,.price-grid select{height:32px;width:100%;border:1px solid #bfd2e5;border-radius:5px;padding:0 8px}.barcode{font-family:Consolas,monospace;font-size:11px}.rx-badge{font-size:9.5px;background:#fff0d7;color:#a96000;border-radius:9px;padding:2px 6px;font-weight:700}.product-row-actions{display:flex;gap:4px}.product-row-actions button{width:32px;height:32px;border:1px solid #a9c7e4;background:#fff;color:#0767c9;border-radius:5px}.product-row-actions button.primary-mini{background:#0877ec;color:#fff;border-color:#0877ec}
/* V012: extensión funcional conservando el patrón visual aprobado */
.form-grid{display:grid;grid-template-columns:repeat(4,minmax(150px,1fr));gap:12px;margin-top:10px}.form-grid label{font-size:12px;font-weight:600;color:#334155}.form-grid input,.form-grid select{display:block;width:100%;height:32px;margin-top:5px;border:1px solid #d7dee8;border-radius:5px;padding:0 9px;font:inherit;background:#fff}.section-title{font-size:13px;font-weight:700;text-transform:uppercase;color:#334155;border-bottom:1px solid #e8edf3;padding-bottom:9px}.compact-table tbody tr{min-height:48px}.compact-table tbody td{height:48px;vertical-align:middle}@media(max-width:1100px){.form-grid{grid-template-columns:repeat(2,minmax(150px,1fr))}}
/* V013 - APARIENCIA APROBADA: se elimina la altura fija de resultados.
   La fila toma su alto natural según tipografía, contenido y padding del patrón maestro. */
.search-results table tbody tr{height:auto!important;min-height:0!important}
.search-results table td{height:auto!important;min-height:0!important;padding:5px 9px!important;vertical-align:middle!important;line-height:1.25!important}
.search-results table td small{line-height:1.2!important;margin-top:2px!important}
.search-results table th{height:auto!important;padding:6px 9px!important}
.compact-table tbody tr{height:auto!important;min-height:0!important}
.compact-table tbody td{height:42px!important;min-height:0!important;vertical-align:middle!important}
/* V018 - conserva la apariencia maestra aprobada; sin imponer alturas arbitrarias */
.sunat-state{display:inline-flex;align-items:center;gap:5px;font-size:10px;font-weight:700;padding:4px 8px;border-radius:10px;background:#e5f1ff;color:#0767c9}.sunat-state.ok{background:#dff6e8;color:#098c45}.sunat-state.bad{background:#ffe4e6;color:#c92a36}.cpe-summary{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin:12px 0}.cpe-summary .card{padding:13px}.cpe-summary b{display:block;font-size:20px;margin-top:5px}.document-actions{display:flex;gap:5px;flex-wrap:wrap}.document-actions button{height:32px;min-width:32px;border:1px solid #a9c7e4;border-radius:5px;background:#fff;color:#0767c9}.document-actions button.primary-mini{background:#0877ec;color:#fff;border-color:#0877ec}@media(max-width:1100px){.cpe-summary{grid-template-columns:1fr 1fr}}

/* V021 - estabilización visual: manda la apariencia maestra aprobada, no alturas heredadas */
.search-results table tbody tr,.compact-table tbody tr{height:auto!important;min-height:0!important}
.search-results table td,.compact-table tbody td{height:auto!important;min-height:0!important;vertical-align:middle!important}
/* V022 - POS funcional conservando estrictamente la apariencia maestra aprobada */
.search-results tbody tr[data-producto-id]{cursor:pointer}.search-results tbody tr[data-producto-id]:hover,.search-results tbody tr.selected-row{background:#eef6ff}.client-results{position:relative;background:#fff;border:1px solid #cbddec;border-radius:6px;margin:-8px 0 10px;width:50%;max-height:210px;overflow:auto;z-index:3}.client-result{padding:7px 10px;border-bottom:1px solid #edf2f7;cursor:pointer;font-size:11px}.client-result:hover{background:#eef6ff}.client-result b{display:block;font-size:12px}.rx-required{color:#a96000;font-size:10px;font-weight:700}.sale-detail .product-description{min-width:220px}.pos-message{padding:8px 10px;border-radius:5px;margin:7px 0;font-size:11px;background:#eef6ff;color:#075eb7}.pos-message.bad{background:#ffe4e6;color:#c92a36}
/* V029: login conserva el lenguaje visual maestro aprobado. */
.auth-body{margin:0;min-height:100vh;display:grid;place-items:center;background:#f4f7fb;font-family:Inter,Arial,sans-serif}.login-card{width:min(390px,calc(100% - 40px));background:#fff;border:1px solid #e3e8ef;border-radius:10px;padding:28px;box-shadow:0 12px 36px rgba(23,43,77,.10)}.login-brand{color:#0b3b78;margin-bottom:22px}.login-brand strong{font-size:22px}.login-brand small{display:block;color:#6b778c;margin-top:5px}.login-card h1{font-size:20px;margin:0 0 6px;color:#172b4d}.login-card p{font-size:12px;color:#6b778c;margin:0 0 20px}.login-card label{display:block;font-size:12px;font-weight:600;margin:12px 0 5px}.login-card input{box-sizing:border-box;width:100%;height:34px;border:1px solid #cfd7e3;border-radius:5px;padding:0 10px;font-size:12px}.login-card button{width:100%;height:36px;margin-top:18px;border:0;border-radius:5px;background:#0b66d4;color:#fff;font-weight:700;cursor:pointer}.login-error{padding:9px 10px;background:#fff1f0;border:1px solid #ffc9c5;color:#b42318;border-radius:5px;font-size:12px}
.context-form{display:flex;align-items:center;max-width:310px}.context-form select{height:32px;max-width:300px;border:1px solid #d6dde8;border-radius:4px;background:#fff;padding:0 8px;font-size:11px;color:#334}.logout-btn{border:0;background:transparent;color:#0b66d4;font-size:11px;cursor:pointer;margin-left:6px}
/* V030: seguridad funcional conservando el patrón visual maestro aprobado. */
.erp-dialog{width:min(900px,94vw);border:1px solid #d9e5ef;border-radius:9px;padding:0;box-shadow:0 18px 55px #173c6a33;color:#173c6a}.erp-dialog::backdrop{background:#062c5b66}.erp-dialog form{padding:14px}.erp-dialog label{display:block;font-size:11px;font-weight:600;margin:8px 0}.erp-dialog input,.erp-dialog select{height:34px;width:100%;border:1px solid #bfd2e5;border-radius:5px;padding:0 10px;background:#fff;color:#173c6a}.dialog-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:16px}.context-row{display:grid;grid-template-columns:1fr 1fr 1fr 34px;gap:8px;margin:7px 0;align-items:center}.context-row button{height:32px;border:0;border-radius:5px;background:#e93642;color:#fff}.permission-check{text-align:center}.permission-check input{width:16px;height:16px}.module-tile[data-sec-tab]{cursor:pointer}.module-tile.active{outline:2px solid #0877ec}
/* V031 - configuración profesional conservando el patrón visual aprobado. */
.config-columns{display:grid;grid-template-columns:1fr 1fr;gap:14px}.config-columns section{border:1px solid #dfe8ef;border-radius:7px;padding:10px;background:#fff}.config-columns h3{margin:0 0 8px;font-size:13px;color:#174c87}.config-columns .cfg-new{margin-top:9px;height:34px;padding:0 12px}.config-columns tbody tr{cursor:pointer}.config-columns tbody tr:hover{background:#f4f9ff}@media(max-width:1100px){.config-columns{grid-template-columns:1fr}}
/* V043 LOGIN: misma identidad ERP aprobada, con selección de contexto antes de autenticar. */
.auth-body{display:block;min-height:100vh;background:#eef4fb;color:#0b376d;overflow-x:hidden}.login-shell{min-height:calc(100vh - 46px);display:grid;grid-template-columns:1fr 1.03fr;background:linear-gradient(118deg,#063d76 0 43%,#eaf2fb 43% 100%)}.login-hero{position:relative;overflow:hidden;background:linear-gradient(145deg,#003b73,#0b5da6 62%,#1978c5);color:#fff}.login-hero:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(0,35,74,.30),rgba(9,88,157,.08)),linear-gradient(145deg,transparent 60%,rgba(255,255,255,.09) 60% 76%,transparent 76%)}.login-hero-shape{position:absolute;width:440px;height:740px;right:-100px;top:0;transform:skewX(-10deg);border-left:1px solid rgba(255,255,255,.16);background:linear-gradient(180deg,rgba(255,255,255,.07),rgba(0,30,68,.15));box-shadow:-40px 0 100px rgba(0,28,65,.25)}.login-hero-content{position:relative;z-index:2;max-width:520px;margin:0 auto;padding:70px 55px 35px}.login-gr-mark span{display:block;font-size:74px;line-height:.8;font-weight:900;letter-spacing:-8px}.login-gr-mark small{display:block;margin:18px 0 55px 8px;font-size:15px;letter-spacing:5px}.login-product h1{font-size:46px;line-height:1.12;margin:0;letter-spacing:1px}.login-product i{display:block;width:330px;border-top:1px solid rgba(255,255,255,.8);margin:12px 0}.login-product p{font-size:22px;margin:0 0 42px}.login-benefits{display:grid;gap:16px}.login-benefits>div{display:flex;align-items:center;gap:18px}.login-benefits b{display:grid;place-items:center;width:52px;height:52px;border-radius:9px;background:rgba(0,31,69,.62);font-size:25px}.login-benefits span{display:flex;flex-direction:column}.login-benefits strong{font-size:16px}.login-benefits small{font-size:13px;margin-top:4px}.login-slogan{margin-top:42px;padding-top:25px;border-top:1px solid rgba(255,255,255,.8);font-size:11px;letter-spacing:6px}.login-panel{display:grid;place-items:center;padding:32px}.login-card-v043{position:relative;width:min(580px,calc(100vw - 70px));box-sizing:border-box;background:rgba(255,255,255,.96);border:1px solid #dbe6f2;border-radius:20px;padding:45px 48px 28px;box-shadow:0 18px 50px rgba(25,72,120,.14)}.login-card-v043 h2{font-size:30px;margin:0 0 10px;color:#0b376d}.login-lead{font-size:15px;color:#46688e;margin:0 0 25px}.login-version{position:absolute;right:42px;top:28px;text-align:right}.login-version strong,.login-version span{display:block}.login-version strong{font-size:14px}.login-version span{font-size:11px;color:#58769a;margin-top:4px}.login-field{display:grid;grid-template-columns:45px 1fr;gap:12px;align-items:end;margin:13px 0}.login-field-icon{display:grid;place-items:center;height:38px;font-size:25px;color:#0b66d4}.login-field label{font-size:11px;font-weight:800;color:#0b376d}.login-field select,.login-field input{display:block;box-sizing:border-box;width:100%;height:38px;margin-top:5px;border:1px solid #c7d4e4;border-radius:6px;background:#fff;padding:0 12px;color:#183c65;font:12px Inter,Arial,sans-serif;outline:none}.login-field select:focus,.login-field input:focus{border-color:#0b66d4;box-shadow:0 0 0 2px rgba(11,102,212,.10)}.password-wrap{display:flex;margin-top:5px}.password-wrap input{margin:0;border-radius:6px 0 0 6px}.password-wrap button{width:46px;border:1px solid #c7d4e4;border-left:0;border-radius:0 6px 6px 0;background:#f7f9fc;color:#52739a;cursor:pointer}.remember-row{display:flex;align-items:center;gap:8px;margin:14px 0 18px 57px;font-size:12px;color:#233f61}.remember-row input{width:17px;height:17px;accent-color:#0b66d4}.remember-row b{margin-left:auto;display:grid;place-items:center;width:17px;height:17px;border-radius:50%;background:#7890ac;color:#fff;font-size:10px}.login-submit{margin-left:57px;width:calc(100% - 57px);height:50px;border:0;border-radius:8px;background:linear-gradient(90deg,#07549b,#0b72d5);box-shadow:0 6px 12px rgba(11,102,212,.22);color:#fff;font-size:18px;font-weight:800;cursor:pointer}.login-submit span{font-size:26px;margin-right:12px}.login-actions{display:flex;justify-content:space-between;margin:23px 0 20px 57px;padding-top:18px;border-top:1px solid #b9cbe0;font-size:12px;color:#0b66d4}.login-actions a{color:#0b66d4}.login-note{padding:14px 16px;border-radius:8px;background:#e8f2ff;color:#0b66d4;font-size:11px}.login-footer{height:46px;box-sizing:border-box;display:flex;align-items:center;justify-content:space-between;padding:0 28px;background:#05386b;color:#fff;font-size:11px}.login-error{margin:0 0 15px 57px;padding:9px 10px;background:#fff1f0;border:1px solid #ffc9c5;color:#b42318;border-radius:5px;font-size:11px}@media(max-width:900px){.login-shell{grid-template-columns:1fr;background:#eef4fb}.login-hero{display:none}.login-panel{padding:18px}.login-card-v043{width:min(580px,100%);padding:38px 24px 24px}.login-version{right:24px}.login-footer{justify-content:center}.login-footer span:last-child{display:none}}@media(max-width:520px){.login-field{grid-template-columns:32px 1fr}.remember-row,.login-submit,.login-actions,.login-error{margin-left:44px}.login-submit{width:calc(100% - 44px)}.login-version{position:static;text-align:left;margin-bottom:14px}.login-card-v043 h2{font-size:25px}}


/* V045 - Login premium ERP. Mantiene identidad aprobada y corrige footer a ancho completo. */
.auth-body{min-height:100dvh;background:#eaf2fb;overflow-x:hidden;padding:0 0 52px!important;box-sizing:border-box}
.login-shell{min-height:calc(100dvh - 52px)!important;background:linear-gradient(118deg,#063d76 0 43%,#eef5fc 43% 100%);position:relative}
.login-shell:before{content:"";position:absolute;inset:0;pointer-events:none;background:radial-gradient(circle at 78% 28%,rgba(11,102,212,.10),transparent 32%),linear-gradient(135deg,transparent 68%,rgba(255,255,255,.34));}
.login-hero{box-shadow:18px 0 45px rgba(5,47,93,.12)}
.login-hero-content{padding-top:62px}
.login-gr-mark span{text-shadow:0 8px 28px rgba(0,30,70,.22)}
.login-panel{position:relative;z-index:2;padding:34px 5vw}
.login-card-v045{position:relative;width:min(600px,100%);box-sizing:border-box;background:linear-gradient(180deg,rgba(255,255,255,.985),rgba(250,253,255,.97));border:1px solid rgba(166,193,221,.58);border-radius:22px;padding:48px 50px 30px;box-shadow:0 24px 70px rgba(14,57,105,.18),0 2px 8px rgba(20,75,132,.08);overflow:hidden}
.login-card-v045:before{content:"";position:absolute;left:0;top:0;width:100%;height:4px;background:linear-gradient(90deg,#064f97,#0b78df,#43a4ff)}
.login-card-v045:after{content:"";position:absolute;width:180px;height:180px;border-radius:50%;right:-95px;top:-100px;background:rgba(11,102,212,.055);pointer-events:none}
.login-card-v045 h2{font-size:31px;line-height:1.1;margin:0 0 9px;color:#0a3569;letter-spacing:-.5px}
.login-card-v045 .login-lead{font-size:14px;color:#5a7594;margin-bottom:27px}
.login-card-v045 .login-version{right:38px;top:30px;padding:7px 10px;border-radius:8px;background:#f2f7fd;border:1px solid #e0eaf5}
.login-card-v045 .login-version strong{font-size:12px;color:#0a4382}.login-card-v045 .login-version span{font-size:10px}
.login-card-v045 .login-field{grid-template-columns:42px 1fr;gap:13px;margin:12px 0}
.login-card-v045 .login-field-icon{height:40px;width:40px;border-radius:9px;background:#edf6ff;border:1px solid #d8eafb;color:#0b66d4;font-size:20px}
.login-card-v045 .login-field label{font-size:10.5px;letter-spacing:.25px;color:#123f73}
.login-card-v045 .login-field select,.login-card-v045 .login-field input{height:40px;border-color:#c8d7e7;border-radius:7px;background:#fff;transition:border-color .15s,box-shadow .15s}
.login-card-v045 .login-field select:hover,.login-card-v045 .login-field input:hover{border-color:#9ebcda}
.login-card-v045 .password-wrap button{width:48px;border-color:#c8d7e7;background:#f6f9fc}
.login-card-v045 .remember-row{margin:14px 0 18px 55px}
.login-card-v045 .login-submit{margin-left:55px;width:calc(100% - 55px);height:48px;border-radius:8px;background:linear-gradient(100deg,#07529a,#0878df);box-shadow:0 9px 20px rgba(8,102,200,.22);letter-spacing:.3px;transition:transform .15s,box-shadow .15s}
.login-card-v045 .login-submit:hover{transform:translateY(-1px);box-shadow:0 12px 25px rgba(8,102,200,.27)}
.login-card-v045 .login-actions{margin:20px 0 17px 55px;padding-top:16px;border-top-color:#d6e2ef}
.login-card-v045 .login-note{margin-left:55px;padding:12px 14px;border:1px solid #d9eaff;background:#f0f7ff;border-radius:8px;color:#316a9f}
.login-footer{position:fixed!important;left:0!important;right:0!important;bottom:0!important;width:100vw!important;max-width:none!important;height:52px!important;z-index:9999!important;box-sizing:border-box!important;display:flex!important;align-items:center!important;justify-content:space-between!important;margin:0!important;padding:0 clamp(24px,4vw,68px)!important;background:linear-gradient(90deg,#042f5c,#064985 55%,#075a9d)!important;border-top:1px solid rgba(255,255,255,.16);box-shadow:0 -8px 25px rgba(4,47,92,.12);color:#fff!important;font-size:11px!important}
.login-footer span{display:flex;align-items:center;gap:12px;white-space:nowrap}.login-footer i{display:inline-block;width:1px;height:16px;background:rgba(255,255,255,.35)}
.login-footer-status b{width:7px;height:7px;border-radius:50%;background:#4be19a;box-shadow:0 0 0 4px rgba(75,225,154,.13)}
@media(max-width:900px){.auth-body{padding-bottom:48px!important}.login-shell{min-height:calc(100dvh - 48px)!important}.login-card-v045{width:min(600px,100%);padding:42px 28px 27px}.login-card-v045 .login-version{right:28px}.login-footer{height:48px!important;justify-content:center!important}.login-footer-status{display:none!important}}
@media(max-width:520px){.login-card-v045{padding:28px 18px 22px;border-radius:16px}.login-card-v045 .login-version{position:static;display:inline-block;text-align:left;margin-bottom:14px}.login-card-v045 .login-field{grid-template-columns:36px 1fr;gap:9px}.login-card-v045 .login-field-icon{width:34px;height:38px}.login-card-v045 .remember-row,.login-card-v045 .login-submit,.login-card-v045 .login-actions,.login-card-v045 .login-note,.login-card-v045 .login-error{margin-left:45px}.login-card-v045 .login-submit{width:calc(100% - 45px)}.login-footer{padding:0 14px!important;font-size:9.5px!important}.login-footer span:first-child{gap:7px}.login-footer span:first-child i{display:none}}


/* V047 - corrección definitiva login premium + cache busting. */
html,body.auth-body{margin:0!important;width:100%!important;min-width:100%!important;max-width:none!important;min-height:100vh!important;min-height:100dvh!important;padding:0!important;overflow-x:hidden!important;background:#edf4fb!important}
.auth-body .login-shell{width:100%!important;max-width:none!important;min-height:calc(100vh - 48px)!important;min-height:calc(100dvh - 48px)!important;margin:0!important;display:grid!important;grid-template-columns:minmax(460px,42%) minmax(620px,58%)!important;background:#edf4fb!important}
.auth-body .login-hero{min-width:0!important;height:auto!important;background:linear-gradient(145deg,#00386e 0%,#07569c 58%,#1578c8 100%)!important}
.auth-body .login-hero-content{box-sizing:border-box!important;width:min(100%,560px)!important;min-height:calc(100vh - 48px)!important;min-height:calc(100dvh - 48px)!important;margin:0 auto!important;padding:58px 58px 34px!important;display:flex!important;flex-direction:column!important}
.auth-body .login-slogan{margin-top:auto!important}
.auth-body .login-panel{box-sizing:border-box!important;width:100%!important;min-width:0!important;padding:36px clamp(36px,6vw,110px)!important;display:flex!important;align-items:center!important;justify-content:center!important;background:radial-gradient(circle at 55% 30%,#fff 0,#f4f8fd 38%,#eaf2fb 100%)!important}
.auth-body .login-card-v046{position:relative!important;box-sizing:border-box!important;width:min(100%,610px)!important;max-width:610px!important;margin:0!important;padding:46px 48px 28px!important;background:rgba(255,255,255,.985)!important;border:1px solid #d6e3f0!important;border-radius:20px!important;box-shadow:0 24px 65px rgba(17,62,109,.18),0 3px 12px rgba(17,62,109,.08)!important;overflow:hidden!important}
.auth-body .login-card-v046:before{content:"";position:absolute;left:0;right:0;top:0;height:4px;background:linear-gradient(90deg,#064f97,#0b78df,#49a8ff)}
.auth-body .login-card-v046 h2{font-size:31px;line-height:1.1;margin:0 0 9px;color:#0a3569;letter-spacing:-.5px}
.auth-body .login-card-v046 .login-lead{font-size:14px;color:#5a7594;margin:0 0 26px}
.auth-body .login-card-v046 .login-version{right:36px;top:27px;padding:7px 10px;border:1px solid #e0eaf5;border-radius:8px;background:#f3f8fd}
.auth-body .login-card-v046 .login-field{grid-template-columns:42px minmax(0,1fr);gap:13px;margin:12px 0}
.auth-body .login-card-v046 .login-field-icon{width:40px;height:40px;border:1px solid #d8eafb;border-radius:9px;background:#edf6ff;font-size:20px}
.auth-body .login-card-v046 .login-field select,.auth-body .login-card-v046 .login-field input{height:40px;border-color:#c8d7e7;border-radius:7px;background:#fff}
.auth-body .login-card-v046 .remember-row{margin:14px 0 18px 55px}
.auth-body .login-card-v046 .login-submit{margin-left:55px;width:calc(100% - 55px);height:48px;border-radius:8px;box-shadow:0 9px 20px rgba(8,102,200,.22)}
.auth-body .login-card-v046 .login-actions{margin:20px 0 17px 55px;padding-top:16px;border-top:1px solid #d6e2ef}
.auth-body .login-card-v046 .login-note{margin-left:55px;padding:12px 14px;border:1px solid #d9eaff;background:#f0f7ff;border-radius:8px;color:#316a9f}
.auth-body>.login-footer{position:fixed!important;inset:auto 0 0 0!important;width:100%!important;max-width:none!important;height:48px!important;margin:0!important;padding:0 clamp(24px,4vw,68px)!important;box-sizing:border-box!important;display:flex!important;align-items:center!important;justify-content:space-between!important;z-index:99999!important;background:linear-gradient(90deg,#032d59,#05477f 55%,#075b9e)!important;color:#fff!important;border-top:1px solid rgba(255,255,255,.15)!important;box-shadow:0 -7px 22px rgba(4,47,92,.12)!important}
@media(max-width:1050px){.auth-body .login-shell{grid-template-columns:40% 60%!important}.auth-body .login-hero-content{padding:45px 34px 28px!important}.auth-body .login-panel{padding:28px!important}.auth-body .login-card-v046{padding:42px 30px 26px!important}}
@media(max-width:820px){.auth-body .login-shell{display:block!important}.auth-body .login-hero{display:none!important}.auth-body .login-panel{min-height:calc(100vh - 48px)!important;padding:22px!important}.auth-body .login-card-v046{width:min(100%,610px)!important}.auth-body>.login-footer{justify-content:center!important}.auth-body>.login-footer .login-footer-status{display:none!important}}
@media(max-width:520px){.auth-body .login-panel{padding:12px!important}.auth-body .login-card-v046{padding:28px 18px 22px!important;border-radius:15px!important}.auth-body .login-card-v046 .login-version{position:static!important;display:inline-block!important;text-align:left!important;margin-bottom:14px!important}.auth-body .login-card-v046 .login-field{grid-template-columns:36px minmax(0,1fr)!important;gap:9px!important}.auth-body .login-card-v046 .remember-row,.auth-body .login-card-v046 .login-submit,.auth-body .login-card-v046 .login-actions,.auth-body .login-card-v046 .login-note,.auth-body .login-card-v046 .login-error{margin-left:45px!important}.auth-body .login-card-v046 .login-submit{width:calc(100% - 45px)!important}.auth-body>.login-footer{padding:0 12px!important;font-size:9px!important}}


/* =========================================================
   V051 - Layout ERP organizado: cabecera, menú y pie fijos
   Solo el área de contenido y el menú lateral hacen scroll.
   ========================================================= */
html,body{height:100%;overflow:hidden}
body>.shell{height:100vh!important;min-height:0!important;overflow:hidden!important;display:flex!important}
.shell>.sidebar{height:100vh!important;min-height:0!important;position:relative!important;display:flex!important;flex-direction:column!important;padding-bottom:0!important;overflow:hidden!important;flex:0 0 240px!important}
.sidebar>.logo{height:108px!important;min-height:108px!important;flex:0 0 108px!important}
.sidebar-nav{flex:1 1 auto!important;min-height:0!important;overflow-y:auto!important;overflow-x:hidden!important;padding:0 0 54px!important;scrollbar-width:thin;scrollbar-color:rgba(255,255,255,.28) transparent}
.sidebar-nav::-webkit-scrollbar{width:6px}.sidebar-nav::-webkit-scrollbar-thumb{background:rgba(255,255,255,.28);border-radius:8px}
.sidebar .nav{min-height:45px!important;height:45px!important;flex-shrink:0!important}
.sidebar>.version{left:0!important;right:0!important;bottom:0!important;height:50px!important;padding:8px 12px!important;background:#063b73!important;border-top:1px solid rgba(255,255,255,.12)!important;font-size:10px!important;line-height:15px!important;z-index:5!important}
.shell>main{height:100vh!important;min-height:0!important;display:grid!important;grid-template-rows:80px minmax(0,1fr) 44px!important;overflow:hidden!important;flex:1 1 auto!important}
main>.topbar{position:relative!important;top:auto!important;height:80px!important;min-height:80px!important;z-index:100!important;overflow:visible!important;box-shadow:0 1px 7px rgba(16,62,105,.08)!important}
main>.page{min-height:0!important;overflow-y:auto!important;overflow-x:hidden!important;padding:14px 16px 12px!important;scrollbar-width:thin;scrollbar-color:#aac1d8 transparent}
main>.page::-webkit-scrollbar{width:8px}.shell>main>.page::-webkit-scrollbar-thumb{background:#aac1d8;border-radius:8px}
.shell>main>footer{position:relative!important;left:auto!important;right:auto!important;bottom:auto!important;height:44px!important;min-height:44px!important;margin:0!important;padding:0 16px!important;display:flex!important;align-items:center!important;border-top:1px solid #d7e4ef!important;background:#f7fbff!important;z-index:90!important;font-size:11px!important;box-shadow:0 -1px 5px rgba(16,62,105,.04)!important}
.shell>main>footer span{float:none!important;margin-left:auto!important}
.page>.pagehead:first-child{margin-top:0!important}
.module{min-height:0!important}
@media(max-width:1200px){.shell>.sidebar{flex-basis:210px!important}.shell>main{grid-template-rows:76px minmax(0,1fr) 42px!important}.shell>main>.topbar{height:76px!important;min-height:76px!important}.shell>main>footer{height:42px!important;min-height:42px!important}}
