:root{--color-primary: #6366f1;--color-primary-hover: #4f46e5;--color-primary-light: #a5b4fc;--color-success: #10b981;--color-success-light: #d1fae5;--color-warning: #f59e0b;--color-error: #ef4444;--color-error-light: #fecaca;--color-bg: #0f172a;--color-bg-secondary: #1e293b;--color-bg-tertiary: #334155;--color-text: #f8fafc;--color-text-secondary: #94a3b8;--color-text-muted: #64748b;--color-border: #334155;--shadow-sm: 0 1px 2px rgba(0, 0, 0, .3);--shadow-md: 0 4px 6px rgba(0, 0, 0, .4);--shadow-lg: 0 10px 15px rgba(0, 0, 0, .5);--space-xs: .25rem;--space-sm: .5rem;--space-md: 1rem;--space-lg: 1.5rem;--space-xl: 2rem;--radius-sm: .375rem;--radius-md: .5rem;--radius-lg: .75rem;--radius-full: 9999px;--transition-fast: .15s ease;--transition-normal: .25s ease}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{font-size:16px}body{font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;background:var(--color-bg);color:var(--color-text);line-height:1.5;min-height:100vh}button{font-family:inherit;cursor:pointer;border:none;outline:none}.app{display:flex;flex-direction:column;min-height:100vh}.app-header{background:linear-gradient(135deg,var(--color-bg-secondary),var(--color-bg-tertiary));border-bottom:1px solid var(--color-border);padding:var(--space-md) var(--space-xl);position:sticky;top:0;z-index:100}.app-header h1{font-size:1.5rem;font-weight:700;background:linear-gradient(135deg,var(--color-primary-light),var(--color-primary));-webkit-background-clip:text;background-clip:text;color:transparent;margin-bottom:var(--space-sm)}.status-bar{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:var(--space-md)}.status-indicator{display:flex;align-items:center;gap:var(--space-sm);font-size:.875rem;color:var(--color-text-secondary)}.status-dot{width:8px;height:8px;border-radius:var(--radius-full);background:var(--color-error);animation:pulse 2s infinite}.status-indicator.connected .status-dot{background:var(--color-success);animation:none}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}.printer-controls{display:flex;align-items:center;gap:var(--space-sm)}.printer-name{font-size:.875rem;color:var(--color-success);padding:var(--space-xs) var(--space-sm);background:#10b9811a;border-radius:var(--radius-sm)}.connect-printer-btn,.reconnect-btn,.disconnect-btn,.test-print-btn{padding:var(--space-xs) var(--space-md);border-radius:var(--radius-sm);font-size:.875rem;font-weight:500;transition:all var(--transition-fast)}.connect-printer-btn{background:var(--color-primary);color:#fff}.connect-printer-btn:hover:not(:disabled){background:var(--color-primary-hover);transform:translateY(-1px)}.connect-printer-btn:disabled{opacity:.6;cursor:not-allowed}.reconnect-btn{background:var(--color-warning);color:#fff}.disconnect-btn,.test-print-btn{background:var(--color-bg-tertiary);color:var(--color-text-secondary)}.disconnect-btn:hover,.test-print-btn:hover{background:var(--color-bg)}.error-banner{background:var(--color-error-light);color:var(--color-error);padding:var(--space-md) var(--space-xl);font-size:.875rem}.app-main{display:flex;flex:1;overflow:hidden}.sidebar{width:320px;background:var(--color-bg-secondary);border-right:1px solid var(--color-border);overflow-y:auto}.content{flex:1;overflow-y:auto;padding:var(--space-xl)}.receipt-list h2{padding:var(--space-md) var(--space-lg);font-size:.875rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--color-text-muted);border-bottom:1px solid var(--color-border)}.receipt-list ul{list-style:none}.receipt-list-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--space-xl);text-align:center;color:var(--color-text-muted);min-height:200px}.empty-icon{font-size:3rem;margin-bottom:var(--space-md);opacity:.5}.empty-hint{font-size:.75rem;margin-top:var(--space-sm)}.receipt-item{padding:var(--space-md) var(--space-lg);border-bottom:1px solid var(--color-border);cursor:pointer;transition:all var(--transition-fast)}.receipt-item:hover{background:var(--color-bg-tertiary)}.receipt-item.selected{background:linear-gradient(90deg,var(--color-primary),transparent);border-left:3px solid var(--color-primary)}.receipt-item.printed{opacity:.7}.receipt-item-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-xs)}.receipt-number{font-weight:600;font-size:.9375rem}.printed-badge{font-size:.75rem;color:var(--color-success);background:var(--color-success-light);padding:2px 8px;border-radius:var(--radius-full)}.receipt-item-details{display:flex;justify-content:space-between;font-size:.875rem}.receipt-total{font-weight:600;color:var(--color-primary-light)}.receipt-time{color:var(--color-text-muted)}.receipt-item-count{font-size:.75rem;color:var(--color-text-muted);margin-top:var(--space-xs)}.receipt-detail-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:400px;color:var(--color-text-muted);text-align:center}.receipt-detail{max-width:600px;margin:0 auto;background:var(--color-bg-secondary);border-radius:var(--radius-lg);padding:var(--space-xl);box-shadow:var(--shadow-lg)}.receipt-header{text-align:center;margin-bottom:var(--space-lg);padding-bottom:var(--space-lg);border-bottom:1px dashed var(--color-border)}.receipt-header h2{font-size:1.5rem;font-weight:700;margin-bottom:var(--space-xs)}.receipt-date{color:var(--color-text-muted);font-size:.875rem}.receipt-customer{background:var(--color-bg-tertiary);padding:var(--space-md);border-radius:var(--radius-md);margin-bottom:var(--space-lg)}.receipt-items h3{font-size:.875rem;text-transform:uppercase;color:var(--color-text-muted);margin-bottom:var(--space-md)}.receipt-items table{width:100%;border-collapse:collapse;margin-bottom:var(--space-lg)}.receipt-items th,.receipt-items td{padding:var(--space-sm);text-align:left;border-bottom:1px solid var(--color-border)}.receipt-items th{font-size:.75rem;text-transform:uppercase;color:var(--color-text-muted);font-weight:600}.receipt-items td:last-child,.receipt-items th:last-child{text-align:right}.item-note{display:block;font-size:.75rem;color:var(--color-text-muted);font-style:italic}.item-discount{display:block;font-size:.75rem;color:var(--color-success)}.receipt-total{display:flex;justify-content:space-between;align-items:center;padding:var(--space-lg);background:linear-gradient(135deg,var(--color-primary),var(--color-primary-hover));border-radius:var(--radius-md);margin-bottom:var(--space-lg)}.total-label{font-size:1.25rem;font-weight:600}.total-amount{font-size:1.5rem;font-weight:700}.receipt-payments h3{font-size:.875rem;text-transform:uppercase;color:var(--color-text-muted);margin-bottom:var(--space-md)}.payment-item{display:flex;justify-content:space-between;padding:var(--space-sm) 0;border-bottom:1px solid var(--color-border)}.receipt-note{margin-top:var(--space-lg);padding:var(--space-md);background:var(--color-bg-tertiary);border-radius:var(--radius-md);font-size:.875rem}.receipt-qr{display:flex;justify-content:center;margin:var(--space-xl) 0}.qr-code-container{text-align:center}.qr-code-container svg{border-radius:var(--radius-md);box-shadow:var(--shadow-md)}.qr-code-label{margin-top:var(--space-sm);font-size:.75rem;color:var(--color-text-muted)}.receipt-actions{display:flex;justify-content:center;margin-top:var(--space-xl)}.print-button{display:flex;align-items:center;gap:var(--space-sm);padding:var(--space-md) var(--space-xl);font-size:1rem;font-weight:600;background:linear-gradient(135deg,var(--color-primary),var(--color-primary-hover));color:#fff;border-radius:var(--radius-md);transition:all var(--transition-normal);box-shadow:var(--shadow-md)}.print-button:hover:not(:disabled){transform:translateY(-2px);box-shadow:var(--shadow-lg)}.print-button:disabled{opacity:.7;cursor:not-allowed}.print-button.printed{background:linear-gradient(135deg,var(--color-success),#059669)}.spinner{width:16px;height:16px;border:2px solid transparent;border-top-color:#fff;border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}@media (max-width: 768px){.app-main{flex-direction:column}.sidebar{width:100%;max-height:40vh;border-right:none;border-bottom:1px solid var(--color-border)}.content{padding:var(--space-md)}.status-bar{flex-direction:column;align-items:flex-start}.receipt-detail{padding:var(--space-md)}}
