*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--primär: #2C3E50;--primär-hover: #1A252F;--accent: #3498DB;--accent-hover: #2980B9;--accent-ljus: #EBF5FB;--grön: #3498DB;--grön-ljus: #EBF5FB;--grön-hover: #2980B9;--röd: #c0392b;--gul: #f39c12;--grå-ljus: #F5F6FA;--grå: #888;--kant: #ddd;--text: #2C3E50;--vit: #fff;--skugga: 0 2px 8px rgba(0,0,0,.1);--radius: 10px}html{font-size:16px}body{font-family:system-ui,-apple-system,sans-serif;color:var(--text);background:#f5f6fa;line-height:1.5}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}button{cursor:pointer;font:inherit}input,select,textarea{font:inherit}.site-header{background:var(--primär);color:var(--vit);box-shadow:var(--skugga);position:sticky;top:0;z-index:100}.header-inner{max-width:1100px;margin:0 auto;padding:0 1rem;display:flex;align-items:center;justify-content:space-between;height:56px}.logo{color:var(--vit);font-size:1.3rem;font-weight:700;display:flex;align-items:center;gap:.4rem}.logo span{letter-spacing:-.5px}header nav{display:flex;gap:1.2rem}header nav a{color:var(--vit);font-size:.95rem;padding:.3rem .6rem;border-radius:6px;transition:background .15s}header nav a:hover{background:#ffffff26;text-decoration:none}.admin-link{opacity:.7;font-size:.85rem!important}.main-content{max-width:1100px;margin:0 auto;padding:2rem 1rem}.main-admin{padding:0}.kort{background:var(--vit);border-radius:var(--radius);box-shadow:var(--skugga);padding:1.5rem;margin-bottom:1.5rem}.btn{display:inline-flex;align-items:center;gap:.4rem;padding:.55rem 1.2rem;border-radius:7px;border:none;font-size:.95rem;font-weight:600;transition:background .15s,transform .1s}.btn:active{transform:scale(.97)}.btn-grön{background:var(--accent);color:var(--vit)}.btn-grön:hover{background:var(--accent-hover)}.btn-outline{background:transparent;border:2px solid var(--accent);color:var(--accent)}.btn-outline:hover{background:var(--accent-ljus)}.btn-röd{background:var(--röd);color:var(--vit)}.btn-röd:hover{background:#a93226}.btn-liten{padding:.3rem .7rem;font-size:.82rem}.btn-sm{padding:.35rem .8rem;font-size:.85rem}.input{width:100%;padding:.65rem .9rem;border:1.5px solid var(--kant);border-radius:7px;font-size:1rem;transition:border-color .15s}.input:focus{outline:none;border-color:var(--accent)}.select{width:100%;padding:.6rem .9rem;border:1.5px solid var(--kant);border-radius:7px;background:var(--vit)}.mobil-topbar{display:none}.hero{background:linear-gradient(135deg,var(--primär) 0%,#1A252F 100%);color:var(--vit);border-radius:var(--radius);padding:3rem 2rem;text-align:center;margin-bottom:2rem}.hero h1{font-size:2.2rem;margin-bottom:.5rem}.hero p{opacity:.9;font-size:1.1rem;margin-bottom:1.5rem}.hero-sok{display:flex;max-width:500px;margin:0 auto 1.5rem;gap:.5rem}.hero-sok-wrap{position:relative;flex:1;display:flex}.hero-sok-wrap input{flex:1;border:none;border-radius:7px;padding:.7rem 2.4rem .7rem 1rem;font-size:1rem;width:100%}.hero-sok-rensa{position:absolute;right:.5rem;top:50%;transform:translateY(-50%);background:none;border:none;cursor:pointer;color:#777;font-size:1.1rem;line-height:1;padding:.2rem .3rem}.hero-sok-rensa:hover{color:#333}.sok-banner{display:flex;align-items:center;justify-content:space-between;background:var(--accent-ljus);border:1px solid #90CAF9;border-radius:var(--radius);padding:.6rem 1rem;margin-bottom:.75rem;font-size:.92rem}.sok-banner-rensa{background:none;border:1px solid #90CAF9;border-radius:5px;padding:.2rem .6rem;cursor:pointer;font-size:.82rem;color:var(--accent);font-weight:600}.sok-banner-rensa:hover{background:var(--accent-ljus)}.synonym-hint{background:#fffde7;border:1px solid #F9A825;border-radius:var(--radius);padding:.45rem 1rem;margin-bottom:.75rem;font-size:.85rem;color:#5d4037}.synonym-original{opacity:.65}.forklaringar{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:1rem;margin-bottom:2rem}.forklaring-kort{background:var(--vit);border-radius:var(--radius);padding:1.2rem;text-align:center;box-shadow:var(--skugga)}.forklaring-kort .ikon{font-size:2rem;margin-bottom:.5rem}.forklaring-kort h3{font-size:.95rem;color:var(--accent);margin-bottom:.3rem}.forklaring-kort p{font-size:.82rem;color:var(--grå)}.snabbkategorier{display:flex;flex-wrap:wrap;gap:.6rem;margin-bottom:2rem}.snabbkat-btn{background:var(--accent-ljus);color:var(--accent);border:1.5px solid var(--accent);border-radius:20px;padding:.4rem 1rem;font-size:.9rem;font-weight:600;transition:background .15s}.snabbkat-btn:hover,.snabbkat-btn.aktiv{background:var(--accent);color:var(--vit)}.produktgrupp-lista{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:1rem}.pg-kort{background:var(--vit);border-radius:var(--radius);box-shadow:var(--skugga);display:flex;flex-direction:column;overflow:hidden;transition:box-shadow .15s,transform .15s}.pg-kort:hover{box-shadow:0 4px 14px #00000021;transform:translateY(-2px)}.pg-kort-bild{width:100%;height:130px;object-fit:contain;background:#fafafa;border-bottom:1px solid var(--kant);padding:.5rem}.produkt-bild-img{width:100%;height:130px;object-fit:contain;background:#fafafa;border-bottom:1px solid var(--kant);padding:.5rem;display:block}.produkt-bild-svg{width:100%;height:130px;background:#fafafa;border-bottom:1px solid var(--kant);display:flex;align-items:center;justify-content:center;padding:1rem}.produkt-bild-svg svg{width:72px;height:72px}.pg-kort-body{padding:.8rem 1rem .9rem;display:flex;flex-direction:column;gap:.4rem;flex:1}.pg-kort-info h3{font-size:.9rem;font-weight:700;line-height:1.2;margin:0}.pg-kat{font-size:.75rem;color:var(--grå)}.pg-pris{font-size:.95rem;font-weight:700;color:var(--accent)}.pg-kort-actions{display:flex;gap:.4rem;margin-top:auto;padding-top:.4rem}.mobil-filter{display:none}.produkt-header{margin-bottom:1.5rem}.produkt-header h1{font-size:1.6rem}.produkt-header .kategori{color:var(--grå);font-size:.9rem}.pris-tabell{width:100%;border-collapse:collapse}.pris-tabell th{text-align:left;padding:.6rem .8rem;background:var(--grå-ljus);font-size:.85rem;color:var(--grå);border-bottom:2px solid var(--kant)}.pris-tabell td{padding:.7rem .8rem;border-bottom:1px solid var(--kant);font-size:.95rem;vertical-align:middle}.pris-tabell tr:last-child td{border-bottom:none}.badge-kampanj{background:var(--röd);color:var(--vit);font-size:.72rem;padding:.15rem .4rem;border-radius:4px;font-weight:700}.lidl-plus-badge{background:#002d72;color:#fff;font-size:.72rem;padding:.15rem .45rem;border-radius:4px;font-weight:700;letter-spacing:.02em}.lidl-plus-indikator{background:#002d72!important;color:#fff!important;font-weight:900;font-size:1rem}.lidl-plus-note{font-size:.78rem;color:var(--grå);font-style:italic;margin-top:.3rem}.badge-storlek{background:var(--accent-ljus);color:var(--accent);font-size:.7rem;padding:.1rem .35rem;border-radius:4px;font-weight:600;margin-left:.3rem}.badge-ok{background:var(--accent-ljus);color:var(--accent);font-size:.72rem;padding:.15rem .4rem;border-radius:4px}.statistik-rutor{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:1rem;margin-bottom:1.5rem}.stat-ruta{background:var(--vit);border-radius:var(--radius);box-shadow:var(--skugga);padding:1rem;text-align:center}.stat-ruta .label{font-size:.78rem;color:var(--grå);margin-bottom:.3rem}.stat-ruta .varde{font-size:1.4rem;font-weight:700;color:var(--accent)}.stat-ruta .sub{font-size:.8rem;color:var(--grå)}.upp{color:var(--röd)!important}.ner{color:var(--accent)!important}.korg-layout{display:grid;grid-template-columns:1fr 320px;gap:2rem}@media (max-width: 700px){.korg-layout{grid-template-columns:1fr}}.korg-lista{list-style:none}.korg-rad{display:flex;align-items:center;justify-content:space-between;padding:.7rem 0;border-bottom:1px solid var(--kant)}.korg-rad:last-child{border-bottom:none}.korg-tom{color:var(--grå);text-align:center;padding:2rem}.sok-resultat{position:absolute;top:100%;left:0;right:0;background:var(--vit);border:1.5px solid var(--kant);border-top:none;border-radius:0 0 7px 7px;max-height:280px;overflow-y:auto;z-index:50;box-shadow:var(--skugga)}.sok-rad{padding:.7rem 1rem;cursor:pointer;border-bottom:1px solid var(--kant);transition:background .1s}.sok-rad:hover{background:var(--accent-ljus)}.sok-wrapper{position:relative}.resultat-kort{border-radius:var(--radius);box-shadow:var(--skugga);overflow:hidden;margin-bottom:1.5rem}.resultat-header{padding:1rem 1.5rem;cursor:pointer;display:flex;justify-content:space-between;align-items:center;font-weight:700;font-size:1rem}.resultat-header-1{background:var(--primär);color:var(--vit)}.resultat-header-2{background:#1565c0;color:var(--vit)}.resultat-header-3{background:#6a1b9a;color:var(--vit)}.resultat-body{background:var(--vit);padding:1.2rem 1.5rem}.resultat-rad{display:flex;justify-content:space-between;align-items:center;padding:.5rem 0;border-bottom:1px solid var(--kant)}.resultat-rad:last-child{border-bottom:none}.besparing-tag{font-size:.8rem;color:var(--accent);font-weight:600}.besparing-tag.stor{color:var(--röd);font-weight:700;font-size:.95rem}.kombination-sektion{margin-bottom:1rem}.kombination-sektion h4{font-size:.9rem;color:var(--grå);margin-bottom:.4rem;border-bottom:1px solid var(--kant);padding-bottom:.3rem}.kombination-sektion .vara{display:flex;justify-content:space-between;padding:.25rem 0;font-size:.9rem}.karta-wrapper{height:350px;border-radius:var(--radius);overflow:hidden;margin-top:1rem}.fordon-val{display:flex;gap:.7rem;margin:.8rem 0}.fordon-btn{flex:1;padding:.5rem;border:2px solid var(--kant);border-radius:7px;background:var(--vit);text-align:center;transition:all .15s}.fordon-btn.aktiv{border-color:var(--accent);background:var(--accent-ljus);color:var(--accent);font-weight:700}.admin-layout{display:flex;min-height:100vh}.admin-sidebar{width:220px;background:var(--primär);color:var(--vit);padding:1.5rem 0;flex-shrink:0}.admin-sidebar h2{padding:0 1.2rem 1rem;font-size:1.1rem;border-bottom:1px solid rgba(255,255,255,.1);margin-bottom:.5rem}.admin-nav a{display:block;padding:.7rem 1.2rem;color:#ffffffbf;transition:background .15s;font-size:.9rem}.admin-nav a:hover,.admin-nav a.aktiv{background:#ffffff1a;color:var(--vit);text-decoration:none}.admin-nav a.aktiv{border-left:3px solid var(--accent);padding-left:calc(1.2rem - 3px)}.admin-main{flex:1;padding:2rem;background:var(--grå-ljus);overflow-y:auto}.admin-main h2{font-size:1.3rem;margin-bottom:1.2rem}.admin-tabell{width:100%;border-collapse:collapse;background:var(--vit);border-radius:var(--radius);overflow:hidden;box-shadow:var(--skugga)}.admin-tabell th{background:var(--grå-ljus);padding:.6rem .8rem;text-align:left;font-size:.83rem;color:var(--grå);border-bottom:2px solid var(--kant);white-space:nowrap}.admin-tabell td{padding:.6rem .8rem;border-bottom:1px solid var(--kant);font-size:.88rem;vertical-align:middle}.admin-tabell tr:last-child td{border-bottom:none}.status-ok{color:var(--accent);font-weight:700}.status-fel{color:var(--röd);font-weight:700}.status-kor{color:var(--gul);font-weight:700}.laddar{text-align:center;padding:3rem;color:var(--grå);font-size:1.1rem}.fel-meddelande{background:#fdecea;border:1px solid #f5c6c2;color:var(--röd);padding:1rem 1.2rem;border-radius:7px;margin-bottom:1rem}.tom{text-align:center;color:var(--grå);padding:2rem}.tab-rad{display:flex;gap:.5rem;margin-bottom:1.5rem;border-bottom:2px solid var(--kant);padding-bottom:0}.tab-btn{background:transparent;border:none;padding:.7rem 1.4rem;font-size:1rem;font-weight:600;color:var(--grå);border-bottom:3px solid transparent;margin-bottom:-2px;border-radius:0;transition:color .15s,border-color .15s}.tab-btn:hover{color:var(--accent)}.tab-btn.aktiv{color:var(--accent);border-bottom-color:var(--accent)}.kampanj-filterrad{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:1.2rem;align-items:center}.filter-separator{color:var(--grå);padding:0 .2rem;font-weight:300}.kampanj-meta{font-size:.85rem;color:var(--grå);margin-bottom:1rem}.kampanj-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(185px,1fr));gap:1rem}.kampanj-kort{background:var(--vit);border-radius:var(--radius);box-shadow:var(--skugga);display:flex;flex-direction:column;overflow:hidden;transition:box-shadow .15s,transform .15s}.kampanj-kort:hover{box-shadow:0 4px 16px #00000026;transform:translateY(-2px)}.kampanj-bild-wrapper{position:relative;background:#fafafa;border-bottom:1px solid var(--kant)}.kampanj-bild-wrapper .produkt-bild-img,.kampanj-bild-wrapper .produkt-bild-svg{border-bottom:none}.kampanj-bild{width:100%;height:130px;object-fit:contain;padding:.5rem;display:block}.kampanj-indikator{position:absolute;top:6px;left:8px;font-size:1.3rem;line-height:1;cursor:help;filter:drop-shadow(0 1px 2px rgba(0,0,0,.3))}.kampanj-besparing-badge{position:absolute;top:6px;right:8px;background:var(--röd);color:var(--vit);font-size:.72rem;font-weight:700;padding:.15rem .45rem;border-radius:5px}.kampanj-body{padding:.75rem .9rem .85rem;display:flex;flex-direction:column;gap:.3rem;flex:1}.kampanj-header-rad{display:flex;align-items:center;justify-content:space-between;gap:.3rem;min-height:1.4rem}.kampanj-namn{font-size:.88rem;font-weight:700;line-height:1.25;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.kampanj-priser{display:flex;flex-direction:column;gap:.15rem;min-height:2.8rem}.kampanj-pris-ny{font-size:1.1rem;font-weight:800;color:var(--röd);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.kampanj-pris-sek{font-size:.75rem;color:var(--grå);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-height:1rem}.kampanj-datum{font-size:.75rem;color:var(--grå)}.kampanj-varning{font-size:.75rem;color:#b05800;background:#fff3e0;border-radius:4px;padding:.2rem .5rem}.kampanj-korg-btn{margin-top:auto;width:100%;justify-content:center}.kedja-badge{font-size:.68rem;font-weight:700;padding:.12rem .5rem;border-radius:4px;white-space:nowrap}.kedja-willys{background:#f60;color:#fff}.kedja-ica{background:#e32424;color:#fff}.kedja-citygross{background:#1a3c6e;color:#fff}.kedja-lidl{background:#0050aa;color:gold}.ind-chip{font-size:.7rem;font-weight:600;padding:.1rem .4rem;border-radius:4px;white-space:nowrap}.ind-topp{background:#fff3cd;color:#7a5000}.ind-bra{background:#d4edda;color:#155724}.ind-okej{background:#f0f0f0;color:#555}.ind-tveksamt{background:#fdecea;color:#922}.korg-kampanj-info{font-size:.78rem;color:var(--accent);margin-top:.2rem}.korg-nav-link{position:relative}.korg-badge{position:absolute;top:-6px;right:-10px;background:#e53935;color:#fff;font-size:.68rem;font-weight:700;min-width:18px;height:18px;border-radius:9px;display:inline-flex;align-items:center;justify-content:center;padding:0 4px;line-height:1}.kampanj-korg-tillagd{background:var(--accent)!important;color:#fff!important;opacity:.85}.kampanj-kort-klickbar{cursor:pointer}.kampanj-kort-klickbar:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.kvalitet-toggle{display:flex;gap:.5rem;margin-bottom:1rem}.kvalitet-btn{position:relative;background:var(--grå-ljus);color:var(--grå);border:2px solid var(--kant);border-radius:22px;padding:.45rem 1.1rem;font-size:.9rem;font-weight:600;transition:all .15s}.kvalitet-btn:hover{border-color:var(--accent);color:var(--accent)}.kvalitet-btn.aktiv{background:var(--accent);color:#fff;border-color:var(--accent)}.kvalitet-dold-badge{display:inline-flex;align-items:center;justify-content:center;margin-left:.4rem;background:#ffffff40;color:inherit;font-size:.72rem;font-weight:700;padding:.05rem .4rem;border-radius:10px}.kvalitet-btn:not(.aktiv) .kvalitet-dold-badge{background:var(--accent-ljus);color:var(--accent)}@media (max-width: 900px){.kampanj-grid{grid-template-columns:repeat(auto-fill,minmax(160px,1fr))}}@media (max-width: 767px){body{overflow-x:hidden}.main-content{padding:0 .75rem .75rem;overflow-x:hidden}.mobil-topbar{display:flex;align-items:center;gap:.5rem;background:var(--primär);padding:.55rem .75rem;position:sticky;top:56px;z-index:90;margin:0 -.75rem}.mobil-topbar-wrap{position:relative;flex:1}.mobil-topbar-wrap input{width:100%;border:none;border-radius:7px;padding:.5rem 2.2rem .5rem .75rem;font-size:.95rem;background:#ffffff26;color:var(--vit)}.mobil-topbar-wrap input::placeholder{color:#fff9}.mobil-topbar-wrap input:focus{outline:none;background:#ffffff38}.mobil-topbar-rensa{position:absolute;right:.4rem;top:50%;transform:translateY(-50%);background:none;border:none;color:#ffffffb3;font-size:1rem;padding:.2rem;line-height:1;min-width:28px;min-height:28px;display:flex;align-items:center;justify-content:center}.hero{border-radius:0;padding:1.2rem 1rem;margin:0 -.75rem .75rem}.hero h1{font-size:1.35rem}.hero p{font-size:.9rem;margin-bottom:.75rem}.hero-sok,.forklaringar{display:none}.produktgrupp-lista{grid-template-columns:1fr 1fr!important;gap:.5rem}.pg-kort-bild,.produkt-bild-img,.produkt-bild-svg{height:95px}.pg-kort-body{padding:.55rem .65rem .65rem;gap:.3rem}.pg-kort-info h3{font-size:.82rem;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.pg-kort-actions .btn{min-height:36px;font-size:.8rem;padding:.3rem .6rem}.pg-kort-actions{gap:.3rem}.snabbkategorier,.kampanj-filterrad{display:none}.mobil-filter{display:flex;gap:.5rem;margin-bottom:.75rem}.mobil-filter select{flex:1;min-height:44px;padding:.5rem .6rem;border-radius:8px;border:1.5px solid var(--kant);font-size:.9rem;background:var(--vit);color:var(--text);font-weight:500}.kampanj-grid{grid-template-columns:1fr 1fr;gap:.5rem}.kampanj-indikator{font-size:1rem}.kampanj-besparing-badge{font-size:.62rem;padding:.1rem .3rem}.kampanj-namn{white-space:normal;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.kampanj-korg-btn{min-height:40px;font-size:.82rem}.ind-chip,.kedja-badge{font-size:.62rem}.tab-rad{gap:0;overflow-x:auto;-webkit-overflow-scrolling:touch}.tab-btn{padding:.65rem .9rem;font-size:.88rem;white-space:nowrap;flex-shrink:0}.kvalitet-toggle{flex-wrap:wrap}.kvalitet-btn{padding:.4rem .8rem;font-size:.85rem;min-height:44px}.pris-tabell{font-size:.82rem}.pris-tabell th,.pris-tabell td{padding:.45rem .4rem}.statistik-rutor{grid-template-columns:1fr 1fr}.btn-grön,.btn-outline,.btn-röd,.snabbkat-btn{min-height:44px}.pg-kat,.kampanj-datum{font-size:.875rem}.kampanj-pris-sek{font-size:.8rem}.btn-liten{font-size:.875rem}}@media (max-width: 767px){.admin-layout{flex-direction:column}.admin-sidebar{width:100%;padding:0;overflow-x:auto;-webkit-overflow-scrolling:touch;flex-direction:row;display:flex;border-bottom:2px solid rgba(255,255,255,.1)}.admin-sidebar h2{display:none}.admin-nav{display:flex;flex-direction:row;min-width:max-content}.admin-nav a{padding:.8rem 1rem;display:flex;align-items:center;border-bottom:3px solid transparent;border-left:none!important;padding-left:1rem!important;font-size:.82rem;white-space:nowrap;flex-shrink:0}.admin-nav a.aktiv{border-bottom-color:var(--accent);background:#ffffff14}.admin-nav-back{display:none}.admin-main{padding:.75rem}.admin-tabell-wrapper{overflow-x:auto;-webkit-overflow-scrolling:touch}.admin-tabell{min-width:500px}.omatcha-kort-bild{width:60px!important;height:60px!important}}.pg-kort,.kampanj-kort{position:relative}.dolj-btn{position:absolute;top:0;right:0;z-index:5;width:28px;height:28px;display:flex;align-items:center;justify-content:center;background:#0006;color:#fff;border:none;border-radius:0 var(--radius) 0 6px;font-size:.7rem;line-height:1;padding:0;opacity:0;transition:opacity .15s,background .15s;cursor:pointer}.dolj-btn:hover{background:#000000a6}.pg-kort:hover .dolj-btn,.kampanj-kort:hover .dolj-btn{opacity:1}@media (max-width: 767px){.dolj-btn{opacity:1;width:44px;height:44px;font-size:.85rem;border-radius:0 var(--radius) 0 8px}}.dold-bar{margin-bottom:.75rem}.dold-bar-btn{background:none;border:1px solid var(--kant);border-radius:20px;padding:.25rem .8rem;font-size:.82rem;color:var(--grå);cursor:pointer;transition:background .12s,color .12s}.dold-bar-btn:hover{background:var(--grå-ljus);color:var(--text)}.dold-panel{background:var(--vit);border:1px solid var(--kant);border-radius:var(--radius);padding:.75rem 1rem;margin-top:.4rem;box-shadow:var(--skugga)}.dold-panel-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:.5rem;font-size:.88rem;font-weight:600}.dold-rad{display:flex;align-items:center;justify-content:space-between;padding:.35rem 0;border-top:1px solid var(--kant);font-size:.85rem;gap:.5rem}.dold-rad span{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
