*{box-sizing:border-box;margin:0;padding:0}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-color:#f5f5f5;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}.vending-machine-container{background:linear-gradient(135deg,#2193b0,#6dd5ed);min-height:100vh;padding:20px;position:relative}.vending-machine-header{color:#fff;margin-bottom:30px;text-align:center}.vending-machine-header h1{font-size:2.5rem;text-shadow:2px 2px 4px #0000004d}.vending-machine-content{display:flex;flex-direction:column;gap:30px;margin:0 auto;max-width:1400px;padding-bottom:80px}.products-grid{grid-template-columns:repeat(auto-fill,minmax(180px,1fr))}.product-card{background:#0000;border:2px solid #0000;border-radius:12px;cursor:pointer;padding:15px;text-align:center;transition:transform .2s}.product-card:hover{border-color:#fff;transform:translateY(-5px)}.product-image{cursor:pointer;margin-bottom:10px}.product-image img{border-radius:8px;height:150px;object-fit:cover;transition:transform .2s;width:100%}.product-image:hover img{transform:scale(1.05)}.product-info h3{font-size:1rem;margin-bottom:8px}.product-info h3,.product-price{color:#fff;text-shadow:1px 1px 2px #00000080}.product-price{font-size:1.2rem;font-weight:700;margin-bottom:10px}.add-to-cart-btn{background:#2193b0;border:none;border-radius:8px;color:#fff;cursor:pointer;font-size:.9rem;font-weight:700;padding:10px 20px;transition:background .2s;width:100%}.add-to-cart-btn:hover{background:#1a7a96}.bottom-cart-bar{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#fff3;bottom:0;color:#fff;gap:10px;justify-content:space-between;left:0;opacity:1;padding:10px 20px;position:fixed;right:0;transition:opacity .3s ease;z-index:1000}.bottom-cart-bar,.cart-items-container{align-items:center;display:flex;overflow-x:auto}.cart-items-container{flex:1 1;gap:15px}.cart-item-small{align-items:center;background:#0000;border-radius:8px;display:flex;gap:8px;padding:5px}.cart-item-icon-small{border-radius:4px;height:30px;object-fit:cover;width:30px}.cart-item-name-small{color:#fff;font-size:.9rem;text-shadow:1px 1px 2px #00000080}.cart-item-controls-small{align-items:center;display:flex;gap:5px}.quantity-btn-small{align-items:center;background:#2193b0;border:none;border-radius:50%;color:#fff;cursor:pointer;display:flex;font-size:.9rem;height:24px;justify-content:center;width:24px}.quantity-btn-small.minus-btn{background:#ff4757}.quantity-display-small{color:#fff;font-size:.9rem}.remove-btn-small{background:#0000;border:none;color:#ff4757;cursor:pointer;font-size:1rem}.bottom-total{font-size:1.2rem;text-shadow:1px 1px 2px #00000080;white-space:nowrap}.checkout-btn-small{background:#2ed573;border:none;border-radius:8px;color:#fff;cursor:pointer;font-size:1rem;padding:8px 15px;white-space:nowrap}.success-screen{background:#ffffffe6;border-radius:20px;box-shadow:0 10px 40px #0000004d;margin:100px auto;max-width:500px;padding:60px;text-align:center}.success-icon{align-items:center;animation:scaleIn .5s ease-out;background:#2ed573;border-radius:50%;color:#fff;display:flex;font-size:3rem;height:100px;justify-content:center;margin:0 auto 30px;width:100px}@keyframes scaleIn{0%{transform:scale(0)}to{transform:scale(1)}}.success-screen h2{color:#2ed573;font-size:2rem;margin-bottom:15px}.success-screen p{color:#666;font-size:1.1rem;margin-bottom:20px}.transaction-details{background:#f8f9fa;border-radius:10px;margin:20px 0;padding:20px}.transaction-details p{color:#333;margin:10px 0}.thank-you{color:#2193b0!important;font-size:1.2rem!important;font-weight:700}.loading{color:#fff;font-size:1.5rem;padding:100px;text-align:center}.cart-controls-inline{gap:10px;margin-top:10px}.cart-controls-inline,.quantity-btn{align-items:center;display:flex;justify-content:center}.quantity-btn{background:#2193b0;border:none;border-radius:50%;color:#fff;cursor:pointer;font-size:1.2rem;height:35px;width:35px}.quantity-btn.minus-btn{background:#ff4757}.quantity-display{color:#fff;font-size:1.2rem;min-width:30px;text-align:center}@media (max-width:768px){.products-grid{grid-template-columns:repeat(auto-fill,minmax(140px,1fr))}.vending-machine-header h1{font-size:2rem}.bottom-cart-bar{flex-wrap:wrap;justify-content:center}}.admin-panel{background:#f5f5f5;min-height:100vh}.admin-header{background:linear-gradient(135deg,#667eea,#764ba2);box-shadow:0 2px 10px #0000001a;color:#fff;padding:20px 40px}.admin-header h1{font-size:2rem;margin:0}.admin-tabs{background:#fff;border-bottom:2px solid #e0e0e0;display:flex;padding:0 40px}.admin-tabs button{background:none;border:none;border-bottom:3px solid #0000;color:#666;cursor:pointer;font-size:1rem;padding:15px 30px;transition:all .2s}.admin-tabs button:hover{background:#f5f5f5;color:#667eea}.admin-tabs button.active{border-bottom-color:#667eea;color:#667eea;font-weight:700}.admin-content{margin:0 auto;max-width:1600px;padding:30px 40px}.dashboard{background:#fff;border-radius:10px;box-shadow:0 2px 10px #0000001a;padding:30px}.stats-grid{grid-gap:20px;display:grid;gap:20px;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));margin-bottom:30px}.stat-card{background:linear-gradient(135deg,#667eea,#764ba2);border-radius:10px;box-shadow:0 4px 15px #0000001a;color:#fff;padding:25px}.stat-card h3{font-size:1rem;margin:0 0 15px;opacity:.9}.stat-value{font-size:2.5rem;font-weight:700;margin:0 0 15px}.stat-details{display:flex;font-size:.9rem;justify-content:space-between}.stat-details .online{color:#2ed573}.stat-details .offline{color:#ff4757}.stat-details .available{color:#2ed573}.stat-details .empty{color:#ffa502}.dashboard-grid{grid-gap:30px;display:grid;gap:30px;grid-template-columns:1fr 1fr;margin-bottom:30px}.top-sellers-section{display:flex;flex-direction:column;gap:30px}.top-machines,.top-products{background:#f8f9fa;border-radius:10px;padding:20px}.top-machines h2,.top-products h2{color:#333;font-size:1.5rem;margin:0 0 20px}.top-list{flex-direction:column}.top-item,.top-list{display:flex;gap:15px}.top-item{align-items:center;background:#fff;border-radius:8px;box-shadow:0 2px 5px #0000001a;padding:15px}.top-item-rank{align-items:center;background:#667eea;border-radius:50%;color:#fff;display:flex;flex-shrink:0;font-size:1.1rem;font-weight:700;height:35px;justify-content:center;width:35px}.top-item-image{flex-shrink:0;height:50px;width:50px}.top-item-image img{border-radius:8px;height:100%;object-fit:cover;width:100%}.top-item-info{flex:1 1}.top-item-name{color:#333;font-size:1rem;font-weight:700;margin:0 0 5px}.top-item-location{color:#666;font-size:.9rem;margin:0 0 5px}.top-item-stats{color:#666;font-size:.85rem;margin:0}.sales-graph-section{background:#f8f9fa;border-radius:10px;padding:20px}.sales-graph-section h2{color:#333;font-size:1.5rem;margin:0 0 20px}.sales-graph{background:#fff;border-radius:8px;min-height:300px;padding:20px}.graph-bars{align-items:flex-end;display:flex;gap:10px;height:250px;justify-content:space-around}.graph-bar-container{align-items:center;display:flex;flex:1 1;flex-direction:column;height:100%}.graph-bar-wrapper{align-items:flex-end;flex:1 1}.graph-bar,.graph-bar-wrapper{display:flex;justify-content:center;width:100%}.graph-bar{align-items:flex-start;background:linear-gradient(180deg,#667eea,#764ba2);border-radius:8px 8px 0 0;cursor:pointer;min-height:20px;padding-top:5px;position:relative;transition:all .3s}.graph-bar:hover{opacity:.8;transform:scaleY(1.05)}.graph-bar-value{color:#fff;font-size:.75rem;font-weight:700;text-shadow:1px 1px 2px #0000004d}.graph-bar-label{margin-top:10px;text-align:center}.graph-day{color:#333;font-size:.9rem;font-weight:700;margin:0 0 5px}.graph-count{color:#666;font-size:.8rem;margin:0}.no-data{color:#999;font-style:italic;padding:40px;text-align:center}.coin-test-section{background:#f8f9fa;border-radius:10px;margin-bottom:30px;padding:20px}.coin-test-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:10px}.coin-test-header h2{color:#333;font-size:1.5rem;margin:0}.coin-test-description{color:#666;font-size:.9rem;margin:0}.recent-transactions{margin-top:30px}.recent-transactions h2{color:#333;margin-bottom:20px}table{background:#fff;border-collapse:collapse;border-radius:8px;overflow:hidden;width:100%}table thead{background:#667eea;color:#fff}table td,table th{border-bottom:1px solid #e0e0e0;padding:12px;text-align:left}table tbody tr:hover{background:#f5f5f5}.machines-view{grid-gap:30px;display:grid;gap:30px;grid-template-columns:1fr 2fr}.machines-list{background:#fff;border-radius:10px;box-shadow:0 2px 10px #0000001a;max-height:80vh;overflow-y:auto;padding:20px}.machines-list h2{color:#333;margin-bottom:20px}.machine-card{background:#f8f9fa;border:2px solid #0000;border-radius:10px;cursor:pointer;margin-bottom:15px;padding:15px;transition:all .2s}.machine-card:hover{border-color:#667eea;box-shadow:0 2px 10px #0000001a}.machine-card.selected{background:#e8e9ff;border-color:#667eea}.machine-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:10px}.machine-header h3{color:#333;margin:0}.machine-status{display:flex;gap:10px}.status-badge{border-radius:5px;font-size:.8rem;font-weight:700;padding:5px 10px}.status-badge.online{background:#2ed573;color:#fff}.status-badge.offline{background:#ff4757;color:#fff}.machine-location{color:#666;margin:5px 0}.machine-controls{display:flex;gap:10px;margin-top:15px}.machine-details{background:#fff;border-radius:10px;box-shadow:0 2px 10px #0000001a;max-height:80vh;overflow-y:auto;padding:25px}.machine-info{border-bottom:2px solid #e0e0e0;margin-bottom:30px;padding-bottom:20px}.machine-info p{color:#333;margin:10px 0}.coil-summary{background:#f8f9fa;border-radius:8px;margin-top:15px;padding:15px}.coil-summary .empty-coils{color:#ff4757;font-weight:700}.coils-grid{grid-gap:15px;display:grid;gap:15px;grid-template-columns:repeat(auto-fill,minmax(200px,1fr))}.coil-card{background:#f8f9fa;border:2px solid #e0e0e0;border-radius:8px;padding:15px}.coil-card.empty{background:#ffe0e0;border-color:#ff4757}.coil-card.available{background:#e0ffe0;border-color:#2ed573}.coil-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:10px}.coil-header h4{color:#333;margin:0}.coil-status{border-radius:5px;font-size:.75rem;font-weight:700;padding:3px 8px}.coil-status.empty{background:#ff4757;color:#fff}.coil-status.available{background:#2ed573;color:#fff}.coil-card p{color:#666;font-size:.9rem;margin:5px 0}.empty-coil{color:#999;font-style:italic}.stock-input{border:1px solid #ddd;border-radius:5px;margin-top:10px;padding:8px;width:100%}.transactions-view{background:#fff;border-radius:10px;box-shadow:0 2px 10px #0000001a;padding:25px}.transactions-view h2{color:#333;margin-bottom:20px}.products-view{background:#fff;border-radius:10px;box-shadow:0 2px 10px #0000001a;padding:25px}.products-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:25px}.products-header h2{color:#333;margin:0}.products-grid{grid-gap:20px;display:grid;gap:20px;grid-template-columns:repeat(auto-fill,minmax(200px,1fr))}.product-admin-card{background:#f8f9fa;border:2px solid #0000;border-radius:10px;padding:15px;text-align:center;transition:all .2s}.product-admin-card:hover{border-color:#667eea;box-shadow:0 2px 10px #0000001a}.product-admin-card img{border-radius:8px;height:150px;margin-bottom:10px;object-fit:cover;width:100%}.product-admin-info h3{color:#333;margin:10px 0 5px}.product-admin-info p{color:#666;margin:5px 0}.product-admin-info .category{color:#999;font-size:.8rem;text-transform:uppercase}.product-actions{display:flex;gap:10px;margin-top:15px}.btn{border:none;border-radius:5px;cursor:pointer;font-size:.9rem;font-weight:700;padding:10px 20px;transition:all .2s}.btn-primary{background:#667eea;color:#fff}.btn-primary:hover{background:#5568d3}.btn-secondary{background:#95a5a6;color:#fff}.btn-secondary:hover{background:#7f8c8d}.btn-success{background:#2ed573;color:#fff}.btn-success:hover{background:#26c965}.btn-danger{background:#ff4757;color:#fff}.btn-danger:hover{background:#ee5a6f}.btn-sm{font-size:.8rem;padding:5px 10px}.btn-edit{background:#667eea;color:#fff}.btn-delete{background:#ff4757;color:#fff}.modal-overlay{align-items:center;background:#00000080;bottom:0;display:flex;justify-content:center;left:0;position:fixed;right:0;top:0;z-index:1000}.modal-content{background:#fff;border-radius:10px;max-height:90vh;max-width:500px;overflow-y:auto;padding:30px;width:90%}.modal-content h2{color:#333}.form-group,.modal-content h2{margin-bottom:20px}.form-group label{color:#333;display:block;font-weight:700;margin-bottom:5px}.form-group input,.form-group select,.form-group textarea{border:1px solid #ddd;border-radius:5px;font-size:1rem;padding:10px;width:100%}.form-group textarea{min-height:80px;resize:vertical}.form-group input[type=checkbox]{margin-right:10px;width:auto}.form-actions{display:flex;gap:10px;justify-content:flex-end;margin-top:25px}.admin-loading{color:#666;font-size:1.5rem;padding:100px;text-align:center}.settings-view{background:#fff;border-radius:10px;box-shadow:0 2px 10px #0000001a;padding:25px}.settings-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:25px}.settings-header h2{color:#333;margin:0}.no-machine-selected{color:#999;padding:60px;text-align:center}.alerts-section{background:#fff3cd;border-left:4px solid #ffc107;border-radius:5px;margin-bottom:25px;padding:15px}.alerts-section h3{color:#856404;margin:0 0 15px}.alerts-list{display:flex;flex-direction:column;gap:10px}.alert-item{align-items:center;background:#fff;border-radius:5px;display:flex;gap:10px;padding:10px}.alert-item.error{border-left:3px solid #ff4757}.alert-item.warning{border-left:3px solid #ffa502}.alert-icon{font-size:1.2rem}.alert-message{color:#333;flex:1 1}.health-status-section{background:#f8f9fa;border-radius:10px;margin-bottom:25px;padding:20px}.health-status-section h3{color:#333;margin:0 0 15px}.health-grid{grid-gap:15px;display:grid;gap:15px;grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}.health-item{display:flex;flex-direction:column;gap:5px}.health-item.warning{background:#fff3cd;border-radius:5px;padding:10px}.health-label{color:#666;font-size:.9rem}.health-value{font-size:1.1rem;font-weight:700}.health-value.connected,.health-value.online{color:#2ed573}.health-value.disconnected,.health-value.offline{color:#ff4757}.settings-section{border-bottom:1px solid #e0e0e0;margin-bottom:30px;padding-bottom:20px}.settings-section:last-child{border-bottom:none}.settings-section h3{color:#333;font-size:1.3rem;margin:0 0 15px}.section-header-with-action{align-items:center;display:flex;justify-content:space-between;margin-bottom:15px}.section-header-with-action h3{margin:0}.settings-grid{grid-gap:15px;display:grid;gap:15px;grid-template-columns:repeat(auto-fit,minmax(250px,1fr))}.setting-item{display:flex;flex-direction:column;gap:5px}.setting-item label{color:#666;font-size:.9rem;font-weight:700}.setting-item span{color:#333;font-size:1rem}.endpoint-url{color:#667eea;font-family:monospace;font-size:.85rem;word-break:break-all}.maintenance-logs{margin-top:20px}.maintenance-logs h4{color:#333;margin:0 0 15px}.maintenance-logs table{background:#fff;border-collapse:collapse;border-radius:5px;overflow:hidden;width:100%}.maintenance-logs table td,.maintenance-logs table th{border-bottom:1px solid #e0e0e0;padding:10px;text-align:left}.maintenance-logs table th{background:#f8f9fa;color:#333;font-weight:700}.large-modal{max-height:90vh;max-width:800px;overflow-y:auto}.form-section{border-bottom:1px solid #e0e0e0;margin-bottom:25px;padding-bottom:20px}.form-section:last-child{border-bottom:none}.form-section h3{color:#333;font-size:1.2rem;margin:0 0 15px}@media (max-width:1024px){.machines-view{grid-template-columns:1fr}.stats-grid{grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}.dashboard-grid{grid-template-columns:1fr}}.App{text-align:center}
/*# sourceMappingURL=main.66ae9321.css.map*/