:root{--primary-color:#6c5ce7;--secondary-color:#a29bfe;--bg-dark:#0f111a;--text-light:#f8f9fa;--text-muted:#b2bec3;--glass-bg:#ffffff0d;--glass-border:#ffffff1a;--glass-shadow:0 8px 32px 0 #0000005e;--success:#00b894}*{box-sizing:border-box;margin:0;padding:0}body{background-color:var(--bg-dark);color:var(--text-light);justify-content:center;align-items:center;min-height:100vh;font-family:Outfit,sans-serif;display:flex;position:relative;overflow-x:hidden}.bg-shape{filter:blur(100px);z-index:-1;border-radius:50%;animation:20s infinite alternate float;position:absolute}.shape-1{background:#6c5ce766;width:400px;height:400px;top:-100px;left:-100px}.shape-2{background:#00b8944d;width:500px;height:500px;animation-delay:-5s;bottom:-150px;right:-100px}.shape-3{background:#fd79a84d;width:300px;height:300px;animation-delay:-10s;bottom:20%;left:20%}@keyframes float{0%{transform:translate(0)scale(1)}50%{transform:translate(50px,-50px)scale(1.1)}to{transform:translate(-50px,50px)scale(.9)}}.container{width:90%;max-width:900px;margin:2rem auto;padding:2.5rem}.glass-panel{background:var(--glass-bg);-webkit-backdrop-filter:blur(16px);border:1px solid var(--glass-border);box-shadow:var(--glass-shadow);border-radius:24px}.header{text-align:center;margin-bottom:2.5rem}.header h1{background:linear-gradient(135deg,#a29bfe,#00b894);-webkit-text-fill-color:transparent;-webkit-background-clip:text;margin-bottom:.5rem;font-size:2.5rem;font-weight:700}.header p{color:var(--text-muted);font-size:1.1rem}.upload-area{margin-bottom:2rem}.drop-zone{border:2px dashed var(--glass-border);cursor:pointer;background:#0003;border-radius:16px;flex-direction:column;justify-content:center;align-items:center;padding:3rem;transition:all .3s cubic-bezier(.4,0,.2,1);display:flex}.drop-zone:hover,.drop-zone.dragover{border-color:var(--primary-color);background:#6c5ce71a;transform:translateY(-2px)}.drop-icon{color:var(--primary-color);margin-bottom:1rem;transition:transform .3s}.drop-zone:hover .drop-icon,.drop-zone.dragover .drop-icon{transform:scale(1.1)}.drop-text{margin-bottom:.5rem;font-size:1.5rem}.drop-subtext{color:var(--text-muted)}.loader{border:4px solid var(--glass-border);border-top-color:var(--primary-color);border-radius:50%;width:48px;height:48px;margin:0 auto 1rem;animation:1s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}#loading-section{text-align:center;padding:3rem 0}.results-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;margin-bottom:2rem;display:flex}.actions{gap:1rem;display:flex}.btn{cursor:pointer;border:none;border-radius:8px;padding:.75rem 1.5rem;font-family:inherit;font-weight:600;transition:all .2s}.btn.primary{background:var(--primary-color);color:#fff;box-shadow:0 4px 15px #6c5ce766}.btn.primary:hover{background:#5a4bcf;transform:translateY(-2px);box-shadow:0 6px 20px #6c5ce799}.btn.secondary{color:var(--text-light);border:1px solid var(--glass-border);background:0 0}.btn.secondary:hover{background:#ffffff1a}.summary-cards{grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1.5rem;margin-bottom:2rem;display:grid}.stat-card{border:1px solid var(--glass-border);background:#0000004d;border-radius:12px;flex-direction:column;gap:.5rem;padding:1.5rem;display:flex}.stat-label{color:var(--text-muted);text-transform:uppercase;letter-spacing:1px;font-size:.9rem}.stat-value{color:var(--success);font-size:2.5rem;font-weight:700}.table-container{border:1px solid var(--glass-border);background:#0003;border-radius:12px;overflow-x:auto}table{border-collapse:collapse;width:100%}th,td{text-align:left;border-bottom:1px solid var(--glass-border);padding:1.2rem}th{color:var(--text-muted);text-transform:uppercase;letter-spacing:1px;background:#ffffff0d;font-size:.85rem;font-weight:600}tbody tr{transition:background .2s}tbody tr:hover{background:#ffffff0d}tbody tr:last-child td{border-bottom:none}.align-right{text-align:right}.qty-badge{color:var(--success);background:#00b89433;border-radius:20px;padding:.25rem .75rem;font-weight:600;display:inline-block}.hidden{display:none!important}.fade-in{animation:.5s forwards fadeIn}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@media (width<=600px){.container{padding:1.5rem}.header h1{font-size:2rem}.drop-zone{padding:2rem 1rem}}
