
:root{--blue:#006e91;--navy:#073d54;--bg:#f2f6f9;--border:#dbe5ea;--muted:#647785}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:#183747;font:14px Arial,sans-serif}header{background:white;border-bottom:1px solid var(--border);padding:10px 24px;display:flex;align-items:center;justify-content:space-between}header img{width:290px;max-width:60vw;height:75px;object-fit:contain;object-position:left}nav{background:var(--navy);display:flex;flex-wrap:wrap;padding:9px 22px;gap:8px}nav button{background:transparent;color:white;border:0;padding:12px 16px;border-radius:7px}nav button.active,nav button:hover{background:#087da0}main{max-width:1300px;margin:24px auto;padding:0 18px}.page{display:none}.page.active{display:block}h1{font-size:25px;margin:0 0 8px}h2{font-size:18px;margin:0 0 16px}p{color:var(--muted)}.panel{background:white;border:1px solid var(--border);border-radius:13px;padding:20px;margin:15px 0;box-shadow:0 3px 15px #103d5408}.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:14px}.stat{background:white;padding:20px;border:1px solid var(--border);border-radius:12px}.stat strong{font-size:28px;display:block;color:var(--blue);margin-top:9px}label{display:block;font-weight:600;margin-bottom:6px}input,select,textarea{width:100%;padding:11px;border:1px solid #cbd9e0;border-radius:7px;font:inherit;background:white;color:#183747}textarea{min-height:65px}button{cursor:pointer;border:0;background:var(--blue);color:white;padding:10px 15px;border-radius:7px;font-weight:600}button.secondary{background:#e8f0f4;color:var(--navy)}button.danger{background:#b73b44}button.small{padding:6px 9px;font-size:12px;margin:2px}.actions{display:flex;gap:8px;flex-wrap:wrap;align-items:end}.fields{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:14px;align-items:end}.field{min-width:0}table{border-collapse:collapse;width:100%;font-size:13px}th,td{padding:11px;text-align:left;border-bottom:1px solid #e7edf0;vertical-align:top}th{background:#f3f8fa;color:#47606d} .scroll{overflow:auto}.tag{background:#e7f3f7;color:#00627e;padding:4px 8px;border-radius:99px;display:inline-block}.muted{color:var(--muted)}.hint{background:#e9f4f8;border-left:4px solid var(--blue);padding:12px;border-radius:6px;margin:12px 0}.tree{line-height:2.2}.tree div{padding-left:16px;border-left:2px solid #dbe8ed}.right{margin-left:auto}#toast{position:fixed;bottom:20px;right:20px;background:#113e53;color:white;padding:14px;border-radius:9px;display:none;max-width:400px;z-index:4}@media print{header,nav,main,#toast{display:none!important}#printArea{display:block!important}body{background:white}}#printArea{display:none;padding:35px;font:14px Arial;color:#183747}#printArea img{width:290px}#printArea table td{padding:13px;border:1px solid #cbd9e0}.signature{display:flex;gap:60px;margin-top:100px}.signature div{flex:1;text-align:center;border-top:1px solid #333;padding:12px}footer{padding:18px;text-align:center;color:#738997}
.wh-name{color:#075985;font-size:16px}.rack-name{color:#0f766e}.shelf-name{color:#7c3aed}.tree>div{padding:12px;border-radius:10px;background:#f8fbff;margin:9px 0;border:1px solid #dbeafe}.asset-modal{border:0;border-radius:16px;box-shadow:0 24px 80px #1235;width:min(820px,95vw);max-height:88vh;padding:0;color:#17384b}.asset-modal::backdrop{background:#0a2639aa}.asset-modal header{padding:18px 24px;background:#eff8fc;display:flex;align-items:center;justify-content:space-between}.asset-body{padding:20px 24px;overflow:auto}.detail-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.detail-cell{background:#f5f9fc;border:1px solid #e2edf3;border-radius:9px;padding:12px;overflow-wrap:anywhere}.detail-cell small{display:block;color:#647785;margin-bottom:6px}.detail-cell strong{font-size:15px}.asset-photo{width:100%;max-height:260px;object-fit:contain;border-radius:12px;background:#f4f8fa}.file-line{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:9px;border-bottom:1px solid #e5edf2;overflow-wrap:anywhere}@media(max-width:620px){.detail-grid{grid-template-columns:1fr}} .stat:nth-child(6n+1){background:#eaf4ff;border-color:#cde4ff}.stat:nth-child(6n+2){background:#e8f8f4;border-color:#c8e9de}.stat:nth-child(6n+3){background:#f3edff;border-color:#dfd1fa}.stat:nth-child(6n+4){background:#fff4e5;border-color:#f5dfb9}.stat:nth-child(6n+5){background:#eaf8fc;border-color:#cdebf5}.stat:nth-child(6n){background:#fceef3;border-color:#f5d7e2}.stat strong{color:#134b6c}.finance-total{font-size:30px;font-weight:800;color:#0b5976;margin:8px 0}.finance-filter{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:14px}.money-input{width:100%}.excel-btn{background:#25D366!important;color:#073d25!important;border:1px solid #1DB954!important;box-shadow:0 2px 6px #10723b24}.excel-btn:hover{background:#1fbd5a!important;color:#073d25!important}.inventory-thumb{width:54px;height:48px;object-fit:cover;border-radius:8px;border:1px solid #d6e3e9;background:#fff}.thumb-empty{display:inline-flex;width:54px;height:48px;align-items:center;justify-content:center;border:1px dashed #c5d5df;border-radius:8px;color:#8ba5b3;background:#f4f8fb;font-size:24px}.warehouse-node{padding:14px!important;margin:12px 0!important;border:1px solid #d7e8f6!important;background:#f7fbff!important;border-radius:13px!important}.warehouse-node.is-subwarehouse{background:#fffaf5!important;border-color:#f5dfc7!important;margin-left:24px!important}.warehouse-heading,.rack-heading{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.structure-icon{font-size:21px;line-height:1.3}.structure-badge{font-size:10px;font-weight:800;letter-spacing:.5px;border-radius:30px;padding:3px 9px}.warehouse-badge{background:#dbeeff;color:#075985}.sub-badge{background:#ffead5;color:#a34b13}.warehouse-node.is-subwarehouse .wh-name{color:#ae5319}.rack-node{margin:9px 0 8px 18px;padding:10px 12px!important;border-left:3px solid #2ba88c!important;background:#f4fcf9;border-radius:8px}.shelf-node{margin:6px 0 4px 24px;padding:6px 10px!important;background:#f6f1ff;border-left:3px solid #9775df!important;border-radius:7px;display:flex;gap:8px;align-items:center;flex-wrap:wrap}.structure-count{font-size:12px;color:#61778b}.shelf-count{margin-left:auto;color:#6741b6;background:#ebe0ff;border-radius:20px;padding:1px 9px;font-size:12px}.row-chip{font-size:11px;color:#087b60;background:#dcf6eb;border-radius:30px;padding:2px 8px} .warehouse-tree-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:16px}.warehouse-tree-heading h2{margin:0}.warehouse-tree-toggle{width:34px;height:34px;padding:0;border-radius:8px;background:#e6f3f8;color:#006e91;border:1px solid #bcdde9;font-size:26px;font-weight:600;line-height:1;display:flex;align-items:center;justify-content:center}.warehouse-tree-toggle:hover{background:#d4eaf3}.warehouse-tree-toggle:focus-visible{outline:3px solid #58b2d4;outline-offset:2px}#tree[hidden]{display:none!important}#loginForm #loginSubmit{display:block;position:relative;margin-top:28px;clear:both}#loginForm .field:has(#loginPass){margin-bottom:12px}
/* V10: almacenes en tarjetas compactas de dos columnas */
#tree.tree{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;align-items:start}
#tree.tree>.warehouse-node{margin:0!important;min-width:0;box-shadow:0 3px 12px rgba(14,68,105,.06)}
#tree .warehouse-node{font-size:13px;padding:12px!important}
#tree .warehouse-heading{gap:6px;font-size:13px}
#tree .warehouse-heading .wh-name{font-size:14px;font-weight:750;overflow-wrap:anywhere}
#tree .warehouse-heading small{font-size:11px;flex-basis:100%;margin-left:28px}
#tree .structure-icon{font-size:17px}
#tree .structure-count{font-size:11px}
#tree .rack-node{margin:7px 0 7px 8px;padding:8px!important;font-size:12px}
#tree .shelf-node{margin:5px 0 4px 12px;padding:6px 8px!important;font-size:12px}
#tree .warehouse-node.is-subwarehouse{margin:9px 0 6px 10px!important}
#tree .node-toggle{flex-shrink:0}
@media(max-width:760px){#tree.tree{grid-template-columns:1fr}}
body.observer-view #nav button[hidden]{display:none!important}
body.observer-view #assets button[data-edit-asset],body.observer-view #assets button[data-del-asset],body.observer-view #assets button[data-move-asset],body.observer-view #assets button[data-change-asset],body.observer-view #assets form,body.observer-view #assetDetail button:not([data-close]){display:none!important}

.header-actions{display:flex;align-items:center;justify-content:flex-end;gap:20px;flex-wrap:wrap}.header-actions .logout-button{background:#fff1f2;color:#9f1239;border:1px solid #fecdd3;border-radius:9px;padding:11px 16px;font:700 13px Arial,sans-serif;cursor:pointer;white-space:nowrap}
.header-actions .logout-button:hover{background:#ffe4e6}@media(max-width:600px){header{gap:8px;flex-wrap:wrap}.header-actions{gap:10px}.header-actions .logout-button{padding:9px 12px}}

/* V15: conectores jerárquicos tipo organigrama, respetando cada tarjeta y su plegado */
#tree .warehouse-node,#tree .rack-node,#tree .shelf-node{position:relative}
#tree .node-children{position:relative;margin:10px 0 2px 13px;padding-left:22px;border-left:2px solid #bfd3e3}
#tree .node-children[hidden]{display:none!important}
#tree .node-children>.warehouse-node,#tree .node-children>.rack-node,#tree .node-children>.shelf-node{position:relative;margin-left:0!important}
#tree .node-children>.warehouse-node::before,#tree .node-children>.rack-node::before,#tree .node-children>.shelf-node::before{content:"";position:absolute;top:21px;left:-24px;width:22px;border-top:2px solid #bfd3e3;pointer-events:none}
/* Acortar el tronco vertical al último elemento dependiente */
#tree .node-children>.warehouse-node:last-child::after,#tree .node-children>.rack-node:last-child::after,#tree .node-children>.shelf-node:last-child::after{content:"";position:absolute;left:-26px;top:23px;bottom:-14px;width:4px;background:#fff;pointer-events:none}
#tree .warehouse-node>.node-children{border-left-color:#8cb8d8}
#tree .warehouse-node>.node-children>.warehouse-node::before,#tree .warehouse-node>.node-children>.rack-node::before{border-top-color:#8cb8d8}
#tree .rack-node>.node-children{border-left-color:#9acdbb}
#tree .rack-node>.node-children>.shelf-node::before{border-top-color:#9acdbb}
#tree .node-children>.warehouse-node.is-subwarehouse{background:#fffaf5!important}
@media(max-width:760px){#tree .node-children{margin-left:8px;padding-left:17px}#tree .node-children>.warehouse-node::before,#tree .node-children>.rack-node::before,#tree .node-children>.shelf-node::before{left:-19px;width:17px}#tree .node-children>.warehouse-node:last-child::after,#tree .node-children>.rack-node:last-child::after,#tree .node-children>.shelf-node:last-child::after{left:-21px}}

/* V16: acciones diferenciadas por función */
button.detail-pastel{background:#fff1ac!important;color:#6d5200!important;border:1px solid #edcf64!important;font-weight:700}button.detail-pastel:hover{background:#ffe681!important}
button.movement-pdf-btn{background:#d83d49!important;color:#fff!important;border:1px solid #bd2a35!important;box-shadow:0 2px 7px #a42a3026}button.movement-pdf-btn:hover{background:#ba2937!important}
