.scan-layout{flex:1;min-height:0;display:flex;overflow:hidden}.scan-main{flex:1.5;min-width:0;padding:1rem;overflow:auto}.scan-sidebar{background-color:var(--slate-50);border-left:1px solid var(--slate-200);width:350px;padding:1rem;overflow:auto}.qr-scanner-container{width:100%;min-height:300px}@media (width<=768px){.scan-layout{flex-direction:column}.scan-main{flex:none;padding:.5rem;overflow:visible}.scan-sidebar{border-left:none;border-top:1px solid var(--slate-200);flex:none;width:auto;max-height:40vh;padding:.5rem}.qr-scanner-container{min-height:200px}.qr-scanner-container video{max-height:250px!important}}@media (width<=480px){.qr-scanner-container{min-height:180px}.qr-scanner-container video{max-height:200px!important}.scan-main,.scan-sidebar{padding:.25rem}}.location-card{background-color:var(--bg-primary);border:1px solid var(--slate-200);cursor:pointer;border-radius:12px;padding:1.25rem;transition:transform .1s,box-shadow .1s}.location-card:hover{transform:translateY(-2px);box-shadow:0 4px 12px #0000001a}:root{--color-primary:#3498db;--color-primary-dark:#2980b9;--color-success:#2ecc71;--color-warning:#f39c12;--color-danger:#e74c3c;--color-danger-dark:#c0392b;--color-gray-100:#f8f9fa;--color-gray-200:#ecf0f1;--color-gray-300:#bdc3c7;--color-gray-400:#94a3b8;--color-gray-500:#7f8c8d;--color-gray-700:#34495e;--color-gray-900:#2c3e50;--slate-50:#f8fafc;--slate-100:#f1f5f9;--slate-200:#e2e8f0;--slate-300:#cbd5e1;--slate-500:#64748b;--slate-600:#475569;--slate-800:#1e293b;--slate-900:#0f172a;--emerald-500:#10b981;--emerald-600:#16a34a;--amber-500:#f59e0b;--red-500:#ef4444;--red-600:#dc2626;--blue-600:#2563eb;--red-100:#fee2e2;--red-700:#b91c1c;--green-100:#dcfce7;--green-800:#166534;--yellow-100:#fef3c7;--yellow-800:#92400e;--blue-100:#e0e7ff;--blue-800:#3730a3;--blue-900:#1e3a8a;--bg-primary:#fff;--bg-secondary:#f5f5f5;--bg-sidebar:var(--color-gray-900);--font-family:-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--font-size-xs:.625rem;--font-size-sm:.875rem;--font-size-base:1rem;--font-size-lg:1.25rem;--font-size-xl:1.5rem;--font-size-2xl:2rem;--font-size-3xl:2.5rem;--font-size-4xl:3.5rem;--font-size-5xl:5rem;--spacing-xs:.25rem;--spacing-sm:.5rem;--spacing-md:1rem;--spacing-lg:1.5rem;--spacing-xl:2rem;--border-radius-sm:4px;--border-radius-md:6px;--border-radius-lg:8px;--border-radius-xl:12px;--border-radius-2xl:16px;--shadow-sm:0 1px 3px #0000001a;--shadow-md:0 2px 8px #00000026;--shadow-lg:0 4px 16px #0003;--transition-fast:.15s ease;--transition-normal:.25s ease;--z-dropdown:100;--z-modal:1000;--z-toast:1100;--z-overlay:9999}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html,body,#root{width:100%;height:100%;margin:0}body{font-family:var(--font-family);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-color:var(--bg-secondary);color:var(--color-gray-900);font-size:var(--font-size-base);line-height:1.5;overflow:hidden}h1,h2,h3,h4,h5,h6{margin-bottom:var(--spacing-4);line-height:1.2}a{color:var(--color-primary);text-decoration:none}button{cursor:pointer;font:inherit;background:0 0;border:none}.app-container{width:100vw;height:100vh;position:relative;overflow:hidden}.connection-overlay{z-index:9999;color:#fff;background:#000000b3;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.toast-container{z-index:9998;flex-direction:column;gap:.5rem;display:flex;position:fixed;top:1rem;right:1rem}.toast{border-radius:4px;align-items:center;gap:1rem;padding:.75rem 1rem;display:flex;box-shadow:0 2px 8px #0003}.toast-info{color:#fff;background:#3498db}.toast-warning{color:#fff;background:#f39c12}.toast-error{color:#fff;background:#e74c3c}.toast button{color:#fff;opacity:.7;background:0 0;font-size:1.25rem}.toast button:hover{opacity:1}.device-selector{flex-direction:column;justify-content:center;align-items:center;gap:2rem;height:100vh;display:flex}.device-options{gap:2rem;display:flex}.device-options button{cursor:pointer;border-radius:var(--radius-md);box-shadow:var(--shadow-sm);padding:2rem 3rem;font-size:1.5rem;transition:all .2s}.device-options button.primary{background:var(--color-primary);color:#fff}.device-options button.primary:hover{background:var(--color-primary-hover)}.device-options button.secondary{color:var(--color-text-primary);background:#fff;border:1px solid #cbd5e1}.device-options button.secondary:hover{background:#f1f5f9}.setup-view{flex-direction:column;height:100vh;padding:1rem;display:flex;overflow-y:auto}.setup-header{border-bottom:1px solid #ddd;justify-content:space-between;align-items:center;padding-bottom:1rem;display:flex}.setup-content{flex:1;padding:1rem 0}.setup-section{margin-bottom:2rem}.section-header{justify-content:space-between;align-items:center;display:flex}.lane-list{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1rem;margin-top:1rem;display:grid}.lane-card{background:#fff;border:1px solid #ddd;border-radius:8px;padding:1rem}.lane-card-adoptable{background:#f0f8ff;border-color:#3498db}.lane-card-header{justify-content:space-between;align-items:center;margin-bottom:.5rem;display:flex}.status-dot{border-radius:50%;flex-shrink:0;width:10px;height:10px}.status-online{background:#2ecc71}.status-offline{background:#e74c3c}.detail-row{justify-content:space-between;padding:.25rem 0;font-size:.875rem;display:flex}.status-complete{color:#2ecc71;font-weight:500}.pairing-options{align-items:flex-start;gap:2rem;display:flex}.pairing-divider{color:#999;padding-top:2rem}.pairing-code{text-align:center}.barcode-display{background:#f5f5f5;border-radius:4px;margin:1rem 0;padding:1rem;font-family:monospace;font-size:1.25rem}.setup-actions{border-top:1px solid #ddd;justify-content:space-between;padding-top:1rem;display:flex}.btn-primary{background:var(--color-primary);color:#fff;border-radius:var(--border-radius-sm);cursor:pointer;border:none;padding:.75rem 1.5rem}.btn-primary:hover{background:var(--color-primary-dark)}.btn-secondary{background:var(--bg-primary);border:1px solid var(--color-gray-300);border-radius:var(--border-radius-sm);cursor:pointer;color:var(--color-gray-900);padding:.5rem 1rem}.btn-secondary:hover{background:var(--color-gray-100)}.btn-danger{background:var(--color-danger);color:#fff;border-radius:var(--border-radius-sm);cursor:pointer;border:none;padding:.75rem 1.5rem}.btn-text{color:var(--color-primary);cursor:pointer;background:0 0;border:none}.text-muted{color:var(--color-gray-500);font-size:var(--font-size-sm)}.text-success{color:var(--color-success)}.text-danger{color:var(--color-danger)}.text-center{text-align:center}.cashier-layout{width:100vw;height:100vh;display:flex;overflow:hidden}.sidebar{color:#fff;background:#2c3e50;flex-direction:column;flex-shrink:0;width:80px;display:flex}.sidebar-header{text-align:center;border-bottom:1px solid #34495e;padding:1rem .5rem}.sidebar-title{font-size:1.25rem;font-weight:700}.sidebar-lane{opacity:.7;margin-top:.25rem;font-size:.625rem;display:block}.sidebar-nav{flex:1;margin:0;padding:0;list-style:none}.sidebar-nav-item{color:#fff;cursor:pointer;opacity:.7;background:0 0;border:none;flex-direction:column;align-items:center;width:100%;padding:1rem .5rem;transition:opacity .2s,background .2s;display:flex}.sidebar-nav-item:hover{opacity:1;background:#34495e}.sidebar-nav-item.active{opacity:1;background:#3498db}.nav-icon{margin-bottom:.25rem;font-size:1.5rem}.nav-label{text-transform:uppercase;font-size:.625rem}.sidebar-cart-indicator{text-align:center;cursor:pointer;background:#e74c3c;border-radius:4px;flex-direction:column;gap:.15rem;margin:.5rem;padding:.35rem;font-size:.7rem;display:flex;overflow:hidden}.sidebar-cart-indicator span{white-space:nowrap;text-overflow:ellipsis;width:100%;overflow:hidden}.sidebar-cart-indicator:hover{background:#c0392b}.sidebar-footer{border-top:1px solid #34495e;padding:.5rem}.connection-indicator{opacity:.7;justify-content:center;align-items:center;gap:.5rem;font-size:.625rem;display:flex}.cashier-main{background:#f5f5f5;flex-direction:column;flex:1;display:flex;overflow:hidden}.view-placeholder{color:#7f8c8d;flex-direction:column;justify-content:center;align-items:center;height:100%;display:flex}.price-check-result{text-align:center;background:#fff;border-radius:8px;margin-top:2rem;padding:2rem;box-shadow:0 2px 8px #0000001a}.price-check-result .price{color:#2ecc71;margin:1rem 0;font-size:3rem;font-weight:700}.transaction-view{flex-direction:column;height:100%;display:flex}.transaction-content{flex:1;display:flex;overflow:hidden}.cart-pane{background:#fff;border-right:1px solid #ddd;flex-direction:column;width:45%;min-width:320px;max-width:480px;display:flex}.cart-empty{color:#7f8c8d;text-align:center;flex-direction:column;flex:1;justify-content:center;align-items:center;padding:2rem;display:flex}.cart-list{flex:1;padding:.5rem;overflow-y:auto}.cart-line-item{cursor:pointer;background:#f9f9f9;border-radius:6px;align-items:center;margin-bottom:.5rem;padding:.75rem;transition:background .15s;display:flex}.cart-line-item:hover{background:#f0f0f0}.cart-line-item.selected{background:#e3f2fd;border:2px solid #3498db}.line-item-image{background:#ecf0f1;border-radius:4px;flex-shrink:0;justify-content:center;align-items:center;width:48px;height:48px;margin-right:.75rem;display:flex;overflow:hidden}.line-item-image img{object-fit:cover;width:100%;height:100%}.no-image{font-size:1.5rem}.no-image-large{background:#ecf0f1;border-radius:8px;justify-content:center;align-items:center;width:120px;height:120px;font-size:3rem;display:flex}.line-item-info{flex:1;min-width:0}.line-item-name{white-space:nowrap;text-overflow:ellipsis;font-weight:500;display:block;overflow:hidden}.line-item-type{color:#7f8c8d;font-size:.75rem}.line-item-price{text-align:right;margin-left:.5rem}.original-price{color:#999;font-size:.75rem;text-decoration:line-through;display:block}.effective-price{font-weight:600}.discount-badge{color:#fff;background:#e74c3c;border-radius:3px;margin-left:.25rem;padding:.125rem .375rem;font-size:.625rem;display:inline-block}.cart-totals{background:#fafafa;border-top:2px solid #eee;padding:1rem}.totals-row{justify-content:space-between;padding:.375rem 0;font-size:.9375rem;display:flex}.totals-row.discount{color:#e74c3c}.totals-row.total{border-top:1px solid #ddd;margin-top:.5rem;padding-top:.5rem;font-size:1.125rem;font-weight:700}.totals-row.paid{color:#2ecc71}.totals-row.due{font-size:1.25rem;font-weight:700}.totals-row.due.complete{color:#2ecc71;font-size:1.125rem;font-weight:400}.detail-pane{background:#f5f5f5;flex-direction:column;flex:1;display:flex;overflow-y:auto}.detail-empty{color:#7f8c8d;flex-direction:column;flex:1;justify-content:center;align-items:center;display:flex}.detail-empty-icon{opacity:.5;margin-bottom:2rem;font-size:4rem}.item-detail{flex-direction:column;gap:1.5rem;height:100%;padding:2rem;display:flex}.item-detail-image{flex-shrink:0}.item-detail-image img{object-fit:cover;border-radius:8px;width:120px;height:120px}.item-type-badge{text-transform:uppercase;color:#475569;background:#e2e8f0;border-radius:4px;margin-top:.5rem;padding:.25rem .5rem;font-size:.75rem;display:inline-block}.price-breakdown{background:#fff;border-radius:8px;margin-top:1rem;padding:1.5rem;box-shadow:0 1px 3px #0000001a}.price-row{border-bottom:1px solid #f1f5f9;justify-content:space-between;align-items:center;padding:.5rem 0;display:flex}.price-row:last-child{border-bottom:none}.price-row.override{color:#f39c12}.price-row.discount{color:#e74c3c}.price-row.final{border-top:2px solid #f1f5f9;margin-top:.5rem;padding-top:1rem;font-size:1.25rem;font-weight:700}.btn-icon{color:#64748b;cursor:pointer;background:#e2e8f0;border:none;border-radius:50%;justify-content:center;align-items:center;width:24px;height:24px;margin-left:.5rem;display:flex}.btn-icon:hover{color:#334155;background:#cbd5e1}.item-detail-actions{gap:1rem;margin-top:auto;padding-top:2rem;display:flex}.btn-danger{color:#fff;cursor:pointer;background:#e74c3c;border:none;border-radius:4px;padding:.75rem 1.5rem}.btn-danger:hover{background:#c0392b}.transaction-actions-bar{background:#2c3e50;flex-shrink:0;justify-content:space-between;align-items:center;height:60px;padding:0 1rem;display:flex}.left-actions{gap:.5rem;display:flex}.right-action{display:flex}.transaction-actions-bar button{cursor:pointer;border:none;border-radius:4px;height:40px;padding:0 1rem;font-size:.9375rem;font-weight:500;transition:opacity .2s,background .2s}.transaction-actions-bar button:disabled{opacity:.5;cursor:not-allowed}.transaction-actions-bar .btn-secondary{color:#2c3e50;background:#ecf0f1}.transaction-actions-bar .btn-warning{color:#fff;background:#f39c12}.transaction-actions-bar .btn-warning:not(:disabled):hover{background:#e67e22}.transaction-actions-bar .btn-danger{color:#fff;background:#e74c3c}.transaction-actions-bar .btn-tender{color:#fff;background:#3498db;min-width:150px;padding:0 2rem;font-size:1.125rem}.transaction-actions-bar .btn-tender:not(:disabled):hover{background:#2980b9}.transaction-actions-bar .btn-tender.complete{background:#2ecc71}.transaction-actions-bar .btn-tender.complete:not(:disabled):hover{background:#27ae60}.modal-backdrop{z-index:1000;background:#00000080;justify-content:center;align-items:center;width:100vw;height:100vh;display:flex;position:fixed;top:0;left:0}.modal-content{background:#fff;border-radius:8px;min-width:300px;padding:2rem;box-shadow:0 4px 12px #00000026}.modal-form-group{margin-bottom:1.5rem}.modal-form-group label{color:var(--color-text-primary);margin-bottom:.5rem;font-weight:500;display:block}.modal-input{border-radius:var(--radius-md);border:1px solid #cbd5e1;width:100%;padding:.75rem;font-size:1.125rem;transition:border-color .2s}.modal-input:focus{border-color:var(--color-primary);outline:none;box-shadow:0 0 0 2px #2563eb33}.modal-actions{border-top:1px solid #f1f5f9;justify-content:flex-end;gap:1rem;margin-top:2rem;padding-top:1rem;display:flex}.quick-select-row{gap:.5rem;margin-top:.5rem;display:flex}.quick-select-btn{border-radius:var(--radius-md);cursor:pointer;background:#f1f5f9;border:1px solid #cbd5e1;flex:1;padding:.5rem;font-size:.875rem}.quick-select-btn:hover{background:#e2e8f0}.quick-select-btn.active{background:var(--color-primary);color:#fff;border-color:var(--color-primary)}.radio-group{gap:1rem;display:flex}.radio-label{cursor:pointer;align-items:center;gap:.5rem;display:flex}.barcode-scanner-wrapper{justify-content:center;align-items:center;width:100%;padding:1rem;display:flex}.barcode-scanner{aspect-ratio:4/3;background:#000;border-radius:8px;width:100%;max-width:400px;position:relative;overflow:hidden;box-shadow:0 4px 6px -1px #0000001a}.barcode-scanner video{object-fit:cover;width:100%;height:100%}.scanner-overlay{justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.scanner-target{border:2px solid #3498db;border-radius:8px;width:70%;height:50%;box-shadow:0 0 0 9999px #0009}.scanner-status-msg{color:#fff;text-align:center;z-index:10;background:#000000b3;width:100%;padding:1rem;font-weight:500;position:absolute;top:0;left:0}.scanner-error{background:#1e293b;flex-direction:column;justify-content:center;align-items:center;height:100%;padding:2rem;display:flex}
