@import "https://fonts.googleapis.com/css2?family=Outfit:wght@300;400;500;600;700&display=swap";:root{--font-sans:"Outfit", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--bg-base:#090d16;--bg-surface:#111928bf;--bg-surface-hover:#1a2639e6;--border-color:#ffffff14;--border-glow:#8b5cf64d;--color-primary:#8b5cf6;--color-primary-glow:#8b5cf633;--color-secondary:#06b6d4;--color-secondary-glow:#06b6d433;--color-success:#10b981;--color-warning:#f59e0b;--color-danger:#ef4444;--text-primary:#f3f4f6;--text-secondary:#9ca3af;--text-muted:#6b7280;--backdrop-blur:blur(16px);--shadow-sm:0 2px 8px #00000080;--shadow-md:0 8px 32px 0 #0000005e;--shadow-lg:0 12px 48px 0 #00000080;--glow-primary:0 0 20px #8b5cf626;--radius-sm:8px;--radius-md:14px;--radius-lg:20px;--radius-xl:30px;--transition-fast:.15s ease;--transition-normal:.3s cubic-bezier(.4, 0, .2, 1)}*{box-sizing:border-box;margin:0;padding:0}body{font-family:var(--font-sans);background-color:var(--bg-base);color:var(--text-primary);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-image:radial-gradient(at 0 0,#8b5cf614 0,#0000 50%),radial-gradient(at 100% 100%,#06b6d414 0,#0000 50%);background-attachment:fixed;min-height:100vh;overflow-x:hidden}#root{flex-direction:column;width:100%;min-height:100vh;display:flex}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:var(--bg-base)}::-webkit-scrollbar-thumb{background:#ffffff1a;border-radius:5px}::-webkit-scrollbar-thumb:hover{background:#fff3}@keyframes fadeIn{0%{opacity:0;transform:translateY(15px)}to{opacity:1;transform:translateY(0)}}@keyframes pulse-glow{0%,to{box-shadow:0 0 15px #8b5cf626}50%{box-shadow:0 0 25px #8b5cf64d}}@keyframes scan-line{0%{top:0%}50%{top:100%}to{top:0%}}@keyframes rotate-slow{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.app-container{flex-direction:column;gap:2rem;width:100%;max-width:1280px;margin:0 auto;padding:2rem 1.5rem;animation:.6s ease-out fadeIn;display:flex}.app-header{border-bottom:1px solid var(--border-color);justify-content:space-between;align-items:center;padding-bottom:1.5rem;display:flex}.brand-section{align-items:center;gap:.75rem;display:flex}.brand-icon{color:var(--color-primary);filter:drop-shadow(0 0 8px var(--color-primary))}.brand-name h1{background:linear-gradient(135deg, var(--text-primary) 30%, var(--color-primary) 100%);-webkit-text-fill-color:transparent;letter-spacing:-.5px;-webkit-background-clip:text;font-size:1.8rem;font-weight:700}.brand-name p{color:var(--text-secondary);font-size:.85rem}.git-badge{border:1px solid var(--border-color);border-radius:var(--radius-md);color:var(--text-secondary);transition:var(--transition-fast);background:#ffffff08;align-items:center;gap:.5rem;padding:.5rem 1rem;font-size:.85rem;display:flex}.git-badge:hover{border-color:var(--color-primary-glow);color:var(--text-primary);background:#ffffff12}.active-profile{color:var(--color-secondary);font-weight:600}.nav-tabs{border:1px solid var(--border-color);border-radius:var(--radius-md);width:fit-content;-webkit-backdrop-filter:var(--backdrop-blur);backdrop-filter:var(--backdrop-blur);background:#ffffff05;align-self:center;gap:.25rem;padding:.35rem;display:flex}.tab-btn{color:var(--text-secondary);font-family:var(--font-sans);cursor:pointer;border-radius:var(--radius-sm);background:0 0;border:none;align-items:center;gap:.5rem;padding:.75rem 1.25rem;font-size:.95rem;font-weight:500;transition:all .2s;display:flex}.tab-btn:hover{color:var(--text-primary);background:#ffffff0a}.tab-btn.active{color:#fff;background:var(--color-primary);box-shadow:0 4px 12px var(--color-primary-glow)}.dashboard-grid{grid-template-columns:1.2fr 1.8fr;align-items:start;gap:2rem;display:grid}@media (width<=1024px){.dashboard-grid{grid-template-columns:1fr}}.glass-panel{background:var(--bg-surface);border:1px solid var(--border-color);border-radius:var(--radius-lg);-webkit-backdrop-filter:var(--backdrop-blur);backdrop-filter:var(--backdrop-blur);box-shadow:var(--shadow-md);padding:1.5rem;transition:border-color .3s,box-shadow .3s}.glass-panel:hover{box-shadow:var(--shadow-lg);border-color:#ffffff1f}.panel-header{border-bottom:1px solid #ffffff0d;justify-content:space-between;align-items:center;margin-bottom:1.25rem;padding-bottom:.75rem;display:flex}.panel-header h2{align-items:center;gap:.5rem;font-size:1.25rem;font-weight:600;display:flex}.grocery-form{flex-direction:column;gap:.75rem;margin-bottom:1.5rem;display:flex}.form-row-multi{grid-template-columns:1fr 1fr;gap:.5rem;display:grid}.form-row-three{grid-template-columns:1.2fr .8fr 1fr;gap:.5rem;display:grid}.input-group{flex-direction:column;gap:.25rem;display:flex}.input-label{color:var(--text-secondary);font-size:.75rem;font-weight:500}.input-field{border:1px solid var(--border-color);border-radius:var(--radius-sm);color:var(--text-primary);font-family:var(--font-sans);transition:border-color var(--transition-fast);background:#0003;outline:none;padding:.6rem .8rem;font-size:.9rem}.input-field:focus{border-color:var(--color-primary)}.btn-primary{background:var(--color-primary);color:#fff;border-radius:var(--radius-sm);cursor:pointer;font-weight:600;font-family:var(--font-sans);border:none;justify-content:center;align-items:center;gap:.5rem;padding:.7rem 1.2rem;transition:all .2s;display:flex}.btn-primary:hover{filter:brightness(1.15);box-shadow:0 4px 12px var(--color-primary-glow)}.btn-outline{border:1px solid var(--border-color);color:var(--text-primary);border-radius:var(--radius-sm);cursor:pointer;font-weight:500;font-family:var(--font-sans);background:0 0;justify-content:center;align-items:center;gap:.5rem;padding:.6rem 1rem;transition:all .2s;display:flex}.btn-outline:hover{border-color:var(--text-secondary);background:#ffffff0d}.list-container{flex-direction:column;gap:.5rem;max-height:380px;padding-right:.25rem;display:flex;overflow-y:auto}.list-item{border:1px solid var(--border-color);border-radius:var(--radius-sm);transition:var(--transition-fast);background:#ffffff05;justify-content:space-between;align-items:center;padding:.75rem;display:flex}.list-item:hover{background:#ffffff0a;border-color:#ffffff26}.list-item-left{align-items:center;gap:.75rem;display:flex}.checkbox-btn{cursor:pointer;color:var(--text-muted);background:0 0;border:none;align-items:center;display:flex}.checkbox-btn.checked{color:var(--color-success)}.item-info{flex-direction:column;display:flex}.item-info.checked .item-name{color:var(--text-muted);text-decoration:line-through}.item-name{font-size:.95rem;font-weight:500}.item-details{color:var(--text-secondary);font-size:.75rem}.delete-btn{color:var(--text-muted);cursor:pointer;transition:var(--transition-fast);background:0 0;border:none;border-radius:4px;align-items:center;padding:.25rem;display:flex}.delete-btn:hover{color:var(--color-danger);background:#ef44441a}.empty-state{text-align:center;color:var(--text-secondary);flex-direction:column;justify-content:center;align-items:center;gap:.75rem;padding:3rem 1rem;display:flex}.empty-state svg{color:var(--text-muted)}.comparison-table-wrapper{border-radius:var(--radius-sm);border:1px solid var(--border-color);background:#0003;overflow-x:auto}.comparison-table{border-collapse:collapse;text-align:left;width:100%;font-size:.9rem}.comparison-table th,.comparison-table td{border-bottom:1px solid var(--border-color);padding:.85rem 1rem}.comparison-table th{color:var(--text-primary);background:#ffffff03;font-weight:600}.store-th{text-align:center}.store-price-cell{text-align:center;font-family:var(--font-sans);font-weight:500;position:relative}.store-price-cell.cheapest{color:var(--color-success);background:#10b9810d;font-weight:700}.store-price-cell.missing{color:var(--text-muted);font-size:.8rem;font-style:italic}.total-row{background:#ffffff05;font-weight:700}.total-row td{border-top:2px solid var(--border-color)}.savings-highlight{margin-top:.15rem;font-size:.7rem;font-weight:500;display:block}.savings-highlight.best{color:var(--color-success)}.savings-highlight.worst{color:var(--color-danger)}.analysis-card{border-radius:var(--radius-md);background:linear-gradient(135deg,#8b5cf60d 0%,#06b6d40d 100%);border:1px solid #8b5cf626;align-items:flex-start;gap:1rem;margin-top:1.5rem;padding:1.25rem;display:flex}.analysis-icon{color:var(--color-secondary);flex-shrink:0;margin-top:.2rem}.analysis-content h3{color:var(--text-primary);margin-bottom:.25rem;font-size:1rem;font-weight:600}.analysis-content p{color:var(--text-secondary);font-size:.85rem;line-height:1.4}.ocr-grid{grid-template-columns:1.1fr 1.9fr;gap:2rem;display:grid}@media (width<=900px){.ocr-grid{grid-template-columns:1fr}}.receipt-uploader{flex-direction:column;gap:1.5rem;display:flex}.upload-area{border:2px dashed var(--border-color);border-radius:var(--radius-lg);text-align:center;cursor:pointer;background:#ffffff03;flex-direction:column;justify-content:center;align-items:center;gap:.75rem;padding:2.5rem 1.5rem;transition:all .3s;display:flex}.upload-area:hover{border-color:var(--color-primary);background:#8b5cf608}.upload-area.dragging{border-color:var(--color-secondary);background:#06b6d40d}.upload-area svg{color:var(--color-primary);margin-bottom:.5rem;transition:transform .3s}.upload-area:hover svg{transform:translateY(-5px)}.upload-label{font-size:1rem;font-weight:600}.upload-subtext{color:var(--text-secondary);font-size:.8rem}.demo-receipt-container{border-radius:var(--radius-md);background:#00000026;border:1px dashed #ffffff0d;flex-direction:column;gap:.75rem;padding:1rem;display:flex}.demo-receipt-btn{color:var(--color-primary);border-radius:var(--radius-sm);cursor:pointer;transition:var(--transition-fast);font-weight:500;font-family:var(--font-sans);background:#8b5cf61a;border:1px solid #8b5cf633;padding:.5rem}.demo-receipt-btn:hover{background:var(--color-primary);color:#fff}.receipt-preview-card{border-radius:var(--radius-md);border:1px solid var(--border-color);max-height:400px;position:relative;overflow:hidden}.receipt-image{object-fit:cover;width:100%;height:100%;display:block}.scan-overlay{-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#0006;width:100%;height:100%;position:absolute;top:0;left:0}.scan-bar{background:linear-gradient(90deg, transparent, var(--color-secondary), transparent);width:100%;height:4px;box-shadow:0 0 12px 2px var(--color-secondary);animation:2.5s ease-in-out infinite scan-line;position:absolute}.scan-status-indicator{border:1px solid var(--color-secondary-glow);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);white-space:nowrap;background:#090d16f2;align-items:center;gap:.75rem;padding:.75rem 1.5rem;font-weight:500;display:flex;position:absolute;bottom:1.5rem;left:50%;transform:translate(-50%)}.spinner{border:2px solid #ffffff1a;border-top-color:var(--color-secondary);border-radius:50%;width:16px;height:16px;animation:1s linear infinite rotate-slow}.scanned-items-header{justify-content:space-between;align-items:center;margin-bottom:1rem;display:flex}.store-badge{background:var(--color-primary-glow);color:var(--color-primary);border:1px solid #8b5cf64d;border-radius:4px;padding:.3rem .6rem;font-size:.8rem;font-weight:600}.scanned-items-list{flex-direction:column;gap:.75rem;max-height:400px;margin-bottom:1.5rem;padding-right:.25rem;display:flex;overflow-y:auto}.scanned-item-card{border:1px solid var(--border-color);border-radius:var(--radius-sm);background:#ffffff05;grid-template-columns:2.2fr 1fr 1fr .8fr;align-items:center;gap:.5rem;padding:.6rem .8rem;display:grid}@media (width<=600px){.scanned-item-card{grid-template-columns:1fr;gap:.5rem}}.scraper-configs-list{flex-direction:column;gap:1rem;display:flex}.scraper-config-card{border:1px solid var(--border-color);border-radius:var(--radius-md);transition:var(--transition-fast);background:#ffffff05;justify-content:space-between;align-items:center;padding:1.25rem;display:flex}.scraper-config-card:hover{background:#ffffff0a}.scraper-info{flex-direction:column;gap:.25rem;display:flex}.scraper-title{align-items:center;gap:.5rem;font-size:1.05rem;font-weight:600;display:flex}.scraper-meta{color:var(--text-secondary);font-size:.8rem}.scraper-controls{align-items:center;gap:1.5rem;display:flex}.switch-control{cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;display:inline-flex}.switch-checkbox{opacity:0;width:0;height:0;position:absolute}.switch-slider{border:1px solid var(--border-color);background-color:#ffffff1a;border-radius:34px;width:44px;height:22px;transition:all .3s;position:relative}.switch-slider:before{content:"";background-color:#fff;border-radius:50%;width:16px;height:16px;transition:all .3s;position:absolute;bottom:2px;left:2px}.switch-checkbox:checked+.switch-slider{background-color:var(--color-primary)}.switch-checkbox:checked+.switch-slider:before{transform:translate(22px)}.scraping-progress-panel{border-left:3px solid var(--color-secondary);border-radius:0 var(--radius-md) var(--radius-md) 0;background:#06b6d408;margin-top:1.5rem;padding:1.25rem}.progress-header-row{justify-content:space-between;margin-bottom:.5rem;font-size:.85rem;display:flex}.progress-bar-container{background:#ffffff0d;border-radius:3px;height:6px;margin-bottom:.75rem;overflow:hidden}.progress-bar-fill{background:linear-gradient(90deg, var(--color-primary), var(--color-secondary));height:100%;transition:width .4s}.progress-log-box{border-radius:var(--radius-sm);border:1px solid var(--border-color);max-height:120px;color:var(--color-secondary);background:#0000004d;padding:.75rem;font-family:monospace;font-size:.8rem;overflow-y:auto}.log-entry{margin-bottom:.25rem;line-height:1.4}.recipe-selector-row{justify-content:space-between;align-items:center;margin-bottom:1.5rem;display:flex}.recipe-selector-left{gap:1rem;display:flex}.select-dropdown{border:1px solid var(--border-color);border-radius:var(--radius-sm);color:var(--text-primary);font-family:var(--font-sans);cursor:pointer;background:#0000004d;outline:none;padding:.6rem 1rem;font-size:.9rem}.select-dropdown option{background:var(--bg-base);color:var(--text-primary)}.recipe-grid{grid-template-columns:1.7fr 1.3fr;gap:2rem;display:grid}@media (width<=900px){.recipe-grid{grid-template-columns:1fr}}.costing-table{border-collapse:collapse;width:100%;font-size:.9rem}.costing-table th,.costing-table td{border-bottom:1px solid var(--border-color);text-align:left;padding:.8rem}.costing-table th{color:var(--text-secondary);font-weight:600}.text-right{text-align:right}.recipe-summary-card{flex-direction:column;gap:1.5rem;display:flex}.cost-breakdown-box{border:1px solid var(--border-color);border-radius:var(--radius-md);background:#0003;padding:1.25rem}.breakdown-row{border-bottom:1px dashed #ffffff0d;justify-content:space-between;padding:.5rem 0;display:flex}.breakdown-row:last-child{border-bottom:none}.breakdown-row.total{border-top:1px solid var(--border-color);color:var(--color-secondary);margin-top:.5rem;padding-top:.75rem;font-size:1.15rem;font-weight:700}.pricing-calculator{border-radius:var(--radius-md);background:#8b5cf608;border:1px solid #8b5cf61a;padding:1.25rem}.pricing-calculator h3{color:var(--color-primary);align-items:center;gap:.5rem;margin-bottom:1rem;font-size:1rem;display:flex}.slider-group{flex-direction:column;gap:.5rem;margin-bottom:1rem;display:flex}.slider-header{color:var(--text-secondary);justify-content:space-between;font-size:.85rem;display:flex}.slider-input{width:100%;accent-color:var(--color-primary);background:#ffffff1a;border-radius:3px;outline:none;height:6px}.profit-matrix{grid-template-columns:1fr 1fr;gap:1rem;margin-top:1.25rem;display:grid}.matrix-cell{border:1px solid var(--border-color);border-radius:var(--radius-sm);text-align:center;background:#0003;padding:.75rem}.matrix-label{color:var(--text-secondary);margin-bottom:.25rem;font-size:.75rem}.matrix-val{font-size:1.1rem;font-weight:700}.matrix-val.profit{color:var(--color-success)}.legal-banner{border-radius:var(--radius-md);background:#f59e0b0d;border:1px solid #f59e0b33;align-items:flex-start;gap:.75rem;margin-bottom:1.5rem;padding:1rem;display:flex}.legal-banner svg{color:var(--color-warning);flex-shrink:0}.legal-banner p{color:var(--text-secondary);font-size:.8rem;line-height:1.4}.legal-banner strong{color:var(--text-primary)}.status-badge{-webkit-backdrop-filter:var(--backdrop-blur);backdrop-filter:var(--backdrop-blur);border-radius:30px;align-items:center;gap:.35rem;padding:.35rem .75rem;font-size:.8rem;font-weight:600;display:inline-flex}.status-badge.connected{color:var(--color-success);background:#10b9811f;border:1px solid #10b98140}.status-badge.offline{color:var(--color-warning);background:#f59e0b1f;border:1px solid #f59e0b40}.status-badge .dot{background:currentColor;border-radius:50%;width:8px;height:8px;box-shadow:0 0 8px}.store-list-manager{flex-direction:column;gap:.5rem;max-height:250px;margin-bottom:1rem;display:flex;overflow-y:auto}.store-manage-row{border:1px solid var(--border-color);border-radius:var(--radius-sm);transition:var(--transition-fast);background:#ffffff03;justify-content:space-between;align-items:center;padding:.6rem .8rem;display:flex}.store-manage-row:hover{background:#ffffff08;border-color:#ffffff1f}.store-manage-left{align-items:center;gap:.75rem;display:flex}.store-manage-logo{font-size:1.25rem}.store-manage-name{font-size:.95rem;font-weight:500}.store-manage-website{color:var(--text-secondary);font-size:.75rem}
