.login-container{display:flex;justify-content:center;align-items:center;min-height:100vh;background:linear-gradient(135deg,#667eea,#764ba2)}.login-card{background:#fff;padding:2rem 3rem;border-radius:12px;box-shadow:0 10px 40px #0003;width:100%;max-width:400px}.login-title{text-align:center;margin-bottom:2rem;color:#333;font-size:2rem;font-weight:700}.login-form{display:flex;flex-direction:column;gap:1.5rem}.form-group{display:flex;flex-direction:column;gap:.5rem}.form-group label{font-weight:600;color:#555;font-size:.9rem}.form-group input,.form-group select{padding:.75rem;border:2px solid #e0e0e0;border-radius:8px;font-size:1rem;transition:border-color .3s}.form-group input:focus,.form-group select:focus{outline:none;border-color:#667eea}.login-button{padding:.75rem;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border:none;border-radius:8px;font-size:1rem;font-weight:600;cursor:pointer;transition:transform .2s,box-shadow .2s}.login-button:hover{transform:translateY(-2px);box-shadow:0 5px 15px #667eea66}.error-message{color:#e74c3c;font-size:.9rem;text-align:center;padding:.5rem;background:#ffeaea;border-radius:6px}.login-button:disabled{opacity:.6;cursor:not-allowed;transform:none}.spinner-container{display:flex;align-items:center;justify-content:center;gap:.5rem}.spinner{width:16px;height:16px;border:2px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.terminal-container{width:100vw;height:100vh;display:flex;justify-content:center;align-items:center;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;overflow:hidden}.terminal-start{display:flex;flex-direction:column;align-items:center;gap:2rem;padding:2rem}.terminal-title{font-size:3rem;font-weight:700;margin:0;text-align:center}.terminal-subtitle{font-size:1.5rem;opacity:.9;margin:0}.qr-container{background:#fff;padding:2rem;border-radius:16px;box-shadow:0 10px 40px #0000004d;display:flex;justify-content:center;align-items:center}.terminal-hint{text-align:center;margin-top:1rem}.demo-button{margin-top:1rem;padding:.75rem 1.5rem;background:#fff3;color:#fff;border:2px solid white;border-radius:8px;font-size:1rem;cursor:pointer;transition:background .3s}.demo-button:hover{background:#ffffff4d}.terminal-preview{width:90%;max-width:1200px;display:flex;flex-direction:column;align-items:center;gap:2rem;padding:2rem}.terminal-section-title{font-size:2.5rem;margin:0}.preview-image-container{width:100%;max-width:800px;background:#fff;border-radius:16px;padding:2rem;box-shadow:0 10px 40px #0000004d;display:flex;flex-direction:column;align-items:center;gap:1rem}.preview-filename{color:#333;font-size:1.2rem;font-weight:600;margin:0}.preview-info{display:flex;gap:3rem;font-size:1.2rem;margin-top:1rem}.preview-info-label{color:#fffc;font-size:.9rem}.preview-info-value{color:#fff;font-weight:700;font-size:1.5rem}.terminal-actions{display:flex;gap:1rem}.terminal-button{padding:1rem 2rem;font-size:1.2rem;font-weight:600;border:none;border-radius:12px;cursor:pointer;transition:transform .2s,box-shadow .2s}.terminal-button.primary{background:#fff;color:#667eea}.terminal-button.primary:hover{transform:translateY(-2px);box-shadow:0 5px 20px #ffffff4d}.terminal-button.secondary{background:#fff3;color:#fff;border:2px solid white}.terminal-button.secondary:hover{background:#ffffff4d}.terminal-button.danger{background:#e74c3c;color:#fff}.terminal-button.danger:hover{background:#c0392b;transform:translateY(-2px)}.terminal-payment{display:flex;flex-direction:column;align-items:center;gap:2rem;padding:2rem}.payment-instruction{font-size:1.5rem;margin:0}.payment-hint{text-align:center;margin-top:1rem}.payment-processing{text-align:center;font-size:2rem}.terminal-status{display:flex;flex-direction:column;align-items:center;gap:3rem;padding:2rem}.status-display{display:flex;flex-direction:column;gap:2rem;width:100%;max-width:600px}.status-item{display:flex;align-items:center;gap:2rem;padding:2rem;background:#ffffff1a;border-radius:12px;transition:all .3s}.status-item.active{background:#ffffff4d;transform:scale(1.05)}.status-item.completed{opacity:.6}.status-indicator{width:20px;height:20px;border-radius:50%;background:#ffffff4d;transition:all .3s}.status-item.active .status-indicator{background:#fff;box-shadow:0 0 20px #fffc;animation:pulse 1s infinite}.status-item.completed .status-indicator{background:#2ecc71}@keyframes pulse{0%,to{transform:scale(1)}50%{transform:scale(1.2)}}.status-item p{font-size:1.5rem;margin:0;font-weight:600}.terminal-cancelled{display:flex;flex-direction:column;align-items:center;gap:2rem;padding:3rem;text-align:center}.terminal-cancelled-title{font-size:2.5rem;font-weight:700;margin:0;color:#e74c3c}.terminal-cancelled-message{font-size:1.5rem;margin:0;opacity:.9}.terminal-cancelled-timer{font-size:1.2rem;opacity:.7;margin-top:1rem}.reset-button{margin-top:2rem}.terminal-error{color:#fee;background:#c333;padding:1rem 2rem;border-radius:12px;font-size:1.2rem;text-align:center}.printer-layout{min-height:100vh;display:flex;flex-direction:column}.printer-nav{background:#fff;box-shadow:0 2px 8px #0000001a;padding:1rem 2rem;display:flex;justify-content:space-between;align-items:center}.printer-nav-brand h2{margin:0;color:#667eea;font-size:1.5rem}.printer-nav-user{display:flex;align-items:center;gap:1rem}.printer-nav-user span{color:#555;font-weight:600}.printer-nav-user button{padding:.5rem 1rem;background:#e74c3c;color:#fff;border:none;border-radius:6px;cursor:pointer;font-weight:600;transition:background .3s}.printer-nav-user button:hover{background:#c0392b}.printer-main{flex:1}.printer-container{background:#f5f5f5;padding:2rem;min-height:calc(100vh - 64px)}.printer-content{max-width:1400px;margin:0 auto}.printer-title{font-size:2.5rem;margin-bottom:2rem;color:#333}.printer-section{background:#fff;border-radius:12px;padding:2rem;margin-bottom:2rem;box-shadow:0 2px 8px #0000001a}.section-title{font-size:1.5rem;margin-bottom:1.5rem;color:#555}.current-order-card{display:grid;grid-template-columns:300px 1fr;gap:2rem;padding:1.5rem;background:#f9f9f9;border-radius:8px}.order-preview img{width:100%;height:auto;border-radius:8px;box-shadow:0 2px 8px #0000001a}.order-details{display:flex;flex-direction:column;gap:1rem}.order-details p{margin:0;font-size:1.1rem}.printer-button{padding:.75rem 1.5rem;border:none;border-radius:8px;font-size:1rem;font-weight:600;cursor:pointer;transition:all .3s}.printer-button.primary{background:#667eea;color:#fff}.printer-button.primary:hover{background:#5568d3;transform:translateY(-2px);box-shadow:0 4px 12px #667eea66}.printer-button.success{background:#2ecc71;color:#fff}.printer-button.success:hover{background:#27ae60;transform:translateY(-2px);box-shadow:0 4px 12px #2ecc7166}.printer-button.small{padding:.5rem 1rem;font-size:.9rem}.queue-list{display:flex;flex-direction:column;gap:1rem}.queue-item{display:grid;grid-template-columns:100px 1fr auto;gap:1.5rem;align-items:center;padding:1rem;background:#f9f9f9;border-radius:8px;transition:background .3s}.queue-item:hover{background:#f0f0f0}.queue-preview img{width:100%;height:auto;border-radius:4px}.queue-details{display:flex;flex-direction:column;gap:.5rem}.queue-details p{margin:0}.empty-state{text-align:center;padding:3rem;color:#999;font-size:1.2rem}.loading{text-align:center;padding:3rem;font-size:1.5rem;color:#667eea}.admin-layout{min-height:100vh;display:flex;flex-direction:column}.admin-nav{background:#fff;box-shadow:0 2px 8px #0000001a;padding:1rem 2rem;display:flex;justify-content:space-between;align-items:center;position:sticky;top:0;z-index:100}.admin-nav-brand h2{margin:0;color:#667eea;font-size:1.5rem}.admin-nav-links{display:flex;gap:2rem}.admin-nav-links a{text-decoration:none;color:#555;font-weight:600;padding:.5rem 1rem;border-radius:6px;transition:all .3s}.admin-nav-links a:hover{background:#f5f5f5}.admin-nav-links a.active{color:#667eea;background:#f0f0ff}.admin-nav-user{display:flex;align-items:center;gap:1rem}.admin-nav-user span{color:#555;font-weight:600}.admin-nav-user button{padding:.5rem 1rem;background:#e74c3c;color:#fff;border:none;border-radius:6px;cursor:pointer;font-weight:600;transition:background .3s}.admin-nav-user button:hover{background:#c0392b}.admin-main{flex:1}.admin-container{min-height:100vh;background:#f5f5f5;padding:2rem}.admin-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:2rem}.admin-title{font-size:2.5rem;color:#333;margin:0}.admin-button{padding:.75rem 1.5rem;border:none;border-radius:8px;font-size:1rem;font-weight:600;cursor:pointer;transition:all .3s;background:#e0e0e0;color:#333}.admin-button.primary{background:#667eea;color:#fff}.admin-button.primary:hover{background:#5568d3;transform:translateY(-2px);box-shadow:0 4px 12px #667eea66}.admin-button.danger{background:#e74c3c;color:#fff}.admin-button.danger:hover{background:#c0392b}.admin-button.small{padding:.5rem 1rem;font-size:.9rem;margin-right:.5rem}.admin-filters{display:flex;gap:1rem;margin-bottom:2rem;background:#fff;padding:1.5rem;border-radius:8px;box-shadow:0 2px 8px #0000001a}.admin-filter-group{display:flex;flex-direction:column;gap:.5rem;flex:1}.admin-filter-group label{font-weight:600;color:#555;font-size:.9rem}.admin-filter-group select{padding:.5rem;border:2px solid #e0e0e0;border-radius:6px;font-size:1rem}.admin-table-container{background:#fff;border-radius:12px;padding:2rem;box-shadow:0 2px 8px #0000001a;overflow-x:auto}.admin-table{width:100%;border-collapse:collapse}.admin-table thead{background:#f9f9f9}.admin-table th{padding:1rem;text-align:left;font-weight:600;color:#555;border-bottom:2px solid #e0e0e0}.admin-table td{padding:1rem;border-bottom:1px solid #e0e0e0}.admin-table tbody tr:hover{background:#f9f9f9}.admin-actions{display:flex;gap:.5rem}.admin-loading{text-align:center;padding:3rem;font-size:1.5rem;color:#667eea}.admin-modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#00000080;display:flex;justify-content:center;align-items:center;z-index:1000}.admin-modal{background:#fff;border-radius:12px;padding:2rem;max-width:500px;width:90%;max-height:90vh;overflow-y:auto}.admin-modal h2{margin-top:0;margin-bottom:1.5rem;color:#333}.admin-form-group{display:flex;flex-direction:column;gap:.5rem;margin-bottom:1.5rem}.admin-form-group label{font-weight:600;color:#555;font-size:.9rem}.admin-form-group input,.admin-form-group select{padding:.75rem;border:2px solid #e0e0e0;border-radius:6px;font-size:1rem}.admin-form-group input:focus,.admin-form-group select:focus{outline:none;border-color:#667eea}.admin-modal-actions{display:flex;gap:1rem;justify-content:flex-end;margin-top:2rem}.service-container{min-height:100vh;display:flex;justify-content:center;align-items:center;background:linear-gradient(135deg,#667eea,#764ba2)}.service-content{text-align:center;color:#fff}.service-title{font-size:3rem;margin-bottom:1rem}.service-message{font-size:1.5rem;opacity:.9}.unauthorized-container{min-height:100vh;display:flex;justify-content:center;align-items:center;background:#f5f5f5}.unauthorized-content{text-align:center;background:#fff;padding:3rem;border-radius:12px;box-shadow:0 2px 8px #0000001a}.unauthorized-content h1{font-size:4rem;color:#e74c3c;margin-bottom:1rem}.unauthorized-content p{font-size:1.2rem;color:#555;margin-bottom:1rem}.unauthorized-content button{padding:.75rem 1.5rem;background:#667eea;color:#fff;border:none;border-radius:8px;font-size:1rem;cursor:pointer;margin-top:1rem}.upload-page{width:100vw;min-height:100vh;display:flex;justify-content:center;align-items:center;background:linear-gradient(135deg,#667eea,#764ba2);padding:2rem}.upload-container{width:100%;max-width:600px;background:#fff;border-radius:16px;padding:3rem;box-shadow:0 10px 40px #0000004d}.upload-title{font-size:2rem;font-weight:700;color:#333;margin:0 0 .5rem;text-align:center}.upload-subtitle{font-size:1rem;color:#666;margin:0 0 2rem;text-align:center}.upload-error{background:#fee;color:#c33;padding:1rem;border-radius:8px;margin-bottom:1rem;text-align:center}.upload-area{margin-bottom:2rem}.upload-input{display:none}.upload-label{display:block;cursor:pointer;border:3px dashed #667eea;border-radius:12px;padding:2rem;text-align:center;transition:all .3s}.upload-label:hover{border-color:#764ba2;background:#f8f9ff}.upload-placeholder{display:flex;flex-direction:column;align-items:center;gap:1rem;color:#667eea}.upload-placeholder svg{width:64px;height:64px}.upload-placeholder p{margin:0;font-size:1.1rem;font-weight:600}.upload-hint{font-size:.9rem;color:#999;font-weight:400}.upload-preview-container{display:flex;flex-direction:column;align-items:center;gap:1rem}.upload-preview-image{max-width:100%;max-height:400px;border-radius:8px;object-fit:contain}.upload-filename{color:#333;font-size:1rem;font-weight:600;margin:0}.upload-actions{display:flex;justify-content:center}.upload-button{padding:1rem 3rem;font-size:1.2rem;font-weight:600;background:#667eea;color:#fff;border:none;border-radius:12px;cursor:pointer;transition:all .3s}.upload-button:hover:not(:disabled){background:#764ba2;transform:translateY(-2px);box-shadow:0 5px 20px #667eea66}.upload-button:disabled{opacity:.6;cursor:not-allowed}.preview-page{width:100vw;min-height:100vh;display:flex;justify-content:center;align-items:center;background:linear-gradient(135deg,#667eea,#764ba2);padding:2rem}.preview-container{width:100%;max-width:900px;background:#fff;border-radius:16px;padding:3rem;box-shadow:0 10px 40px #0000004d;display:flex;flex-direction:column;align-items:center;gap:2rem}.preview-title{font-size:2.5rem;font-weight:700;color:#333;margin:0}.preview-image-container{width:100%;max-width:800px;background:#f8f9fa;border-radius:12px;padding:2rem;display:flex;justify-content:center;align-items:center}.preview-image{max-width:100%;max-height:500px;border-radius:8px;object-fit:contain}.preview-info{display:flex;gap:3rem;font-size:1.2rem}.preview-info-item{display:flex;flex-direction:column;align-items:center;gap:.5rem}.preview-info-label{color:#666;font-size:.9rem}.preview-info-value{color:#333;font-weight:700;font-size:1.5rem}.preview-actions{display:flex;gap:1rem;width:100%;max-width:600px}.preview-button{flex:1;padding:1rem 2rem;font-size:1.2rem;font-weight:600;border:none;border-radius:12px;cursor:pointer;transition:all .3s}.preview-button.primary{background:#667eea;color:#fff}.preview-button.primary:hover{background:#764ba2;transform:translateY(-2px);box-shadow:0 5px 20px #667eea66}.preview-button.secondary{background:#f0f0f0;color:#333;border:2px solid #ddd}.preview-button.secondary:hover{background:#e0e0e0}.preview-error{color:#c33;font-size:1.2rem;text-align:center}.public-payment-page{width:100vw;min-height:100vh;display:flex;justify-content:center;align-items:center;background:linear-gradient(135deg,#667eea,#764ba2);padding:2rem}.public-payment-container{width:100%;max-width:500px;background:#fff;border-radius:16px;padding:3rem;box-shadow:0 10px 40px #0000004d;display:flex;flex-direction:column;align-items:center;gap:2rem}.public-payment-title{font-size:2rem;font-weight:700;color:#333;margin:0;text-align:center}.public-payment-preview{width:100%;max-width:300px;background:#f8f9fa;border-radius:12px;padding:1rem;display:flex;justify-content:center;align-items:center}.public-payment-preview-image{max-width:100%;max-height:200px;border-radius:8px;object-fit:contain}.public-payment-price{display:flex;flex-direction:column;align-items:center;gap:.5rem}.public-payment-price-label{color:#666;font-size:1rem}.public-payment-price-value{color:#333;font-weight:700;font-size:2.5rem}.public-payment-actions{width:100%;display:flex;flex-direction:column;gap:1rem}.public-payment-button{width:100%;padding:1.5rem 2rem;font-size:1.3rem;font-weight:600;background:#667eea;color:#fff;border:none;border-radius:12px;cursor:pointer;transition:all .3s}.public-payment-button:hover{background:#764ba2;transform:translateY(-2px);box-shadow:0 5px 20px #667eea66}.public-payment-button.cancel{background:#e74c3c;color:#fff}.public-payment-button.cancel:hover{background:#c0392b;box-shadow:0 5px 20px #e74c3c66}.public-payment-loading,.public-payment-error,.public-payment-cancelled,.public-payment-success{text-align:center;padding:2rem}.public-payment-loading{color:#666;font-size:1.2rem}.public-payment-error{color:#c33;font-size:1.2rem}.public-payment-cancelled{color:#666}.public-payment-cancelled h2{color:#c33;font-size:1.8rem;margin:0 0 1rem}.public-payment-cancelled p{margin:0;font-size:1.1rem}.public-payment-success{color:#2ecc71}.public-payment-success h2{font-size:2rem;margin:0 0 1rem;color:#2ecc71}.public-payment-success p{margin:0;font-size:1.2rem;color:#666}*{box-sizing:border-box;margin:0;padding:0}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}button,input,select,textarea{font-family:inherit}:root{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}
