*{box-sizing:border-box;margin:0;padding:0}:root{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;line-height:1.5;font-weight:400;color-scheme:light;color:#213547;background-color:#f5f7fa;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{margin:0;min-width:320px;min-height:100vh}#root{width:100%;min-height:100vh}.app{min-height:100vh;background-color:#fcfcfc;padding:2rem 1rem;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;color:#1a1a1a}.app-header{text-align:center;margin-bottom:3rem;padding:2rem 0}.app-header h1{font-size:2.2rem;font-weight:800;color:#111;margin-bottom:.5rem;letter-spacing:-.025em}.app-main{max-width:1000px;margin:0 auto;display:flex;flex-direction:column;gap:2.5rem}.upload-card,.results-card,.history-card{background:#fff;border-radius:12px;padding:2.5rem;box-shadow:0 1px 3px #0000000d,0 10px 20px -5px #00000008;border:1px solid #eee}.upload-card h2,.results-card h2,.history-card h2{color:#111;margin-bottom:1.5rem;font-size:1.25rem;font-weight:700;letter-spacing:-.01em}.file-input-wrapper{margin-bottom:2rem}.file-input{display:none}.file-label{display:flex;align-items:center;justify-content:center;padding:3rem 2rem;border:2px dashed #ddd;border-radius:10px;text-align:center;cursor:pointer;transition:all .2s ease;background:#fafafa;color:#666;font-weight:500}.file-label:hover{background:#f5f5f5;border-color:#bbb;color:#333}.progress-container{margin:2rem 0}.progress-bar{width:100%;height:8px;background:#eee;border-radius:4px;overflow:hidden;margin-bottom:.75rem}.progress-fill{height:100%;background:#222;transition:width .4s cubic-bezier(.1,.5,.5,1)}.progress-text{text-align:center;color:#888;font-size:.85rem;font-weight:500}.button-group{display:flex;gap:1rem}.btn{padding:.85rem 1.5rem;border:1px solid transparent;border-radius:8px;font-size:.95rem;font-weight:600;cursor:pointer;transition:all .2s ease;display:inline-flex;align-items:center;justify-content:center}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:#111;color:#fff;flex:2}.btn-primary:hover:not(:disabled){background:#333;transform:translateY(-1px)}.btn-secondary{background:#fff;color:#444;border-color:#ddd;flex:1}.btn-secondary:hover:not(:disabled){background:#f9f9f9;border-color:#ccc}.btn-icon{background:transparent;border:1px solid #eee;border-radius:6px;width:36px;height:36px;display:flex;align-items:center;justify-content:center;cursor:pointer;color:#666;transition:all .2s ease}.btn-icon:hover{background:#f5f5f5;border-color:#ddd;color:#111}.btn-icon.active{background:#111;color:#fff;border-color:#111}.results-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:2rem}.file-info{background:#fafafa;padding:1.25rem;border-radius:8px;border:1px solid #eee;margin-bottom:2rem}.file-info-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem}.header-actions{display:flex;gap:.5rem}.info-row{display:flex;gap:2rem}.file-info h3{font-size:.85rem;text-transform:uppercase;color:#888;margin:0;letter-spacing:.05em}.file-info p{margin:0;font-size:.95rem}.summary-box{margin-bottom:2.5rem;border:1px solid #eee;border-radius:10px;overflow:hidden}.summary-grid{display:grid;grid-template-columns:repeat(3,1fr);background:#fff}.summary-item{padding:1.25rem .5rem;text-align:center}.summary-item.border-left{border-left:1px solid #eee}.summary-item label{display:block;font-size:.75rem;font-weight:600;color:#999;text-transform:uppercase;margin-bottom:.5rem}.summary-value{font-size:1.75rem;font-weight:700;color:#111;margin:0}.table-header-group{display:flex;justify-content:space-between;align-items:flex-end;margin-bottom:1rem}.ducacas-table-container,.products-table{border:1px solid #eee;border-radius:8px;overflow:hidden}.ducacas-table,.products-table table{width:100%;border-collapse:collapse;background:#fff}.ducacas-table th,.products-table th{background:#f7f7f7;color:#666;font-size:.75rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;padding:1rem .75rem;border-bottom:1px solid #eee}.ducacas-table td,.products-table td{padding:1rem .75rem;font-size:.9rem;color:#333;border-bottom:1px solid #f9f9f9}.ducacas-table tr:hover,.products-table tr:hover{background-color:#fafafa}.th-number{text-align:center;width:40px}.th-code{text-align:left;width:120px}.th-description{text-align:left}.th-sac{text-align:left;width:90px}.th-sac-desc{text-align:left;min-width:180px}.th-quantity{text-align:right;width:80px}.th-price{text-align:right;width:110px}.th-total{text-align:right;width:120px}.ducacas-cell-number{text-align:center;color:#999;font-weight:500}.ducacas-cell-code{font-family:monospace;color:#555;background:#f5f5f5;padding:.2rem .4rem!important;border-radius:4px;font-size:.8rem}.ducacas-cell-description{font-weight:400;color:#111}.ducacas-cell-sac{font-family:monospace;color:#4f46e5;background:#eef2ff;padding:.2rem .4rem!important;border-radius:4px;font-size:.8rem}.ducacas-cell-sac-desc{font-size:.85rem;color:#666;font-style:italic}.ducacas-cell-quantity{text-align:right;font-family:monospace}.ducacas-cell-price{text-align:right;font-family:monospace;color:#666}.ducacas-cell-total{text-align:right;font-family:monospace;font-weight:700;color:#111}.normalized-badge{background:#eef2ff;color:#4f46e5;font-size:.75rem;font-weight:600;padding:.25rem .5rem;border-radius:4px}.pagination{display:flex;align-items:center;gap:1rem;font-size:.85rem;color:#777}.btn-pagination{background:#fff;border:1px solid #ddd;border-radius:4px;width:32px;height:32px;display:flex;align-items:center;justify-content:center;cursor:pointer;color:#444}.btn-pagination:disabled{opacity:.3;cursor:not-allowed}.btn-pagination:hover:not(:disabled){border-color:#bbb;background:#f9f9f9}.json-display{background:#111;color:#eee;padding:1.5rem;border-radius:8px;font-family:monospace;font-size:.8rem;max-height:400px;overflow:auto;margin-top:1rem}.history-list{display:flex;flex-direction:column;gap:.75rem}.history-item{padding:1rem;border:1px solid #eee;border-radius:8px;display:flex;justify-content:space-between;align-items:center}.history-file{font-weight:600;font-size:.9rem}.history-date{font-size:.8rem;color:#999}.history-data{font-size:.8rem;color:#666}.error-message{background:#fff5f5;color:#c53030;padding:1rem;border-radius:8px;margin-bottom:2rem;font-size:.9rem;border:1px solid #fed7d7}@media(max-width:768px){.summary-grid{grid-template-columns:1fr}.info-row{flex-direction:column;gap:.5rem}.table-header-group{flex-direction:column;align-items:flex-start;gap:1rem}}
