*{box-sizing:border-box;padding:0;margin:0}body,html{max-width:100vw;overflow-x:hidden}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif}.ant-layout{min-height:100vh}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:#f1f1f1}::-webkit-scrollbar-thumb{background:#c1c1c1;border-radius:4px}::-webkit-scrollbar-thumb:hover{background:#a1a1a1}.ant-table-tbody>tr.row-stock-bajo>td{background-color:#fff2f0!important}@media (max-width:767px){.ant-table-wrapper{overflow-x:auto}.ant-table{min-width:600px}.ant-card{margin-bottom:12px!important}.ant-typography h2{font-size:20px!important}.ant-tag{padding:2px 6px!important}.ant-descriptions-item-label,.ant-tag{font-size:12px!important}.ant-space-compact .ant-btn{padding:4px 8px}.ant-modal{max-width:calc(100vw - 32px)!important;margin:16px!important}.ant-drawer-content-wrapper{max-width:100vw!important}}@media (min-width:768px) and (max-width:991px){.ant-table{font-size:13px}}@media print{.ant-layout-header,.ant-layout-sider{display:none!important}.ant-layout-content{margin:0!important;padding:0!important}}#nprogress{pointer-events:none}#nprogress .bar{background:#1890ff;position:fixed;z-index:9999;top:0;left:0;width:100%;height:3px}#nprogress .peg{display:block;position:absolute;right:0;width:100px;height:100%;box-shadow:0 0 10px #1890ff,0 0 5px #1890ff;opacity:1;transform:rotate(3deg) translateY(-4px)}@keyframes fadeIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes slideInRight{0%{opacity:0;transform:translateX(16px)}to{opacity:1;transform:translateX(0)}}.ant-table-tbody>tr{transition:background-color .2s ease}.ant-table-tbody>tr:hover>td{background-color:#fafafa}.stat-card{transition:box-shadow .2s ease;will-change:box-shadow}.stat-card:hover{box-shadow:0 4px 12px rgba(0,0,0,.08)}.ant-btn,.ant-tag{transition:all .2s ease}.dashboard-skeleton,.detail-skeleton,.form-skeleton,.table-skeleton{animation:fadeIn .3s ease-out}.ant-skeleton-avatar,.ant-skeleton-button,.ant-skeleton-input{background:linear-gradient(90deg,#f0f0f0 25%,#e6e6e6 50%,#f0f0f0 75%);background-size:200% 100%;animation:skeleton-loading 1.5s infinite}@keyframes skeleton-loading{0%{background-position:200% 0}to{background-position:-200% 0}}.ant-layout-sider{transition:all .2s ease}.ant-menu-item{transition:background-color .2s ease,color .2s ease}