:root{font-family:system-ui,Avenir,Helvetica,Arial,sans-serif;line-height:1.5;font-weight:400;color-scheme:light dark;color:#ffffffde;background-color:#242424;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}a{font-weight:500;color:#646cff;text-decoration:inherit}a:hover{color:#535bf2}body{margin:0;display:flex;place-items:center;min-width:320px;min-height:100vh}h1{font-size:3.2em;line-height:1.1}button{border-radius:8px;border:1px solid transparent;padding:.6em 1.2em;font-size:1em;font-weight:500;font-family:inherit;background-color:#1a1a1a;cursor:pointer;transition:border-color .25s}button:hover{border-color:#646cff}button:focus,button:focus-visible{outline:4px auto -webkit-focus-ring-color}@media(prefers-color-scheme:light){:root{color:#213547;background-color:#fff}a:hover{color:#747bff}button{background-color:#f9f9f9}}.login-container{min-height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#00d46a,#00a854);padding:20px}.login-card{background:#fff;padding:40px;border-radius:12px;box-shadow:0 10px 40px #0003;width:100%;max-width:400px}.login-card h1{margin:0 0 10px;font-size:28px;color:#333;text-align:center}.login-card h2{margin:0 0 30px;font-size:16px;color:#666;font-weight:400;text-align:center}.form-group{margin-bottom:20px}.form-group label{display:block;margin-bottom:5px;font-weight:500;color:#333}.form-group input{width:100%;padding:12px;border:2px solid #e0e0e0;border-radius:6px;font-size:14px;transition:border-color .3s;box-sizing:border-box}.form-group input:focus{outline:none;border-color:#00d46a}.form-group input:disabled{background:#f5f5f5;cursor:not-allowed}.error-message{background:#fee;color:#c33;padding:12px;border-radius:6px;margin-bottom:15px;font-size:14px}.login-button{width:100%;padding:14px;background:linear-gradient(135deg,#00d46a,#00a854);color:#fff;border:none;border-radius:6px;font-size:16px;font-weight:600;cursor:pointer;transition:transform .2s,box-shadow .2s}.login-button:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 5px 15px #00d46a66}.login-button:active:not(:disabled){transform:translateY(0)}.login-button:disabled{opacity:.6;cursor:not-allowed}.dashboard-container{min-height:100vh;background:#f5f7fa;padding:20px}.dashboard-header{background:#fff;padding:20px 30px;border-radius:12px;box-shadow:0 2px 8px #0000001a;margin-bottom:20px;display:flex;justify-content:space-between;align-items:center}.dashboard-header h1{margin:0;font-size:28px;color:#333}.dashboard-header p{margin:5px 0 0;color:#666;font-size:14px}.logout-button{padding:10px 20px;background:#dc3545;color:#fff;border:none;border-radius:6px;font-size:14px;font-weight:500;cursor:pointer;transition:background .3s}.logout-button:hover{background:#c82333}.controls{background:#fff;padding:20px 30px;border-radius:12px;box-shadow:0 2px 8px #0000001a;margin-bottom:20px;display:flex;gap:20px;align-items:flex-end;flex-wrap:wrap}.filter-type-selector{display:flex;flex-direction:column;gap:5px}.filter-type-selector>label{font-weight:500;color:#333;font-size:14px}.filter-buttons{display:flex;gap:0;border-radius:6px;overflow:hidden;border:2px solid #00D46A}.filter-btn{padding:9px 18px;background:#fff;color:#00d46a;border:none;font-size:14px;font-weight:500;cursor:pointer;transition:background .2s,color .2s;border-right:1px solid #00D46A}.filter-btn:last-child{border-right:none}.filter-btn:hover:not(.active){background:#e6fff3}.filter-btn.active{background:#00d46a;color:#fff}.period-badge{display:flex;align-items:flex-end;padding-bottom:2px}.period-label{background:#f0faf5;border:1px solid #00D46A;color:#00875a;padding:9px 14px;border-radius:6px;font-size:14px;font-weight:500;white-space:nowrap;text-transform:capitalize}.date-picker{flex:1;max-width:300px}.date-picker label{display:block;margin-bottom:5px;font-weight:500;color:#333}.date-picker input{width:100%;padding:10px;border:2px solid #e0e0e0;border-radius:6px;font-size:14px;transition:border-color .3s;box-sizing:border-box}.date-picker input:focus{outline:none;border-color:#00d46a}.refresh-button{padding:10px 24px;background:#00d46a;color:#fff;border:none;border-radius:6px;font-size:14px;font-weight:500;cursor:pointer;transition:background .3s}.refresh-button:hover:not(:disabled){background:#00a854}.refresh-button:disabled{opacity:.6;cursor:not-allowed}.stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:20px;margin-bottom:20px}.stat-card{background:#fff;padding:25px;border-radius:12px;box-shadow:0 2px 8px #0000001a;border-left:4px solid #00D46A}.stat-card.success{border-left-color:#28a745}.stat-card.error{border-left-color:#dc3545}.stat-card h3{margin:0 0 10px;font-size:14px;color:#666;text-transform:uppercase;letter-spacing:.5px}.stat-value{margin:0;font-size:32px;font-weight:700;color:#333}.data-section{background:#fff;padding:25px;border-radius:12px;box-shadow:0 2px 8px #0000001a;margin-bottom:20px}.section-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px;padding-bottom:15px;border-bottom:2px solid #f0f0f0}.section-header h2{margin:0;font-size:20px;color:#333}.export-buttons{display:flex;gap:10px;align-items:center}.csv-button{padding:10px 20px;background:#ff6b35;color:#fff;text-decoration:none;border-radius:6px;font-size:14px;font-weight:500;transition:background .3s}.csv-button:hover{background:#ff5722}.xlsx-button{padding:10px 20px;background:#1d6f42;color:#fff;border:none;border-radius:6px;font-size:14px;font-weight:500;cursor:pointer;transition:background .3s}.xlsx-button:hover{background:#155234}.table-container{overflow-x:auto;overflow-y:auto;max-height:660px}.data-table{width:100%;border-collapse:collapse}.data-table thead{background:#f8f9fa;position:sticky;top:0;z-index:1}.data-table th{padding:12px;text-align:left;font-weight:600;color:#333;border-bottom:2px solid #e0e0e0;white-space:nowrap}.data-table td{padding:12px;border-bottom:1px solid #f0f0f0;color:#555}.data-table tbody tr:hover{background:#f8f9fa}.data-table .loading,.data-table .no-data{text-align:center;padding:30px;color:#999;font-style:italic}.device-id,.purchase-id,.response-id{font-family:Courier New,monospace;font-size:13px;color:#666}.status{padding:4px 12px;border-radius:12px;font-size:12px;font-weight:600;text-transform:uppercase}.status.success{background:#d4edda;color:#155724}.status.error{background:#f8d7da;color:#721c24}.pagination{display:flex;justify-content:center;align-items:center;gap:10px;padding:20px 0;margin-top:15px}.pagination-button{padding:8px 12px;background:#00d46a;color:#fff;border:none;border-radius:6px;font-size:14px;font-weight:500;cursor:pointer;transition:all .3s;min-width:40px}.pagination-button:hover:not(:disabled){background:#00a854;transform:translateY(-1px)}.pagination-button:disabled{background:#e0e0e0;color:#999;cursor:not-allowed;transform:none}.pagination-info{padding:0 15px;font-size:14px;color:#555;font-weight:500}@media(max-width:768px){.dashboard-header{flex-direction:column;align-items:flex-start;gap:15px}.controls{flex-direction:column;align-items:stretch}.date-picker{max-width:100%}.filter-type-selector,.filter-buttons{width:100%}.filter-btn{flex:1}.period-badge{width:100%}.period-label{display:block;text-align:center;width:100%;box-sizing:border-box}.stats-grid{grid-template-columns:1fr}.section-header{flex-direction:column;align-items:flex-start;gap:10px}.export-buttons{flex-direction:column;align-items:flex-start}.csv-button,.xlsx-button{align-self:flex-start;width:100%;text-align:center;box-sizing:border-box}}*{margin:0;padding:0;box-sizing:border-box}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}#root{min-height:100vh}.loading-container{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;background:#f5f7fa}.loading-spinner{width:50px;height:50px;border:4px solid #e0e0e0;border-top-color:#00d46a;border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.loading-container p{margin-top:20px;color:#666;font-size:16px}
