*{box-sizing:border-box;margin:0;padding:0}:root{--bg:#fafafa;--card-bg:#ffffff;--text:#1a1a1a;--text-muted:#666666;--border:#e5e5e5;--accent:#10b981;--accent-light:#d1fae5;--hover:#f5f5f5}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;background:var(--bg);color:var(--text);line-height:1.5}.container{max-width:1200px;margin:0 auto;padding:2rem 1rem}header{margin-bottom:2rem}.header-row{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem;flex-wrap:wrap}header h1{font-size:1.75rem;font-weight:600;margin-bottom:.25rem}header p{color:var(--text-muted);font-size:.95rem}.refresh-container{display:flex;flex-direction:column;align-items:flex-end;gap:.5rem}.refresh-button{background:var(--accent);color:white;border:none;padding:.5rem 1rem;border-radius:6px;font-size:.9rem;font-weight:500;cursor:pointer;transition:background .2s}.refresh-button:hover:not(:disabled){background:#059669}.refresh-button:disabled{background:#9ca3af;cursor:not-allowed}.refresh-message{font-size:.8rem;color:var(--text-muted)}.stats{display:flex;gap:1.5rem;margin-bottom:1.5rem;flex-wrap:wrap}.stat-card{background:var(--card-bg);border:1px solid var(--border);border-radius:8px;padding:1rem 1.5rem;min-width:140px}.stat-card .value{font-size:1.5rem;font-weight:600;color:var(--accent)}.stat-card .label{font-size:.85rem;color:var(--text-muted)}.deals-table-wrapper{background:var(--card-bg);border:1px solid var(--border);border-radius:8px;overflow-x:auto;-webkit-overflow-scrolling:touch}.deals-table{width:100%;min-width:700px;border-collapse:collapse;font-size:.9rem}.deals-table th{background:#f9f9f9;padding:.875rem 1rem;text-align:left;font-weight:600;color:var(--text-muted);border-bottom:1px solid var(--border);cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none;white-space:nowrap}.deals-table th:hover{background:#f0f0f0}.deals-table th.sortable:after{content:" ↕";opacity:.3}.deals-table th.sorted-asc:after{content:" ↑";opacity:1}.deals-table th.sorted-desc:after{content:" ↓";opacity:1}.deals-table td{padding:.75rem 1rem;border-bottom:1px solid var(--border);vertical-align:middle}.deals-table tbody tr:hover{background:var(--hover)}.deals-table tbody tr:last-child td{border-bottom:none}.product-cell{display:flex;align-items:center;gap:.75rem}.product-image{width:48px;height:48px;object-fit:cover;border-radius:6px;background:#f0f0f0}.product-name{font-weight:500}.product-link{color:var(--text);text-decoration:none;transition:color .2s}.product-link:hover{color:var(--accent);text-decoration:underline}.product-code{font-size:.75rem;color:var(--text-muted)}.price{font-weight:600;text-align:right}.price-regular{color:var(--text-muted);text-decoration:line-through}.price-sale{color:var(--text);font-size:1.05rem}.savings{text-align:right}.savings-percent{display:inline-block;background:var(--accent-light);color:#065f46;padding:.25rem .5rem;border-radius:4px;font-weight:600;font-size:.85rem}.savings-percent.high{background:#fef3c7;color:#92400e}.savings-percent.very-high{background:#fee2e2;color:#991b1b}.category-badge{display:inline-block;background:#f3f4f6;color:#4b5563;padding:.2rem .5rem;border-radius:4px;font-size:.75rem}.empty-state{text-align:center;padding:4rem 2rem;color:var(--text-muted)}.last-updated{text-align:right;font-size:.8rem;color:var(--text-muted);margin-bottom:.75rem}@media (max-width:768px){.deals-table{font-size:.8rem}.deals-table td,.deals-table th{padding:.5rem}.product-image{width:36px;height:36px}.stats{gap:.75rem}.stat-card{padding:.75rem 1rem;min-width:100px}.scroll-hint{display:block;text-align:center;font-size:.75rem;color:var(--text-muted);margin-bottom:.5rem}}@media (min-width:769px){.scroll-hint{display:none}}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(0,0,0,.8);display:flex;align-items:center;justify-content:center;z-index:1000;padding:1rem}.modal-content{position:relative;background:var(--card-bg);border-radius:12px;max-width:90vw;max-height:90vh;overflow:hidden}.modal-close{position:absolute;top:.5rem;right:.5rem;background:rgba(0,0,0,.6);color:white;border:none;border-radius:50%;width:32px;height:32px;font-size:1.25rem;cursor:pointer;display:flex;align-items:center;justify-content:center;z-index:1}.modal-close:hover{background:rgba(0,0,0,.8)}.modal-image{display:block;max-width:100%;max-height:80vh;object-fit:contain}.modal-caption{padding:1rem;text-align:center;font-weight:500;color:var(--text);background:var(--card-bg)}.filter-bar{display:flex;gap:1rem;margin-bottom:1.5rem;flex-wrap:wrap;align-items:flex-end}.filter-group{display:flex;flex-direction:column;gap:.25rem}.filter-group label{font-size:.75rem;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em}.filter-group select{padding:.5rem .75rem;border:1px solid var(--border);border-radius:6px;background:var(--card-bg);font-size:.9rem;color:var(--text);cursor:pointer;min-width:160px}.filter-group select:focus{outline:2px solid var(--accent);outline-offset:-2px}.header-actions{display:flex;gap:.5rem;align-items:flex-start}.import-button{background:#3b82f6;color:white;border:none;padding:.5rem 1rem;border-radius:6px;font-size:.9rem;font-weight:500;cursor:pointer;transition:background .2s}.import-button:hover{background:#2563eb}.retailer-badge{display:inline-block;padding:.2rem .5rem;border-radius:4px;font-size:.75rem;font-weight:600;white-space:nowrap}.retailer-badge-costco{background:#fee2e2;color:#991b1b}.retailer-badge-carters{background:#dbeafe;color:#1e40af}.product-brand{font-size:.75rem;color:var(--accent);font-weight:500}.import-modal{background:var(--card-bg);border-radius:12px;max-width:600px;width:100%;max-height:90vh;overflow:hidden;display:flex;flex-direction:column}.import-modal-header{display:flex;justify-content:space-between;align-items:center;padding:1.25rem 1.5rem;border-bottom:1px solid var(--border)}.import-modal-header h2{font-size:1.1rem;font-weight:600}.import-modal-body{padding:1.5rem;overflow-y:auto}.import-instructions{font-size:.9rem;color:var(--text-muted);margin-bottom:1rem}.import-textarea{width:100%;padding:.75rem;border:1px solid var(--border);border-radius:6px;font-family:SF Mono,Fira Code,monospace;font-size:.8rem;resize:vertical;background:#f9f9f9;color:var(--text)}.import-textarea:focus{outline:2px solid var(--accent);outline-offset:-2px}.import-textarea:disabled{opacity:.6}.import-error{background:#fee2e2;color:#991b1b}.import-error,.import-success{margin-top:.75rem;padding:.5rem .75rem;border-radius:6px;font-size:.85rem}.import-success{background:var(--accent-light);color:#065f46;font-weight:500}.import-modal-footer{display:flex;justify-content:flex-end;gap:.75rem;padding:1rem 1.5rem;border-top:1px solid var(--border)}.import-cancel-btn{padding:.5rem 1rem;border:1px solid var(--border);border-radius:6px;background:var(--card-bg);font-size:.9rem;cursor:pointer;color:var(--text)}.import-cancel-btn:hover{background:var(--hover)}.import-submit-btn{padding:.5rem 1.25rem;border:none;border-radius:6px;background:var(--accent);color:white;font-size:.9rem;font-weight:500;cursor:pointer}.import-submit-btn:hover:not(:disabled){background:#059669}.import-submit-btn:disabled{background:#9ca3af;cursor:not-allowed}.import-tabs{display:flex;gap:0;margin-bottom:1rem;border-bottom:1px solid var(--border)}.import-tab{padding:.625rem 1.25rem;background:none;font-size:.9rem;font-weight:500;color:var(--text-muted);cursor:pointer;border:none;border-bottom:2px solid transparent;margin-bottom:-1px;transition:color .2s,border-color .2s}.import-tab:hover:not(:disabled){color:var(--text)}.import-tab.active{color:var(--accent);border-bottom-color:var(--accent)}.import-tab:disabled{opacity:.5;cursor:not-allowed}.drop-zone{border:2px dashed var(--border);border-radius:8px;padding:2.5rem 1.5rem;text-align:center;cursor:pointer;transition:border-color .2s,background .2s}.drop-zone:hover{border-color:var(--accent);background:rgba(16,185,129,.04)}.drop-zone.dragging{border-color:var(--accent);background:rgba(16,185,129,.08)}.drop-zone-icon{font-size:2.5rem;margin-bottom:.75rem}.drop-zone-text{font-size:.95rem;color:var(--text);line-height:1.6}.drop-zone-text span{color:var(--text-muted);font-size:.85rem}.file-info{justify-content:space-between;padding:.875rem 1rem;background:var(--accent-light);border-radius:8px;margin-bottom:1rem}.file-info,.file-info-content{display:flex;align-items:center}.file-info-content{gap:.75rem}.file-info-icon{color:#065f46;font-size:1.25rem;font-weight:600}.file-info-details{display:flex;flex-direction:column;gap:.125rem}.file-info-name{font-weight:500;color:#065f46;font-size:.9rem}.file-info-count{font-size:.8rem;color:#047857}.file-info-clear{background:none;border:none;color:#065f46;font-size:1.25rem;cursor:pointer;padding:.25rem;line-height:1;opacity:.7;transition:opacity .2s}.file-info-clear:hover:not(:disabled){opacity:1}.file-info-clear:disabled{opacity:.3;cursor:not-allowed}.import-preview{background:#f9f9f9;border:1px solid var(--border);border-radius:8px;padding:1rem}.import-preview-title{font-size:.8rem;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em;margin-bottom:.625rem}.import-preview-list{display:flex;flex-direction:column;gap:.375rem}.import-preview-item{font-size:.85rem;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.import-preview-more{font-size:.8rem;color:var(--text-muted);font-style:italic;margin-top:.25rem}.import-date-field{display:flex;align-items:center;gap:.75rem;margin-top:1rem;padding-top:1rem;border-top:1px solid var(--border)}.import-date-field label{font-size:.85rem;color:var(--text-muted);white-space:nowrap}.import-date-field input[type=date]{padding:.5rem .75rem;border:1px solid var(--border);border-radius:6px;font-size:.9rem;color:var(--text);background:var(--card-bg)}.import-date-field input[type=date]:focus{outline:2px solid var(--accent);outline-offset:-2px}.import-date-field input[type=date]:disabled{opacity:.6}.updated-cell{font-size:.8rem;color:var(--text-muted);white-space:nowrap}.sold-out-row{opacity:.5}.sold-out-row td{background:#f3f4f6}.sold-out-badge{display:inline-block;padding:.15rem .4rem;margin-bottom:.25rem;border-radius:3px;font-size:.65rem;font-weight:600;text-transform:uppercase;background:#fecaca;color:#991b1b}.pagination-controls{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem;padding:.75rem 1rem;background:var(--card-bg);border:1px solid var(--border);border-radius:8px;flex-wrap:wrap;gap:.75rem}.pagination-info{font-size:.9rem;color:var(--text-muted)}.pagination-actions{display:flex;align-items:center;gap:.75rem}.pagination-actions label{font-size:.85rem;color:var(--text-muted)}.pagination-actions select{padding:.4rem .6rem}.pagination-actions select,.pagination-button{border:1px solid var(--border);border-radius:6px;background:var(--card-bg);font-size:.85rem;color:var(--text);cursor:pointer}.pagination-button{padding:.4rem .75rem;transition:background .2s}.pagination-button:hover:not(:disabled){background:var(--hover)}.pagination-button:disabled{opacity:.4;cursor:not-allowed}