*{box-sizing:border-box}html{background:var(--color-background);min-width:320px}body{min-width:320px;min-height:100vh;color:var(--color-text);background:var(--color-background);margin:0;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}button,input,select{font:inherit}button{-webkit-tap-highlight-color:transparent}#root{min-height:100vh}.app-header{background:var(--color-surface);border-bottom:1px solid var(--color-border);justify-content:space-between;align-items:center;height:75px;padding:0 30px;display:flex;box-shadow:0 2px 8px #0000000a}.app-header-left{flex-direction:column;display:flex}.app-header-left h1{color:var(--color-text);margin:0;font-size:24px}.app-header-left span{color:var(--color-text-secondary);margin-top:4px;font-size:13px}.app-header-right{align-items:center;gap:20px;display:flex}.app-header-right .ui-button--icon{border-radius:50%;font-size:18px}.app-user-box{align-items:center;gap:12px;display:flex}.app-user-icon{color:var(--color-primary);font-size:42px}.app-user-box strong{color:var(--color-text);font-size:15px;display:block}.app-user-box small{color:var(--color-text-secondary);font-size:12px}@media (width<=768px){.app-header{padding:0 16px}.app-header-left span,.app-user-box div{display:none}.app-header-left h1{font-size:20px}}.ui-button{cursor:pointer;white-space:nowrap;-webkit-user-select:none;user-select:none;border:none;border-radius:10px;outline:none;justify-content:center;align-items:center;gap:10px;font-size:14px;font-weight:600;transition:all .25s;display:inline-flex}.ui-button--sm{height:38px;padding:0 16px}.ui-button--md{height:44px;padding:0 22px}.ui-button--lg{height:50px;padding:0 28px}.ui-button--primary{background:var(--color-primary);color:#fff}.ui-button--primary:hover:not(:disabled){background:var(--color-primary-hover)}.ui-button--success{color:#fff;background:#22c55e}.ui-button--success:hover:not(:disabled){background:#16a34a}.ui-button--danger{color:#fff;background:#ef4444}.ui-button--danger:hover:not(:disabled){background:#dc2626}.ui-button--secondary{color:#374151;background:#e5e7eb}.ui-button--secondary:hover:not(:disabled){background:#d1d5db}.ui-button--ghost{background:var(--color-primary-light);color:var(--color-primary)}.ui-button--ghost:hover:not(:disabled){background:var(--color-primary);color:#fff}.ui-button--full{width:100%}.ui-button:disabled{opacity:.6;cursor:not-allowed}.btn-icon{justify-content:center;align-items:center;font-size:16px;display:flex}.btn-text{align-items:center;line-height:1;display:flex}.ui-button--icon{width:38px;min-width:38px;padding:0}.app-sidebar{color:#fff;background:#2e5e2a;flex-direction:column;width:260px;min-width:260px;min-height:100vh;display:flex;position:sticky;top:0;overflow-y:auto;box-shadow:4px 0 15px #00000014}.app-sidebar-logo{border-bottom:1px solid #ffffff1f;align-items:center;gap:14px;padding:24px 20px;display:flex}.app-logo-circle{background:var(--color-primary);border-radius:50%;justify-content:center;align-items:center;width:50px;height:50px;font-size:22px;display:flex}.app-sidebar-logo h2{color:#fff;margin:0;font-size:20px}.app-sidebar-logo span{color:#ffffffbf;font-size:12px}.app-sidebar-menu{flex-direction:column;flex:1;gap:6px;padding:20px 12px;display:flex}.app-menu-item{color:#ffffffd9;border-radius:10px;align-items:center;gap:14px;padding:12px 16px;text-decoration:none;transition:all .2s;display:flex}.app-menu-item:hover{color:#fff;background:#ffffff1f}.app-menu-item.active{background:var(--color-primary);color:#fff;font-weight:600}.app-menu-icon{justify-content:center;width:22px;font-size:18px;display:flex}@media (width<=900px){.app-sidebar{width:80px;min-width:80px}.app-sidebar-logo div:last-child,.app-menu-item span:last-child{display:none}.app-menu-item{justify-content:center;padding:14px}.app-menu-icon{margin:0}}.layout{background:var(--color-background);min-height:100vh;display:flex}.main{flex-direction:column;flex:1;min-width:0;display:flex}.content{background:var(--color-background);flex:1;min-height:0;overflow-y:auto}@media (width<=900px){.layout{flex-direction:row}.content{width:100%}}.card-ui{background:var(--color-surface);border-radius:var(--radius-lg);box-shadow:var(--shadow-card);border:1px solid var(--color-border);margin-bottom:20px;padding:20px}.card-header{margin-bottom:var(--space-md);justify-content:space-between;align-items:center;gap:var(--space-md);display:flex}.card-header h3{color:var(--color-text);margin:0;font-size:18px;font-weight:600}.card-actions{align-items:center;gap:var(--space-sm);display:flex}.card-body{gap:var(--space-md);flex-direction:column;display:flex}.card-ui.hoverable{transition:transform .2s,box-shadow .2s}.card-ui.hoverable:hover{transform:translateY(-2px);box-shadow:0 8px 20px #00000014}@media (width<=768px){.card-ui{padding:16px}.card-header{flex-direction:column;align-items:flex-start}.card-actions{justify-content:flex-end;width:100%}}.page-header{margin-bottom:var(--space-lg);padding:var(--space-lg) var(--space-xl);background:#fff;border-radius:16px;justify-content:space-between;align-items:center;display:flex;box-shadow:0 6px 20px #0000000f}.page-header-info h1{color:#1d2433;margin:0;font-size:34px;font-weight:700}.page-header-info p{color:#7c8798;margin-top:8px;font-size:15px}.page-header-action{align-items:center;gap:12px;display:flex}@media (width<=768px){.page-header{flex-direction:column;align-items:flex-start;gap:20px}.page-header-action{width:100%}}.page-header-action:empty{display:none}.dashboard{padding:var(--space-xl);background:var(--color-background);min-height:calc(100vh - 75px)}.dashboard-grid{gap:var(--space-lg);margin-bottom:var(--space-xl);grid-template-columns:repeat(auto-fit,minmax(240px,1fr));display:grid}.dashboard-card{margin-bottom:0}.dashboard-card .card-body{align-items:center;gap:var(--space-md);flex-direction:row}.dashboard-card--error{border-color:var(--color-danger)}.card-icon{border-radius:var(--radius-lg);width:62px;height:62px;color:var(--color-surface);flex:none;justify-content:center;align-items:center;font-size:26px;display:flex}.card-icon.green{background:var(--color-primary)}.card-icon.blue{background:var(--color-info)}.card-icon.orange{background:var(--color-warning)}.card-icon.purple{background:var(--color-accent)}.dashboard-card span,.dashboard-card small{color:var(--color-text-secondary);font-size:14px;display:block}.dashboard-card small{color:var(--color-danger);margin-top:var(--space-xs)}.dashboard-card h2{margin:var(--space-xs) 0 0;color:var(--color-text);font-size:28px}.dashboard-state{color:var(--color-text-secondary);align-items:center;gap:var(--space-sm);text-align:center;justify-content:center;min-height:120px;display:flex}.dashboard-state p{margin:0}.dashboard-state--error{color:var(--color-danger)}.dashboard-state--error p{color:var(--color-text-secondary);margin-top:var(--space-xs)}.dashboard-activity{flex-direction:column;display:flex}.dashboard-activity__item{border-bottom:1px solid var(--color-border);align-items:center;gap:var(--space-md);padding:var(--space-md) 0;grid-template-columns:minmax(180px,1.2fr) minmax(180px,1fr) auto;display:grid}.dashboard-activity__item:first-child{padding-top:0}.dashboard-activity__item:last-child{border-bottom:0;padding-bottom:0}.dashboard-activity__item div{gap:var(--space-xs);flex-direction:column;display:flex}.dashboard-activity__item span{color:var(--color-text-secondary);font-size:14px}.dashboard-activity__total{color:var(--color-primary-dark);text-align:right;white-space:nowrap}@media (width<=768px){.dashboard{padding:var(--space-md)}.dashboard-activity__item{grid-template-columns:1fr;align-items:flex-start}.dashboard-activity__total{text-align:left}}.header h1{margin:0;font-size:28px}.header p{color:gray;margin-top:5px;font-size:14px}.input{border:1px solid #ddd;border-radius:6px;outline:none;padding:10px}.input:focus{border-color:#4f46e5}.btn:hover{background:#4338ca}thead{text-align:left;color:gray;font-size:14px}tr:hover{background:#f9f9f9}.actions button{cursor:pointer;background:0 0;border:none;margin-right:10px}.edit{color:#00f}.delete{color:red}.actions .ui-button{margin-right:var(--space-sm)}.btn{color:#fff;cursor:pointer;background:#4f46e5;border:none;border-radius:6px;grid-column:span 2;padding:10px}.stock-bajo{color:red;font-weight:700}.stock-ok{color:green}.form .ui-button{grid-column:span 2}.container{background:#f5f6fa;min-height:100vh;padding:30px;font-family:Arial,sans-serif}.header{background:#fff;border-radius:10px;margin-bottom:20px;padding:20px}.form{background:#fff;border-radius:10px;grid-template-columns:1fr;gap:10px;margin-bottom:20px;padding:20px;display:grid}.input{border:1px solid #ddd;border-radius:6px;padding:10px}.btn{color:#fff;cursor:pointer;background:#4f46e5;border:none;border-radius:6px;padding:10px}.table-container{background:#fff;border-radius:10px;padding:20px}table{border-collapse:collapse;width:100%}th,td{text-align:left;border-bottom:1px solid #eee;padding:12px}.container{padding:var(--space-xl);font-family:inherit}.form .ui-button{justify-self:start}.form-control{gap:var(--space-xs);flex-direction:column;min-width:0;display:flex}.form-control__label{color:var(--color-text);font-size:14px;font-weight:600}.form-control__input{width:100%;min-height:44px;padding:0 var(--space-md);border:1px solid var(--color-border);border-radius:var(--radius-sm);color:var(--color-text);background:var(--color-surface);outline:none}.form-control__input:focus{border-color:var(--color-primary);box-shadow:0 0 0 3px var(--color-primary-light)}.form-control__input:disabled{color:var(--color-text-secondary);background:var(--color-background);cursor:not-allowed}.form-control__select{cursor:pointer}.form-control__error{color:var(--color-danger);font-size:12px}.ui-modal{z-index:1000;padding:var(--space-md);background:var(--color-overlay);place-items:center;display:grid;position:fixed;inset:0}.ui-modal__content{width:min(100%,560px);max-height:calc(100vh - var(--space-2xl));border-radius:var(--radius-lg);background:var(--color-surface);box-shadow:var(--shadow-card);overflow-y:auto}.ui-modal__header,.ui-modal__actions{justify-content:space-between;align-items:center;gap:var(--space-md);padding:var(--space-lg);display:flex}.ui-modal__header{border-bottom:1px solid var(--color-border)}.ui-modal__header h2{color:var(--color-text);margin:0;font-size:20px}.ui-modal__body{gap:var(--space-md);padding:var(--space-lg);display:grid}.ui-modal__actions{border-top:1px solid var(--color-border);justify-content:flex-end}@media (width<=600px){.ui-modal__actions{flex-direction:column-reverse}.ui-modal__actions .ui-button{width:100%}}.facturacion-page{min-height:100%;padding:var(--space-xl)}.invoice-card{margin-bottom:var(--space-lg)}.invoice-grid{gap:var(--space-md);display:grid}.invoice-grid--customer{grid-template-columns:minmax(0,1fr) auto;align-items:end}.invoice-grid--details{grid-template-columns:repeat(3,minmax(0,1fr))}.invoice-autocomplete{width:min(100%,520px);position:relative}.invoice-customer-action{align-items:end;display:flex}.invoice-dropdown{z-index:10;top:calc(100% + var(--space-xs));max-height:240px;padding:var(--space-xs);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);box-shadow:var(--shadow-card);display:grid;position:absolute;left:0;right:0;overflow-y:auto}.invoice-dropdown__option{width:100%;min-height:40px;padding:0 var(--space-sm);text-align:left;justify-content:flex-start}.invoice-date{margin:var(--space-md) 0 0;color:var(--color-text-secondary);font-size:14px}.invoice-table{border-collapse:collapse;width:100%;min-width:780px}.invoice-table th,.invoice-table td{padding:var(--space-sm) var(--space-md);border-bottom:1px solid var(--color-border);text-align:left;vertical-align:middle}.invoice-table th{color:var(--color-text-secondary);text-transform:uppercase;font-size:12px;font-weight:700}.invoice-table td .form-control{min-width:90px}.invoice-stock{color:var(--color-success-hover);font-weight:700}.invoice-stock--low{color:var(--color-warning)}.invoice-summary{justify-content:space-between;align-items:end;gap:var(--space-xl);margin-top:var(--space-lg);display:flex}.invoice-summary>.form-control{width:180px}.invoice-totals{gap:var(--space-sm);min-width:250px;display:grid}.invoice-totals span{justify-content:space-between;gap:var(--space-xl);color:var(--color-text-secondary);display:flex}.invoice-submit{justify-content:flex-end;display:flex}@media (width<=900px){.invoice-grid--details{grid-template-columns:1fr 1fr}}@media (width<=640px){.facturacion-page{padding:var(--space-md)}.invoice-grid--customer,.invoice-grid--details,.invoice-summary{grid-template-columns:1fr}.invoice-customer-action,.invoice-submit{display:grid}.invoice-customer-action .ui-button,.invoice-submit .ui-button{width:100%}.invoice-summary{align-items:stretch}.invoice-summary>.form-control,.invoice-totals{width:100%}}.invoice-preview{min-height:100vh;padding:var(--space-xl);background:var(--color-background)}.invoice-actions{justify-content:flex-end;gap:var(--space-sm);width:min(100%,216mm);margin:0 auto var(--space-lg);display:flex}.invoice-document{isolation:isolate;width:min(100%,216mm);color:var(--color-text);background:var(--color-surface);box-shadow:var(--shadow-card);margin:0 auto;padding:16mm 14mm;position:relative}.invoice-testing-watermark{color:var(--color-danger);opacity:.14;pointer-events:none;text-align:center;z-index:0;width:80%;font-size:20px;font-weight:700;line-height:1.4;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)rotate(-28deg)}.invoice-document>:not(.invoice-testing-watermark){z-index:1;position:relative}.invoice-document__header{justify-content:space-between;gap:var(--space-xl);padding-bottom:var(--space-lg);border-bottom:2px solid var(--color-success-hover);display:flex}.invoice-company{align-items:flex-start;gap:var(--space-md);display:flex}.invoice-company__logo{object-fit:contain;width:70px;max-height:70px}.invoice-company h1,.invoice-document__meta h2{margin:0 0 var(--space-xs);color:var(--color-text)}.invoice-company h1{font-size:22px}.invoice-company p,.invoice-document__meta p,.invoice-recipient p{margin:0 0 var(--space-xs);color:var(--color-text-secondary);font-size:13px;line-height:1.45}.invoice-document__meta{min-width:230px;padding:var(--space-md);border:1px solid var(--color-border);border-radius:var(--radius-md)}.invoice-document__meta h2{color:var(--color-success-hover);font-size:18px}.invoice-recipient{margin:var(--space-xl) 0;padding:var(--space-md);border-radius:var(--radius-md);background:var(--color-background)}.invoice-recipient h3{margin:0 0 var(--space-sm);color:var(--color-text);font-size:14px}.invoice-recipient__grid{gap:var(--space-xs) var(--space-lg);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.invoice-table-wrap{overflow-x:auto}.invoice-document__table{border-collapse:collapse;width:100%;min-width:650px}.invoice-document__table th,.invoice-document__table td{padding:var(--space-sm) var(--space-md);border-bottom:1px solid var(--color-border);text-align:left;font-size:13px}.invoice-document__table th{color:var(--color-surface);background:var(--color-success-hover);text-transform:uppercase;font-size:11px}.invoice-document__table tbody tr:nth-child(2n){background:var(--color-background)}.invoice-totals{gap:var(--space-xs);width:min(100%,320px);margin:var(--space-xl) 0 0 auto;display:grid}.invoice-totals p{justify-content:space-between;gap:var(--space-lg);color:var(--color-text-secondary);margin:0;display:flex}.invoice-totals strong{color:var(--color-text)}.invoice-totals__total{padding-top:var(--space-sm);border-top:2px solid var(--color-success-hover);font-size:18px}.invoice-document__footer{margin-top:var(--space-xl);padding-top:var(--space-md);border-top:1px solid var(--color-border);color:var(--color-text-secondary);font-size:12px;line-height:1.5}.invoice-final-block{break-inside:avoid;display:flow-root}.invoice-legal{margin-top:var(--space-xl);padding-top:var(--space-md);border-top:1px solid var(--color-border);color:var(--color-text);text-align:justify;font-size:13px;line-height:1.55}.invoice-signatures{gap:var(--space-xl);grid-template-columns:repeat(2,minmax(0,1fr));margin-top:52px;display:grid}.invoice-signature__line{border-top:1px solid var(--color-text)}.invoice-signature p{margin:var(--space-sm) 0 0;color:var(--color-text);font-size:12px;line-height:1.4}.invoice-signature p+p{margin-top:var(--space-xs)}.invoice-closing{margin-top:var(--space-xl);color:var(--color-text-secondary);text-align:center;font-size:12px;line-height:1.5}.invoice-closing p{margin:0}.invoice-state{min-height:100vh;padding:var(--space-xl);color:var(--color-text-secondary);background:var(--color-background);place-items:center;display:grid}@media (width<=700px){.invoice-preview{padding:var(--space-md)}.invoice-actions,.invoice-document__header{flex-direction:column}.invoice-actions .ui-button{width:100%}.invoice-document{min-height:auto;padding:var(--space-lg)}.invoice-document__meta{min-width:0}.invoice-recipient__grid{grid-template-columns:1fr}.invoice-signatures{grid-template-columns:1fr;gap:52px}}@page{size:letter;margin:15mm}@media print{.app-header,.app-sidebar,.invoice-actions{display:none}.invoice-preview{background:var(--color-surface);padding:0}.invoice-document{width:100%;min-height:0;box-shadow:none;padding:0}.invoice-testing-watermark{position:fixed;top:50%}.invoice-document__table{min-width:0}.invoice-document__table thead{display:table-header-group}.invoice-document__table tr,.invoice-recipient,.invoice-totals,.invoice-final-block,.invoice-legal,.invoice-signatures,.invoice-closing{break-inside:avoid}}.configuracion-page{min-height:100%;padding:var(--space-xl)}.configuracion-page--state{color:var(--color-text-secondary);place-items:center;display:grid}.configuracion-form{gap:var(--space-lg);display:grid}.configuracion-form .card-ui{margin-bottom:0}.configuracion-grid{gap:var(--space-md);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.configuracion-helper{margin:var(--space-sm) 0 0;color:var(--color-text-secondary);font-size:13px;line-height:1.5}.configuracion-textarea{min-height:132px;padding:var(--space-sm) var(--space-md);resize:vertical}.configuracion-logo{gap:var(--space-sm);display:grid}.configuracion-logo__preview{width:min(100%,220px);max-height:120px;margin-top:var(--space-sm);object-fit:contain;object-position:left center}.configuracion-actions{justify-content:flex-end;display:flex}.configuracion-state{justify-items:start;gap:var(--space-md);display:grid}.configuracion-state p{color:var(--color-text-secondary);margin:0}@media (width<=640px){.configuracion-page{padding:var(--space-md)}.configuracion-grid{grid-template-columns:1fr}.configuracion-actions{display:grid}.configuracion-actions .ui-button{width:100%}}.historial-page{min-height:100%;padding:var(--space-xl)}.historial-filtros{gap:var(--space-md);grid-template-columns:repeat(5,minmax(0,1fr));align-items:end;display:grid}.historial-filtros__acciones{gap:var(--space-sm);display:flex}.historial-indicadores{gap:var(--space-md);margin-bottom:var(--space-lg);grid-template-columns:repeat(3,minmax(0,1fr));display:grid}.historial-indicadores .card-ui{margin:0}.historial-indicadores span{color:var(--color-text-secondary);font-size:13px}.historial-indicadores strong{color:var(--color-text);font-size:22px}.historial-tabla-wrap{overflow-x:auto}.historial-tabla{border-collapse:collapse;width:100%;min-width:900px}.historial-tabla th,.historial-tabla td{padding:var(--space-sm) var(--space-md);border-bottom:1px solid var(--color-border);text-align:left;white-space:nowrap}.historial-tabla th{color:var(--color-surface);background:var(--color-success-hover);text-transform:uppercase;font-size:12px}.historial-tabla tbody tr:nth-child(2n){background:var(--color-background)}.historial-tabla tbody tr:hover{background:var(--color-primary-light)}.historial-tabla__acciones{gap:var(--space-xs);justify-content:flex-end;display:flex}.historial-estado{place-items:center;gap:var(--space-sm);min-height:160px;color:var(--color-text-secondary);text-align:center;display:grid}.historial-estado p,.historial-modal-estado{margin:0}.historial-estado--error{color:var(--color-danger)}.historial-paginacion{justify-content:space-between;align-items:center;gap:var(--space-md);margin-top:var(--space-md);color:var(--color-text-secondary);font-size:13px;display:flex}.historial-paginacion>div{gap:var(--space-xs);display:flex}@media (width<=1100px){.historial-filtros{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (width<=700px){.historial-page{padding:var(--space-md)}.historial-filtros,.historial-indicadores{grid-template-columns:1fr}.historial-filtros__acciones{display:grid}.historial-filtros__acciones .ui-button{width:100%}.historial-paginacion{flex-direction:column;align-items:flex-start}}.login-page,.auth-loading{min-height:100vh;padding:var(--space-xl);background:var(--color-background);color:var(--color-text-secondary);place-items:center;display:grid}.login-card{width:min(100%,440px);margin:0}.login-card form{gap:var(--space-md);display:grid}.login-brand{text-align:center}.login-brand h1{color:var(--color-text);margin:0}.login-brand p{color:var(--color-text-secondary)}.login-brand img{object-fit:contain;width:80px;max-height:80px}.login-password{position:relative}.login-password>.ui-button{right:var(--space-xs);position:absolute;bottom:2px}:root{--color-primary:#4f46e5;--color-primary-hover:#4338ca;--color-primary-dark:#3730a3;--color-primary-light:#eef2ff;--color-success:#22c55e;--color-success-hover:#16a34a;--color-danger:#ef4444;--color-danger-hover:#dc2626;--color-warning:#f59e0b;--color-info:#2563eb;--color-accent:#7c3aed;--color-background:#f5f7fb;--color-surface:#fff;--color-text:#111827;--color-text-secondary:#6b7280;--color-border:#e5e7eb;--color-overlay:#11182780;--radius-sm:6px;--radius-md:10px;--radius-lg:12px;--shadow-card:0 4px 12px #0000000d;--space-xs:4px;--space-sm:8px;--space-md:16px;--space-lg:24px;--space-xl:32px;--space-2xl:40px}.environment-indicator{background:var(--color-warning);border:1px solid var(--color-text);border-radius:var(--radius-sm);bottom:var(--space-md);color:var(--color-text);letter-spacing:.04em;padding:var(--space-sm) var(--space-md);right:var(--space-md);text-transform:uppercase;z-index:1000;font-size:12px;font-weight:700;position:fixed}@media (width<=700px){.environment-indicator{bottom:var(--space-sm);right:var(--space-sm);font-size:11px}}
