:root{--sidebar-w: 200px;--header-h: 50px;--bg: #f5f5f4;--surface: #ffffff;--border: #e2e2df;--text: #111110;--muted: #78716c;--accent: #ea580c;--accent-bg: #fff7ed;--font: system-ui, -apple-system, "Segoe UI", sans-serif}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html,body{height:100%}body{font-family:var(--font);font-size:14px;background:var(--bg);color:var(--text);line-height:1.5}.layout{display:flex;flex-direction:column;min-height:100vh}.site-header{height:var(--header-h);background:var(--surface);border-bottom:1px solid var(--border);display:flex;align-items:center;padding:0 16px;gap:12px;position:sticky;top:0;z-index:100}.site-body{flex:1;display:flex}.sidebar{width:var(--sidebar-w);background:var(--surface);border-right:1px solid var(--border);flex-shrink:0;overflow-y:auto;position:sticky;top:var(--header-h);height:calc(100vh - var(--header-h))}.sidebar-overlay{display:none;position:fixed;inset:0;background:#00000059;z-index:90}.nav-label{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);padding:16px 16px 6px}.nav-list{list-style:none;padding-bottom:12px}.nav-link{display:block;padding:7px 16px;text-decoration:none;color:var(--muted);font-size:13px;font-weight:500;border-left:3px solid transparent;transition:color .1s,background .1s}.nav-link:hover{color:var(--text);background:var(--bg)}.nav-link.active{color:var(--accent);background:var(--accent-bg);border-left-color:var(--accent)}.main{flex:1;padding:28px 24px;min-width:0;overflow:hidden}.logo{font-size:17px;font-weight:800;text-decoration:none;color:var(--text);letter-spacing:-.5px}.logo span{color:var(--accent)}.hamburger{display:none;background:none;border:none;cursor:pointer;padding:5px;color:var(--text);border-radius:6px}.hamburger:hover{background:var(--bg)}.page-header{display:flex;align-items:baseline;gap:10px;margin-bottom:18px}.page-header h1{font-size:20px;font-weight:700}.page-header .count{font-size:13px;color:var(--muted)}.controls{display:flex;align-items:center;gap:10px;margin-bottom:14px;flex-wrap:wrap}.store-filters{display:flex;gap:6px;flex-wrap:wrap}.store-btn{padding:4px 12px;border:1px solid var(--border);background:var(--surface);border-radius:20px;cursor:pointer;font-size:12px;font-weight:500;color:var(--muted);transition:all .12s;font-family:var(--font)}.store-btn:hover{border-color:var(--muted);color:var(--text)}.store-btn.active{background:var(--accent);border-color:var(--accent);color:#fff}.search-input{padding:5px 10px;border:1px solid var(--border);border-radius:6px;font-size:13px;font-family:var(--font);background:var(--surface);color:var(--text);outline:none;width:200px}.search-input:focus{border-color:var(--accent)}.table-wrapper{overflow-x:auto;border:1px solid var(--border);border-radius:8px;background:var(--surface)}.product-table{width:100%;border-collapse:collapse;font-size:13px}.product-table th{padding:9px 12px;text-align:left;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);background:var(--surface);border-bottom:1px solid var(--border);white-space:nowrap;cursor:pointer;user-select:none}.product-table th:hover{color:var(--text)}.product-table th.th-active{color:var(--accent)}.sort-arrow{margin-left:3px;font-size:10px}.product-table td{padding:8px 12px;border-bottom:1px solid var(--border);white-space:nowrap}.product-table tr:last-child td{border-bottom:none}.product-table tr:hover td{background:var(--bg)}.col-rank{color:var(--muted);font-size:12px;width:36px}.col-name{white-space:normal;min-width:180px;max-width:300px}.col-name a{color:var(--text);text-decoration:none}.col-name a:hover{color:var(--accent);text-decoration:underline}.col-num{text-align:right;font-variant-numeric:tabular-nums;color:var(--muted)}.col-score{text-align:right;font-weight:700;font-variant-numeric:tabular-nums;font-size:13px}.product-table th.col-num,.product-table th.col-score{text-align:right}.score-high{color:#16a34a}.score-mid{color:#ca8a04}.score-low{color:#dc2626}.store-tag{display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;border-radius:4px;font-size:10px;font-weight:700;margin-right:2px}.store-tag[data-store=s-kaupat]{background:#dcfce7;color:#15803d}.store-tag[data-store=k-ruoka]{background:#dbeafe;color:#1d4ed8}.no-results-row{text-align:center;color:var(--muted);padding:40px!important}.col-list{width:32px;text-align:center}.add-list-btn{background:none;border:1px solid var(--border);border-radius:50%;width:22px;height:22px;cursor:pointer;font-size:14px;line-height:1;color:var(--muted);display:inline-flex;align-items:center;justify-content:center;font-family:var(--font);transition:all .1s}.add-list-btn:hover,.add-list-btn.in-list{border-color:var(--accent);color:var(--accent);background:var(--accent-bg)}@media(max-width:700px){.hamburger{display:flex;align-items:center;justify-content:center}.site-body{display:block}.sidebar{position:fixed;top:0;left:0;height:100%;width:240px;z-index:95;transform:translate(-100%);transition:transform .2s ease;box-shadow:4px 0 16px #0000001f}.sidebar.open{transform:translate(0)}.sidebar-overlay.open{display:block}.main{padding:16px}.search-input{width:100%}.controls{flex-direction:column;align-items:flex-start}}
