@import"https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap";.sidebar{position:fixed;top:0;left:0;width:var(--sidebar-width);height:100vh;background:var(--sidebar-bg);display:flex;flex-direction:column;z-index:100;overflow-y:auto;overflow-x:hidden;transition:width var(--transition-normal)}.sidebar-logo{display:flex;align-items:center;justify-content:center;padding:24px 20px 28px}.sidebar-logo-img{height:44px;width:auto;filter:invert(1) brightness(2);opacity:.95;transition:opacity var(--transition-fast)}.sidebar-logo-img:hover{opacity:1}.sidebar-nav{flex:1;padding:0 12px}.nav-section{margin-bottom:24px}.nav-section-title{display:block;font-size:.6875rem;font-weight:600;color:var(--sidebar-text);text-transform:uppercase;letter-spacing:.1em;padding:0 12px;margin-bottom:8px;opacity:.6}.nav-list{list-style:none}.nav-item{display:flex;align-items:center;gap:12px;padding:10px 16px;border-radius:12px;font-size:.875rem;font-weight:500;color:var(--sidebar-text);transition:all var(--transition-fast);width:100%;text-align:left;cursor:pointer;margin-bottom:2px}.nav-item:hover{background:#ffffff0f;color:#fff}.nav-item.active{background:linear-gradient(135deg,var(--color-accent),var(--color-accent-light));color:#fff;font-weight:600;box-shadow:0 4px 16px #4318ff4d}.nav-label{flex:1}.nav-chevron{opacity:.6;flex-shrink:0}.nav-sub-list{list-style:none;padding-left:20px;margin-top:2px}.nav-sub-item{display:flex;align-items:center;gap:12px;padding:8px 16px;border-radius:8px;font-size:.8125rem;color:var(--sidebar-text);transition:all var(--transition-fast);cursor:pointer;position:relative}.nav-sub-item:before{content:"";width:6px;height:6px;border-radius:50%;background:var(--sidebar-text);opacity:.3;flex-shrink:0}.nav-sub-item:hover{color:#fff}.nav-sub-item.active{color:var(--color-accent-light);font-weight:600}.nav-sub-item.active:before{background:var(--color-accent-light);opacity:1}.sidebar-footer{padding:16px 16px 24px;border-top:1px solid rgba(255,255,255,.06);margin-top:auto}.sidebar-user{display:flex;align-items:center;gap:12px;padding:8px;border-radius:12px;transition:background var(--transition-fast);cursor:pointer}.sidebar-user:hover{background:#ffffff0f}.logout-btn{padding:8px;color:var(--sidebar-text);border-radius:8px;transition:all .15s ease;display:flex;align-items:center;justify-content:center;flex-shrink:0;cursor:pointer;border:none;background:none}.logout-btn:hover{background:#ee5d5026;color:#ee5d50}.user-avatar{width:36px;height:36px;border-radius:10px;background:linear-gradient(135deg,#05cd99,#00b894);display:flex;align-items:center;justify-content:center;color:#fff;font-size:.75rem;font-weight:700;flex-shrink:0}.user-info{display:flex;flex-direction:column}.user-name{font-size:.8125rem;font-weight:600;color:#fff}.user-role{font-size:.6875rem;color:var(--sidebar-text)}.mobile-header,.sidebar-close-btn,.sidebar-overlay{display:none}@media(max-width:768px){.mobile-header{display:flex;align-items:center;justify-content:space-between;position:fixed;top:0;left:0;right:0;height:56px;background:var(--sidebar-bg);padding:0 16px;z-index:99}.hamburger-btn{display:flex;align-items:center;justify-content:center;width:40px;height:40px;border:none;background:#ffffff14;color:#fff;border-radius:10px;cursor:pointer;transition:background var(--transition-fast)}.hamburger-btn:hover{background:#ffffff26}.mobile-header-logo{height:28px;width:auto;filter:invert(1) brightness(2);opacity:.95}.mobile-header-avatar{width:32px;height:32px;border-radius:8px;background:linear-gradient(135deg,#05cd99,#00b894);display:flex;align-items:center;justify-content:center;color:#fff;font-size:.6875rem;font-weight:700}.sidebar{transform:translate(-100%);transition:transform .3s cubic-bezier(.4,0,.2,1);z-index:200}.sidebar.sidebar--open{transform:translate(0)}.sidebar-close-btn{display:flex;align-items:center;justify-content:center;position:absolute;top:12px;right:12px;width:36px;height:36px;border:none;background:#ffffff14;color:var(--sidebar-text);border-radius:8px;cursor:pointer;z-index:10;transition:all var(--transition-fast)}.sidebar-close-btn:hover{background:#ffffff26;color:#fff}.sidebar-overlay{display:block;position:fixed;inset:0;background:#0009;z-index:150;animation:fadeIn .2s ease}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}}.login-page{position:relative;display:flex;align-items:center;justify-content:center;min-height:100vh;width:100vw;background:#0b1437;overflow:hidden;font-family:var(--font-family)}.login-bg-gradient{position:absolute;inset:0;background:radial-gradient(ellipse 80% 50% at 50% -20%,rgba(67,24,255,.25),transparent),radial-gradient(ellipse 60% 60% at 80% 80%,rgba(67,24,255,.1),transparent);z-index:0}.login-bg-circles{position:absolute;inset:0;z-index:0;overflow:hidden}.circle{position:absolute;border-radius:50%;border:1px solid rgba(67,24,255,.12)}.circle-1{width:600px;height:600px;top:-200px;right:-150px;animation:float 20s ease-in-out infinite}.circle-2{width:400px;height:400px;bottom:-100px;left:-100px;border-color:#7551ff1a;animation:float 25s ease-in-out infinite reverse}.circle-3{width:200px;height:200px;top:30%;left:10%;border-color:#05cd9914;animation:float 15s ease-in-out infinite}@keyframes float{0%,to{transform:translate(0) scale(1)}25%{transform:translate(10px,-20px) scale(1.02)}50%{transform:translate(-5px,15px) scale(.98)}75%{transform:translate(15px,10px) scale(1.01)}}.login-card{position:relative;z-index:1;width:100%;max-width:420px;background:#ffffff08;backdrop-filter:blur(24px);-webkit-backdrop-filter:blur(24px);border:1px solid rgba(255,255,255,.08);border-radius:24px;padding:48px 40px;box-shadow:0 24px 80px #0006,0 0 0 1px #ffffff0a inset;animation:cardFadeIn .6s ease-out}@keyframes cardFadeIn{0%{opacity:0;transform:translateY(20px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}.login-logo{display:flex;justify-content:center;margin-bottom:28px}.login-logo-img{height:52px;width:auto;filter:invert(1) brightness(2);opacity:.95}.login-title{text-align:center;font-size:1.75rem;font-weight:700;color:#fff;letter-spacing:-.02em;margin-bottom:8px}.login-subtitle{text-align:center;font-size:.875rem;color:#a3aed0;margin-bottom:28px;line-height:1.5}.login-demo-notice{display:flex;align-items:center;gap:10px;padding:10px 16px;background:#ffb5471a;border:1px solid rgba(255,181,71,.25);border-radius:10px;font-size:.8125rem;color:#ffb547;margin-bottom:20px}.login-error{display:flex;align-items:center;gap:10px;padding:10px 16px;background:#ee5d501a;border:1px solid rgba(238,93,80,.25);border-radius:10px;font-size:.8125rem;color:#ee5d50;margin-bottom:20px;animation:shakeError .4s ease-out}@keyframes shakeError{0%,to{transform:translate(0)}25%{transform:translate(-6px)}75%{transform:translate(6px)}}.login-form{display:flex;flex-direction:column;gap:20px}.form-group{display:flex;flex-direction:column;gap:6px}.form-label{font-size:.8125rem;font-weight:500;color:#a3aed0;letter-spacing:.01em}.form-input{width:100%;padding:12px 16px;background:#ffffff0a;border:1px solid rgba(255,255,255,.1);border-radius:12px;font-size:.9375rem;color:#fff;transition:all .2s ease}.form-input::placeholder{color:#a3aed080}.form-input:focus{outline:none;border-color:#4318ff;background:#4318ff0f;box-shadow:0 0 0 3px #4318ff26}.form-input:disabled{opacity:.6;cursor:not-allowed}.form-input-wrapper{position:relative}.form-input-wrapper .form-input{padding-right:44px}.toggle-password{position:absolute;right:12px;top:50%;transform:translateY(-50%);padding:4px;color:#a3aed0;cursor:pointer;border:none;background:none;transition:color .15s;display:flex;align-items:center}.toggle-password:hover{color:#fff}.form-row{display:flex;align-items:center;justify-content:space-between}.form-checkbox{display:flex;align-items:center;gap:8px;font-size:.8125rem;color:#a3aed0;cursor:pointer}.form-checkbox input[type=checkbox]{width:16px;height:16px;accent-color:#4318FF;cursor:pointer}.form-link{font-size:.8125rem;color:#7551ff;text-decoration:none;font-weight:500;transition:color .15s}.form-link:hover{color:#a78cfe}.login-button{width:100%;padding:14px;background:linear-gradient(135deg,#4318ff,#7551ff);color:#fff;font-size:.9375rem;font-weight:600;border:none;border-radius:12px;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:8px;transition:all .2s ease;box-shadow:0 4px 16px #4318ff4d;margin-top:4px}.login-button:hover:not(:disabled){background:linear-gradient(135deg,#5630ff,#8a6aff);box-shadow:0 8px 24px #4318ff66;transform:translateY(-1px)}.login-button:active:not(:disabled){transform:translateY(0);box-shadow:0 2px 8px #4318ff4d}.login-button:disabled{opacity:.7;cursor:not-allowed}.spin{animation:spin .8s linear infinite}.login-footer{text-align:center;margin-top:32px;font-size:.75rem;color:#a3aed066}@media(max-width:480px){.login-card{margin:16px;padding:36px 24px;border-radius:20px}.login-title{font-size:1.5rem}}:root{--color-primary: #1B2559;--color-primary-light: #2B3674;--color-primary-hover: #3B4694;--color-accent: #4318FF;--color-accent-light: #7551FF;--color-accent-bg: rgba(67, 24, 255, .08);--sidebar-bg: #0B1437;--sidebar-text: #A3AED0;--sidebar-active-bg: rgba(67, 24, 255, .15);--sidebar-active-text: #FFFFFF;--sidebar-width: 280px;--sidebar-collapsed-width: 72px;--bg-main: #F4F7FE;--bg-card: #FFFFFF;--bg-hover: #F8FAFC;--bg-selected: #EEF2FF;--text-primary: #1B2559;--text-secondary: #707EAE;--text-muted: #A3AED0;--text-on-dark: #FFFFFF;--status-success: #05CD99;--status-success-bg: rgba(5, 205, 153, .1);--status-warning: #FFB547;--status-warning-bg: rgba(255, 181, 71, .1);--status-danger: #EE5D50;--status-danger-bg: rgba(238, 93, 80, .1);--status-info: #4318FF;--status-info-bg: rgba(67, 24, 255, .1);--status-neutral: #A3AED0;--status-neutral-bg: rgba(163, 174, 208, .1);--status-danger-text: #D32F2F;--status-danger-dim: rgba(238, 93, 80, .25);--border-color: #E9EDF7;--border-radius: 16px;--border-radius-sm: 10px;--border-radius-xs: 6px;--shadow-card: 0px 4px 24px rgba(0, 0, 0, .04);--shadow-dropdown: 0px 8px 32px rgba(0, 0, 0, .08);--shadow-hover: 0px 8px 32px rgba(67, 24, 255, .08);--spacing-xs: 4px;--spacing-sm: 8px;--spacing-md: 16px;--spacing-lg: 24px;--spacing-xl: 32px;--spacing-2xl: 48px;--transition-fast: .15s ease;--transition-normal: .25s ease;--transition-slow: .4s cubic-bezier(.4, 0, .2, 1);--font-family: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif}*,*:before,*:after{margin:0;padding:0;box-sizing:border-box}html{font-size:14px;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{font-family:var(--font-family);background:var(--bg-main);color:var(--text-primary);line-height:1.5;min-height:100vh;overflow-x:hidden}#root{display:flex;min-height:100vh}a{text-decoration:none;color:inherit}button{cursor:pointer;border:none;background:none;font-family:inherit}input,select{font-family:inherit;font-size:inherit}.app-layout{display:flex;width:100%;min-height:100vh}.main-content{flex:1;margin-left:var(--sidebar-width);padding:var(--spacing-xl);max-width:calc(100vw - var(--sidebar-width));transition:margin-left var(--transition-normal)}.page-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--spacing-xl)}.page-title{font-size:1.75rem;font-weight:700;color:var(--text-primary);letter-spacing:-.02em}.page-subtitle{font-size:.875rem;color:var(--text-secondary);margin-top:var(--spacing-xs)}.header-actions{display:flex;align-items:center;gap:var(--spacing-md)}.search-bar{position:relative;width:280px}.search-bar input:focus{outline:none;border-color:var(--color-accent);box-shadow:0 0 0 3px var(--accent-bg, rgba(67, 24, 255, .1))}.search-bar .search-icon{position:absolute;left:14px;top:50%;transform:translateY(-50%);color:var(--text-muted)}.tabs{display:flex;gap:var(--spacing-xs);background:var(--bg-card);padding:4px;border-radius:var(--border-radius-sm);border:1px solid var(--border-color);width:fit-content;margin-bottom:var(--spacing-lg)}.tab{padding:8px 20px;font-size:.875rem;font-weight:500;color:var(--text-secondary);border-radius:var(--border-radius-xs);transition:all var(--transition-fast)}.tab:hover{color:var(--text-primary);background:var(--bg-hover)}.tab.active{background:var(--color-primary);color:var(--text-on-dark)}.kpi-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:var(--spacing-lg);margin-bottom:var(--spacing-xl)}.kpi-card{background:var(--bg-card);border-radius:var(--border-radius);padding:var(--spacing-lg);box-shadow:var(--shadow-card);border:1px solid var(--border-color);transition:all var(--transition-normal);position:relative;overflow:hidden}.kpi-card:before{content:"";position:absolute;top:0;left:0;right:0;height:3px;background:linear-gradient(90deg,var(--color-accent),var(--color-accent-light));opacity:0;transition:opacity var(--transition-normal)}.kpi-card:hover{box-shadow:var(--shadow-hover);transform:translateY(-2px)}.kpi-card:hover:before{opacity:1}.kpi-card-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--spacing-md)}.kpi-card-title{font-size:.8125rem;font-weight:500;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.04em}.kpi-card-icon{width:32px;height:32px;display:flex;align-items:center;justify-content:center;border-radius:50%;background:var(--accent-bg, rgba(67, 24, 255, .08));color:var(--color-accent)}.kpi-card-value{font-size:2rem;font-weight:800;color:var(--text-primary);letter-spacing:-.03em;line-height:1.2}.kpi-card-footer{display:flex;align-items:center;gap:var(--spacing-sm);margin-top:var(--spacing-md)}.kpi-variation{display:inline-flex;align-items:center;gap:4px;font-size:.8125rem;font-weight:600;padding:2px 8px;border-radius:20px}.kpi-variation.up{color:var(--status-success);background:var(--status-success-bg)}.kpi-variation.down{color:var(--status-danger);background:var(--status-danger-bg)}.kpi-variation.neutral{color:var(--text-muted);background:var(--status-neutral-bg)}.table-container{background:var(--bg-card);border-radius:var(--border-radius);box-shadow:var(--shadow-card);border:1px solid var(--border-color);overflow:hidden}.table-header{display:flex;align-items:center;justify-content:space-between;padding:var(--spacing-lg);border-bottom:1px solid var(--border-color)}.table-title{font-size:1.125rem;font-weight:600;color:var(--text-primary)}.table-actions{display:flex;gap:var(--spacing-sm)}.data-table{width:100%;border-collapse:collapse}.data-table thead th{padding:12px var(--spacing-lg);text-align:left;font-size:.75rem;font-weight:600;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.06em;background:var(--bg-main);border-bottom:1px solid var(--border-color);white-space:nowrap}.data-table tbody tr{transition:background var(--transition-fast);border-bottom:1px solid var(--border-color)}.data-table tbody tr:last-child{border-bottom:none}.data-table tbody tr:hover{background:var(--bg-hover)}.data-table tbody td{padding:14px var(--spacing-lg);font-size:.875rem;color:var(--text-primary);white-space:nowrap}.status-badge{display:inline-flex;align-items:center;gap:6px;padding:4px 12px;border-radius:20px;font-size:.8125rem;font-weight:500}.status-badge.pagada{color:var(--status-success);background:var(--status-success-bg)}.status-badge.pendiente{color:var(--status-warning);background:var(--status-warning-bg)}.status-badge.vencida{color:var(--status-danger);background:var(--status-danger-bg)}.status-badge.parcial{color:var(--status-info);background:var(--status-info-bg)}.status-badge.cancelada{color:var(--text-muted);background:var(--status-neutral-bg)}.status-dot{width:8px;height:8px;border-radius:50%;background:currentColor;display:inline-block}.pagination{display:flex;align-items:center;justify-content:flex-end;gap:var(--spacing-sm);padding:var(--spacing-md) var(--spacing-lg);border-top:1px solid var(--border-color)}.pagination button{padding:6px 12px;font-size:.8125rem;font-weight:500;color:var(--text-secondary);border-radius:var(--border-radius-xs);transition:all var(--transition-fast)}.pagination button:hover:not(:disabled){background:var(--bg-hover);color:var(--text-primary)}.pagination button.active{background:var(--color-accent);color:#fff}.pagination button:disabled{opacity:.4;cursor:not-allowed}.filter-bar{display:flex;align-items:center;gap:var(--spacing-md);flex-wrap:wrap}.filter-bar select,.filter-bar input[type=date]{padding:8px 12px;background:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--border-radius-xs);color:var(--text-primary);font-size:.8125rem;transition:border-color var(--transition-fast)}.filter-bar select:focus,.filter-bar input[type=date]:focus{outline:none;border-color:var(--color-accent)}.btn{display:inline-flex;align-items:center;gap:var(--spacing-sm);padding:10px 20px;font-size:.875rem;font-weight:500;border-radius:var(--border-radius-sm);transition:all var(--transition-fast)}.btn-primary{background:var(--color-accent);color:#fff}.btn-primary:hover{background:var(--color-accent-light);box-shadow:0 4px 12px #4318ff4d}.btn-secondary{background:var(--bg-card);color:var(--text-primary);border:1px solid var(--border-color)}.btn-secondary:hover{background:var(--bg-hover);border-color:var(--text-muted)}.btn-icon{padding:8px;border-radius:var(--border-radius-xs);color:var(--text-secondary)}.btn-icon:hover{background:var(--bg-hover);color:var(--text-primary)}.chart-container{background:var(--bg-card);border-radius:var(--border-radius);padding:var(--spacing-lg);box-shadow:var(--shadow-card);border:1px solid var(--border-color);margin-bottom:var(--spacing-xl)}.chart-title{font-size:1.125rem;font-weight:600;color:var(--text-primary);margin-bottom:var(--spacing-lg)}.view-container{max-width:1400px}.view-header{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:var(--spacing-xl);gap:var(--spacing-md)}.view-title{font-size:1.75rem;font-weight:700;color:var(--text-primary);letter-spacing:-.02em}.view-subtitle{font-size:.875rem;color:var(--text-secondary);margin-top:var(--spacing-xs)}.search-bar{position:relative;width:300px;flex-shrink:0}.search-bar svg{position:absolute;left:14px;top:50%;transform:translateY(-50%);color:var(--text-muted);pointer-events:none}.search-bar input{width:100%;padding:10px 16px 10px 42px;background:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--border-radius-sm);font-size:.875rem;color:var(--text-primary);transition:all var(--transition-fast)}.search-bar input:focus{outline:none;border-color:var(--color-accent);box-shadow:0 0 0 3px #4318ff1a}.kpi-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--spacing-md)}.kpi-label{font-size:.75rem;font-weight:600;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.04em}.kpi-icon{width:36px;height:36px;display:flex;align-items:center;justify-content:center;border-radius:50%;background:var(--color-accent-bg);color:var(--color-accent)}.kpi-value{font-size:2rem;font-weight:800;color:var(--text-primary);letter-spacing:-.03em;line-height:1.2}.kpi-footer{display:flex;align-items:center;gap:var(--spacing-sm);margin-top:var(--spacing-sm)}.kpi-variation{display:inline-flex;align-items:center;gap:4px;font-size:.8125rem;font-weight:600}.kpi-variation.positive{color:var(--status-success)}.kpi-variation.negative{color:var(--status-danger)}.kpi-variation.neutral{color:var(--text-muted)}.kpi-period{font-size:.75rem;color:var(--text-muted)}.charts-row{display:grid;grid-template-columns:1.6fr 1fr;gap:var(--spacing-lg);margin-bottom:var(--spacing-lg)}.chart-card{background:var(--bg-card);border-radius:var(--border-radius);padding:var(--spacing-lg);box-shadow:var(--shadow-card);border:1px solid var(--border-color)}.chart-card-wide{min-width:0}.chart-tooltip{background:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--border-radius-xs);padding:10px 14px;box-shadow:var(--shadow-dropdown);font-size:.8125rem}.chart-tooltip-label{font-weight:600;color:var(--text-primary);margin-bottom:4px}.data-table-card{background:var(--bg-card);border-radius:var(--border-radius);box-shadow:var(--shadow-card);border:1px solid var(--border-color);overflow:hidden}.data-table-card .table-header{display:flex;align-items:center;justify-content:space-between;padding:var(--spacing-lg);border-bottom:1px solid var(--border-color)}.table-count{font-size:.8125rem;color:var(--text-muted)}.table-scroll{overflow-x:auto}.data-table thead th{cursor:pointer;-webkit-user-select:none;user-select:none}.data-table thead th svg{opacity:.4;margin-left:4px;vertical-align:middle}.data-table thead th:hover svg{opacity:1}.text-money{font-weight:600;font-variant-numeric:tabular-nums;color:var(--text-primary)}.text-bold{font-weight:600}.text-center{text-align:center}.product-code{font-size:.75rem;font-family:SF Mono,Fira Code,monospace;background:var(--bg-main);padding:2px 8px;border-radius:4px;color:var(--color-accent);border:1px solid var(--border-color)}.badge{display:inline-flex;align-items:center;gap:4px;padding:3px 10px;border-radius:20px;font-size:.75rem;font-weight:600;white-space:nowrap}.badge-success{color:var(--status-success);background:var(--status-success-bg)}.badge-warning{color:var(--status-warning);background:var(--status-warning-bg)}.badge-danger{color:var(--status-danger);background:var(--status-danger-bg)}.badge-info{color:var(--status-info);background:var(--status-info-bg)}.badge-neutral{color:var(--text-muted);background:var(--status-neutral-bg)}.trend-up{color:var(--status-success)}.trend-down{color:var(--status-danger)}.trend-neutral{color:var(--text-muted)}:root{--border-light: #E9EDF7}@media(max-width:1024px){.main-content{margin-left:var(--sidebar-collapsed-width);padding:var(--spacing-md)}.kpi-grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:768px){.main-content{margin-left:0;padding:var(--spacing-md);padding-top:calc(56px + var(--spacing-md));max-width:100vw}.kpi-grid{grid-template-columns:1fr}.page-header{flex-direction:column;align-items:flex-start;gap:var(--spacing-md)}.data-table{display:block;overflow-x:auto}}.skeleton{background:linear-gradient(90deg,var(--border-color) 25%,var(--bg-hover) 50%,var(--border-color) 75%);background-size:200% 100%;animation:skeleton-loading 1.5s infinite;border-radius:var(--border-radius-xs)}@keyframes skeleton-loading{0%{background-position:200% 0}to{background-position:-200% 0}}.loading-overlay{display:flex;align-items:center;justify-content:center;padding:var(--spacing-2xl);color:var(--text-secondary);gap:var(--spacing-sm)}.spinner{width:20px;height:20px;border:2px solid var(--border-color);border-top-color:var(--color-accent);border-radius:50%;animation:spin .6s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.empty-state{text-align:center;padding:var(--spacing-2xl);color:var(--text-muted)}.empty-state-icon{font-size:3rem;margin-bottom:var(--spacing-md)}.empty-state-text{font-size:.9375rem;margin-bottom:var(--spacing-md)}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--border-color);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:var(--text-muted)}.inventory-tabs{display:flex;gap:8px;margin-bottom:var(--spacing-lg);background:#4318ff08;padding:8px;border-radius:16px;border:1px solid rgba(67,24,255,.08);box-shadow:0 4px 20px #00000005;overflow-x:auto}.inventory-tabs::-webkit-scrollbar{height:4px}.inventory-tabs::-webkit-scrollbar-thumb{background:#4318ff1a;border-radius:4px}.inventory-tab{display:flex;align-items:center;gap:8px;padding:10px 22px;border:none;background:transparent;color:var(--text-secondary);font-size:.875rem;font-weight:500;border-radius:12px;cursor:pointer;transition:all .3s cubic-bezier(.4,0,.2,1);white-space:nowrap;font-family:inherit;position:relative;overflow:hidden}.inventory-tab:hover{background:#4318ff0f;color:var(--text-primary)}.inventory-tab.active{background:#fff;color:var(--color-accent);font-weight:600;box-shadow:0 4px 12px #4318ff1f;transform:translateY(-1px)}.notification-badge{background-color:var(--status-danger);color:#fff;font-size:.7rem;font-weight:700;padding:2px 6px;border-radius:12px;margin-left:4px;display:flex;align-items:center;justify-content:center;min-width:18px;height:18px;box-shadow:0 2px 6px #ee5d504d}.stock-level-bar{width:100%;height:6px;background:var(--border-light);border-radius:3px;overflow:hidden}.stock-level-fill{height:100%;border-radius:3px;transition:width .5s ease;min-width:2px}.filter-bar{display:flex;gap:var(--spacing-sm);align-items:center;flex-wrap:wrap}.filter-bar select{padding:8px 14px;background:var(--bg-card);border:1px solid var(--border-color);border-radius:8px;font-size:.8125rem;color:var(--text-primary);cursor:pointer;font-family:inherit;outline:none;transition:border-color .2s ease}.filter-bar select:focus{border-color:var(--color-accent)}.btn{padding:8px 16px;border-radius:8px;font-size:.8125rem;font-weight:500;cursor:pointer;border:1px solid transparent;transition:all .2s ease;font-family:inherit}.btn-primary{background:var(--color-accent);color:#fff;border-color:var(--color-accent)}.btn-primary:hover{opacity:.9;box-shadow:0 2px 6px #4318ff40}.btn-secondary{background:var(--bg-card);color:var(--text-secondary);border-color:var(--border-color)}.btn-secondary:hover{border-color:var(--color-accent);color:var(--text-primary)}.btn-sm{padding:6px 14px;font-size:.8125rem}.alert-row-critical{background:#ee5d500f}.alert-row-critical:hover{background:#ee5d501a}.alert-row-warning{background:#ffb5470d}.alert-row-warning:hover{background:#ffb54717}.badge-neutral{background:#a3aed01f;color:#a3aed0}.table-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--spacing-md)}.table-title{font-size:1rem;font-weight:600;color:var(--text-primary)}.table-count{font-size:.75rem;color:var(--text-muted);background:var(--bg-hover);padding:4px 10px;border-radius:20px}.view-subtitle{font-size:.8125rem;color:var(--text-muted);margin-top:4px;font-weight:400}@media(max-width:768px){.inventory-tabs{gap:2px;padding:4px}.inventory-tab{padding:8px 12px;font-size:.75rem}.inventory-tab svg{display:none}.filter-bar{flex-direction:column}.filter-bar select,.filter-bar .btn{width:100%}}.inv-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--spacing-md)}.inv-form-group{display:flex;flex-direction:column;gap:6px}.inv-form-group label{font-size:.8125rem;font-weight:600;color:var(--text-secondary)}.inv-form-full{grid-column:1 / -1}.inv-select,.inv-input,.inv-textarea{padding:10px 14px;background:var(--bg-main);border:1px solid var(--border-color);border-radius:10px;font-size:.875rem;color:var(--text-primary);font-family:inherit;outline:none;transition:border-color .2s ease,box-shadow .2s ease}.inv-select:focus,.inv-input:focus,.inv-textarea:focus{border-color:var(--color-accent);box-shadow:0 0 0 3px #4318ff1a}.inv-textarea{resize:vertical;min-height:60px}.inv-stock-display{padding:10px 14px;background:#4318ff0f;border:1px solid rgba(67,24,255,.15);border-radius:10px;font-size:1rem;font-weight:700;color:var(--color-accent);text-align:center}.inv-direction-badge{display:flex;align-items:center;min-height:40px}.inv-direction-badge .badge{font-size:.875rem;padding:8px 14px}.inv-preview{background:#4318ff08;border:1px solid rgba(67,24,255,.1);border-radius:12px;padding:var(--spacing-md)}.inv-preview-row{display:flex;align-items:center;gap:var(--spacing-md);flex-wrap:wrap}.inv-preview-item{display:flex;flex-direction:column;gap:4px;min-width:100px}.inv-preview-label{font-size:.75rem;color:var(--text-muted);font-weight:500}.inv-preview-value{font-size:1.25rem;font-weight:700;color:var(--text-primary)}.inv-preview-value.positive{color:var(--status-success)}.inv-preview-value.negative{color:var(--status-danger)}.inv-preview-arrow{display:flex;align-items:center;color:var(--text-muted);padding-top:16px}.inv-feedback{display:flex;align-items:center;gap:10px;padding:12px 16px;border-radius:10px;font-size:.8125rem;font-weight:500;animation:inv-fade-in .3s ease}.inv-feedback.success{background:#05cd9914;border:1px solid rgba(5,205,153,.2);color:#05cd99}.inv-feedback.error{background:#ee5d5014;border:1px solid rgba(238,93,80,.2);color:#ee5d50}.inv-feedback.info{background:#4318ff0f;border:1px solid rgba(67,24,255,.12);color:var(--color-accent)}@keyframes inv-fade-in{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}.inv-btn-submit{background:linear-gradient(135deg,#4318ff,#3911db);color:#fff;border:none;padding:12px 28px;font-size:.9375rem;font-weight:600;border-radius:12px;box-shadow:0 4px 12px #4318ff4d;cursor:pointer;transition:transform .2s ease,box-shadow .2s ease}.inv-btn-submit:hover{transform:translateY(-1px);box-shadow:0 6px 18px #4318ff59}.inv-confirm-bar{display:flex;align-items:center;gap:var(--spacing-md);padding:16px 22px;background:#4318ff0a;border:1px solid rgba(67,24,255,.15);border-left:4px solid var(--color-accent);border-radius:12px;flex-wrap:wrap;animation:inv-fade-in .3s ease;box-shadow:0 4px 16px #00000008}.inv-confirm-text{display:flex;align-items:center;gap:12px;font-size:.9375rem;font-weight:500;color:var(--text-primary);flex:1}.inv-confirm-text svg{color:var(--color-accent);flex-shrink:0}.inv-btn-confirm{background:linear-gradient(135deg,#05cd99,#04a77d);color:#fff;border:none;box-shadow:0 4px 12px #05cd994d;padding:10px 22px;border-radius:8px;font-size:.875rem;font-weight:600;cursor:pointer;transition:all .2s ease;display:flex;align-items:center;gap:8px}.inv-btn-confirm:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 6px 16px #05cd9966}.inv-btn-confirm:disabled{opacity:.7;cursor:not-allowed;transform:none}.inv-btn-cancel{background:transparent;color:var(--text-secondary);border:1px solid var(--border-color);padding:10px 20px;border-radius:8px;font-size:.875rem;font-weight:500;cursor:pointer;transition:all .2s ease}.inv-btn-cancel:hover{background:var(--bg-hover);color:var(--text-primary)}@media(max-width:768px){.inv-form-grid{grid-template-columns:1fr}.inv-preview-row{flex-direction:column;gap:var(--spacing-sm)}.inv-preview-arrow{display:none}.inv-confirm-bar{flex-direction:column;align-items:stretch}.inv-confirm-bar .btn{width:100%}}.folio-link{background:none;border:none;color:var(--primary);font-weight:600;font-size:inherit;font-family:inherit;cursor:pointer;padding:2px 4px;border-radius:4px;transition:all .15s ease;text-decoration:none}.folio-link:hover{background:#2563eb14;color:var(--primary-hover);text-decoration:underline}.invoice-modal-overlay{position:fixed;inset:0;z-index:1000;background:#00000073;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;justify-content:flex-end;animation:fadeIn .2s ease}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideIn{0%{transform:translate(100%)}to{transform:translate(0)}}.invoice-modal-panel{width:min(680px,90vw);height:100vh;background:var(--bg-card, #fff);box-shadow:-8px 0 32px #00000026;display:flex;flex-direction:column;animation:slideIn .25s ease;overflow:hidden}.invoice-modal-header{display:flex;align-items:center;justify-content:space-between;padding:var(--spacing-md) var(--spacing-lg);border-bottom:1px solid var(--border-color);background:var(--bg-card, #fff);flex-shrink:0}.invoice-modal-header-left{display:flex;align-items:center;gap:10px}.invoice-modal-header-left h2{font-size:1.125rem;font-weight:700;margin:0;color:var(--text-primary)}.invoice-modal-close{background:none;border:none;cursor:pointer;padding:6px;border-radius:6px;color:var(--text-muted);transition:all .15s ease}.invoice-modal-close:hover{background:var(--bg-main, #f1f5f9);color:var(--text-primary)}.invoice-modal-body{flex:1;overflow-y:auto;padding:var(--spacing-lg);display:flex;flex-direction:column;gap:var(--spacing-lg)}.invoice-modal-footer{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:20px 24px;border-top:1px solid var(--border);background:var(--bg-card);box-shadow:0 -4px 12px #00000008;flex-shrink:0}.invoice-modal-footer-info{display:flex;flex-direction:column;gap:4px}.invoice-modal-footer-info .footer-label{font-size:.75rem;color:var(--text-muted);font-weight:500;text-transform:uppercase;letter-spacing:.05em}.btn-mark-paid{display:inline-flex;align-items:center;gap:8px;padding:10px 20px;border:none;background:var(--color-accent);color:#fff;border-radius:var(--border-radius-sm);font-size:.875rem;font-weight:600;cursor:pointer;transition:all .2s ease}.btn-mark-paid:hover:not(:disabled){background:var(--color-accent-hover, #3B4694);transform:translateY(-1px);box-shadow:0 4px 12px #4318ff4d}.btn-mark-paid:disabled{background:var(--status-neutral-bg);color:var(--text-muted);opacity:.8;cursor:not-allowed}.invoice-modal-loading,.invoice-modal-error{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;padding:48px 0;color:var(--text-muted)}.invoice-modal-error{color:var(--danger, #dc2626)}.invoice-modal-section{background:var(--bg-main, #f8fafc);border:1px solid var(--border-color);border-radius:10px;padding:var(--spacing-md)}.invoice-modal-section-title{font-size:.8125rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);margin:0 0 var(--spacing-md) 0;display:flex;align-items:center;gap:8px}.invoice-section-count{background:var(--primary);color:#fff;font-size:.6875rem;font-weight:700;padding:1px 8px;border-radius:999px;margin-left:auto}.invoice-info-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:var(--spacing-sm) var(--spacing-md)}.invoice-info-item{display:flex;flex-direction:column;gap:2px}.invoice-info-item label{font-size:.6875rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted)}.invoice-info-item span{font-size:.875rem;font-weight:500;color:var(--text-primary)}.invoice-uuid{font-family:SF Mono,Fira Code,monospace;font-size:.75rem!important;word-break:break-all;opacity:.7}.invoice-parties{display:flex;align-items:center;gap:var(--spacing-md)}.invoice-party{flex:1;background:var(--bg-card, #fff);border:1px solid var(--border-color);border-radius:8px;padding:var(--spacing-sm) var(--spacing-md)}.invoice-party-label{font-size:.6875rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--primary);margin-bottom:4px}.invoice-party-name{font-size:.875rem;font-weight:600;color:var(--text-primary);line-height:1.3}.invoice-party-rfc{font-size:.75rem;color:var(--text-muted);font-family:SF Mono,Fira Code,monospace;margin-top:2px}.invoice-party-arrow{font-size:1.25rem;color:var(--text-muted);flex-shrink:0}.invoice-money-breakdown{display:flex;flex-direction:column;gap:6px}.invoice-money-row{display:flex;justify-content:space-between;align-items:center;font-size:.875rem;padding:4px 0;color:var(--text-primary)}.invoice-money-row.discount{color:var(--danger, #dc2626)}.invoice-money-row.total{border-top:2px solid var(--border-color);margin-top:4px;padding-top:10px;font-weight:700;font-size:1rem}.invoice-conceptos-table-wrapper{overflow-x:auto;margin:0 calc(-1 * var(--spacing-md));padding:0 var(--spacing-md)}.invoice-conceptos-table{width:100%;border-collapse:collapse;font-size:.8125rem}.invoice-conceptos-table thead th{font-size:.6875rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted);padding:8px 10px;border-bottom:2px solid var(--border-color);white-space:nowrap}.invoice-conceptos-table tbody td{padding:10px;border-bottom:1px solid var(--border-color);color:var(--text-primary);vertical-align:top}.invoice-conceptos-table tbody tr:last-child td{border-bottom:none}.invoice-conceptos-table tbody tr:hover{background:#2563eb08}.row-num{color:var(--text-muted);font-size:.75rem;font-weight:600;width:30px}.concepto-desc{font-weight:500;line-height:1.4}.concepto-clave{font-size:.6875rem;color:var(--text-muted);font-family:SF Mono,Fira Code,monospace;margin-top:2px}.invoice-empty-msg{text-align:center;color:var(--text-muted);font-size:.875rem;padding:16px 0;margin:0}.text-danger{color:var(--danger, #dc2626);font-weight:600}.text-warning{color:var(--warning, #d97706);font-weight:600}.text-success{color:var(--success, #16a34a);font-weight:600}.filter-active{border-color:var(--color-accent)!important;color:var(--color-accent)!important;background:var(--color-accent-bg)!important}.filter-badge{display:inline-flex;align-items:center;justify-content:center;min-width:18px;height:18px;padding:0 5px;border-radius:9px;background:var(--color-accent);color:#fff;font-size:.6875rem;font-weight:700;line-height:1;margin-left:2px}.filter-result-count{font-size:.75rem;font-weight:500;color:var(--text-muted);margin-left:var(--spacing-sm)}.filter-panel{position:absolute;top:calc(100% + 8px);right:0;width:340px;background:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--border-radius);box-shadow:var(--shadow-dropdown);z-index:100;padding:var(--spacing-md);display:flex;flex-direction:column;gap:var(--spacing-md);animation:filterSlideIn .2s ease}@keyframes filterSlideIn{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}.filter-panel-header{display:flex;align-items:center;justify-content:space-between;padding-bottom:var(--spacing-sm);border-bottom:1px solid var(--border-color)}.filter-panel-title{font-size:.875rem;font-weight:600;color:var(--text-primary)}.filter-clear-btn{display:inline-flex;align-items:center;gap:4px;font-size:.75rem;font-weight:500;color:var(--status-danger);cursor:pointer;padding:4px 8px;border-radius:var(--border-radius-xs);transition:background var(--transition-fast)}.filter-clear-btn:hover{background:var(--status-danger-bg)}.filter-group{display:flex;flex-direction:column;gap:var(--spacing-sm)}.filter-group-label{display:flex;align-items:center;gap:6px;font-size:.75rem;font-weight:600;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.04em}.filter-chips{display:flex;flex-wrap:wrap;gap:6px}.filter-chip{display:inline-flex;align-items:center;gap:5px;padding:5px 12px;border-radius:20px;font-size:.8125rem;font-weight:500;cursor:pointer;transition:all var(--transition-fast);border:1px solid var(--border-color);background:var(--bg-main);color:var(--text-secondary)}.filter-chip:hover{border-color:var(--text-muted);color:var(--text-primary)}.filter-chip.selected{border-color:transparent}.filter-chip.pagada.selected{background:var(--status-success-bg);color:var(--status-success);border-color:var(--status-success)}.filter-chip.pendiente.selected{background:var(--status-warning-bg);color:var(--status-warning);border-color:var(--status-warning)}.filter-chip.vencida.selected{background:var(--status-danger-bg);color:var(--status-danger);border-color:var(--status-danger)}.filter-chip.parcial.selected{background:var(--status-info-bg);color:var(--status-info);border-color:var(--status-info)}.filter-chip.cancelada.selected{background:var(--status-neutral-bg);color:var(--text-muted);border-color:var(--status-neutral)}.filter-chip.neutral.selected{background:var(--color-accent-bg);color:var(--color-accent);border-color:var(--color-accent)}.filter-chip .status-dot{width:6px;height:6px}.filter-date-row{display:flex;gap:var(--spacing-sm)}.filter-date-field{flex:1;display:flex;flex-direction:column;gap:4px}.filter-date-label{font-size:.6875rem;color:var(--text-muted);font-weight:500}.filter-date-field input[type=date]{padding:8px 10px;background:var(--bg-main);border:1px solid var(--border-color);border-radius:var(--border-radius-xs);color:var(--text-primary);font-size:.8125rem;font-family:inherit;width:100%;transition:border-color var(--transition-fast)}.filter-date-field input[type=date]:focus{outline:none;border-color:var(--color-accent);box-shadow:0 0 0 3px var(--color-accent-bg)}.filter-active-tags{display:flex;align-items:center;flex-wrap:wrap;gap:6px;padding:var(--spacing-sm) var(--spacing-lg);border-bottom:1px solid var(--border-color);background:var(--bg-main)}.filter-tag{display:inline-flex;align-items:center;gap:4px;padding:3px 10px;border-radius:20px;font-size:.75rem;font-weight:500}.filter-tag.pagada{background:var(--status-success-bg);color:var(--status-success)}.filter-tag.pendiente{background:var(--status-warning-bg);color:var(--status-warning)}.filter-tag.vencida{background:var(--status-danger-bg);color:var(--status-danger)}.filter-tag.parcial{background:var(--status-info-bg);color:var(--status-info)}.filter-tag.cancelada{background:var(--status-neutral-bg);color:var(--text-muted)}.filter-tag.neutral{background:var(--color-accent-bg);color:var(--color-accent)}.filter-tag button{display:inline-flex;align-items:center;padding:0;color:inherit;opacity:.7;transition:opacity var(--transition-fast)}.filter-tag button:hover{opacity:1}.filter-clear-all{font-size:.75rem;font-weight:500;color:var(--text-muted);padding:3px 8px;border-radius:var(--border-radius-xs);margin-left:auto;transition:all var(--transition-fast)}.filter-clear-all:hover{color:var(--status-danger);background:var(--status-danger-bg)}@media(max-width:640px){.invoice-modal-panel{width:100vw}.invoice-parties{flex-direction:column}.invoice-party-arrow{display:none}.invoice-info-grid{grid-template-columns:1fr}.filter-panel{width:calc(100vw - 32px);right:-16px}.filter-date-row{flex-direction:column}}
