*{margin:0;padding:0;box-sizing:border-box}body{font-family:Inter,Segoe UI,Tahoma,Geneva,Verdana,sans-serif;background:#f5f7fa;min-height:100vh}#app{min-height:100vh;padding:20px}.container{max-width:900px;margin:0 auto}header{text-align:center;margin-bottom:40px;padding:40px 20px;background:#fff;border-radius:16px;box-shadow:0 2px 8px #00000014}.logo{max-width:180px;height:auto;margin-bottom:20px}header h1{color:#2d3748;font-size:2rem;font-weight:700;letter-spacing:-.5px}main{display:flex;flex-direction:column;gap:24px}.filters-card{background:#fff;border-radius:16px;padding:32px;box-shadow:0 2px 8px #00000014}.filters-card h2{color:#2d3748;margin-bottom:24px;font-size:1.25rem;font-weight:600}.filter-group{display:flex;flex-direction:column;gap:16px;margin-bottom:28px}.filter-row{display:flex;gap:24px;align-items:center}.stock-row{margin-top:8px;padding-top:16px;border-top:1px solid #e2e8f0}.checkbox-label{display:flex;align-items:center;cursor:pointer;font-size:1rem;color:#4a5568;transition:all .2s;-webkit-user-select:none;user-select:none}.checkbox-label:hover{color:#2d3748}.checkbox-label input[type=checkbox]{width:20px;height:20px;margin-right:10px;cursor:pointer;accent-color:#4299e1}.btn-generate{width:100%;padding:16px 24px;background:linear-gradient(135deg,#4299e1,#3182ce);color:#fff;border:none;border-radius:12px;font-size:1.1rem;font-weight:600;cursor:pointer;transition:all .3s;box-shadow:0 4px 12px #4299e14d;display:flex;align-items:center;justify-content:center;gap:10px}.btn-generate:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 6px 16px #4299e166;background:linear-gradient(135deg,#3182ce,#2c5282)}.btn-generate:active:not(:disabled){transform:translateY(0)}.btn-generate:disabled{opacity:.7;cursor:not-allowed;transform:none}.btn-generate svg{flex-shrink:0}.spinner{width:20px;height:20px;border:3px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.progress-card{background:#fff;border-radius:16px;padding:32px;box-shadow:0 2px 8px #00000014}.progress-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.progress-header h3{color:#2d3748;font-size:1.1rem;font-weight:600}.progress-percentage{font-size:1.5rem;font-weight:700;color:#4299e1}.progress-bar-container{margin-bottom:16px}.progress-bar{width:100%;height:12px;background:#e2e8f0;border-radius:12px;overflow:hidden;position:relative}.progress-fill{height:100%;background:linear-gradient(90deg,#4299e1,#48bb78);transition:width .5s ease;border-radius:12px;position:relative;overflow:hidden}.progress-shine{position:absolute;top:0;left:-100%;width:100%;height:100%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.4),transparent);animation:shine 2s infinite}@keyframes shine{to{left:100%}}.batch-info{text-align:center;font-size:.95rem;color:#718096;margin-top:12px}.batch-current,.batch-total{font-weight:700;color:#4299e1}.success-message{background:linear-gradient(135deg,#48bb78,#38a169);color:#fff;padding:18px 24px;border-radius:12px;font-weight:500;box-shadow:0 4px 12px #48bb784d;animation:slideIn .3s ease;display:flex;align-items:center;gap:12px}.success-message svg{flex-shrink:0}.error-message{background:linear-gradient(135deg,#f56565,#e53e3e);color:#fff;padding:18px 24px;border-radius:12px;font-weight:500;box-shadow:0 4px 12px #f565654d;animation:slideIn .3s ease;display:flex;align-items:center;gap:12px}.error-message svg{flex-shrink:0}@keyframes slideIn{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}@media(max-width:768px){header h1{font-size:1.5rem}.logo{max-width:140px}.filters-card{padding:24px}.filter-row{flex-direction:column;align-items:flex-start;gap:12px}.btn-generate{padding:14px 20px;font-size:1rem}.progress-percentage{font-size:1.25rem}}
