*{box-sizing:border-box;margin:0;padding:0}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:linear-gradient(135deg,#667eea,#764ba2);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;min-height:100vh}.app-container{min-height:100vh;padding:20px}.app-header{align-items:center;background:#fff;border-radius:10px;box-shadow:0 4px 6px #0000001a;display:flex;justify-content:space-between;margin-bottom:20px;padding:20px}.app-header h1{color:#333;font-size:24px}.status-indicator{align-items:center;display:flex;font-weight:500;gap:8px}.status-dot{border-radius:50%;display:inline-block;height:10px;width:10px}.status-dot.connected{animation:pulse 2s infinite;background-color:#4caf50}.status-dot.disconnected{background-color:#f44336}.main-content{grid-gap:20px;display:grid;gap:20px;grid-template-columns:1fr 1fr 1fr;margin-bottom:20px}@media (max-width:1200px){.main-content{grid-template-columns:1fr 1fr}}@media (max-width:768px){.main-content{grid-template-columns:1fr}}.card{background:#fff;border-radius:10px;box-shadow:0 4px 6px #0000001a;margin-bottom:20px;padding:20px}.card-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:15px}.card h3{color:#333;font-size:18px}.card h3,.form-group{margin-bottom:15px}.form-group label{color:#555;display:block;font-weight:500;margin-bottom:5px}.form-control{border:1px solid #ddd;border-radius:5px;font-size:14px;padding:10px;width:100%}.form-control:focus{border-color:#667eea;box-shadow:0 0 0 2px #667eea33;outline:none}.button-group{display:flex;gap:10px;margin-top:20px}.btn{border:none;border-radius:5px;cursor:pointer;flex:1 1;font-size:14px;font-weight:500;padding:10px 20px;transition:all .3s}.btn:hover{box-shadow:0 4px 8px #0000001a;transform:translateY(-1px)}.btn:disabled{cursor:not-allowed;opacity:.6;transform:none}.btn-primary{background:#667eea;color:#fff}.btn-primary:hover{background:#5a67d8}.btn-secondary{background:#718096;color:#fff}.btn-secondary:hover{background:#4a5568}.btn-icon{background:none;border:none;color:#667eea;cursor:pointer;font-size:18px}.btn-icon:hover{color:#5a67d8}.selected-printer{background:#e6f7ff;border-left:4px solid #1890ff;border-radius:5px;margin-top:10px;padding:10px}.action-buttons{display:flex;flex-direction:column;gap:10px}.btn-action{font-size:16px;padding:12px}.btn-print{background:#667eea;color:#fff}.btn-test{background:#38a169;color:#fff}.btn-cash{background:#dd6b20;color:#fff}.auto-refresh{border-top:1px solid #eee;margin-top:15px;padding-top:15px}.auto-refresh label{align-items:center;cursor:pointer;display:flex;gap:8px}.text-panel .card{display:flex;flex-direction:column;height:calc(100% - 20px)}.text-editor{border:1px solid #ddd;border-radius:5px;flex:1 1;font-family:Courier New,monospace;font-size:12px;line-height:1.5;margin-bottom:10px;padding:15px;resize:none;width:100%}.text-editor:focus{border-color:#667eea;box-shadow:0 0 0 2px #667eea33;outline:none}.text-stats{color:#666;display:flex;font-size:12px;justify-content:space-between}.status-info{font-size:14px}.status-row{border-bottom:1px solid #eee;display:flex;justify-content:space-between;margin-bottom:10px;padding-bottom:10px}.status-badge{border-radius:12px;font-size:12px;font-weight:700;padding:2px 8px}.status-badge.healthy{background:#c6f6d5;color:#22543d}.status-badge.error{background:#fed7d7;color:#742a2a}.printer-count{background:#667eea;border-radius:12px;color:#fff;font-size:12px;padding:2px 8px}.printer-list{margin-top:15px}.printer-list h4{color:#555;font-size:14px;margin-bottom:8px}.printer-list ul{list-style:none;max-height:200px;overflow-y:auto}.printer-list li{align-items:center;border-radius:5px;display:flex;font-size:12px;justify-content:space-between;margin-bottom:5px;padding:8px}.printer-list li.online{background:#f0fff4;border-left:4px solid #38a169}.printer-list li.offline{background:#fff5f5;border-left:4px solid #e53e3e}.printer-name{flex:1 1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.default-badge{background:#38a169;border-radius:3px;color:#fff;font-size:10px;margin:0 5px;padding:2px 6px}.printer-status{color:#666;font-size:11px}.no-logs,.no-status{color:#666;font-style:italic;padding:20px;text-align:center}.log-container{font-size:12px;max-height:200px;overflow-y:auto}.log-list{list-style:none}.log-list li{align-items:flex-start;border-radius:5px;display:flex;gap:8px;margin-bottom:5px;padding:8px}.log-time{color:#666;min-width:70px}.log-message{flex:1 1}.log-success{background:#f0fff4;border-left:4px solid #38a169}.log-error{background:#fff5f5;border-left:4px solid #e53e3e}.log-warning{background:#fffaf0;border-left:4px solid #dd6b20}.log-info{background:#ebf8ff;border-left:4px solid #3182ce}.response-preview{background:#f5f5f5;border-radius:5px;font-family:Courier New,monospace;font-size:11px;line-height:1.4;max-height:200px;overflow-y:auto;padding:15px;white-space:pre-wrap;word-break:break-all}.app-footer{color:#fff;font-size:12px;opacity:.8;padding:20px;text-align:center}.header-controls{align-items:center;display:flex;justify-content:space-between;margin-top:10px;width:100%}.mode-selector{display:flex;gap:8px}.mode-btn{align-items:center;background:#fff;border:1px solid #ccc;border-radius:6px;cursor:pointer;display:flex;font-size:14px;gap:6px;padding:8px 16px}.mode-btn.active{background:#667eea;border-color:#667eea;color:#fff}.mode-btn:disabled{cursor:not-allowed;opacity:.5}.mode-indicator{border-radius:50%;display:inline-block;height:10px;width:10px}.mode-indicator.agent{background:#4caf50}.mode-indicator.demo{background:#ff9800}.agent-instructions-modal{align-items:center;background:#000c;bottom:0;display:flex;justify-content:center;left:0;padding:20px;position:fixed;right:0;top:0;z-index:1000}.instructions-card{background:#fff;border-radius:12px;box-shadow:0 20px 60px #0000004d;max-width:700px;padding:30px;position:relative;width:100%}.instructions-steps{margin:25px 0}.step{border-bottom:1px solid #eee;display:flex;gap:20px;margin-bottom:20px;padding-bottom:20px}.step:last-child{border-bottom:none;margin-bottom:0;padding-bottom:0}.step-number{align-items:center;background:#667eea;border-radius:50%;color:#fff;display:flex;flex-shrink:0;font-weight:700;height:32px;justify-content:center;width:32px}.step-content h4{color:#333;margin:0 0 8px}.step-content p{color:#666;line-height:1.5;margin:5px 0}.instructions-actions{display:flex;gap:10px;justify-content:flex-end;margin-top:30px}.close-instructions{align-items:center;background:none;border:none;border-radius:50%;color:#999;cursor:pointer;display:flex;font-size:24px;height:30px;justify-content:center;position:absolute;right:15px;top:15px;width:30px}.close-instructions:hover{background:#f5f5f5;color:#333}.mode-display{background:#f8f9fa;border:1px solid #eee;border-radius:6px;padding:10px}.mode-badge{border-radius:20px;font-size:12px;font-weight:700;padding:4px 12px;text-transform:uppercase}.mode-badge.demo{background:#fff3cd;border:1px solid #ffeaa7;color:#856404}.mode-badge.agent{background:#d1ecf1;border:1px solid #bee5eb;color:#0c5460}.demo-note{color:#666;display:block;font-size:12px;margin-top:5px}.demo-printer-info{background:#f8f9fa;border:1px solid #eee;border-radius:6px;padding:15px}.demo-notice{background:#fff3cd;border-color:#ffeaa7}.demo-notice h3{color:#856404}.demo-badge{background:#ff9800;border-radius:10px;color:#fff;font-size:11px;margin-left:10px;padding:2px 8px}.btn-link{background:none;border:none;color:#667eea;cursor:pointer;font-size:inherit;padding:0;text-decoration:underline}.btn-link:hover{color:#764ba2}.queue-controls{margin-bottom:15px}.queue-status{align-items:center;background:#f8f9fa;border:1px solid #e9ecef;border-radius:6px;display:flex;justify-content:space-between;padding:10px}.queue-count{color:#333;font-weight:700}.print-status{font-size:14px}.print-status.printing{animation:pulse 1.5s infinite;color:#ff9800}.print-status.idle{color:#4caf50}.delay-slider{margin:10px 0;width:100%}.delay-display{align-items:center;display:flex;justify-content:space-between;margin-top:5px}.delay-help{background:#f0f0f0;border-radius:10px;color:#666;font-size:12px;padding:2px 8px}.btn-clear{background:#dc3545!important;color:#fff!important}.btn-clear:hover{background:#c82333!important}.btn-clear:disabled{background:#e9ecef!important;color:#6c757d!important;cursor:not-allowed}@keyframes pulse{0%{opacity:1}50%{opacity:.5}to{opacity:1}}.app-footer p{margin:5px 0}.environment-badge{background:#667eea;border-radius:20px;color:#fff;font-size:12px;font-weight:700;padding:4px 12px;position:absolute;right:20px;text-transform:uppercase;top:20px}.environment-info{margin-bottom:15px}.env-badge{background:#f0f0f0;border-radius:4px;color:#666;display:inline-block;font-size:12px;font-weight:700;margin-bottom:8px;padding:4px 10px}.env-note{background:#fff3cd;border:1px solid #ffeaa7;border-radius:6px;color:#856404;font-size:13px;margin:10px 0;padding:10px}.mode-note{font-size:10px;margin-left:5px;opacity:.7}.hosted-notice{background:#e7f1ff;border:1px solid #cfe2ff;border-radius:6px;margin-top:15px;padding:12px}.hosted-notice p{color:#084298;font-size:14px;margin:0 0 8px}.btn-install{background:linear-gradient(135deg,#28a745,#20c997)!important;border:none!important;color:#fff!important}.btn-install:hover{background:linear-gradient(135deg,#218838,#1ba87e)!important}.instructions-intro{color:#666;line-height:1.5;margin-bottom:20px}.instructions-tabs{border-bottom:1px solid #dee2e6;display:flex;margin-bottom:20px}.tab{border-bottom:3px solid #0000;color:#666;cursor:pointer;padding:10px 20px}.tab.active{border-bottom-color:#667eea;color:#667eea;font-weight:700}.btn-download{align-items:center;display:flex;font-size:16px;gap:8px;margin:10px 0;padding:12px 24px}.download-icon{font-size:20px}.os-links{display:flex;gap:15px;margin-top:10px}.os-links a{border:1px solid #dee2e6;border-radius:4px;color:#667eea;font-size:14px;padding:4px 8px;text-decoration:none;transition:all .2s}.os-links a:hover{background:#f8f9fa;border-color:#667eea}.agent-info{background:#f8f9fa;border:1px solid #e9ecef;border-radius:6px;margin-top:10px;padding:12px}.info-item{display:flex;font-family:Courier New,monospace;font-size:14px;justify-content:space-between;margin-bottom:8px}.info-label{color:#495057;font-weight:500}.custom-connection{border-top:1px solid #dee2e6;margin-top:20px;padding-top:20px}.custom-connection h5{color:#495057;margin-bottom:10px}.demo-printer-list{margin:15px 0}.printer-item{align-items:center;background:#f8f9fa;border:1px solid #e9ecef;border-radius:6px;display:flex;justify-content:space-between;margin-bottom:8px;padding:10px}.printer-item.demo{border-left:4px solid #ffc107}.printer-status.ready{color:#28a745;font-weight:700}.no-printers{background:#fff3cd;border:1px solid #ffeaa7;border-radius:6px;color:#856404;font-size:14px;margin-top:10px;padding:12px}.environment-status{background:#f8f9fa;border-radius:8px;margin-bottom:15px;padding:12px}.status-item{display:flex;justify-content:space-between;margin-bottom:8px}.status-label{color:#495057;font-weight:500}.status-value{font-weight:700}.status-value.local{color:#28a745}.status-value.hosted{color:#007bff}.status-value.detected{color:#28a745}.status-value.not-detected{color:#dc3545}.status-value.demo{color:#ffc107}.demo-features{margin:15px 0}.feature{align-items:center;display:flex;font-size:14px;gap:10px;margin-bottom:8px}.feature-icon{font-size:16px}.text-actions{display:flex;gap:10px;margin-top:10px}.btn-sm{font-size:13px!important;padding:6px 12px!important}.log-actions{margin-top:10px;text-align:right}.footer-content{text-align:center}.env-indicator{border-radius:12px;font-size:12px;margin-left:8px;padding:2px 8px}.env-indicator.local{background:#d1ecf1;color:#0c5460}.env-indicator.hosted{background:#cce5ff;color:#004085}@media (max-width:768px){.environment-badge{display:inline-block;margin-bottom:10px;position:relative;right:0;top:0}.header-controls{flex-direction:column;gap:10px}.os-links{gap:8px}.info-item,.os-links{flex-direction:column}.info-item{gap:4px}}@media (max-width:1200px){.main-content{flex-direction:column}.control-panel,.status-panel,.text-panel{margin-bottom:20px;width:100%}.header-controls{align-items:flex-start;flex-direction:column;gap:10px}.mode-selector{justify-content:center;width:100%}}@media (max-width:768px){.instructions-card{padding:20px}.step{flex-direction:column;gap:10px}.step-number{align-self:flex-start}.instructions-actions{flex-direction:column}.mode-btn{flex:1 1;justify-content:center}}
/*# sourceMappingURL=main.bba01077.css.map*/