*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--bg: #f5f5f7;--card-bg: #ffffff;--text-primary: #1d1d1f;--text-secondary: #6e6e73;--accent: #0066cc;--discount-green: #34c759;--price-red: #ff3b30;--border: #e5e5e7;--radius: 12px;--shadow: 0 1px 3px rgba(0, 0, 0, .08);--ah: #00a0e2;--delhaize: #ed1c24;--colruyt: #e30038;--lidl: #0050aa}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;background:var(--bg);color:var(--text-primary);line-height:1.5;-webkit-font-smoothing:antialiased}a{color:var(--accent);text-decoration:none}.app-header{background:var(--card-bg);border-bottom:1px solid var(--border);padding:16px 24px;position:sticky;top:0;z-index:100;display:flex;align-items:center;justify-content:space-between}.app-logo{font-size:20px;font-weight:700;color:var(--text-primary)}.header-nav{display:flex;align-items:center;gap:16px}.header-nav-link{font-size:14px;font-weight:500;color:var(--text-secondary)}.header-nav-link:hover{color:var(--text-primary)}.header-user-name{font-size:14px;color:var(--text-primary);font-weight:500}.header-logout-btn{padding:4px 12px;border:1px solid var(--border);border-radius:6px;background:transparent;font-size:13px;cursor:pointer;color:var(--text-secondary)}.header-logout-btn:hover{background:var(--bg)}.app-main{max-width:1280px;margin:0 auto;padding:24px 16px}.controls{display:flex;gap:12px;margin-bottom:24px;flex-wrap:wrap}.search-input{flex:1;min-width:200px;padding:10px 14px;border:1px solid var(--border);border-radius:8px;font-size:15px;outline:none;transition:border-color .15s}.search-input:focus{border-color:var(--accent)}.sort-select{padding:10px 14px;border:1px solid var(--border);border-radius:8px;font-size:15px;background:var(--card-bg);cursor:pointer;outline:none}.date-filter{display:flex;gap:12px;margin-bottom:20px}.date-filter-label{display:flex;align-items:center;gap:6px;font-size:13px;color:var(--text-secondary);font-weight:600}.date-input{padding:8px 10px;border:1px solid var(--border);border-radius:8px;font-size:14px;background:var(--card-bg);outline:none;font-family:inherit}.date-input:focus{border-color:var(--accent)}.promo-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(340px,1fr));gap:12px}.promo-card{display:flex;gap:16px;background:var(--card-bg);border-radius:var(--radius);padding:16px;box-shadow:var(--shadow);transition:box-shadow .15s;cursor:pointer;text-decoration:none;color:inherit}.promo-card:hover{box-shadow:0 2px 8px #0000001f}.promo-card-image{width:80px;height:80px;border-radius:8px;object-fit:contain;background:var(--bg);flex-shrink:0}.promo-card-image-placeholder{width:80px;height:80px;border-radius:8px;background:var(--bg);flex-shrink:0;display:flex;align-items:center;justify-content:center;color:var(--text-secondary);font-size:12px}.promo-card-body{flex:1;min-width:0}.promo-card-header{display:flex;align-items:flex-start;justify-content:space-between;gap:8px;margin-bottom:4px}.promo-card-name{font-weight:600;font-size:15px}.promo-card-brand{font-size:13px;color:var(--text-secondary)}.promo-card-meta{display:flex;align-items:center;gap:8px;margin-top:6px;flex-wrap:wrap}.promo-card-prices{display:flex;align-items:baseline;gap:6px}.price-current{font-weight:700;font-size:16px}.price-original{font-size:13px;color:var(--text-secondary);text-decoration:line-through}.price-unit{font-size:13px;color:var(--text-secondary)}.promo-card-dates{font-size:12px;color:var(--text-secondary)}.badge{display:inline-flex;align-items:center;padding:2px 8px;border-radius:4px;font-size:12px;font-weight:600;white-space:nowrap}.badge-discount{background:var(--discount-green);color:#fff}.badge-supermarket{color:#fff;font-size:11px}.badge-supermarket[data-store=albert-heijn]{background:var(--ah)}.badge-supermarket[data-store=delhaize]{background:var(--delhaize)}.badge-supermarket[data-store=colruyt]{background:var(--colruyt)}.badge-supermarket[data-store=lidl]{background:var(--lidl)}.badge-promo-type{background:var(--bg);color:var(--text-secondary);font-weight:500}.store-filter{display:flex;gap:8px;margin-bottom:20px;flex-wrap:wrap}.store-filter-btn{padding:6px 14px;border:2px solid var(--border);border-radius:20px;background:var(--card-bg);font-size:13px;font-weight:600;cursor:pointer;transition:all .15s;color:var(--text-secondary)}.store-filter-btn:hover{border-color:var(--text-secondary)}.store-filter-btn.active{color:#fff;border-color:transparent}.store-filter-btn.active[data-store=albert-heijn]{background:var(--ah)}.store-filter-btn.active[data-store=delhaize]{background:var(--delhaize)}.store-filter-btn.active[data-store=colruyt]{background:var(--colruyt)}.store-filter-btn.active[data-store=lidl]{background:var(--lidl)}.product-link{display:inline-flex;align-items:center;gap:4px;font-size:14px;font-weight:500;color:var(--accent);margin-top:12px}.product-link:hover{text-decoration:underline}.store-link{text-decoration:none;cursor:pointer;transition:opacity .15s}.store-link:hover{opacity:.85}.load-more{display:flex;align-items:center;justify-content:center;gap:8px;margin-top:24px}.load-more-btn{padding:10px 24px;border:1px solid var(--border);border-radius:8px;background:var(--card-bg);font-size:14px;cursor:pointer;transition:background .15s}.load-more-btn:hover{background:var(--bg)}.result-count{text-align:center;font-size:13px;color:var(--text-secondary);margin-top:12px}.back-link{display:inline-flex;align-items:center;gap:4px;font-size:14px;margin-bottom:20px}.detail-header{display:flex;gap:24px;background:var(--card-bg);border-radius:var(--radius);padding:24px;box-shadow:var(--shadow);margin-bottom:24px}.detail-image{width:160px;height:160px;border-radius:8px;object-fit:contain;background:var(--bg);flex-shrink:0}.detail-image-placeholder{width:160px;height:160px;border-radius:8px;background:var(--bg);flex-shrink:0;display:flex;align-items:center;justify-content:center;color:var(--text-secondary)}.detail-info{flex:1}.detail-name{font-size:22px;font-weight:700;margin-bottom:4px}.detail-brand{font-size:14px;color:var(--text-secondary);margin-bottom:12px}.detail-badges{display:flex;gap:8px;margin-bottom:16px;flex-wrap:wrap}.detail-prices{display:flex;align-items:baseline;gap:10px;margin-bottom:8px}.detail-price-current{font-size:28px;font-weight:700}.detail-price-original{font-size:16px;color:var(--text-secondary);text-decoration:line-through}.detail-unit-price{font-size:14px;color:var(--text-secondary)}.detail-dates{font-size:13px;color:var(--text-secondary);margin-top:8px}.section{background:var(--card-bg);border-radius:var(--radius);padding:24px;box-shadow:var(--shadow);margin-bottom:24px}.section-title{font-size:16px;font-weight:700;margin-bottom:16px}.benchmarks-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.benchmark-item{text-align:center;padding:12px;background:var(--bg);border-radius:8px}.benchmark-label{font-size:12px;color:var(--text-secondary);margin-bottom:4px}.benchmark-value{font-size:18px;font-weight:700}.related-table{width:100%;border-collapse:collapse}.related-table th{text-align:left;font-size:12px;color:var(--text-secondary);font-weight:600;text-transform:uppercase;letter-spacing:.5px;padding:8px 12px;border-bottom:1px solid var(--border)}.related-table td{padding:10px 12px;font-size:14px;border-bottom:1px solid var(--border)}.related-table tr:last-child td{border-bottom:none}.match-method{font-size:11px;color:var(--text-secondary);padding:1px 6px;background:var(--bg);border-radius:3px}.badge-cheapest{background:#e8f5e9;color:#2e7d32}.related-table tr.row-cheapest td{background:#f1f8e9}.chart-container{width:100%;height:300px}.chart-empty{display:flex;align-items:center;justify-content:center;height:200px;color:var(--text-secondary);font-size:14px}.loading{display:flex;align-items:center;justify-content:center;padding:48px;color:var(--text-secondary)}.empty-state{text-align:center;padding:48px;color:var(--text-secondary)}.auth-page{display:flex;justify-content:center;padding-top:48px}.auth-form{background:var(--card-bg);border-radius:var(--radius);padding:32px;box-shadow:var(--shadow);width:100%;max-width:400px;display:flex;flex-direction:column;gap:16px}.auth-title{font-size:22px;font-weight:700;text-align:center;margin-bottom:8px}.auth-label{display:flex;flex-direction:column;gap:4px;font-size:14px;font-weight:500;color:var(--text-secondary)}.auth-input{padding:10px 14px;border:1px solid var(--border);border-radius:8px;font-size:15px;outline:none;transition:border-color .15s;font-family:inherit}.auth-input:focus{border-color:var(--accent)}.auth-btn{padding:12px;border:none;border-radius:8px;background:var(--accent);color:#fff;font-size:15px;font-weight:600;cursor:pointer;transition:opacity .15s;margin-top:8px}.auth-btn:hover{opacity:.9}.auth-btn:disabled{opacity:.6;cursor:not-allowed}.auth-error{background:#fef2f2;color:var(--price-red);padding:10px 14px;border-radius:8px;font-size:14px}.auth-switch{text-align:center;font-size:14px;color:var(--text-secondary)}.dashboard{display:grid;grid-template-columns:1fr 1fr;gap:24px}.dashboard-panel{background:var(--card-bg);border-radius:var(--radius);padding:24px;box-shadow:var(--shadow)}.dashboard-panel-title{font-size:18px;font-weight:700;margin-bottom:16px}.dashboard-see-more{display:block;text-align:center;padding:12px;margin-top:16px;font-size:14px;font-weight:600;color:var(--accent)}.dashboard-see-more:hover{text-decoration:underline}.dashboard-empty{text-align:center;padding:32px 16px;color:var(--text-secondary);font-size:14px}.home{display:grid;grid-template-columns:1fr 1fr;gap:24px;align-items:start}.home-promos-panel{background:var(--card-bg);border-radius:var(--radius);padding:24px;box-shadow:var(--shadow)}.home-promo-list{display:flex;flex-direction:column}.home-promo-item{display:flex;align-items:center;gap:12px;padding:10px 0;border-bottom:1px solid var(--border)}.home-promo-item:last-child{border-bottom:none}.home-promo-img{width:40px;height:40px;border-radius:6px;object-fit:contain;background:var(--bg);flex-shrink:0}.home-promo-info{flex:1;min-width:0}.home-promo-name{font-size:14px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.home-promo-meta{display:flex;align-items:center;gap:6px;margin-top:2px}.home-promo-price{font-size:15px;font-weight:700;white-space:nowrap;flex-shrink:0}.home-auth-panel{background:var(--card-bg);border-radius:var(--radius);padding:32px;box-shadow:var(--shadow);text-align:center;position:sticky;top:80px}.home-auth-title{font-size:24px;font-weight:700;margin-bottom:8px}.home-auth-subtitle{font-size:15px;color:var(--text-secondary);margin-bottom:24px;line-height:1.5}.home-login-form{display:flex;flex-direction:column;gap:12px}.home-auth-divider{display:flex;align-items:center;gap:12px;margin:20px 0;color:var(--text-secondary);font-size:13px}.home-auth-divider:before,.home-auth-divider:after{content:"";flex:1;height:1px;background:var(--border)}.home-register-btn{display:block;padding:12px;border:2px solid var(--accent);border-radius:8px;font-size:15px;font-weight:600;color:var(--accent);text-align:center;transition:background .15s,color .15s}.home-register-btn:hover{background:var(--accent);color:#fff}.watch-btn{background:none;border:none;cursor:pointer;font-size:18px;padding:4px;opacity:.4;transition:opacity .15s,transform .15s;flex-shrink:0}.watch-btn:hover{opacity:.7;transform:scale(1.1)}.watch-btn.active{opacity:1;color:var(--price-red)}.watchlist-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:20px}.watchlist-add-btn{padding:8px 16px;background:var(--accent);color:#fff;border:none;border-radius:8px;font-size:14px;font-weight:600;cursor:pointer}.watchlist-add-btn:hover{opacity:.9}.watchlist-back-btn{padding:8px 16px;background:none;color:var(--accent);border:1px solid var(--accent);border-radius:8px;font-size:14px;font-weight:600;cursor:pointer}.watchlist-back-btn:hover{background:var(--accent);color:#fff}.watchlist-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:12px}.watchlist-product-card{display:flex;align-items:center;gap:12px;padding:14px;background:var(--card-bg);border-radius:var(--radius);box-shadow:var(--shadow)}.watchlist-product-img{width:48px;height:48px;border-radius:8px;object-fit:contain;flex-shrink:0}.watchlist-product-img-placeholder{width:48px;height:48px;border-radius:8px;background:var(--bg);flex-shrink:0}.watchlist-product-info{flex:1;min-width:0}.watchlist-product-name{font-size:14px;font-weight:600}.watchlist-product-brand{font-size:12px;color:var(--text-secondary)}.watchlist-product-promo{display:flex;flex-direction:column;align-items:flex-end;gap:2px;flex-shrink:0}.watchlist-product-price{font-size:13px;font-weight:600;color:var(--text-primary)}.watchlist-product-no-promo{font-size:12px;color:var(--text-secondary);flex-shrink:0}input,select,textarea,button{font-size:16px}.hamburger-btn{display:none;background:none;border:none;cursor:pointer;padding:10px;-webkit-tap-highlight-color:transparent}.hamburger-icon{display:block;width:22px;height:2px;background:var(--text-primary);position:relative}.hamburger-icon:before,.hamburger-icon:after{content:"";position:absolute;width:22px;height:2px;background:var(--text-primary);left:0}.hamburger-icon:before{top:-7px}.hamburger-icon:after{top:7px}@media (max-width: 1024px){.benchmarks-grid{grid-template-columns:repeat(2,1fr)}}@media (max-width: 768px){.hamburger-btn{display:flex;align-items:center;justify-content:center}.header-nav{display:none;position:absolute;top:100%;left:0;right:0;background:var(--card-bg);border-bottom:1px solid var(--border);flex-direction:column;padding:8px 24px;gap:0;box-shadow:0 4px 12px #00000014;z-index:99}.header-nav.open{display:flex}.header-nav-link{padding:14px 0;font-size:16px;display:block;width:100%;border-bottom:1px solid var(--border)}.header-nav-link:last-of-type{border-bottom:none}.header-user-name{padding:14px 0;font-size:15px;border-bottom:1px solid var(--border)}.header-logout-btn{padding:14px 0;font-size:15px;border:none;text-align:left;width:100%}.dashboard,.home{grid-template-columns:1fr}.home-auth-panel{position:static}.promo-grid{grid-template-columns:repeat(auto-fill,minmax(280px,1fr))}.watchlist-grid{grid-template-columns:1fr}.date-filter{flex-direction:column}.detail-header{flex-direction:column;align-items:center;text-align:center;padding:16px}.detail-prices,.detail-badges{justify-content:center}.detail-image,.detail-image-placeholder{width:120px;height:120px}.benchmarks-grid{grid-template-columns:1fr}.section{padding:16px}.app-main{padding:16px 12px}.store-filter-btn{padding:10px 16px;font-size:14px}.load-more-btn{padding:14px 28px}.watch-btn{padding:10px;font-size:20px}.related-table thead{display:none}.related-table,.related-table tbody,.related-table tr,.related-table td{display:block}.related-table tr{background:var(--bg);border-radius:8px;padding:12px;margin-bottom:8px}.related-table tr.row-cheapest{background:#f1f8e9}.related-table tr.row-cheapest td{background:transparent}.related-table td{padding:3px 0;border-bottom:none;font-size:14px}.related-table td:before{content:attr(data-label);font-size:11px;font-weight:600;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px;display:block;margin-bottom:1px}}@media (max-width: 480px){.promo-grid{grid-template-columns:1fr}.promo-card-image,.promo-card-image-placeholder{width:64px;height:64px}.app-header{padding:12px 16px}.app-main{padding:12px 8px}.chart-container{height:250px}.detail-image,.detail-image-placeholder{width:100px;height:100px}.detail-name{font-size:18px}.detail-price-current{font-size:24px}.auth-form,.home-auth-panel{padding:20px 16px}.dashboard-panel{padding:16px}}
