1 2 3 4 5 6 7<!DOCTYPE html> 8<!--[if IE 7]> 9<html class="ie ie7" lang="sv-SE"> 10<![endif]--> 11<!--[if IE 8]> 12<html class="ie ie8" lang="sv-SE"> 13<![endif]--> 14<!--[if !(IE 7) | !(IE 8) ]><!--> 15<html lang="sv-SE"> 16<!--<![endif]--> 17 18<head> 19 20 21 22 <link rel="icon" type="image/png" href="https://webb-tv.nu/webb-tv-nu-favicon.png" /> 23 <!-- Mac tab icon --> 24 <link rel="mask-icon" href="https://webb-tv.nu/wp-content/uploads/2015/05/webb-tv-play-2.png" color="#404040 "> 25 <link href="https://webb-tv.nu/webb-tv-nu-favicon.png" rel="apple-touch-icon" sizes="192x192" /> 26 <meta charset="UTF-8" /> 27 <meta name="viewport" content="width=device-width, initial-scale=1">
28<script nowprocket> 29 window.dataLayer = window.dataLayer || []; 30 function gtag(){dataLayer.push(arguments);} 31 gtag('consent', 'default', { 32 'ad_storage': 'denied', 33 'ad_user_data': 'denied', 34 'ad_personalization': 'denied', 35 'analytics_storage': 'denied', 36 'wait_for_update': 500 37 }); 38 gtag('set', 'ads_data_redaction', true); 39</script>
39 40<!-- Google tag (gtag.js) -->
vendor: 64 bytes, lines 40-41
40 41<script async src="https://www.googletagmanager.com/gtag/js?id=
41G-1B3RL0TXSK
vendor: 12 bytes, line 41
41"></script>
42<script> 43
vendor: 133 bytes, lines 43-46
43window.dataLayer = window.dataLayer || []; 44 function gtag(){dataLayer.push(arguments);} 45 gtag('js', new Date()); 46 gtag('config', '
46G-1B3RL0TXSK
vendor: 4 bytes, line 46
46');
47</script>
47 48 <title>TV6 gratis 2026 â streama serier och film via Pluto TV - Webb-TV.nu</title> 49 <link rel="profile" href="https://gmpg.org/xfn/11" /> 50 51 <meta property="fb:app_id" content="145756005505670" /> 52 53 <!-- <link rel="stylesheet" type="text/css" href="//fonts.googleapis.com/css?family=Open+Sans" /> --> 54 55 56<!-- Sortering --> 57 58 59 60<!-- The SEO Framework by Sybre Waaijer --> 61<meta name="robots" content="max-snippet:-1,max-image-preview:large,max-video-preview:-1" /> 62<link rel="canonical" href="https://webb-tv.nu/tv6-play/" /> 63<meta name="description" content="â TV6:s program streamas gratis pÃ¥ Pluto TV â inget abonnemang behövs. Här hittar du serierna och filmerna du kan se utan kostnad." /> 64<meta property="og:type" content="website" /> 65<meta property="og:locale" content="sv_SE" /> 66<meta property="og:site_name" content="Webb-TV.nu" /> 67<meta property="og:title" content="TV6 gratis 2026 â streama serier och film via Pluto TV" /> 68<meta property="og:description" content="â TV6:s program streamas gratis pÃ¥ Pluto TV â inget abonnemang behövs. Här hittar du serierna och filmerna du kan se utan kostnad." /> 69<meta property="og:url" content="https://webb-tv.nu/tv6-play/" /> 70<meta property="og:image" content="https://webb-tv.nu/wp-content/uploads/2026/04/webbtvnu-og-stream.png" /> 71<meta name="twitter:card" content="summary_large_image" /> 72<meta name="twitter:title" content="TV6 gratis 2026 â streama serier och film via Pluto TV" /> 73<meta name="twitter:description" content="â TV6:s program streamas gratis pÃ¥ Pluto TV â inget abonnemang behövs. Här hittar du serierna och filmerna du kan se utan kostnad." /> 74<meta name="twitter:image" content="https://webb-tv.nu/wp-content/uploads/2026/04/webbtvnu-og-stream.png" />
75<script type="application/ld+json">{"@context":"https://schema.org","@graph":[{"@type":"WebSite","@id":"https://webb-tv.nu/#/schema/WebSite","url":"https://webb-tv.nu/","name":"Webb-TV.nu","description":"Gratis tv och streaming â filmer och serier | Webb-TV.nu","inLanguage":"sv-SE","potentialAction":{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https://webb-tv.nu/search/{search_term_string}/"},"query-input":"required name=search_term_string"},"publisher":{"@type":"Organization","@id":"https://webb-tv.nu/#/schema/Organization","name":"Webb-TV.nu","url":"https://webb-tv.nu/","logo":{"@type":"ImageObject","url":"https://webb-tv.nu/wp-content/uploads/2024/05/webb-tv-nu-1.png","contentUrl":"https://webb-tv.nu/wp-content/uploads/2024/05/webb-tv-nu-1.png","width":512,"height":512,"contentSize":"141305"}}},{"@type":"WebPage","@id":"https://webb-tv.nu/tv6-play/","url":"https://webb-tv.nu/tv6-play/","name":"TV6 gratis 2026 â streama serier och film via Pluto TV - Webb-TV.nu","description":"â TV6:s program streamas gratis pÃ¥ Pluto TV â inget abonnemang behövs. Här hittar du serierna och filmerna du kan se utan kostnad.","inLanguage":"sv-SE","isPartOf":{"@id":"https://webb-tv.nu/#/schema/WebSite"},"breadcrumb":{"@type":"BreadcrumbList","@id":"https://webb-tv.nu/#/schema/BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"item":"https://webb-tv.nu/","name":"Webb-TV.nu"},{"@type":"ListItem","position":2,"name":"TV6 Play - Pluto TV"}]},"potentialAction":{"@type":"ReadAction","target":"https://webb-tv.nu/tv6-play/"}}]}</script>
75 76<!-- / The SEO Framework by Sybre Waaijer | 5.30ms meta | 0.33ms boot --> 77 78<link href='https://fonts.gstatic.com' crossorigin rel='preconnect' /> 79<link rel="alternate" type="application/rss+xml" title="Webb-TV.nu » Webbflöde" href="https://webb-tv.nu/feed/" /> 80<link rel="alternate" type="application/rss+xml" title="Webb-TV.nu » Kommentarsflöde" href="https://webb-tv.nu/comments/feed/" /> 81<link rel="alternate" title="oEmbed (JSON)" type="application/json+oembed" href="https://webb-tv.nu/wp-json/oembed/1.0/embed?url=https%3A%2F%2Fwebb-tv.nu%2Ftv6-play%2F" /> 82<link rel="alternate" title="oEmbed (XML)" type="text/xml+oembed" href="https://webb-tv.nu/wp-json/oembed/1.0/embed?url=https%3A%2F%2Fwebb-tv.nu%2Ftv6-play%2F&format=xml" /> 83<style id="local-favorites-css"> 84/* Local Favorites - Standalone CSS v1.5.0 */ 85 86#wp-favorite-posts-container { 87 padding: 0 20px; 88 margin-top: -30px; 89} 90 91/* DELA & FAVORIT KNAPPAR - GEMENSAM STYLING */ 92.lfav-btn, .wpfp-link, .smart-share-btn{ 93 display:inline-flex !important;align-items:center !important;justify-content:center !important;gap:8px;margin:.3rem 0 1rem 0;padding:.40rem .58rem; 94 border-radius:8px;text-decoration:none;border:1px solid #999;line-height:1.2; font-weight: 900; 95 transition:color .2s ease, border-color .2s ease, opacity .25s ease, background .2s ease;background:transparent;cursor:pointer; 96 min-height:32px;height:auto;vertical-align:middle; 97} 98button.wpfp-link, button.smart-share-btn{background:transparent} 99 100.lfav-btn svg, .wpfp-link svg, .smart-share-btn svg{flex-shrink:0} 101 102.smart-share-btn svg{ 103 width:14px; 104 height:14px; 105} 106 107.lfav-btn:hover, .wpfp-link:hover, .smart-share-btn:hover{ 108 border-color:#666; 109 background:rgba(0,0,0,0.03); 110 transform:translateY(-1px); 111} 112 113.wpfp-link.wpfp-favorited{font-weight:600;border-color:#bbb;color:#c21} 114 115/* Disabled state för utgÃ¥tta program */ 116.wpfp-link:disabled, 117.lfav-heart-btn:disabled{ 118 opacity:0.5; 119 cursor:not-allowed; 120 border-color:#ccc; 121 color:#999; 122 background:#f5f5f5; 123} 124.wpfp-link:disabled:hover, 125.lfav-heart-btn:disabled:hover{ 126 transform:none; 127 background:#f5f5f5; 128 border-color:#ccc; 129} 130 131#sharearea { 132 margin: 0; 133 padding: 0; 134} 135 136#sharearea .share-buttons { 137 display: flex; 138 align-items: center; 139 gap: 15px; 140 list-style: none; 141 /* 43 = 10 px in frÃ¥n hjältebildens kant (temat drar varje li 33 px Ã¥t vänster). 142 Var 37 (= 4 px); +6 efter att "Spara" gjorde raden smalare (Per 8/9). */ 143 margin: 0 0 -20px 43px; 144 padding: 0; 145} 146 147#sharearea .share-buttons li { 148 margin: 0 !important; 149 padding: 0; 150 display: flex; 151 align-items: center; 152 vertical-align: middle; 153} 154 155#wpfp-favorites-client .wpfp-toolbar{ 156 display:flex;gap:.6rem;justify-content:flex-end;margin:0 0 .75rem 0;flex-wrap:wrap 157} 158#wpfp-favorites-client .wpfp-sort-btn{ 159 font-family: "Inter-Regular"; padding:.55rem 1rem;font-size:1rem;border:1px solid #ddd;border-radius:.6rem;background:#fff;cursor:pointer; color: #2d2d2d; 160} 161#wpfp-favorites-client .wpfp-sort-btn.active{border-color:#aaa;font-weight:600} 162@media (max-width: 600px){ 163 #wpfp-favorites-client .wpfp-toolbar{justify-content:center} 164}
164 165 166#wpfp-favorites-client .wpfp-list{ 167 list-style:none;margin:0;padding:0; 168 display:grid; 169 grid-template-columns:repeat(auto-fill,minmax(260px,1fr)); 170 column-gap:1rem; 171 row-gap:.1rem; 172 align-items:stretch; 173 margin-bottom: 72px; 174} 175@media (max-width: 768px){ 176 #wpfp-favorites-client .wpfp-list{ 177 /* ð´ minmax(0,1fr), INTE 1fr (Per 2026-09-18: "det ser ut som att nästa match 178 avgör bredden"). `1fr` betyder `minmax(auto,1fr)`, och auto-minimum är 179 innehÃ¥llets minsta bredd. `.wpfp-nasta` har `white-space:nowrap`, sÃ¥ en lÃ¥ng 180 matchrad â "i morgon 17.50 · DjurgÃ¥rden" â blev kortets GOLVBREDD och tryckte 181 ut sin kolumn. Ellipsen fick aldrig chansen att klippa, eftersom elementet 182 aldrig tvingades bli smalare än texten. Med 0 som minimum fÃ¥r kolumnen krympa 183 och ellipsen träder in. Se även min-width:0 pÃ¥ .wpfp-item nedan â bÃ¥da leden 184 behövs, kolumnen OCH kortet. */ 185 grid-template-columns:repeat(2,minmax(0,1fr)) !important; 186 column-gap:.5rem !important; 187 } 188 #wpfp-favorites-client .wpfp-item{ 189 /* Andra ledet i breddfixen ovan: ett grid-item har ocksÃ¥ `min-width:auto` och 190 vägrar annars krympa under sitt innehÃ¥ll, hur smal kolumnen än blir. */ 191 min-width:0 !important; 192 padding:.5rem !important; 193 gap:.3rem !important; 194 min-height:0 !important; 195 margin:5px 0 !important; 196 } 197 #wpfp-favorites-client .wpfp-thumb{ 198 border-radius:.375rem !important; 199 } 200 #wpfp-favorites-client .wpfp-thumb img{ 201 aspect-ratio: 800 / 420 !important; 202 border-radius:.375rem !important; 203 } 204 #wpfp-favorites-client .wpfp-thumb .wpfp-badge, 205 #wpfp-favorites-client .wpfp-badge{ 206 font-size:10px !important; 207 padding:3px 5px !important; 208 right:3px !important; 209 top:3px !important; 210 background-color: rgba(0, 0, 0, 0.92) !important; 211 opacity:0.85 !important; 212 border-radius:.2rem !important; 213 } 214 /* Mobil: bara storleken. Positionen ärvs frÃ¥n basstilen â lÃ¥g den här inne 215 saknade taggen position:absolute och bredde ut sig över hela kortet 216 (Pers fynd 2026-09-09). */ 217 #wpfp-favorites-client .wpfp-item .wpfp-badge--expiring, 218 #wpfp-favorites-client .wpfp-thumb .wpfp-badge--expiring{ 219 font-size:9px !important; 220 padding:2px 5px !important; 221 max-width:calc(100% - 6px) !important; 222 left:3px !important; 223 right:auto !important; 224 top:auto !important; 225 bottom:3px !important; 226 background-color: rgba(217,119,6,0.95) !important; 227 opacity:1 !important; 228 } 229 #wpfp-favorites-client .wpfp-item-link{ 230 font-size:.85rem !important; 231 line-height:1.3 !important; 232 margin-top:.15rem !important; 233 } 234 #wpfp-favorites-client .wpfp-spacer{ 235 flex:1 1 auto !important; 236 } 237 #wpfp-favorites-client .wpfp-item .wpfp-link.wpfp-remove, 238 #wpfp-favorites-client .wpfp-item button.wpfp-remove{ 239 font-size:.65rem !important; 240 padding:.2rem .4rem !important; 241 margin-top:.2rem !important; 242 margin-bottom:.25rem !important; 243 min-height:auto !important; 244 height:auto !important; 245 } 246} 247 248#wpfp-favorites-client .wpfp-item{ 249 background:#fff; 250 border:1px solid #eee; 251 padding:.75rem; 252 border-radius:.75rem; 253 display:flex;flex-direction:column;gap:.5rem; 254 transition:opacity .25s ease, transform .25s ease, box-shadow .22s ease, border-color .22s ease; 255 min-height:280px; 256 margin:10px 0; 257 position:relative; 258} 259 260#wpfp-favorites-client .wpfp-item.lfav-removing{opacity:0; transform: translateY(4px);} 261 262#wpfp-favorites-client .wpfp-thumb{ 263 position:relative; display:block; 264 border-radius:.75rem; 265 overflow:hidden; 266} 267#wpfp-favorites-client .wpfp-thumb img{ 268 width:100%; height:auto; display:block; 269 border-radius:.75rem; 270 background:#fafafa; 271 aspect-ratio: 80 / 42; 272 object-fit:cover; object-position:center; 273} 274 275#wpfp-favorites-client .wpfp-item-link{font-weight:600;text-decoration:none;margin-top:.25rem;color:#333} 276#wpfp-favorites-client .wpfp-item-link:hover{color:#111} 277#wpfp-favorites-client .wpfp-spacer{flex:1 1 auto} 278#wpfp-favorites-client .wpfp-remove{align-self:center;margin-top:.25rem} 279 280.wpfp-count.lfav-count-badge{ 281 display:inline-flex!important;align-items:center;justify-content:center; 282 width:2.25rem;height:2.25rem;border-radius:9999px; 283 border:2px solid rgba(255,255,255,.9);background:transparent; 284 color:#fff;font-weight:600;line-height:1;text-align:center; 285 box-shadow:0 0 0 1px rgba(0,0,0,.14),0 0 0 1px rgba(255,255,255,.06) inset; 286} 287@media (max-width:600px){ 288 .wpfp-count.lfav-count-badge{ width:1.6rem; height:1.6rem; font-size:.8rem; border-width:2px; } 289} 290 291#sharearea .wpfp-link{ 292 position:relative; z-index:1; isolation:isolate; 293} 294#sharearea .wpfp-link::before{ 295 content:""; position:absolute; inset:0; z-index:2; 296} 297 298ul.wpfp-list{ overflow: visible; } 299 300ul.wpfp-list > li.wpfp-item{ 301 background:#fff; 302 border:1px solid #eee; 303 border-radius:.75rem; 304 will-change: transform, box-shadow; 305} 306 307@media (hover:hover) and (pointer:fine){ 308 ul.wpfp-list > li.wpfp-item:hover{ 309 transform: translateY(-2px); 310 box-shadow: 0 6px 16px rgba(0,0,0,.10), 0 2px 6px rgba(0,0,0,.04); 311 border-color:#e8e8e8; 312 z-index:2; 313 } 314} 315@supports(selector(:has(*))){ 316 @media (hover:hover) and (pointer:fine){ 317 ul.wpfp-list > li.wpfp-item:has(:hover){ 318 transform: translateY(-2px); 319 box-shadow: 0 6px 16px rgba(0,0,0,.10), 0 2px 6px rgba(0,0,0,.04); 320 border-color:#e8e8e8; 321 z-index:2; 322 } 323 } 324} 325ul.wpfp-list > li.wpfp-item:active, 326ul.wpfp-list > li.wpfp-item:focus-within{ 327 transform: translateY(-1px); 328 box-shadow: 0 5px 12px rgba(0,0,0,.09), 0 1px 4px rgba(0,0,0,.03); 329 border-color:#e8e8e8; 330 z-index:2; 331} 332 333.wpfp-thumb img{ transition: transform .22s ease; } 334ul.wpfp-list > li.wpfp-item:hover .wpfp-thumb img, 335ul.wpfp-list > li.wpfp-item:active .wpfp-thumb img, 336ul.wpfp-list > li.wpfp-item:focus-within .wpfp-thumb img{ 337 transform: scale(1.005); 338} 339 340.wpfp-ptag{ display:none !important; } 341 342.wpfp-badge{ 343 position:absolute; 344 right:5px; top:5px; 345 z-index:200; 346 padding:4px 8px; 347 font-size:16px !important; 348 font-family:"Inter-Regular", sans-serif; 349 color:#FFFFFF !important; 350 background-color: rgba(0, 0, 0, 0.831373); 351 opacity:0.7; 352 border-radius:.3rem; 353 line-height:1; 354 pointer-events:none; 355 white-space:nowrap; 356} 357 358#wpfp-favorites-client .wpfp-item .wpfp-badge--sport, 359#wpfp-favorites-client .wpfp-thumb .wpfp-badge--sport, 360#wpfp-favorites-client .wpfp-badge--sport, 361.wpfp-badge--sport{ 362 /* Husets BETALPROGRAM-färg: samma som .badge-betalprogram pÃ¥ /kommande-program/
363 och i news-pluginets veckans-tv.css. Var #0b74de â klarblÃ¥, alltsÃ¥ en av fem 364 blÃ¥ pÃ¥ ytan, och en betalspärr är inte en sorts nyhet utan ett villkor; den 365 ska inte tävla med typbanden om uppmärksamheten. 366 367 ð´ PLOMMON SEDAN 2026-09-15 (Pers val). Den svarta den ersätter lÃ¥g 6,9 frÃ¥n 368 "Direkt, kommande" pÃ¥ /kommande-program/ â tvÃ¥ besked, en nyans. Hela familjen 369 bytte samma dag; ändras nyansen här mÃ¥ste de andra tvÃ¥ följa med, annars säger 370 ytorna olika saker om samma program. 371 â ï¸ opacity:0.9 ligger OVANPà alfan: .92 à .9 = .828, vilket ger komposit 372 (135,58,95) och kontrast 7,50 mot vit text. Fortfarande över WCAG:s 4,5, men 373 räkna om om opaciteten nÃ¥gonsin ändras. */ 374 background-color:rgba(138,45,90,.92) !important; 375 opacity:0.9 !important; 376 /* ð´ UPPE TILL HÃGER, som alla andra brickor (Per 2026-09-15: "varför kan de inte 377 sitta uppe till höger, är det pga live?"). Nej â den lÃ¥g nere av försiktighet mot 378 en krock med typbanden, och den krocken är omöjlig i datan: 379 Kommer snart / premiär / Nytt avsnitt / Ny idag kräver online = 1 380 Betalprogram kräver online = 0 381 Betalprogram Sport är online = 2 382 Ett kort kan alltsÃ¥ aldrig bära bÃ¥de ett typband och en betalbricka. Nedre 383 vänstra hörnet är kvar Ã¥t --expiring, som är en VARNING och hör till en annan 384 familj än villkoret att nÃ¥got kostar. 385 𪤠Ãndras online-villkoren i PHP:n nedan mÃ¥ste slutsatsen räknas om, annars kan 386 tvÃ¥ brickor lägga sig över varandra utan att det syns förrän pÃ¥ en skärmdump. 387 𪤠INGA APOSTROFER I DET HÃR BLOCKET. Hela CSS:en ligger i en enkelciterad 388 PHP-sträng som börjar med echo pÃ¥ rad 27; en apostrof stänger strängen och 389 filen slutar parsa. Kostade en trasig deploy 2026-09-15. */ 390 /* ð´ 11 PX, INTE BASSTILENS 16 (Per 2026-09-15: "vi maste ha mindre typsnitt pa 391 Betalprogram badgen"). Matt i blocket: --premiar, --nyttavsnitt, --nyidag och 392 --tid ligger alla pa 11, --soon och --expiring pa 12. --sport och --betal var de 393 ENDA som arvde basens 16 och stack darfor ut i samma horn som de andra. 394 𪤠Padding foljer med: 16 px med 4/8 och 11 px med 3/7 ger olika brickhojd, sa 395 byts bara teckengraden blir plattan fortfarande for hog. */ 396 font-size:13px !important; 397 padding:3px 7px !important; 398 /* ð´ FYRA SELEKTORER OCH !important â ANNARS VINNER MOBILREGELN. @media 399 (max-width:768px) satter `#wpfp-favorites-client .wpfp-badge` till SVART med 400 !important, alltsa (1,1,0) mot min (0,1,0): badgen blev plommon pa skarmen men 401 svart i telefonen, och den skillnaden syns inte forran nagon tittar i mobil 402 (Pers fynd 2026-09-15: "det ar fortfarande mork bakgrund i mobilen"). 403 Typbanden overlever dar just for att DE bar ID + tva klasser; --sport och 404 --betal gjorde inte det. Kopiera selektorformen nar en ny bricka laggs till. 405 ð´ 13 PX, INTE 11. Elvan blev 10 i mobil av samma regel, och Per: "det blev 406 lite smatt". Familjen ligger pa 11 â vill man ha allt storre maste de bytas 407 tillsammans, annars sticker en ut igen. */ 408 409 /* ð´ SAMMA BREDDSKYDD SOM RESTEN AV FAMILJEN. --premiar och --nyidag bar bada 410 max-width plus white-space:normal; --sport och --betal saknade dem. Basstilen 411 har white-space:nowrap, sa en lang etikett kan varken brytas eller kapas â den 412 vaxer bara ut over kortkanten. 413 Rakning 2026-09-15: "Betalprogram Sport" vid 13 px blir ~136 px. Ett kort i 414 tvakolumnsrutnatet ar ~170 px pa en 375-skarm men ~142 px pa en 320-skarm, sa 415 marginalen tog slut pa de smalaste telefonerna. 416 𪤠De fyra hanger ihop. Bara max-width utan white-space:normal ger avhuggen 417 text i stallet for overflod â skyddet blir da en annan sorts fel. 418 𪤠MAT INTE CSS-REGLER GENOM ATT SOKA EFTER RADBRYTNING PLUS KLAMMER. Regelns 419 avslutande klammer ar indragen har, sa slicen svalde 3 245 tecken och tre 420 foljande regler; bade ett JA och ett NEJ gick att fa ur samma fil beroende 421 pa var man tittade. Rakna klamrar. */
422 max-width:calc(100% - 10px); 423 white-space:normal; 424 line-height:1.15; 425 text-align:right; 426} 427 428#wpfp-favorites-client p { 429 margin: 0; 430 color: #666; 431 text-align: center; 432} 433 434.lfav-heart-btn { 435 background: transparent !important; 436 border: none; 437 cursor: pointer; 438 padding: 0; 439 font-size: 0; 440 line-height: 1; 441 outline: none; 442} 443.lfav-heart-btn:hover, 444.lfav-heart-btn:focus, 445.lfav-heart-btn:active { 446 background: transparent !important; 447 outline: none; 448} 449/* ð´ HJÃRTANA RITAS UR FONT AWESOME 5, INTE UR UNICODE (2026-09-13). 450 Pers fynd: "hjärtana i inläggen är konstiga ... den variant som är i 451 menybaren är bäst" â och menybarens hjärta ÃR en FA-ikon (i.fa.fa-heart, 452 pekad till FA5 av mu-pluginet fontawesome-4-till-5.php). 453 454 Vad som hände: Inter subsattes 11/9 (KiteTheme style.css, commit 488201b) 455 mot KATALOGENS tecken â programnamn och ingresser. Hjärtan finns inte där, 456 sÃ¥ glyferna föll ur fonten och varje tecken hamnade hos sin egen reservfont. 457 Mätt i webbläsare 13/9 med color:#111 pÃ¥ alla tre tecken sajten använde: 458 \2661, \2665 och \2764 kom ur TRE olika typsnitt med tre olika formsprÃ¥k. 459 460 𪤠\2764 (som Spara-knappen använde) är ett EMOJI-tecken. PÃ¥ macOS ritar 461 Apple Color Emoji sitt eget blanka röda hjärta och struntar i CSS-färgen. 462 Det gick alltsÃ¥ inte att färgsätta ens i teorin. 463 464 Varför FA är rätt över PLATTFORMAR (Pers frÃ¥ga): glyferna ligger i den 465 .woff2 webbläsaren laddar ner, sÃ¥ iOS/Android/macOS/Windows fÃ¥r identiska 466 vektorer. \f004 ligger dessutom i Unicodes privata användningsomrÃ¥de 467 (U+E000âU+F8FF) â inget OS har nÃ¥gon Ã¥sikt om den koden, till skillnad 468 frÃ¥n ⥠och â¤. Mätt 13/9: bÃ¥de vikt 400 och 900 svarar HTTP 200 ur 469 UberMenus mapp, bÃ¥da deklarerade i samma all.min.css som redan laddas pÃ¥ 470 varje sida. Noll extra kilobyte. 471 472 𪤠font-family Mà STE stÃ¥ pÃ¥ ::before-regeln â ärvs knappens font blir det 473 tofu. Och vikten är inte kosmetik: 400 = kontur, 900 = fylld, SAMMA glyf. */ 474.lfav-heart-btn::before, 475.lfav-btn::after { 476 font-family: "Font Awesome 5 Free"; 477 font-style: normal; 478 -webkit-font-smoothing: antialiased; 479} 480.lfav-heart-btn[aria-pressed="false"]::before { 481 content: "\f004"; 482 font-weight: 400; 483 color: #333; 484 font-size: 20px; 485} 486.lfav-heart-btn[aria-pressed="true"]::before { 487 content: "\f004"; 488 font-weight: 900; 489 color: #e63946; 490 font-size: 20px; 491} 492.lfav-heart-btn:disabled::before { 493 content: "\f004"; 494 font-weight: 400; 495 color: #ccc; 496 font-size: 20px; 497} 498 499/* Spara/Sparad-knappen (textknappen). Hjärtat lÃ¥g förut i JS som ett 500 textprefix (HEART_EMPTY/HEART_FULL) och skrevs in i textContent. Det 501 flyttades hit 13/9 av tvÃ¥ skäl: (1) ett textprefix kan inte välja font 502 per tecken, (2) setToggleState jämför textContent för att undvika 503 MutationObserver-loopen som Ã¥t klicken i v1.5.2 â ju mindre som skrivs 504 där, desto tryggare. aria-pressed underhÃ¥lls redan av samma funktion. 505 506 ð´ HÃR ANVÃNDS ::after, INTE ::before â OCH DET ÃR INTE GODTYCKLIGT. 507 Temat har redan tagit ::before pÃ¥ just den här knappen: 508 509 #sharearea .wpfp-link::before { content:""; position:absolute; 510 inset:0; z-index:2 } 511 512 Det är en osynlig klickyta som täcker hela knappen. ID-selektorn ger den 513 specificitet (1,1,0) mot vÃ¥r (0,1,0), sÃ¥ temats tomma content vinner â 514 men bara pÃ¥ content. font-family och font-weight frÃ¥n vÃ¥r regel gick 515 igenom, vilket gav det förvirrande utfallet: rätt font, rätt vikt, 516 inget tecken. 517 Mätt 13/9 via DevTools-protokollet (CSS.getMatchedStylesForNode), efter 518 att en ren CSS-avläsning först pekat fel: sträng-avläsning av `content` 519 ljuger, eftersom \f004 ligger i privata användningsomrÃ¥det och är osynlig 520 i utskriften. Det som avslöjade felet var LÃNGDEN â 2 tecken ("") pÃ¥ 521 Spara mot 3 ("â¥") pÃ¥ Rekommendera. 522 𪤠Kapa aldrig temats ::before här för att fÃ¥ plats med ikonen; överlägget 523 bär knappens klickyta. ::after var ledigt (noll matchande regler i samma 524 mätning) och knappen är display:flex, sÃ¥ order:-1 lägger ikonen först. 525 AvstÃ¥ndet kommer frÃ¥n knappens egen gap:8px â ingen margin behövs. */ 526.lfav-btn::after { 527 content: "\f004"; 528 font-weight: 400; 529 order: -1; 530} 531.lfav-btn[aria-pressed="true"]::after { 532 font-weight: 900; 533 color: #e63946; 534} 535 536#wpfp-favorites-client .lfav-placeholder{ 537 display:flex;align-items:center;justify-content:center; 538 min-height:120px;padding:16px; 539 border:1px solid rgba(0,0,0,.08);border-radius:12px; 540 text-align:center 541} 542#wpfp-favorites-client .lfav-box{ 543 display:flex;flex-direction:column;align-items:center;gap:10px 544} 545#wpfp-favorites-client .lfav-spinner{ 546 width:40px;height:40px;border:3px solid #f3f3f3; 547 border-top-color:#555;border-radius:50%; 548 animation:lfav-spin 0.8s linear infinite 549} 550@keyframes lfav-spin{ to{transform:rotate(360deg);} } 551@keyframes lfav-pulse-zoom{0%{transform:scale(1);}20%{transform:scale(1.15);}40%{transform:scale(1);}60%{transform:scale(1.15);}80%{transform:scale(1);}100%{transform:scale(1);}}.wpfp-count.lfav-pulse{animation:lfav-pulse-zoom 1.0s ease-out var(--lfav-pulse-iter,2);} 552 553/* Backup Section */ 554.lfav-backup-section{ 555 margin-top:40px; 556 padding:16px 20px; 557 background:#f9fafb; 558 border:1px solid #e5e7eb; 559 border-radius:8px; 560}
561.lfav-backup-header{ 562 display:flex; 563 align-items:center; 564 justify-content:center; 565 cursor:pointer; 566 user-select:none; 567 position:relative; 568} 569.lfav-backup-header:hover{ 570 opacity:0.8; 571} 572.lfav-backup-title{ 573 display:flex; 574 align-items:center; 575 gap:8px; 576 font-size:0.95rem; 577 font-weight:600; 578 color:#111827; 579} 580.lfav-backup-arrow{ 581 transition:transform 0.2s; 582 color:#6b7280; 583 font-size:1.2rem; 584 position:absolute; 585 right:0; 586} 587.lfav-backup-section.expanded .lfav-backup-arrow{ 588 transform:rotate(180deg); 589} 590.lfav-backup-content{ 591 max-height:0; 592 overflow:hidden; 593 transition:max-height 0.3s ease-out; 594 padding-top:4px; 595} 596.lfav-backup-section.expanded .lfav-backup-content{ 597 max-height:200px; 598} 599.lfav-backup-text{ 600 margin:28px 0 28px 0 !important; 601 padding:8px 0 !important; 602 font-size:0.85rem; 603 color:#6b7280; 604 line-height:1.5; 605} 606.lfav-backup-buttons{ 607 display:flex; 608 gap:12px; 609 flex-wrap:wrap; 610} 611.lfav-backup-btn{ 612 padding:8px 16px; 613 border:1px solid #d1d5db; 614 border-radius:6px; 615 background:#fff; 616 color:#374151; 617 font-size:0.85rem; 618 font-weight:500; 619 cursor:pointer; 620 transition:all 0.2s; 621 display:inline-flex; 622 align-items:center; 623 gap:6px; 624} 625.lfav-backup-btn:hover{ 626 background:#f9fafb; 627 border-color:#9ca3af; 628} 629.lfav-backup-btn:active{ 630 transform:translateY(1px); 631} 632.lfav-backup-btn.hidden{ 633 display:none; 634} 635.lfav-backup-file-input{ 636 display:none; 637} 638@media(max-width:600px){ 639 .lfav-backup-section{ 640 padding:12px 16px; 641 margin-top:30px; 642 } 643 .lfav-backup-title{ 644 font-size:0.9rem; 645 } 646 .lfav-backup-content{ 647 padding-top:8px !important; 648 } 649 .lfav-backup-text{ 650 font-size:0.8rem; 651 margin:24px 0 24px 0 !important; 652 padding:8px 0 !important; 653 } 654 .lfav-backup-buttons{ 655 padding-top:4px !important; 656 } 657 .lfav-backup-btn{ 658 font-size:0.8rem; 659 padding:7px 14px; 660 } 661} 662/* FörstagÃ¥ngs-toast vid Spara â speglar Rekommenderas .wbtv-toast (Per 8/9) */ 663.lfav-toast{position:fixed;top:20px;left:50%;transform:translateX(-50%) translateY(-100px);background:#5cb85c;color:#fff;padding:12px 24px;border-radius:8px;font-size:14px;z-index:99999;opacity:0;transition:transform .3s ease,opacity .3s ease;max-width:90vw;text-align:center;box-shadow:0 4px 12px rgba(0,0,0,.3);} 664.lfav-toast.lfav-toast--visible{transform:translateX(-50%) translateY(0);opacity:1;} 665 666</style><style id="lfav-tagg-stilar">/* UtgÃ¥ngstaggen: samma absoluta position som övriga badgar, men nere till 667 vänster sÃ¥ den inte krockar med "Kommer snart". max-width hindrar att en 668 lÃ¥ng text ("Sista dagen pÃ¥ torsdag") breder ut sig över kortet. */ 669#wpfp-favorites-client .wpfp-badge--expiring, 670.wpfp-badge--expiring{ 671 left:5px !important; 672 right:auto !important; 673 top:auto !important; 674 bottom:5px !important; 675 background-color: rgba(217,119,6,0.95) !important; 676 opacity:1 !important; 677 display:inline-flex !important; 678 align-items:center; 679 gap:4px; 680 max-width:calc(100% - 10px); 681 font-size:12px !important; 682 white-space:normal; 683 line-height:1.15; 684 text-align:left; 685} 686.wpfp-badge--expiring .wdtv-klocka{ flex:0 0 auto; } 687/* LÃ¥ng text pÃ¥ stora skärmar, kort pÃ¥ smÃ¥ â samma innebörd, plats för bÃ¥da. */ 688#wpfp-favorites-client .wpfp-badge--expiring .lfav-kort{ display:none !important; } 689/* Samma text i mobil som pÃ¥ desktop â korten är fullbreda och rymmer den. */ 690/* Ny säsong / Tillbaka / Ny serie â uppe till höger, motsatt hörn mot 691 utgÃ¥ngstaggen sÃ¥ de aldrig krockar. GrÃ¥-blÃ¥ = husets färg för ny säsong 692 (webbens kommande-mall). Lugnare än utgÃ¥ngens bärnsten: det här är ett 693 löfte, inte en deadline. 694 𪤠"Kommer snart" (blÃ¥) gäller program som ännu inte släppts; den här gäller 695 serier som REDAN ligger online. Samma kort kan därför aldrig bära bÃ¥da. */ 696/* FALLBACK-FÃRGEN ÃR GRÃN (2026-09-14), inte stÃ¥lblÃ¥. Klassen bär numera bara 697 de fall där typen saknas â Ny serie/Tillbaka/Ny säsong har egna klasser sedan 698 husnormen infördes. StÃ¥lblÃ¥ betydde alltsÃ¥ "Ny säsong" OCH "vet inte", tvÃ¥ 699 saker i samma färg. Husets svar pÃ¥ precis det fallet stÃ¥r i news-
699pluginets 700 veckans-tv.css (.badge-premiere, v0.11.47): lila reserveras för Ny serie och 701 fallbacken är grön. */ 702#wpfp-favorites-client .wpfp-item .wpfp-badge--premiar, 703#wpfp-favorites-client .wpfp-thumb .wpfp-badge--premiar, 704#wpfp-favorites-client .wpfp-badge--premiar, 705.wpfp-badge--premiar{ 706 background-color: rgba(42,193,92,.9) !important; 707 opacity:1 !important; 708 font-size:11px !important; 709 padding:3px 7px !important; 710 max-width:calc(100% - 10px); 711 white-space:normal; 712 line-height:1.15; 713 text-align:right; 714} 715 716/* HUSNORM: TRE BESKED, TRE FÃRGER (Per 2026-09-14: "ska vi köra husets över 717 hela linjen?"). .wpfp-badge--premiar bar ALLA TRE i samma stÃ¥lblÃ¥, sÃ¥ ett 718 program som är ny serie sÃ¥g ut som en ny säsong när man kom hit frÃ¥n 719 startsidan. Färgerna är /kommande-program/:s och Veckans TV:s â de enda ytor 720 som uttryckte ett val för alla tre innan dess. 721 𪤠Klassen läggs TILL .wpfp-badge--premiar, som därför behÃ¥ller sin stÃ¥lblÃ¥ som 722 fallback. Ett AJAX-svar utan premiarTyp (cachat frÃ¥n före ändringen) fÃ¥r 723 alltsÃ¥ exakt det gamla utseendet i stället för att tappa färg. 724 𪤠Opaciteten .9 ger 4,86â5,09 mot den vita badgetexten. Sänk den inte. */ 725#wpfp-favorites-client .wpfp-item .wpfp-badge--nyserie, 726#wpfp-favorites-client .wpfp-thumb .wpfp-badge--nyserie, 727.wpfp-badge--nyserie{ background-color: rgba(103,81,188,.9) !important; } 728 729#wpfp-favorites-client .wpfp-item .wpfp-badge--tillbaka, 730#wpfp-favorites-client .wpfp-thumb .wpfp-badge--tillbaka, 731.wpfp-badge--tillbaka{ background-color: rgba(43,98,177,.9) !important; } 732 733#wpfp-favorites-client .wpfp-item .wpfp-badge--nysasong, 734#wpfp-favorites-client .wpfp-thumb .wpfp-badge--nysasong, 735.wpfp-badge--nysasong{ background-color: rgba(63,106,148,.9) !important; } 736 737/* "Nytt avsnitt" (2026-09-13). Samma gröna som badgen bär pÃ¥ 738 /kommande-program/ (page-kommande-program-ny.php) och sex andra mallar: 739 rgba(42,193,92,.9) â Pers uttryckliga val, för enhetlighet med den 740 etablerade identiteten över hela sajten. (Ett förslag med opakt #1D8640, 741 den ljusaste gröna som klarar WCAG 4,6:1 mot vit text, gjordes och avvisades 742 â samma kontrastproblem, 2,12, finns redan pÃ¥ alla sju äldre mallarna, och 743 Per vill lösa det som ETT helhetsjobb sen, inte punktvis här. Se 744 feedback_nytt_avsnitt_kontrast_sjuk_mallar.md.) 745 Aldrig samma kort som .wpfp-badge--premiar (PHP:n gör dem ömsesidigt 746 uteslutande), men delar ändÃ¥ dess mÃ¥tt för visuell konsekvens i samma hörn. */ 747#wpfp-favorites-client .wpfp-item .wpfp-badge--nyttavsnitt, 748#wpfp-favorites-client .wpfp-thumb .wpfp-badge--nyttavsnitt, 749#wpfp-favorites-client .wpfp-badge--nyttavsnitt, 750.wpfp-badge--nyttavsnitt{ 751 /* TEAL, INTE GRÃNT (Per 2026-09-14: "mörkare Nytt avsnitt"). Brickan hade 752 exakt samma rgba(42,193,92,.9) som .wpfp-badge--nyidag intill, sÃ¥ de tvÃ¥ 753 gick bara att skilja pÃ¥ texten â och pÃ¥ ett kort som bär bÃ¥da sorternas 754 syskon i samma hörn är det för lite. Samma teal som startsidans 755 .card-badge-teal (grid-start.php), sÃ¥ avsnittsbrickan ser likadan ut pÃ¥ 756 bÃ¥da ytorna. Grönt är därmed reserverat för "Ny idag". */ 757 background-color: rgba(25,120,105,.95) !important; 758 opacity:1 !important; 759 font-size:11px !important; 760 padding:3px 7px !important; 761 max-width:calc(100% - 10px); 762 white-space:normal; 763 line-height:1.15; 764 text-align:right; 765} 766 767/* "Ny idag" (2026-09-13) â sista länken i samma kedja, se PHP:n. Samma gröna 768 och samma mÃ¥tt som .wpfp-badge--nyttavsnitt av samma skäl: aldrig samma 769 kort (PHP:ns isset-kontroll gör dem ömsesidigt uteslutande), men delar 770 hörn och identitet med hela "nytt/idag"-familjen. */ 771/* KLOCKSLAG I DAG (2026-09-14). Ersätter "Ny idag" när programmet har en 772 bestämd sändningstid â "Ny idag" pÃ¥ nÃ¥got som inte gÃ¥r att se förrän 21.45 är 773 inte sant. Husets mörkblÃ¥ för tidsangivelser, samma som startsidans 774 .card-badge-dark-blue; grönt bär "det här är nytt", inte "det här börjar dÃ¥". 775 𪤠Badgen är ömsesidigt utesluten med --nyidag i JS:en, aldrig bÃ¥da pÃ¥ ett kort. */ 776#wpfp-favorites-client .wpfp-item .wpfp-badge--tid, 777#wpfp-favorites-client .wpfp-thumb .wpfp-badge--tid, 778#wpfp-favorites-client .wpfp-badge--tid, 779.wpfp-badge--tid{ 780 background-color: rgba(0,51,102,.85) !important; 781 opacity:1 !important; 782 font-size:11px !important; 783 padding:3px 7px !important;
784 max-width:calc(100% - 10px); 785 white-space:normal; 786 line-height:1.15; 787 text-align:right; 788} 789 790#wpfp-favorites-client .wpfp-item .wpfp-badge--nyidag, 791#wpfp-favorites-client .wpfp-thumb .wpfp-badge--nyidag, 792#wpfp-favorites-client .wpfp-badge--nyidag, 793.wpfp-badge--nyidag{ 794 background-color: rgba(42,193,92,.9) !important; 795 opacity:1 !important; 796 font-size:11px !important; 797 padding:3px 7px !important; 798 max-width:calc(100% - 10px); 799 white-space:normal; 800 line-height:1.15; 801 text-align:right; 802} 803 804/* ð´ SAMMA MARKERINGAR RITAS Pà TVà STÃLLEN. Den här filen ritar korten pÃ¥ 805 /favoriter/ med .wpfp-badge; STARTSIDANS "Mina favoriter"-block ritar egna 806 kort i `toptopnewest42.php` (WP-roten) med .mf-badge, och de delar bara 807 AJAX-anropet lfav_resolve. Ãndras en markering här mÃ¥ste den ändras DÃR 808 ocksÃ¥ â annars ser samma favorit olika ut pÃ¥ de tvÃ¥ ytorna (Pers fynd 809 2026-09-09: "Kommer snart är blÃ¥tt pÃ¥ favoriter men sÃ¥ här pÃ¥ startsidan"). 810 Serverns fält (expiringText, premiarText, utgatt, platform) gÃ¥r till bÃ¥da. */ 811 812/* "Kommer snart" i blÃ¥tt â ett löfte om nÃ¥got som kommer, inte en varning. 813 𪤠DÃMPNINGEN SITTER I BAKGRUNDENS ALFA, INTE I `opacity` (Pers frÃ¥ga 814 2026-09-09: "ska vi bara köra lite opacity?"). `opacity` tonar HELA taggen, 815 alltsÃ¥ även den vita texten, och det är kontrasten mot bakgrunden som bär 816 läsbarheten för husets mÃ¥lgrupp. Alfa i background-color dämpar bara plattan; 817 texten stÃ¥r kvar i rent vitt. Basstilen `.wpfp-badge` har opacity:0.7 och 818 därför mÃ¥ste 1:an stÃ¥ kvar här. 819 Storleken: basstilen är 16 px, vilket gjorde "Kommer snart" märkbart större 820 än premiärtaggens 11 px pÃ¥ samma kort (Pers fynd samma dag). 12 px lägger 821 den nära syskonet utan att bli smÃ¥text. */ 822#wpfp-favorites-client .wpfp-item .wpfp-badge--soon, 823#wpfp-favorites-client .wpfp-thumb .wpfp-badge--soon, 824#wpfp-favorites-client .wpfp-badge--soon, 825.wpfp-badge--soon{ 826 /* Husets KOMMANDE-blÃ¥ (2026-09-14), samma som .badge-kommande i news-pluginets 827 veckans-tv.css. LÃ¥g förut pÃ¥ rgba(37,99,235,.82) â en femte blÃ¥ pÃ¥ en yta som 828 redan hade fyra, och den ljusaste av dem trots att beskedet är det dovaste. */ 829 background-color: rgba(44,91,135,.92) !important; 830 opacity:1 !important; 831} 832/* 𪤠STORLEKEN BARA Pà DESKTOP. Mobilblocket längre upp sätter alla taggar till 833 10 px, men det ligger TIDIGARE i filen â en oskyddad `font-size` här hade 834 vunnit pÃ¥ källordningen och gjort "Kommer snart" 12 px även i mobil, där 835 syskonen är 10 och utgÃ¥ngstaggen 9. Granskning 2026-09-09. */ 836@media (min-width: 769px){ 837 #wpfp-favorites-client .wpfp-item .wpfp-badge--soon, 838 #wpfp-favorites-client .wpfp-thumb .wpfp-badge--soon, 839 #wpfp-favorites-client .wpfp-badge--soon, 840 .wpfp-badge--soon{ 841 font-size:12px !important; 842 padding:3px 7px !important; 843 } 844} 845/* UtgÃ¥nget program: kortet tonas ner. Hjärtknappen hade redan en dämpad 846 disabled-stil (kategorin _utgÃ¥tt), men själva kortet sÃ¥g opÃ¥verkat ut â en 847 favorit man inte längre kan se skulle alltsÃ¥ se lika inbjudande ut som en 848 spelbar (Pers fynd 2026-09-09). Kortet förblir KLICKBART: sidan finns kvar 849 och berättar vad som hänt. */ 850#wpfp-favorites-client .wpfp-item--utgatt .wpfp-thumb img{ 851 filter:grayscale(1); 852 opacity:0.55; 853} 854#wpfp-favorites-client .wpfp-item--utgatt .wpfp-item-link, 855#wpfp-favorites-client .wpfp-item--utgatt .wpfp-platform{ 856 color:#9ca3af !important; 857} 858.wpfp-nasta{font-size:.85rem;line-height:1.3;color:#5c5c5c;margin-top:2px; 859 white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block} 860 861/* ââ BETAL: finns att se, men kostar (Per 2026-09-15) ââââââââââââââââââââââââ 862 Motsatsen till --utgatt: bilden grÃ¥as INTE och titeln behÃ¥ller sin färg, för 863 programmet gÃ¥r att se i dag. Bara plattformsraden markeras, i samma plommon 864 som "Betalprogram"-badgen pÃ¥ korten â en färg, ett besked, hela sajten igenom. 865 𪤠GRà SKALA HADE VARIT FEL SIGNAL. UtgÃ¥nget och betalt ser likadant ut för 866 ögat men betyder motsatta saker: det ena gÃ¥r inte att se, det andra gör det. 867 Det var precis den förväxlingen Per fick när Trion stod "SkyShowtime · UtgÃ¥tt". */ 868#wpfp-favorites-client .wpfp-item--betal .wpfp-platform{ 869 color:rgb(138,45,90) !important; 870 font-weight:600; 871} 872 873/* Brickan delar plommon med .wpfp-badge--sport ovanför â samma besked ska ha samma 874 färg oavsett om det är en match eller en serie. 𪤠opacity 0.9 ligger OVANPà 875 alfan (.92 à .9 = .828); rör inte den om kontrasten ska hÃ¥lla. */ 876#wpfp-favorites-client .wpfp-item .wpfp-badge--betal, 877#wpfp-favorites-client .wpfp-thumb .wpfp-badge--betal, 878#wpfp-favorites-client .wpfp-badge--betal, 879.wpfp-badge--betal{ 880 background-color:rgba(138,45,90,.92) !important; 881 opacity:0.9 !important; 882 /* ð´ 11 PX, INTE BASSTILENS 16 (Per 2026-09-15: "vi maste ha mindre typsnitt pa 883 Betalprogram badgen"). Matt i blocket: --premiar, --nyttavsnitt, --nyidag och 884 --tid ligger alla pa 11, --soon och --expiring pa 12. --sport och --betal var de
885 ENDA som arvde basens 16 och stack darfor ut i samma horn som de andra. 886 𪤠Padding foljer med: 16 px med 4/8 och 11 px med 3/7 ger olika brickhojd, sa 887 byts bara teckengraden blir plattan fortfarande for hog. */ 888 font-size:13px !important; 889 padding:3px 7px !important; 890 891 /* ð´ SAMMA BREDDSKYDD SOM RESTEN AV FAMILJEN. --premiar och --nyidag bar bada 892 max-width plus white-space:normal; --sport och --betal saknade dem. Basstilen 893 har white-space:nowrap, sa en lang etikett kan varken brytas eller kapas â den 894 vaxer bara ut over kortkanten. 895 Rakning 2026-09-15: "Betalprogram Sport" vid 13 px blir ~136 px. Ett kort i 896 tvakolumnsrutnatet ar ~170 px pa en 375-skarm men ~142 px pa en 320-skarm, sa 897 marginalen tog slut pa de smalaste telefonerna. 898 𪤠De fyra hanger ihop. Bara max-width utan white-space:normal ger avhuggen 899 text i stallet for overflod â skyddet blir da en annan sorts fel. 900 𪤠MAT INTE CSS-REGLER GENOM ATT SOKA EFTER RADBRYTNING PLUS KLAMMER. Regelns 901 avslutande klammer ar indragen har, sa slicen svalde 3 245 tecken och tre 902 foljande regler; bade ett JA och ett NEJ gick att fa ur samma fil beroende 903 pa var man tittade. Rakna klamrar. */ 904 max-width:calc(100% - 10px); 905 white-space:normal; 906 line-height:1.15; 907 text-align:right; 908} 909 910/* Plattformen bär information men ska inte konkurrera med titeln. */ 911.wpfp-platform{ 912 display:block; 913 font-size:.72rem; 914 line-height:1.2; 915 color:#6b7280; 916 margin-top:2px; 917} 918/* Ingen egen stil pa "Ta bort" â den delar knappsprak med Sparad, Rekommendera 919 och Dela via .wpfp-link (inramad, radius 8, fetstil). En dampad variant BARA 920 har brot systemet (Pers fynd 2026-09-09). Andras formen hor det hemma i den 921 delade regeln, som ett eget beslut. */ 922</style><style id="wp-img-auto-sizes-contain-inline-css"> 923img:is([sizes=auto i],[sizes^="auto," i]){contain-intrinsic-size:3000px 1500px} 924/*# sourceURL=wp-img-auto-sizes-contain-inline-css */ 925</style> 926<style id="wp-emoji-styles-inline-css"> 927 928 img.wp-smiley, img.emoji { 929 display: inline !important; 930 border: none !important; 931 box-shadow: none !important; 932 height: 1em !important; 933 width: 1em !important; 934 margin: 0 0.07em !important; 935 vertical-align: -0.1em !important; 936 background: none !important; 937 padding: 0 !important; 938 } 939/*# sourceURL=wp-emoji-styles-inline-css */ 940</style> 941<style id="wp-block-library-inline-css"> 942:root{--wp-block-synced-color:#7a00df;--wp-block-synced-color--rgb:122,0,223;--wp-bound-block-color:var(--wp-block-synced-color);--wp-editor-canvas-background:#ddd;--wp-admin-theme-color:#007cba;--wp-admin-theme-color--rgb:0,124,186;--wp-admin-theme-color-darker-10:#006ba1;--wp-admin-theme-color-darker-10--rgb:0,107,160.5;--wp-admin-theme-color-darker-20:#005a87;--wp-admin-theme-color-darker-20--rgb:0,90,135;--wp-admin-border-width-focus:2px}@media (min-resolution:192dpi){:root{--wp-admin-border-width-focus:1.5px}}.wp-element-button{cursor:pointer}:root .has-very-light-gray-background-color{background-color:#eee}:root .has-very-dark-gray-background-color{background-color:#313131}:root .has-very-light-gray-color{color:#eee}:root .has-very-dark-gray-color{color:#313131}:root .has-vivid-green-cyan-to-vivid-cyan-blue-gradient-background{background:linear-gradient(135deg,#00d084,#0693e3)}:root .has-purple-crush-gradient-background{background:linear-gradient(135deg,#34e2e4,#4721fb 50%,#ab1dfe)}:root .has-hazy-dawn-gradient-background{background:linear-gradient(135deg,#faaca8,#dad0ec)}:root .has-subdued-olive-gradient-background{background:linear-gradient(135deg,#fafae1,#67a671)}:root .has-atomic-cream-gradient-background{background:linear-gradient(135deg,#fdd79a,#004a59)}:root .has-nightshade-gradient-background{background:linear-gradient(135deg,#330968,#31cdcf)}:root .has-midnight-gradient-background{background:linear-gradient(135deg,#020381,#2874fc)}:root{--wp--preset--font-size--normal:16px;
942--wp--preset--font-size--huge:42px}.has-regular-font-size{font-size:1em}.has-larger-font-size{font-size:2.625em}.has-normal-font-size{font-size:var(--wp--preset--font-size--normal)}.has-huge-font-size{font-size:var(--wp--preset--font-size--huge)}:root .has-text-align-center{text-align:center}:root .has-text-align-left{text-align:left}:root .has-text-align-right{text-align:right}.has-fit-text{white-space:nowrap!important}#end-resizable-editor-section{display:none}.aligncenter{clear:both}.items-justified-left{justify-content:flex-start}.items-justified-center{justify-content:center}.items-justified-right{justify-content:flex-end}.items-justified-space-between{justify-content:space-between}.screen-reader-text{word-wrap:normal!important;border:0;clip-path:inset(50%);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.screen-reader-text:focus{background-color:#ddd;clip-path:none;color:#444;display:block;font-size:1em;height:auto;left:5px;line-height:normal;padding:15px 23px 14px;text-decoration:none;top:5px;width:auto;z-index:100000}html :where(.has-border-color){border-style:solid}html :where([style*=border-color]){border-style:solid}html :where([style*=border-top-color]){border-top-style:solid}html :where([style*=border-right-color]){border-right-style:solid}html :where([style*=border-bottom-color]){border-bottom-style:solid}html :where([style*=border-left-color]){border-left-style:solid}html :where([style*=border-width]){border-style:solid}html :where([style*=border-top-width]){border-top-style:solid}html :where([style*=border-right-width]){border-right-style:solid}html :where([style*=border-bottom-width]){border-bottom-style:solid}html :where([style*=border-left-width]){border-left-style:solid}html :where(img[class*=wp-image-]){height:auto;max-width:100%}:where(figure){margin:0 0 1em}html :where(.is-position-sticky){--wp-admin--admin-bar--position-offset:var(--wp-admin--admin-bar--height,0px)}@media screen and (max-width:600px){html :where(.is-position-sticky){--wp-admin--admin-bar--position-offset:0px}} 943 944/*# sourceURL=/wp-includes/css/dist/block-library/common.min.css */ 945</style> 946<style id="classic-theme-styles-inline-css"> 947/*! This file is auto-generated */ 948.wp-block-button__link{color:#fff;background-color:#32373c;border-radius:9999px;box-shadow:none;text-decoration:none;padding:calc(.667em + 2px) calc(1.333em + 2px);font-size:1.125em}.wp-block-file__button{background:#32373c;color:#fff;text-decoration:none} 949/*# sourceURL=/wp-includes/css/classic-themes.min.css */ 950</style> 951 952<style id="global-styles-inline-css"> 953:root{--wp--preset--aspect-ratio--square: 1;--wp--preset--aspect-ratio--4-3: 4/3;--wp--preset--aspect-ratio--3-4: 3/4;--wp--preset--aspect-ratio--3-2: 3/2;--wp--preset--aspect-ratio--2-3: 2/3;--wp--preset--aspect-ratio--16-9: 16/9;--wp--preset--aspect-ratio--9-16: 9/16;--wp--preset--color--black: #000000;--wp--preset--color--cyan-bluish-gray: #abb8c3;--wp--preset--color--white: #ffffff;--wp--preset--color--pale-pink: #f78da7;--wp--preset--color--vivid-red: #cf2e2e;--wp--preset--color--luminous-vivid-orange: #ff6900;--wp--preset--color--luminous-vivid-amber: #fcb900;--wp--preset--color--light-green-cyan: #7bdcb5;--wp--preset--color--vivid-green-cyan: #00d084;--wp--preset--color--pale-cyan-blue: #8ed1fc;--wp--preset--color--vivid-cyan-blue: #0693e3;--wp--preset--color--vivid-purple: #9b51e0;--wp--preset--gradient--vivid-cyan-blue-to-vivid-purple: linear-gradient(135deg,rgb(6,147,227) 0%,rgb(155,81,224) 100%);--wp--preset--gradient--light-green-cyan-to-vivid-green-cyan: linear-gradient(135deg,rgb(122,220,180) 0%,rgb(0,208,130) 100%);--wp--preset--gradient--luminous-vivid-amber-to-luminous-vivid-orange: linear-gradient(135deg,rgb(252,185,0) 0%,rgb(255,105,0) 100%);--wp--preset--gradient--luminous-vivid-orange-to-vivid-red: linear-gradient(135deg,rgb(255,105,0) 0%,rgb(207,46,46) 100%);--wp--preset--gradient--very-light-gray-to-cyan-bluish-gray: linear-gradient(135deg,rgb(238,238,238) 0%,rgb(169,184,195) 100%);
953--wp--preset--gradient--cool-to-warm-spectrum: linear-gradient(135deg,rgb(74,234,220) 0%,rgb(151,120,209) 20%,rgb(207,42,186) 40%,rgb(238,44,130) 60%,rgb(251,105,98) 80%,rgb(254,248,76) 100%);--wp--preset--gradient--blush-light-purple: linear-gradient(135deg,rgb(255,206,236) 0%,rgb(152,150,240) 100%);--wp--preset--gradient--blush-bordeaux: linear-gradient(135deg,rgb(254,205,165) 0%,rgb(254,45,45) 50%,rgb(107,0,62) 100%);--wp--preset--gradient--luminous-dusk: linear-gradient(135deg,rgb(255,203,112) 0%,rgb(199,81,192) 50%,rgb(65,88,208) 100%);--wp--preset--gradient--pale-ocean: linear-gradient(135deg,rgb(255,245,203) 0%,rgb(182,227,212) 50%,rgb(51,167,181) 100%);--wp--preset--gradient--electric-grass: linear-gradient(135deg,rgb(202,248,128) 0%,rgb(113,206,126) 100%);--wp--preset--gradient--midnight: linear-gradient(135deg,rgb(2,3,129) 0%,rgb(40,116,252) 100%);--wp--preset--font-size--small: 13px;--wp--preset--font-size--medium: 20px;--wp--preset--font-size--large: 36px;--wp--preset--font-size--x-large: 42px;--wp--preset--spacing--20: 0.44rem;--wp--preset--spacing--30: 0.67rem;--wp--preset--spacing--40: 1rem;--wp--preset--spacing--50: 1.5rem;--wp--preset--spacing--60: 2.25rem;--wp--preset--spacing--70: 3.38rem;--wp--preset--spacing--80: 5.06rem;--wp--preset--shadow--natural: 6px 6px 9px rgba(0, 0, 0, 0.2);--wp--preset--shadow--deep: 12px 12px 50px rgba(0, 0, 0, 0.4);--wp--preset--shadow--sharp: 6px 6px 0px rgba(0, 0, 0, 0.2);--wp--preset--shadow--outlined: 6px 6px 0px -3px rgb(255, 255, 255), 6px 6px rgb(0, 0, 0);--wp--preset--shadow--crisp: 6px 6px 0px rgb(0, 0, 0);}:where(body) { margin: 0; }:where(.is-layout-flex){gap: 0.5em;}:where(.is-layout-grid){gap: 0.5em;}body .is-layout-flex{display: flex;}.is-layout-flex{flex-wrap: wrap;align-items: center;}.is-layout-flex > :is(*, div){margin: 0;}body .is-layout-grid{display: grid;}.is-layout-grid > :is(*, div){margin: 0;}body{padding-top: 0px;padding-right: 0px;padding-bottom: 0px;padding-left: 0px;}:root :where(.wp-element-button, .wp-block-button__link){background-color: #32373c;border-width: 0;color: #fff;font-family: inherit;font-size: inherit;font-style: inherit;font-weight: inherit;letter-spacing: inherit;line-height: inherit;padding-top: calc(0.667em + 2px);padding-right: calc(1.333em + 2px);padding-bottom: calc(0.667em + 2px);padding-left: calc(1.333em + 2px);text-decoration: none;text-transform: inherit;}.has-black-color{color: var(--wp--preset--color--black) !important;}.has-cyan-bluish-gray-color{color: var(--wp--preset--color--cyan-bluish-gray) !important;}.has-white-color{color: var(--wp--preset--color--white) !important;}.has-pale-pink-color{color: var(--wp--preset--color--pale-pink) !important;}.has-vivid-red-color{color: var(--wp--preset--color--vivid-red) !important;}.has-luminous-vivid-orange-color{color: var(--wp--preset--color--luminous-vivid-orange) !important;}.has-luminous-vivid-amber-color{color: var(--wp--preset--color--luminous-vivid-amber) !important;}.has-light-green-cyan-color{color: var(--wp--preset--color--light-green-cyan) !important;}.has-vivid-green-cyan-color{color: var(--wp--preset--color--vivid-green-cyan) !important;}.has-pale-cyan-blue-color{color: var(--wp--preset--color--pale-cyan-blue) !important;}.has-vivid-cyan-blue-color{color: var(--wp--preset--color--vivid-cyan-blue) !important;}.has-vivid-purple-color{color: var(--wp--preset--color--vivid-purple) !important;}.has-black-background-color{background-color: var(--wp--preset--color--black) !important;}.has-cyan-bluish-gray-background-color{background-color: var(--wp--preset--color--cyan-bluish-gray) !important;}.has-white-background-color{background-color: var(--wp--preset--color--white) !important;}.has-pale-pink-background-color{background-color: var(--wp--preset--color--pale-pink) !important;}.has-vivid-red-background-color{background-color: var(--wp--preset--color--vivid-red) !important;}.has-luminous-vivid-orange-background-color{background-color: var(--wp--preset--color--luminous-vivid-orange) !important;}.has-luminous-vivid-amber-background-color{background-color: var(--wp--preset--color--luminous-vivid-amber) !important;}.has-light-green-cyan-background-color{background-color: var(--wp--preset--color--light-green-cyan) !important;}.has-vivid-green-cyan-background-color{background-color: var(--wp--preset--color--vivid-green-cyan) !important;}.has-pale-cyan-blue-background-color{background-color: var(--wp--preset--color--pale-cyan-blue) !important;}.has-vivid-cyan-blue-background-color{background-color: var(--wp--preset--color--vivid-cyan-blue) !important;}.has-vivid-purple-background-color{background-color: var(--wp--preset--color--vivid-purple) !important;}.has-black-border-color{border-color: var(--wp--preset--color--black) !important;}.has-cyan-bluish-gray-border-color{border-color: var(--wp--preset--color--cyan-bluish-gray) !important;}.has-white-border-color{border-color: var(--wp--preset--color--white) !important;}.has-pale-pink-border-color{border-color: var(--wp--preset--color--pale-pink) !important;}.has-vivid-red-border-color{border-color: var(--wp--preset--color--vivid-red) !important;}.has-luminous-vivid-orange-border-color{border-color: var(--wp--preset--color--luminous-vivid-orange) !important;}.has-luminous-vivid-amber-border-color{border-color: var(--wp--preset--color--luminous-vivid-amber) !important;}.has-light-green-cyan-border-color{border-color: var(--wp--preset--color--light-green-cyan) !important;}.has-vivid-green-cyan-border-color{border-color: var(--wp--preset--color--vivid-green-cyan) !important;}.has-pale-cyan-blue-border-color{border-color: var(--wp--preset--color--pale-cyan-blue) !important;}.has-vivid-cyan-blue-border-color{border-color: var(--wp--preset--color--vivid-cyan-blue) !important;}.has-vivid-purple-border-color{border-color: var(--wp--preset--color--vivid-purple) !important;}.has-vivid-cyan-blue-to-vivid-purple-gradient-background{background: var(--wp--preset--gradient--vivid-cyan-blue-to-vivid-purple) !important;}.has-light-green-cyan-to-vivid-green-cyan-gradient-background{background: var(--wp--preset--gradient--light-green-cyan-to-vivid-green-cyan) !important;}.has-luminous-vivid-amber-to-luminous-vivid-orange-gradient-background{background: var(--wp--preset--gradient--luminous-vivid-amber-to-luminous-vivid-orange) !important;}.has-luminous-vivid-orange-to-vivid-red-gradient-background{background: var(--wp--preset--gradient--luminous-vivid-orange-to-vivid-red) !important;}
953.has-very-light-gray-to-cyan-bluish-gray-gradient-background{background: var(--wp--preset--gradient--very-light-gray-to-cyan-bluish-gray) !important;}.has-cool-to-warm-spectrum-gradient-background{background: var(--wp--preset--gradient--cool-to-warm-spectrum) !important;}.has-blush-light-purple-gradient-background{background: var(--wp--preset--gradient--blush-light-purple) !important;}.has-blush-bordeaux-gradient-background{background: var(--wp--preset--gradient--blush-bordeaux) !important;}.has-luminous-dusk-gradient-background{background: var(--wp--preset--gradient--luminous-dusk) !important;}.has-pale-ocean-gradient-background{background: var(--wp--preset--gradient--pale-ocean) !important;}.has-electric-grass-gradient-background{background: var(--wp--preset--gradient--electric-grass) !important;}.has-midnight-gradient-background{background: var(--wp--preset--gradient--midnight) !important;}.has-small-font-size{font-size: var(--wp--preset--font-size--small) !important;}.has-medium-font-size{font-size: var(--wp--preset--font-size--medium) !important;}.has-large-font-size{font-size: var(--wp--preset--font-size--large) !important;}.has-x-large-font-size{font-size: var(--wp--preset--font-size--x-large) !important;} 954/*# sourceURL=global-styles-inline-css */ 955</style> 956 957<link rel='stylesheet' id='wbtv-recommendations-css' href='https://webb-tv.nu/wp-content/plugins/recommendations/assets/frontend.css?ver=0.5.9' media='all' /> 958<style id="svt-play-styles-inline-css"> 959 960 .svt-play-episodes { 961 display: grid; 962 gap: 0.5rem; 963 } 964 .svt-play-episode { 965 padding: 0.6rem; 966 background: #fff; 967 border: 1px solid #e5e5e5; 968 border-radius: 6px; 969 transition: background 0.2s; 970 max-height: 150px; 971 overflow: hidden !important; 972 position: relative; 973 } 974 .svt-play-episode:hover { 975 background: #f5f5f5; 976 } 977 .svt-play-episode a { 978 text-decoration: none; 979 color: inherit; 980 display: flex; 981 gap: 0.75rem; 982 width: 100%; 983 align-items: flex-start; 984 max-height: 138px; 985 overflow: hidden; 986 } 987 .svt-play-episodes img.svt-play-thumbnail { 988 flex-shrink: 0; 989 width: 200px !important; 990 height: 112px !important; 991 max-width: 200px !important; 992 min-width: 200px !important; 993 min-height: 112px !important; 994 object-fit: cover; 995 border-radius: 4px; 996 } 997 .svt-play-content { 998 flex: 1; 999 min-width: 0; 1000 max-height: 130px; 1001 overflow: hidden; 1002 } 1003 .svt-play-episodes .svt-play-episode h3.svt-play-title { 1004 margin: 0 0 0.1rem !important; 1005 padding: 0 !important; 1006 font-size: 1.4rem !important; 1007 font-weight: 600 !important; 1008 color: #1a1a1a; 1009 line-height: 1.2; 1010 margin-left: 1% !important; 1011 } 1012 .svt-play-episodes .svt-play-episode .svt-play-meta { 1013 font-size: 0.8rem !important; 1014 color: #888; 1015 margin: 0 0 0.25rem !important; 1016 padding: 0; 1017 margin-left: 1% !important; 1018 } 1019 .svt-play-episodes .svt-play-episode .svt-play-description { 1020 font-size: 0.85rem !important; 1021 color: #666; 1022 margin: 0 !important; 1023 padding: 0; 1024 line-height: 1.3; 1025 display: -webkit-box; 1026 -webkit-line-clamp: 2; 1027 -webkit-box-orient: vertical; 1028 overflow: hidden; 1029 margin-left: 1% !important; 1030 }
1031 hr.svt-play-hr { 1032 border: none; 1033 border-top: 1px solid #eee; 1034 margin: 0.5rem 0; 1035 } 1036 h4.svt-play-heading { 1037 font-size: 1.3rem !important; 1038 font-weight: 700 !important; 1039 letter-spacing: 0.05em; 1040 color: #666; 1041 margin: 0 0 0.75rem 0 !important; 1042 margin-left: 1% !important; 1043 padding: 0 !important; 1044 } 1045 .svt-play-error { 1046 padding: 1rem; 1047 background: #fee; 1048 border: 1px solid #fcc; 1049 border-radius: 4px; 1050 color: #c00; 1051 } 1052 .svt-play-upcoming.svt-play-episodes .svt-play-episode { 1053 background: #f8f9fa; 1054 border: 1px dashed #ccc; 1055 } 1056 .svt-play-upcoming.svt-play-episodes .svt-play-episode:hover { 1057 background: #f0f0f0; 1058 } 1059 .svt-show-more-btn:hover { 1060 background: #f5f5f5 !important; 1061 border-color: #999 !important; 1062 } 1063 .svt-show-more-btn:active { 1064 transform: translateY(1px); 1065 } 1066 /* ð´ POSTER-LÃGE, ALLA BREDDER. Grundregeln lÃ¥ser miniatyren med 1067 width/height/min-/max- OCH !important utanför mediafrÃ¥gan, sÃ¥ en 1068 2:3-affisch pressas till 200Ã112 â liggande. Pers DevTools visade 1069 det exakt: intrinsic 240Ã360, rendered 200Ã112. Alla fem lÃ¥sen 1070 mÃ¥ste släppas, inte bara width/height. (2026-09-02.) */ 1071 .svt-play-episodes--poster img.svt-play-thumbnail { 1072 width: 110px !important; 1073 min-width: 110px !important; 1074 max-width: 110px !important; 1075 height: 165px !important; /* 2:3 */ 1076 min-height: 165px !important; 1077 max-height: 165px !important; 1078 object-fit: cover !important; 1079 border-radius: 4px !important; 1080 flex: 0 0 110px !important; 1081 } 1082 .svt-play-episodes--poster .svt-play-episode { 1083 max-height: none !important; 1084 } 1085 1086 @media (max-width: 600px) { 1087 .postcontents h4.svt-play-heading { 1088 font-size: 1.1rem !important; 1089 margin: 0 0 0.75rem 1% !important; 1090 text-align: left !important; 1091 } 1092 .svt-play-episode { 1093 padding: 0.75rem; 1094 max-height: none; 1095 max-height: 160px !important; 1096 } 1097 .svt-play-episode a { 1098 gap: 0 !important; 1099 max-height: none; 1100 } 1101 .svt-play-episodes img.svt-play-thumbnail { 1102 display: none !important; 1103 } 1104 .svt-play-episodes .svt-play-episode h3.svt-play-title { 1105 font-size: 1.1rem !important; 1106 margin-left: 0 !important; 1107 } 1108 .svt-play-episodes .svt-play-episode .svt-play-meta { 1109 margin-left: 0 !important; 1110 } 1111 .svt-play-episodes .svt-play-episode .svt-play-description { 1112 font-size: 0.85rem !important; 1113 margin-left: 0 !important; 1114 -webkit-line-clamp: 2; 1115 } 1116 .svt-play-content { 1117 max-height: none; 1118 } 1119 1120 /* ð´ POSTER-LÃGET (opt-in via bild="poster") â visar bilden i mobil 1121 i stället för att dölja den. Scopat till modifieraren: de 136 1122 sidor som använder url=-varianten är oförändrade, och det är 1123 avsiktligt. Mätt 2026-09-02: Rapport delar EN poster över alla 1124 68 avsnitt medan dess 16:9-bilder är 68 unika â poster där hade 1125 gett fem identiska rutor. Kortfilmerna har 24 unika pÃ¥ 24. */ 1126 .svt-play-episodes--poster img.svt-play-thumbnail { 1127 display: block !important; 1128 width: 64px !important; 1129 min-width: 64px !important; 1130 max-width: 64px !important; 1131 height: 96px !important; /* 2:3 */ 1132 min-height: 96px !important; 1133 max-height: 96px !important; 1134 object-fit: cover !important; 1135 border-radius: 4px !important; 1136 flex: 0 0 64px !important; 1137 margin-right: 0.75rem !important; 1138 } 1139 .svt-play-episodes--poster .svt-play-episode a { 1140 display: flex !important; 1141 align-items: flex-start !important; 1142 gap: 0 !important; 1143 } 1144 .svt-play-episodes--poster .svt-play-episode { 1145 max-height: 128px !important; 1146 } 1147 .svt-play-episodes--poster .svt-play-episode h3.svt-play-title, 1148 .svt-play-episodes--poster .svt-play-episode .svt-play-meta, 1149 .svt-play-episodes--poster .svt-play-episode .svt-play-description { 1150 margin-left: 0 !important; 1151 } 1152 } 1153 1154/*# sourceURL=svt-play-styles-inline-css */ 1155</style> 1156<link rel='preload' as='style' onload="this.onload=null;this.rel='stylesheet'" id='theme-style-css' href='https://webb-tv.nu/wp-content/themes/KiteTheme/assets/css/theme.min.css?ver=1789934850' media='all' /> 1157<link rel='preload' as='style' onload="this.onload=null;this.rel='stylesheet'" id='testing-style-css' href='https://webb-tv.nu/wp-content/themes/KiteTheme/assets/css/testingcss.css?ver=1790534823' media='all' /> 1158<link rel='preload' as='style' onload="this.onload=null;this.rel='stylesheet'" id='kitecss-css' href='https://webb-tv.nu/wp-content/themes/KiteTheme/style.css?ver=1789598831' media='all' /> 1159<link rel='preload' as='style' onload="this.onload=null;this.rel='stylesheet'" id='kitethememincss-css' href='https://webb-tv.nu/wp-content/themes/KiteTheme/assets/css/theme.min.css?ver=1789934850' media='all' /> 1160<link rel='stylesheet' id='wbtv-newsletter-css' href='https://webb-tv.nu/wp-content/plugins/wbtv-newsletter/assets/signup-form.css?ver=0.1.1' media='all' /> 1161<link rel='preload' as='style' onload="this.onload=null;this.rel='stylesheet'" id='ubermenu-css' href='https://webb-tv.nu/wp-content/plugins/ubermenu/pro/assets/css/ubermenu.min.css?ver=3.7.8' media='all' /> 1162<link rel='preload' as='style' onload="this.onload=null;this.rel='stylesheet'" id='ubermenu-vanilla-bar-css' href='https://webb-tv.nu/wp-content/plugins/ubermenu/assets/css/skins/vanilla_bar.css?ver=876144c2e4477eb645e9d1d53b64119e' media='all' /> 1163<link rel='preload' as='style' onload="this.onload=null;this.rel='stylesheet'" id='ubermenu-grey-white-css' href='https://webb-tv.nu/wp-content/plugins/ubermenu/assets/css/skins/blackwhite.css?ver=876144c2e4477eb645e9d1d53b64119e' media='all' /> 1164<link rel='preload' as='style' onload="this.onload=null;this.rel='stylesheet'" id='ubermenu-font-awesome-all-css' href='https://webb-tv.nu/wp-content/plugins/ubermenu/assets/fontawesome/css/all.min.css?ver=876144c2e4477eb645e9d1d53b64119e' media='all' />
1165<script id="jquery-core-js" src="https://webb-tv.nu/wp-includes/js/jquery/jquery.min.js?ver=3.7.1"></script>
vendor: 1 bytes, line 1165
1165
1166<script id="jquery-migrate-js" src="https://webb-tv.nu/wp-includes/js/jquery/jquery-migrate.min.js?ver=3.4.1"></script>
1166 1167<link rel="https://api.w.org/" href="https://webb-tv.nu/wp-json/" /><link rel="alternate" title="JSON" type="application/json" href="https://webb-tv.nu/wp-json/wp/v2/pages/99143" /><link rel="EditURI" type="application/rsd+xml" title="RSD" href="https://webb-tv.nu/xmlrpc.php?rsd" /> 1168<style id="mobile-bottom-nav-css"> 1169.mobile-bottom-nav { 1170 display: none; 1171} 1172@media (max-width: 991px) { 1173 .mobile-bottom-nav { 1174 display: flex !important; 1175 position: fixed !important; 1176 bottom: 0 !important; 1177 left: 0 !important; 1178 right: 0 !important; 1179 z-index: 999999 !important; 1180 background: #ffffff !important; 1181 border-top: 1px solid #e2e8f0; 1182 box-shadow: 0 -2px 10px rgba(0, 0, 0, 0.08); 1183 padding: 6px 0 env(safe-area-inset-bottom, 6px); 1184 justify-content: space-around; 1185 align-items: center; 1186 } 1187 body { 1188 padding-bottom: 68px !important; 1189 } 1190 body.modal-open .mobile-bottom-nav { 1191 display: none !important; 1192 } 1193 #feedback-trigger-btn-custom, 1194 #cookiescript_badge { 1195 display: none !important; 1196 } 1197} 1198.mobile-bottom-nav a { 1199 display: flex; 1200 flex-direction: column; 1201 align-items: center; 1202 gap: 2px; 1203 text-decoration: none; 1204 color: #1f2937; 1205 font-size: 10px; 1206 font-weight: 500; 1207 padding: 6px 10px; 1208 border-radius: 8px; 1209 transition: color 0.2s; 1210 -webkit-tap-highlight-color: transparent; 1211} 1212.mobile-bottom-nav a:hover, 1213.mobile-bottom-nav a:focus { 1214 color: #0284c7; 1215 text-decoration: none; 1216} 1217.mobile-bottom-nav a.active { 1218 color: #0284c7; 1219} 1220.mobile-bottom-nav a svg { 1221 width: 22px; 1222 height: 22px; 1223} 1224</style> 1225 <style id="wbtv-rec-toast-css"> 1226 .wbtv-toast { 1227 position: fixed; 1228 top: 20px; /* toppen â syns pÃ¥ mobil (bottom hamnade utanför synfältet) */ 1229 left: 50%; 1230 transform: translateX(-50%) translateY(-100px); /* glider ner uppifrÃ¥n */ 1231 background: #333; 1232 color: #fff; 1233 padding: 12px 24px; 1234 border-radius: 8px; 1235 font-size: 14px; 1236 z-index: 99999; 1237 opacity: 0; 1238 transition: transform 0.3s ease, opacity 0.3s ease; 1239 max-width: 90vw; 1240 text-align: center; 1241 box-shadow: 0 4px 12px rgba(0,0,0,0.3); 1242 } 1243 .wbtv-toast.wbtv-toast--visible { 1244 transform: translateX(-50%) translateY(0); 1245 opacity: 1; 1246 } 1247 .wbtv-toast.wbtv-toast--success { 1248 background: #5cb85c; 1249 } 1250 .wbtv-toast.wbtv-toast--error { 1251 background: #d9534f; 1252 } 1253 </style> 1254 <style> 1255 .smart-share-wrapper { 1256 position: relative; 1257 display: inline-block; 1258 } 1259 1260 .smart-share-wrapper .share-menu { 1261 position: absolute; 1262 top: 100%; 1263 left: 0; 1264 margin-top: 8px; 1265 background: white; 1266 border: 1px solid #ddd; 1267 border-radius: 8px; 1268 box-shadow: 0 4px 12px rgba(0,0,0,0.15); 1269 min-width: 180px; 1270 z-index: 1000; 1271 overflow: hidden; 1272 } 1273 1274 .smart-share-wrapper .share-item:hover { 1275 background: #f5f5f5 !important; 1276 } 1277 1278 @media (max-width: 768px) { 1279 .smart-share-wrapper .share-menu { 1280 position: fixed; 1281 bottom: 0; 1282 left: 0; 1283 right: 0; 1284 top: auto; 1285 margin: 0; 1286 border-radius: 16px 16px 0 0; 1287 max-height: 60vh; 1288 overflow-y: auto; 1289 } 1290 } 1291 </style> 1292 <style id="ubermenu-custom-generated-css"> 1293/** Font Awesome 4 Compatibility **/ 1294.fa{font-style:normal;font-variant:normal;font-weight:normal;
1294font-family:FontAwesome;} 1295 1296/** UberMenu Responsive Styles (Breakpoint Setting) **/ 1297@media screen and (min-width: 1200px){ 1298 .ubermenu{ display:block !important; } .ubermenu-responsive .ubermenu-item.ubermenu-hide-desktop{ display:none !important; } .ubermenu-responsive.ubermenu-retractors-responsive .ubermenu-retractor-mobile{ display:none; } /* Top level items full height */ .ubermenu.ubermenu-horizontal.ubermenu-items-vstretch .ubermenu-nav{ display:flex; align-items:stretch; } .ubermenu.ubermenu-horizontal.ubermenu-items-vstretch .ubermenu-item.ubermenu-item-level-0{ display:flex; flex-direction:column; } .ubermenu.ubermenu-horizontal.ubermenu-items-vstretch .ubermenu-item.ubermenu-item-level-0 > .ubermenu-target{ flex:1; display:flex; align-items:center; flex-wrap:wrap; } .ubermenu.ubermenu-horizontal.ubermenu-items-vstretch .ubermenu-item.ubermenu-item-level-0 > .ubermenu-target > .ubermenu-target-divider{ position:static; flex-basis:100%; } .ubermenu.ubermenu-horizontal.ubermenu-items-vstretch .ubermenu-item.ubermenu-item-level-0 > .ubermenu-target.ubermenu-item-layout-image_left > .ubermenu-target-text{ padding-left:1em; } .ubermenu.ubermenu-horizontal.ubermenu-items-vstretch .ubermenu-item.ubermenu-item-level-0 > .ubermenu-target.ubermenu-item-layout-image_right > .ubermenu-target-text{ padding-right:1em; } .ubermenu.ubermenu-horizontal.ubermenu-items-vstretch .ubermenu-item.ubermenu-item-level-0 > .ubermenu-target.ubermenu-item-layout-image_above, .ubermenu.ubermenu-horizontal.ubermenu-items-vstretch .ubermenu-item.ubermenu-item-level-0 > .ubermenu-target.ubermenu-item-layout-image_below{ flex-direction:column; } .ubermenu.ubermenu-horizontal.ubermenu-items-vstretch .ubermenu-item.ubermenu-item-level-0 > .ubermenu-submenu-drop{ top:100%; } .ubermenu.ubermenu-horizontal.ubermenu-items-vstretch .ubermenu-item-level-0:not(.ubermenu-align-right) + .ubermenu-item.ubermenu-align-right{ margin-left:auto; } .ubermenu.ubermenu-horizontal.ubermenu-items-vstretch .ubermenu-item.ubermenu-item-level-0 > .ubermenu-target.ubermenu-content-align-left{ justify-content:flex-start; } .ubermenu.ubermenu-horizontal.ubermenu-items-vstretch .ubermenu-item.ubermenu-item-level-0 > .ubermenu-target.ubermenu-content-align-center{ justify-content:center; } .ubermenu.ubermenu-horizontal.ubermenu-items-vstretch .ubermenu-item.ubermenu-item-level-0 > .ubermenu-target.ubermenu-content-align-right{ justify-content:flex-end; } /* Force current submenu always open but below others */ .ubermenu-force-current-submenu .ubermenu-item-level-0.ubermenu-current-menu-item > .ubermenu-submenu-drop, .ubermenu-force-current-submenu .ubermenu-item-level-0.ubermenu-current-menu-ancestor > .ubermenu-submenu-drop { display: block!important; opacity: 1!important; visibility: visible!important; margin: 0!important; top: auto!important; height: auto; z-index:19; } /* Invert Horizontal menu to make subs go up */ .ubermenu-invert.ubermenu-horizontal .ubermenu-item-level-0 > .ubermenu-submenu-drop, .ubermenu-invert.ubermenu-horizontal.ubermenu-items-vstretch .ubermenu-item.ubermenu-item-level-0>.ubermenu-submenu-drop{ top:auto; bottom:100%; } .ubermenu-invert.ubermenu-horizontal.ubermenu-sub-indicators .ubermenu-item-level-0.ubermenu-has-submenu-drop > .ubermenu-target > .ubermenu-sub-indicator{ transform:rotate(180deg); } /* Make second level flyouts fly up */ .ubermenu-invert.ubermenu-horizontal .ubermenu-submenu .ubermenu-item.ubermenu-active > .ubermenu-submenu-type-flyout{ top:auto; bottom:0; } /* Clip the submenus properly when inverted */ .ubermenu-invert.ubermenu-horizontal .ubermenu-item-level-0 > .ubermenu-submenu-drop{ clip: rect(-5000px,5000px,auto,-5000px); } /* Invert Vertical menu to make subs go left */ .ubermenu-invert.ubermenu-vertical .ubermenu-item-level-0 > .ubermenu-submenu-drop{ right:100%; left:auto; } .ubermenu-invert.ubermenu-vertical.ubermenu-sub-indicators .ubermenu-item-level-0.ubermenu-item-has-children > .ubermenu-target > .ubermenu-sub-indicator{ right:auto; left:10px; transform:rotate(90deg); } .ubermenu-vertical.ubermenu-invert .ubermenu-item > .ubermenu-submenu-drop { clip: rect(-5000px,5000px,5000px,-5000px); } /* Vertical Flyout > Flyout */ .ubermenu-vertical.ubermenu-invert.ubermenu-sub-indicators .ubermenu-has-submenu-drop > .ubermenu-target{ padding-left:25px; } .ubermenu-vertical.ubermenu-invert .ubermenu-item > .ubermenu-target > .ubermenu-sub-indicator { right:auto; left:10px; transform:rotate(90deg); } .ubermenu-vertical.ubermenu-invert .ubermenu-item > .ubermenu-submenu-drop.ubermenu-submenu-type-flyout, .ubermenu-vertical.ubermenu-invert .ubermenu-submenu-type-flyout > .ubermenu-item > .ubermenu-submenu-drop { right: 100%; left: auto; } .ubermenu-responsive-toggle{ display:none; } 1299} 1300@media screen and (max-width: 1199px){ 1301 .ubermenu-responsive-toggle, .ubermenu-sticky-toggle-wrapper { display: block; } .ubermenu-responsive{ width:100%; max-height:600px; visibility:visible; overflow:visible; -webkit-transition:max-height 1s ease-in; transition:max-height .3s ease-in; } .ubermenu-responsive.ubermenu-mobile-accordion:not(.ubermenu-mobile-modal):not(.ubermenu-in-transition):not(.ubermenu-responsive-collapse){ max-height:none; } .ubermenu-responsive.ubermenu-items-align-center{ text-align:left; } .ubermenu-responsive.ubermenu{ margin:0; } .ubermenu-responsive.ubermenu .ubermenu-nav{ display:block; } .ubermenu-responsive.ubermenu-responsive-nocollapse, .ubermenu-repsonsive.ubermenu-no-transitions{ display:block; max-height:none; } .ubermenu-responsive.ubermenu-responsive-collapse{ max-height:none; visibility:visible; overflow:visible; } .ubermenu-responsive.ubermenu-responsive-collapse{ max-height:0; overflow:hidden !important; visibility:hidden; } .ubermenu-responsive.ubermenu-in-transition, .ubermenu-responsive.ubermenu-in-transition .ubermenu-nav{ overflow:hidden !important; visibility:visible; } .ubermenu-responsive.ubermenu-responsive-collapse:not(.ubermenu-in-transition){ border-top-width:0; border-bottom-width:0; } .ubermenu-responsive.ubermenu-responsive-collapse .ubermenu-item .ubermenu-submenu{ display:none; } .ubermenu-responsive .ubermenu-item-level-0{ width:50%; } .ubermenu-responsive.ubermenu-responsive-single-column .ubermenu-item-level-0{ float:none; clear:both; width:100%; } .ubermenu-responsive .ubermenu-item.ubermenu-item-level-0 > .ubermenu-target{ border:none; box-shadow:none; } .ubermenu-responsive .ubermenu-item.ubermenu-has-submenu-flyout{ position:static; } .ubermenu-responsive.ubermenu-sub-indicators .ubermenu-submenu-type-flyout .ubermenu-has-submenu-drop > .ubermenu-target > .ubermenu-sub-indicator{ transform:rotate(0); right:10px; left:auto; } .ubermenu-responsive .ubermenu-nav .ubermenu-item .ubermenu-submenu.ubermenu-submenu-drop{ width:100%; min-width:100%; max-width:100%; top:auto; left:0 !important; } .ubermenu-responsive.ubermenu-has-border .ubermenu-nav .ubermenu-item .ubermenu-submenu.ubermenu-submenu-drop{ left: -1px !important; /* For borders */ } .ubermenu-responsive .ubermenu-submenu.ubermenu-submenu-type-mega > .ubermenu-item.ubermenu-column{ min-height:0; border-left:none; float:left; /* override left/center/right content alignment */ display:block; } .ubermenu-responsive .ubermenu-item.ubermenu-active > .ubermenu-submenu.ubermenu-submenu-type-mega{ max-height:none; height:auto;/*prevent overflow scrolling since android is still finicky*/ overflow:visible; }
1301 .ubermenu-responsive.ubermenu-transition-slide .ubermenu-item.ubermenu-in-transition > .ubermenu-submenu-drop{ max-height:1000px; /* because of slide transition */ } .ubermenu .ubermenu-submenu-type-flyout .ubermenu-submenu-type-mega{ min-height:0; } .ubermenu.ubermenu-responsive .ubermenu-column, .ubermenu.ubermenu-responsive .ubermenu-column-auto{ min-width:50%; } .ubermenu.ubermenu-responsive .ubermenu-autoclear > .ubermenu-column{ clear:none; } .ubermenu.ubermenu-responsive .ubermenu-column:nth-of-type(2n+1){ clear:both; } .ubermenu.ubermenu-responsive .ubermenu-submenu-retractor-top:not(.ubermenu-submenu-retractor-top-2) .ubermenu-column:nth-of-type(2n+1){ clear:none; } .ubermenu.ubermenu-responsive .ubermenu-submenu-retractor-top:not(.ubermenu-submenu-retractor-top-2) .ubermenu-column:nth-of-type(2n+2){ clear:both; } .ubermenu-responsive-single-column-subs .ubermenu-submenu .ubermenu-item { float: none; clear: both; width: 100%; min-width: 100%; } .ubermenu.ubermenu-responsive .ubermenu-tabs, .ubermenu.ubermenu-responsive .ubermenu-tabs-group, .ubermenu.ubermenu-responsive .ubermenu-tab, .ubermenu.ubermenu-responsive .ubermenu-tab-content-panel{ /** TABS SHOULD BE 100% ACCORDION */ width:100%; min-width:100%; max-width:100%; left:0; } .ubermenu.ubermenu-responsive .ubermenu-tabs, .ubermenu.ubermenu-responsive .ubermenu-tab-content-panel{ min-height:0 !important;/* Override Inline Style from JS */ } .ubermenu.ubermenu-responsive .ubermenu-tabs{ z-index:15; } .ubermenu.ubermenu-responsive .ubermenu-tab-content-panel{ z-index:20; } /* Tab Layering */ .ubermenu-responsive .ubermenu-tab{ position:relative; } .ubermenu-responsive .ubermenu-tab.ubermenu-active{ position:relative; z-index:20; } .ubermenu-responsive .ubermenu-tab > .ubermenu-target{ border-width:0 0 1px 0; } .ubermenu-responsive.ubermenu-sub-indicators .ubermenu-tabs > .ubermenu-tabs-group > .ubermenu-tab.ubermenu-has-submenu-drop > .ubermenu-target > .ubermenu-sub-indicator{ transform:rotate(0); right:10px; left:auto; } .ubermenu-responsive .ubermenu-tabs > .ubermenu-tabs-group > .ubermenu-tab > .ubermenu-tab-content-panel{ top:auto; border-width:1px; } .ubermenu-responsive .ubermenu-tab-layout-bottom > .ubermenu-tabs-group{ /*position:relative;*/ } .ubermenu-reponsive .ubermenu-item-level-0 > .ubermenu-submenu-type-stack{ /* Top Level Stack Columns */ position:relative; } .ubermenu-responsive .ubermenu-submenu-type-stack .ubermenu-column, .ubermenu-responsive .ubermenu-submenu-type-stack .ubermenu-column-auto{ /* Stack Columns */ width:100%; max-width:100%; } .ubermenu-responsive .ubermenu-item-mini{ /* Mini items */ min-width:0; width:auto; float:left; clear:none !important; } .ubermenu-responsive .ubermenu-item.ubermenu-item-mini > a.ubermenu-target{ padding-left:20px; padding-right:20px; } .ubermenu-responsive .ubermenu-item.ubermenu-hide-mobile{ /* Hiding items */ display:none !important; } .ubermenu-responsive.ubermenu-hide-bkgs .ubermenu-submenu.ubermenu-submenu-bkg-img{ /** Hide Background Images in Submenu */ background-image:none; } .ubermenu.ubermenu-responsive .ubermenu-item-level-0.ubermenu-item-mini{ min-width:0; width:auto; } .ubermenu-vertical .ubermenu-item.ubermenu-item-level-0{ width:100%; } .ubermenu-vertical.ubermenu-sub-indicators .ubermenu-item-level-0.ubermenu-item-has-children > .ubermenu-target > .ubermenu-sub-indicator{ right:10px; left:auto; transform:rotate(0); } .ubermenu-vertical .ubermenu-item.ubermenu-item-level-0.ubermenu-relative.ubermenu-active > .ubermenu-submenu-drop.ubermenu-submenu-align-vertical_parent_item{ top:auto; } .ubermenu.ubermenu-responsive .ubermenu-tabs{ position:static; } /* Tabs on Mobile with mouse (but not click) - leave space to hover off */ .ubermenu:not(.ubermenu-is-mobile):not(.ubermenu-submenu-indicator-closes) .ubermenu-submenu .ubermenu-tab[data-ubermenu-trigger="mouseover"] .ubermenu-tab-content-panel, .ubermenu:not(.ubermenu-is-mobile):not(.ubermenu-submenu-indicator-closes) .ubermenu-submenu .ubermenu-tab[data-ubermenu-trigger="hover_intent"] .ubermenu-tab-content-panel{ margin-left:6%; width:94%; min-width:94%; } /* Sub indicator close visibility */ .ubermenu.ubermenu-submenu-indicator-closes .ubermenu-active > .ubermenu-target > .ubermenu-sub-indicator-close{ display:block; display: flex; align-items: center; justify-content: center; } .ubermenu.ubermenu-submenu-indicator-closes .ubermenu-active > .ubermenu-target > .ubermenu-sub-indicator{ display:none; } .ubermenu .ubermenu-tabs .ubermenu-tab-content-panel{ box-shadow: 0 5px 10px rgba(0,0,0,.075); } /* When submenus and items go full width, move items back to appropriate positioning */ .ubermenu .ubermenu-submenu-rtl { direction: ltr; } /* Fixed position mobile menu */ .ubermenu.ubermenu-mobile-modal{ position:fixed; z-index:9999999; opacity:1; top:0; left:0; width:100%; width:100vw; max-width:100%; max-width:100vw; height:100%; height:calc(100vh - calc(100vh - 100%)); height:-webkit-fill-available; max-height:calc(100vh - calc(100vh - 100%)); max-height:-webkit-fill-available; border:none; box-sizing:border-box; display:flex; flex-direction:column; justify-content:flex-start; overflow-y:auto !important; /* for non-accordion mode */ overflow-x:hidden !important; overscroll-behavior: contain; transform:scale(1); transition-duration:.1s; transition-property: all; } .ubermenu.ubermenu-mobile-modal.ubermenu-mobile-accordion.ubermenu-interaction-press{ overflow-y:hidden !important; } .ubermenu.ubermenu-mobile-modal.ubermenu-responsive-collapse{ overflow:hidden !important; opacity:0; transform:scale(.9); visibility:hidden; } .ubermenu.ubermenu-mobile-modal .ubermenu-nav{ flex:1; overflow-y:auto !important; overscroll-behavior: contain; } .ubermenu.ubermenu-mobile-modal .ubermenu-item-level-0{ margin:0; } .ubermenu.ubermenu-mobile-modal .ubermenu-mobile-close-button{ border:none; background:none; border-radius:0; padding:1em; color:inherit; display:inline-block; text-align:center; font-size:14px; } .ubermenu.ubermenu-mobile-modal .ubermenu-mobile-footer .ubermenu-mobile-close-button{ width: 100%; display: flex; align-items: center; justify-content: center; } .ubermenu.ubermenu-mobile-modal .ubermenu-mobile-footer .ubermenu-mobile-close-button .ubermenu-icon-essential, .ubermenu.ubermenu-mobile-modal .ubermenu-mobile-footer .ubermenu-mobile-close-button .fas.fa-times{ margin-right:.2em; } /* Header/Footer Mobile content */ .ubermenu .ubermenu-mobile-header, .ubermenu .ubermenu-mobile-footer{ display:block; text-align:center; color:inherit; } /* Accordion submenus mobile (single column tablet) */ .ubermenu.ubermenu-responsive-single-column.ubermenu-mobile-accordion.ubermenu-interaction-press .ubermenu-item > .ubermenu-submenu-drop, .ubermenu.ubermenu-responsive-single-column.ubermenu-mobile-accordion.ubermenu-interaction-press .ubermenu-tab > .ubermenu-tab-content-panel{ box-sizing:border-box; border-left:none; border-right:none; box-shadow:none; } .ubermenu.ubermenu-responsive-single-column.ubermenu-mobile-accordion.ubermenu-interaction-press .ubermenu-item.ubermenu-active > .ubermenu-submenu-drop, .ubermenu.ubermenu-responsive-single-column.ubermenu-mobile-accordion.ubermenu-interaction-press .ubermenu-tab.ubermenu-active > .ubermenu-tab-content-panel{ position:static; } /* Accordion indented - remove borders and extra spacing from headers */ .ubermenu.ubermenu-mobile-accordion-indent .ubermenu-submenu.ubermenu-submenu-drop, .ubermenu.ubermenu-mobile-accordion-indent .ubermenu-submenu .ubermenu-item-header.ubermenu-has-submenu-stack > .ubermenu-target{ border:none; } .ubermenu.ubermenu-mobile-accordion-indent .ubermenu-submenu .ubermenu-item-header.ubermenu-has-submenu-stack > .ubermenu-submenu-type-stack{ padding-top:0; } /* Accordion dropdown indentation padding */ .ubermenu.ubermenu-mobile-accordion-indent .ubermenu-submenu-drop .ubermenu-submenu-drop .ubermenu-item > .ubermenu-target, .ubermenu.ubermenu-mobile-accordion-indent .ubermenu-submenu-drop .ubermenu-tab-content-panel .ubermenu-item > .ubermenu-target{ padding-left:calc( var(--ubermenu-accordion-indent) * 2 ); } .ubermenu.ubermenu-mobile-accordion-indent .ubermenu-submenu-drop .ubermenu-submenu-drop .ubermenu-submenu-drop .ubermenu-item > .ubermenu-target, .ubermenu.ubermenu-mobile-accordion-indent .ubermenu-submenu-drop .ubermenu-tab-content-panel .ubermenu-tab-content-panel .ubermenu-item > .ubermenu-target{ padding-left:calc( var(--ubermenu-accordion-indent) * 3 ); } .ubermenu.ubermenu-mobile-accordion-indent .ubermenu-submenu-drop .ubermenu-submenu-drop .ubermenu-submenu-drop .ubermenu-submenu-drop .ubermenu-item > .ubermenu-target, .ubermenu.ubermenu-mobile-accordion-indent .ubermenu-submenu-drop .ubermenu-tab-content-panel .ubermenu-tab-content-panel .ubermenu-tab-content-panel .ubermenu-item > .ubermenu-target{ padding-left:calc( var(--ubermenu-accordion-indent) * 4 ); } /* Reverse Accordion dropdown indentation padding */ .rtl .ubermenu.ubermenu-mobile-accordion-indent .ubermenu-submenu-drop .ubermenu-submenu-drop .ubermenu-item > .ubermenu-target, .rtl .ubermenu.ubermenu-mobile-accordion-indent .ubermenu-submenu-drop .ubermenu-tab-content-panel .ubermenu-item > .ubermenu-target{ padding-left:0; padding-right:calc( var(--ubermenu-accordion-indent) * 2 ); } .rtl .ubermenu.ubermenu-mobile-accordion-indent .ubermenu-submenu-drop .ubermenu-submenu-drop .ubermenu-submenu-drop .ubermenu-item > .ubermenu-target, .rtl .ubermenu.ubermenu-mobile-accordion-indent .ubermenu-submenu-drop .ubermenu-tab-content-panel .ubermenu-tab-content-panel .ubermenu-item > .ubermenu-target{ padding-left:0; padding-right:calc( var(--ubermenu-accordion-indent) * 3 ); } .rtl .ubermenu.ubermenu-mobile-accordion-indent .ubermenu-submenu-drop .ubermenu-submenu-drop .ubermenu-submenu-drop .ubermenu-submenu-drop .ubermenu-item > .ubermenu-target, .rtl .ubermenu.ubermenu-mobile-accordion-indent .ubermenu-submenu-drop .ubermenu-tab-content-panel .ubermenu-tab-content-panel .ubermenu-tab-content-panel .ubermenu-item > .ubermenu-target{ padding-left:0; padding-right:calc( var(--ubermenu-accordion-indent) * 4 ); } .ubermenu-responsive-toggle{ display:block; } 1302} 1303@media screen and (max-width: 480px){ 1304 .ubermenu.ubermenu-responsive .ubermenu-item-level-0{ width:100%; } .ubermenu.ubermenu-responsive .ubermenu-column, .ubermenu.ubermenu-responsive .ubermenu-column-auto{ min-width:100%; } .ubermenu .ubermenu-autocolumn:not(:first-child), .ubermenu .ubermenu-autocolumn:not(:first-child) .ubermenu-submenu-type-stack{ padding-top:0; } .ubermenu .ubermenu-autocolumn:not(:last-child), .ubermenu .ubermenu-autocolumn:not(:last-child) .ubermenu-submenu-type-stack{ padding-bottom:0; } .ubermenu .ubermenu-autocolumn > .ubermenu-submenu-type-stack > .ubermenu-item-normal:first-child{ margin-top:0; } /* Accordion submenus mobile */ .ubermenu.ubermenu-responsive.ubermenu-mobile-accordion.ubermenu-interaction-press .ubermenu-item > .ubermenu-submenu-drop, .ubermenu.ubermenu-responsive.ubermenu-mobile-accordion.ubermenu-interaction-press .ubermenu-tab > .ubermenu-tab-content-panel{ box-shadow:none; box-sizing:border-box; border-left:none; border-right:none; } .ubermenu.ubermenu-responsive.ubermenu-mobile-accordion.ubermenu-interaction-press .ubermenu-item.ubermenu-active > .ubermenu-submenu-drop, .ubermenu.ubermenu-responsive.ubermenu-mobile-accordion.ubermenu-interaction-press .ubermenu-tab.ubermenu-active > .ubermenu-tab-content-panel{ position:static; } 1305} 1306 1307 1308/** UberMenu Custom Menu Styles (Customizer) **/ 1309/* main */ 1310 .ubermenu-main .ubermenu-nav .ubermenu-item.ubermenu-item-level-0 > .ubermenu-target { font-weight:normal; } 1311 .ubermenu-main .ubermenu-icon { width:2em; } 1312/* newmeny */ 1313 .ubermenu-newmeny .ubermenu-item-level-0 > .ubermenu-target, .ubermenu-newmeny .ubermenu-item-level-0 > .ubermenu-custom-content.ubermenu-custom-content-padded { padding-top:7px; padding-bottom:7px; } 1314 1315 1316/** UberMenu Custom Menu Item Styles (Menu Item Settings) **/ 1317/* 121897 */ .ubermenu .ubermenu-item.ubermenu-item-121897 > .ubermenu-target { color:#5bca43; } 1318/* 123681 */ .ubermenu .ubermenu-submenu.ubermenu-submenu-id-123681 { width:25%; min-width:25%; } 1319 .ubermenu .ubermenu-item-123681 > .ubermenu-target.ubermenu-item-layout-image_left > .ubermenu-target-text { padding-left:30px; } 1320/* 122505 */ .ubermenu .ubermenu-item.ubermenu-item-122505.ubermenu-current-menu-item > .ubermenu-target,.ubermenu .ubermenu-item.ubermenu-item-122505.ubermenu-current-menu-ancestor > .ubermenu-target { color:#ff2559; } 1321 .ubermenu .ubermenu-item.ubermenu-item-122505 > .ubermenu-target,.ubermenu .ubermenu-item.ubermenu-item-122505 > .ubermenu-content-block,.ubermenu .ubermenu-item.ubermenu-item-122505.ubermenu-custom-content-padded { padding:14px; } 1322 1323 1324/** UberMenu Custom Tweaks (General Settings) **/ 1325.ubermenu-skin-black-white-2 .ubermenu-submenu .ubermenu-item-header > .ubermenu-target { 1326 font-size:15px; 1327 font-weight:bold; 1328 position: relative; 1329 top: 6px; 1330} 1331 1332.ubermenu .ubermenu-item-layout-image_left > .ubermenu-image { 1333 position: relative; 1334 top: -5px; 1335 right: 3px; 1336} 1337 1338#ubermenu-main-71{ 1339 1340} 1341 1342.ubermenu-item-121882, 1343.ubermenu-item-121884, 1344.ubermenu-item-121885, 1345.ubermenu-item-121880,
1346.ubermenu-item-121886, 1347.ubermenu-item-121887, 1348.ubermenu-item-121881, 1349.ubermenu-item-121883, 1350.ubermenu-item-121888 1351 1352 1353 > .ubermenu-target.ubermenu-item-layout-image_left > .ubermenu-target-text { 1354 padding-left:0px; 1355 font-size: 18px; 1356 padding-top: 0px; 1357 padding-right: 0px; 1358} 1359 1360.ubermenu-item-121888 1361 1362 > .ubermenu-target.ubermenu-item-layout-image_left > .ubermenu-target-text { 1363 position: relative; 1364 top: 6px; 1365} 1366 1367 1368/* Status: Loaded from Transient */ 1369 1370</style> 1371<link rel="preload" as="font" href="https://webb-tv.nu/pictures/logosfront/kunskapskanalen-streaming.svg" crossorigin> 1372<link rel="preload" as="font" href="https://webb-tv.nu/pictures/logosfront/svtplay.svg" crossorigin> 1373<link rel="preload" as="font" href="https://webb-tv.nu/pictures/logosfront/tv4play.svg" crossorigin> <style type="text/css"> 1374 1375 1376 1377 1378 1379 1380 header.main{ position:absolute !important; min-height:78px !important; } 1381 1382 1383 .postlist .post .meta .author{ display:none; } 1384 .postlist .post .meta .date{ display:none; } 1385 .postlist .post .meta{ display:none; } 1386 .postlist .post .category{ display:none; } 1387 .postlist .post .likes{ display:none; } 1388 .postlist .post .actions .social{ display:none; } 1389 1390 1391 .single-post .posttitle .postinfo .meta .author{ display:none; } 1392 .single-post .posttitle .postinfo .meta .date{ display:none; } 1393 .single-post .posttitle .postinfo .meta { display:none; } 1394 .single-post .postinfo .category{ display:none; } 1395 1396 .page .posttitle .postinfo .meta .author{ display:none; } 1397 .page .posttitle .postinfo .meta .date{ display:none; } 1398 .page .posttitle .postinfo .meta { display:none; } 1399 .page .comments { display:none; } 1400 1401 footer .copyright .wordpress{ display:none; } 1402 1403 a{ color:#fa502d; } 1404 a:hover{ color:#7dbac4; } 1405 input[type='submit']{ background:#fa502d; } 1406 .button.green { background:#fa502d; } 1407 .button.green:hover { background:#7dbac4; } 1408 .button.grayoutline:hover { background:#fa502d; border-color:#fa502d; } 1409 .comment h5 a:hover{ color:#fa502d; } 1410 .comment-reply-link:hover{ color:#fa502d; } 1411 #author:focus, #email:focus, #url:focus{ border: 1px solid #fa502d; box-shadow: inset 0 0 0 1px #fa502d; } 1412 .commentbody:focus{ border: 1px solid #fa502d; box-shadow: inset 0 0 0 1px #fa502d; } 1413 #submit{ background:#fa502d; } 1414 #submit:hover{ background:#fa502d; } 1415 article.banner .postinfo .featured{ color:#fa502d; } 1416 article.banner.light .postinfo .featured{ color:#fa502d; } 1417 .notification h2{ color:#fa502d; } 1418 .notification .close:hover{ background:#fa502d; } 1419 nav.main ul li ul li a:hover{ color:#fa502d !important; } 1420 nav.main ul li:hover i{ color:#fa502d; } 1421 nav.responsive ul li ul li a:hover{ color:#fa502d !important; } 1422 nav.responsive ul li:hover i{ color:#fa502d; } 1423 .navbutton.active{ background:#fa502d;} 1424 .navbutton:hover{ background:#fa502d; } 1425 .nextposts span{ color:#fa502d; } 1426 .postwidget .likepost{box-shadow: inset 0 0 0px 3px #fa502d; color:#fa502d; } 1427 .postwidget .likepost:hover{ box-shadow: inset 0 0 0px 30px #fa502d; } 1428 .postlist .post .category:hover{ color:#fa502d; } 1429 .postlist .post h2 a:hover{ color:#fa502d; } 1430 .postlist .post.x2 .category:hover{ color:#fa502d; } 1431 .postlist .post.x2 h2 a:hover{ color:#fa502d; } 1432 .postlist .post.x1 .category:hover{ color:#fa502d; } 1433 .postlist .post.x1 h2 a:hover{ color:#fa502d; } 1434 .related_widget h4 a:hover{ color:#fa502d; } 1435 .subscribe_widget .submit{ background:#fa502d; } 1436 .subscribe_widget .submit:hover{ background:#fa502d; } 1437 .latest_widget .category{ color:#fa502d; } 1438 .latest_widget h5 a:hover{ color:#fa502d; } 1439 #searchform .submit:hover{ background:#fa502d; } 1440 .tagcloud a:hover{ background:#fa502d; border-color:#fa502d; } 1441 #wp-calendar tbody td a{ color:#fa502d; } 1442 #wp-calendar tfoot a{ color:#fa502d; } 1443 #wp-calendar a:hover{ color:#fa502d; }
1444 .shorttabs .shorttabsheader.active{ color: #fa502d; } 1445 1446 </style> 1447 <style id="custom-background-css"> 1448body.custom-background { background-color: #f3f3f3; } 1449</style> 1450<link rel="icon" href="https://webb-tv.nu/wp-content/uploads/2024/05/webb-tv-nu-1-400x400.png" sizes="32x32" /> 1451<link rel="icon" href="https://webb-tv.nu/wp-content/uploads/2024/05/webb-tv-nu-1-400x400.png" sizes="192x192" /> 1452<link rel="apple-touch-icon" href="https://webb-tv.nu/wp-content/uploads/2024/05/webb-tv-nu-1-400x400.png" /> 1453<meta name="msapplication-TileImage" content="https://webb-tv.nu/wp-content/uploads/2024/05/webb-tv-nu-1-400x400.png" /> 1454<style id="mobilmeny-klickbar">.ubermenu-responsive-toggle{position:relative !important;z-index:20 !important}</style> 1455<style id="wp-custom-css"> 1456.svglogo { 1457 width: 190px; 1458 height: 38px; 1459} 1460@media screen and (max-width: 1100px) { 1461 .svglogo { 1462 content: url("https://webb-tv.nu/pictures/logosfront/logobalanserad-600-sajt.png"); 1463 width: 150px !important; 1464 height: auto !important; 1465 } 1466} 1467 1468 1469 1470/* Förhindra cookie-banner frÃ¥n att räknas som LCP */ 1471.cli-modal-backdrop, 1472.cli-modal-dialog, 1473[class*="cookie-notice"], 1474[class*="cookie-consent"] { 1475 content-visibility: auto; 1476 contain-intrinsic-size: 0 500px; 1477} 1478 1479#newcat a, .category-link { 1480 color: darkslategray !important; 1481 border: 1px solid gray; 1482} 1483 1484 1485/* ============================================ */ 1486/* /om/per-johansson â author-sida */ 1487/* ============================================ */ 1488 1489.om-per { 1490 max-width: 800px; 1491 margin: 40px auto; 1492 padding: 0 20px; 1493 font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Inter, Roboto, sans-serif; 1494 color: #1d1d1f; 1495 line-height: 1.6; 1496} 1497.om-per-hero { 1498 text-align: center; 1499 padding: 32px 0 40px; 1500 border-bottom: 1px solid #e8e6e1; 1501 margin-bottom: 40px; 1502} 1503.om-per-hero h1 { 1504 font-size: 2.4em; 1505 font-weight: 700; 1506 letter-spacing: -0.5px; 1507 margin: 0 0 8px; 1508 color: #1d1d1f; 1509} 1510.om-per-roll { 1511 font-size: 1.1em; 1512 color: #6b6b70; 1513 margin: 0; 1514 font-weight: 400; 1515} 1516.om-per-text p { 1517 font-size: 1.08em; 1518 color: #4a4a52; 1519 margin: 0 0 16px; 1520} 1521.om-per-siffror { 1522 display: grid; 1523 grid-template-columns: repeat(3, 1fr); 1524 gap: 24px; 1525 background: #f6f5f2; 1526 padding: 32px 24px; 1527 border-radius: 10px; 1528 margin: 40px 0; 1529 text-align: center; 1530 list-style: none; 1531} 1532.om-per-siffror .siffra strong { 1533 display: block; 1534 font-size: 1.3em; 1535 font-weight: 700; 1536 color: #1d1d1f; 1537 margin-bottom: 4px; 1538 white-space: nowrap; 1539} 1540 1541.om-per-siffror .siffra span { 1542 display: block; 1543 font-size: 0.88em; 1544 color: #6b6b70; 1545 line-height: 1.4; 1546} 1547.om-per-block { 1548 margin-top: 40px; 1549} 1550.om-per-block h2 { 1551 font-size: 1.3em; 1552 font-weight: 700; 1553 color: #1d1d1f; 1554 margin: 0 0 16px; 1555 padding-bottom: 8px; 1556 border-bottom: 1px solid #e8e6e1; 1557 text-align: center; 1558} 1559 1560/* ----- Listor: höjd specificity + nollat list-styling ----- */ 1561.om-per ul.om-per-amnen, 1562.om-per ul.om-per-bakgrund, 1563.om-per ul.wn-recent-list { 1564 list-style: none !important; 1565 padding: 0 !important; 1566 margin: 0 !important; 1567} 1568.om-per .om-per-amnen li, 1569.om-per .om-per-bakgrund li, 1570.om-per .wn-recent-list li { 1571 list-style: none !important; 1572 padding-left: 0 !important; 1573 background: none !important; 1574 list-style-image: none !important; 1575} 1576.om-per .om-per-amnen li, 1577.om-per .om-per-bakgrund li { 1578 padding: 8px 0 !important; 1579 color: #4a4a52; 1580 border-bottom: 1px solid #f0eee9; 1581} 1582.om-per .om-per-amnen li:last-child, 1583.om-per .om-per-bakgrund li:last-child { 1584 border-bottom: none !important; 1585} 1586 1587/* ----- Recent-articles items ----- */ 1588.om-per .wn-recent-list li.wn-recent-item { 1589 padding: 12px 0 !important; 1590 border-bottom: 1px solid #f0eee9; 1591} 1592.om-per .wn-recent-list li.wn-recent-item:last-child { 1593 border-bottom: none !important; 1594} 1595.om-per .wn-recent-link { 1596 display: block; 1597 font-weight: 600; 1598 color: #1d1d1f; 1599 text-decoration: none; 1600 margin-bottom: 2px; 1601} 1602.om-per .wn-recent-link:hover { 1603 color: #fa502d; 1604} 1605.om-per .wn-recent-date { 1606 font-size: 0.88em; 1607 color: #98989d; 1608} 1609 1610.om-per-kontakt { 1611 margin: 8px 0 0; 1612 font-size: 0.95em; 1613} 1614.om-per-kontakt a { 1615 color: #6b6b70; 1616 text-decoration: none; 1617 border-bottom: 1px dotted #c8c6c1; 1618} 1619.om-per-kontakt a:hover {
1620 color: #1d1d1f; 1621 border-bottom-color: #1d1d1f; 1622} 1623 1624 1625/* ----- Mobil ----- */ 1626@media (max-width: 600px) { 1627 .om-per-siffror { 1628 grid-template-columns: 1fr; 1629 } 1630 .om-per-hero h1 { 1631 font-size: 1.9em; 1632 } 1633} 1634 1635 1636</style> 1637<style id="brodtext-mobil">@media (max-width:600px){#newwrap .postcontents > p{font-size:19px;line-height:29px;margin-bottom:22px}}</style> 1638<style id="fa4-till-fa5">.fa,i.fa,span.fa{font-family:"Font Awesome 5 Free" !important;font-weight:900 !important}</style> 1639<style id="inga-google-typsnitt">[id^="cookiescript"],[id^="cookiescript"] *,[class*="cookiescript"],[class*="cookiescript"] *,.lfn-loading,.lfn-loading *{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif !important}</style> 1640<style id="kategoribanner-fog">@media (min-width:721px){body.page-template-page-kategori-film #catimage,body.page-template-page-kategori-serier #catimage,body.page-template-page-underkategori-film #catimage,body.page-template-page-underkategori-serier #catimage{top:-8px !important;margin-bottom:44px !important}}</style> 1641<style id="kategoribanner-horn">body[class] #categories .catitem a img.alignnone,body[class] #catimage img{border-radius:0 !important}</style> 1642<style id="kontrast-laslighet">.wtv-explore-widget .wtv-explore-desc{color:#627288}.wdtv-action-links .wdtv-action-desc{color:#627288 !important}.streaming-container .streaming-link a{color:#C6450F}.streaming-container div[style*="opacity:.65"],.streaming-container div[style*="opacity: 0.65"]{opacity:.75 !important}body[class] .tl-grid span.tl-new,body[class] div[data-tlist] span.tl-new{background-color:#08874E}body #feedback-trigger-btn-custom{background-color:#0071EB !important}#liveWidget .live-widget-link{color:#3472D8 !important}#mobileBottomNav a.active,#mobileBottomNav a.active span{color:#027BBA}</style> 1643 1644 <link rel="stylesheet" type="text/css" media="all" href="https://webb-tv.nu/wp-content/themes/KiteTheme/assets/css/testingcss.css?ver=1790534823" /> 1645 1646 <!--[if lt IE 9]> 1647
1647<script src="https://webb-tv.nu/wp-content/themes/KiteTheme/assets/js/html5shiv.min.js"></script>
1647 1648 <![endif]--> 1649 1650<meta name="google-site-verification" content="GGnSIEl2Sw17JHHftthFJEo3jahsP_k6vbpN5D10oAo" /> 1651 1652 1653 <!-- Hotjar Tracking Code for https://webb-tv.nu -->
1654<script type="text/plain" data-cookiescript="accepted" data-cookiecategory="performance">
vendor: 125 bytes, lines 1654-1657
1654 1655 (function(h,o,t,j,a,r){ 1656 h.hj=h.hj||function(){(h.hj.q=h.hj.q||[]).push(arguments)}; 1657 h._hjSettings={hjid:
16571439019
vendor: 258 bytes, lines 1657-1662
1657,hjsv:6}; 1658 a=o.getElementsByTagName('head')[0]; 1659 r=o.createElement('script');r.async=1; 1660 r.src=t+h._hjSettings.hjid+j+h._hjSettings.hjsv; 1661 a.appendChild(r); 1662 })(window,document,'https://static.hotjar.com/c/hotjar-','.js?sv=');
1663</script>
1663 1664 1665 1666 1667 1668<!-- Pinterest Tag --> 1669 <meta name="p:domain_verify" content="d74b06834a554ea88a3f3432fe2aa28a"/> 1670<!-- end Pinterest Tag --> 1671 1672 1673 1674 1675 1676 1677 1678 1679<style id='asp-basic'>.asp_r .item{.price{--regular-price-color:#666;--sale_price_color:#666;color:var(--regular-price-color);del{opacity:.5;display:inline-block;text-decoration:line-through;color:var(--regular-price-color)}ins{margin-left:.5em;text-decoration:none;font-weight:700;display:inline-block;color:var(--sale_price_color)}}.stock{.quantity{color:#666}.out-of-stock{color:#a00}.on-backorder{color:#eaa600}.in-stock{color:#7ad03a}}.add-to-cart-container{display:flex;flex-wrap:wrap;align-items:center;position:relative;z-index:10;width:100%;margin:12px 0;.add-to-cart-quantity{padding:8px 0 8px 8px;background:#eaeaea;width:32px;border-radius:4px 0 0 4px;height:18px;min-height:unset;display:inline-block;font-size:13px;line-height:normal}.add-to-cart-button{padding:8px;border-radius:4px;background:#6246d7;color:white;height:18px;min-height:unset;display:block;text-align:center;min-width:90px;font-size:13px;line-height:normal;&.add-to-cart-variable{border-radius:4px}&.loading{content:url("data:image/svg+xml,%3Csvg width='38' height='38' viewBox='0 0 38 38' xmlns='http://www.w3.org/2000/svg' stroke='%23fff'%3E%3Cg fill='none' fill-rule='evenodd'%3E%3Cg transform='translate(1 1)' stroke-width='2'%3E%3Ccircle stroke-opacity='.5' cx='18' cy='18' r='18'/%3E%3Cpath d='M36 18c0-9.94-8.06-18-18-18'%3E%3CanimateTransform attributeName='transform' type='rotate' from='0 18 18' to='360 18 18' dur='1s' repeatCount='indefinite'/%3E%3C/path%3E%3C/g%3E%3C/g%3E%3C/svg%3E")}}a.added_to_cart{flex-basis:100%;margin-top:8px}}.add-to-cart-container:has(.add-to-cart-quantity){.add-to-cart-button{border-radius:0 4px 4px 0}}.sale-badge{--font-size:14px;--font-color:white;--background-color:#6246d7;position:absolute;top:12px;right:12px;padding:6px 12px;font-size:var(--font-size);color:var(--font-color);background:var(--background-color);box-shadow:0 0 6px -3px rgb(0,0,0);&.sale-badge-capsule{border-radius:50px}&.sale-badge-round{border-radius:3px}&.sale-badge-top-left{right:unset;left:12px}&.sale-badge-bottom-left{right:unset;top:unset;bottom:12px;left:12px}&.sale-badge-bottom-right{top:unset;bottom:12px}}}.asp_r .item{.asp__af-tt-container{position:relative;z-index:2;.asp__af-tt-link{transition:opacity 0.2s;&:hover{opacity:0.7}}}.average-rating{--percent:0;--color:#2EA3F2;--bg-color:rgba(0,0,0,0.2);--size:17px;position:relative;appearance:none;width:auto;display:inline-block;vertical-align:baseline;font-size:var(--size);line-height:calc(var(--size) - 15%);color:var(--bg-color);background:linear-gradient(90deg,var(--color) var(--percent),var(--bg-color) var(--percent));-webkit-background-clip:text;-webkit-text-fill-color:transparent}}@keyframes aspAnFadeIn{0%{opacity:0}50%{opacity:0.6}100%{opacity:1}}@-webkit-keyframes aspAnFadeIn{0%{opacity:0}50%{opacity:0.6}100%{opacity:1}}@keyframes aspAnFadeOut{0%{opacity:1}50%{opacity:0.6}100%{opacity:0}}@-webkit-keyframes aspAnFadeOut{0%{opacity:1}50%{opacity:0.6}100%{opacity:0}}@keyframes aspAnFadeInDrop{0%{opacity:0;transform:translate(0,-50px)}100%{opacity:1;transform:translate(0,0)}}@-webkit-keyframes aspAnFadeInDrop{0%{opacity:0;transform:translate(0,-50px);-webkit-transform:translate(0,-50px)}100%{opacity:1;transform:translate(0,0);-webkit-transform:translate(0,0)}}@keyframes aspAnFadeOutDrop{0%{opacity:1;transform:translate(0,0);-webkit-transform:translate(0,0)}100%{opacity:0;transform:translate(0,-50px);-webkit-transform:translate(0,-50px)}}@-webkit-keyframes aspAnFadeOutDrop{0%{opacity:1;transform:translate(0,0);-webkit-transform:translate(0,0)}100%{opacity:0;transform:translate(0,-50px);-webkit-transform:translate(0,-50px)}}div.ajaxsearchpro.asp_an_fadeIn,div.ajaxsearchpro.asp_an_fadeOut,div.ajaxsearchpro.asp_an_fadeInDrop,div.ajaxsearchpro.asp_an_fadeOutDrop{-webkit-animation-duration:100ms;animation-duration:100ms;-webkit-animation-fill-mode:forwards;animation-fill-mode:forwards}.asp_an_fadeIn,div.ajaxsearchpro.asp_an_fadeIn{animation-name:aspAnFadeIn;-webkit-animation-name:aspAnFadeIn}.asp_an_fadeOut,div.ajaxsearchpro.asp_an_fadeOut{animation-name:aspAnFadeOut;-webkit-animation-name:aspAnFadeOut}div.ajaxsearchpro.asp_an_fadeInDrop{animation-name:aspAnFadeInDrop;-webkit-animation-name:aspAnFadeInDrop}div.ajaxsearchpro.asp_an_fadeOutDrop{animation-name:aspAnFadeOutDrop;-webkit-animation-name:aspAnFadeOutDrop}div.ajaxsearchpro.asp_main_container{transition:width 130ms linear;-webkit-transition:width 130ms linear}asp_w_container,div.asp_w.ajaxsearchpro,div.asp_w.asp_r,div.asp_w.asp_s,div.asp_w.asp_sb,div.asp_w.asp_sb *{-webkit-box-sizing:content-box;-moz-box-sizing:content-box;-ms-box-sizing:content-box;-o-box-sizing:content-box;box-sizing:content-box;padding:0;margin:0;border:0;border-radius:0;text-transform:none;text-shadow:none;box-shadow:none;text-decoration:none;text-align:left;text-indent:initial;letter-spacing:normal;font-display:swap}div.asp_w_container div[id*=__original__]{display:none !important}div.asp_w.ajaxsearchpro{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;-ms-box-sizing:border-box;-o-box-sizing:border-box;box-sizing:border-box}div.asp_w.asp_r,div.asp_w.asp_r *{-webkit-touch-callout:none;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}div.asp_w.ajaxsearchpro input[type=text]::-ms-clear{display:none;width :0;height:0}div.asp_w.ajaxsearchpro input[type=text]::-ms-reveal{display:none;width :0;height:0}div.asp_w.ajaxsearchpro input[type="search"]::-webkit-search-decoration,div.asp_w.ajaxsearchpro input[type="search"]::-webkit-search-cancel-button,div.asp_w.ajaxsearchpro input[type="search"]::-webkit-search-results-button,div.asp_w.ajaxsearchpro input[type="search"]::-webkit-search-results-decoration{dis
1679play:none}div.asp_w.ajaxsearchpro input[type="search"]{appearance:auto !important;-webkit-appearance:none !important}.clear{clear:both}.asp_clear{display:block !important;clear:both !important;margin:0 !important;padding:0 !important;width:auto !important;height:0 !important}.hiddend{display:none !important}div.asp_w.ajaxsearchpro{width:100%;height:auto;border-radius:0;background:rgba(255,255,255,0);overflow:hidden}div.asp_w.ajaxsearchpro.asp_non_compact{min-width:200px}#asp_absolute_overlay{width:0;height:0;position:fixed;background:rgba(255,255,255,0.5);top:0;left:0;display:block;z-index:0;opacity:0;transition:opacity 200ms linear;-webkit-transition:opacity 200ms linear}div.asp_m.ajaxsearchpro .proinput input:before,div.asp_m.ajaxsearchpro .proinput input:after,div.asp_m.ajaxsearchpro .proinput form:before,div.asp_m.ajaxsearchpro .proinput form:after{display:none}div.asp_w.ajaxsearchpro textarea:focus,div.asp_w.ajaxsearchpro input:focus{outline:none}div.asp_m.ajaxsearchpro .probox .proinput input::-ms-clear{display:none}div.asp_m.ajaxsearchpro .probox{width:auto;border-radius:5px;background:#FFF;overflow:hidden;border:1px solid #FFF;box-shadow:1px 0 3px #CCC inset;display:-webkit-flex;display:flex;-webkit-flex-direction:row;flex-direction:row;direction:ltr;align-items:stretch;isolation:isolate}div.asp_m.ajaxsearchpro .probox .proinput{width:1px;height:100%;float:left;box-shadow:none;position:relative;flex:1 1 auto;-webkit-flex:1 1 auto;z-index:0}div.asp_m.ajaxsearchpro .probox .proinput form{height:100%;margin:0 !important;padding:0 !important;display:block !important;max-width:unset !important}div.asp_m.ajaxsearchpro .probox .proinput input{height:100%;width:100%;border:0;background:transparent;box-shadow:none;padding:0;left:0;padding-top:2px;min-width:120px;min-height:unset;max-height:unset}div.asp_m.ajaxsearchpro .probox .proinput input.autocomplete{border:0;background:transparent;width:100%;box-shadow:none;margin:0;padding:0;left:0}div.asp_m.ajaxsearchpro .probox .proinput.iepaddingfix{padding-top:0}div.asp_m.ajaxsearchpro .probox .proloading,div.asp_m.ajaxsearchpro .probox .proclose,div.asp_m.ajaxsearchpro .probox .promagnifier,div.asp_m.ajaxsearchpro .probox .prosettings{width:20px;height:20px;min-width:unset;min-height:unset;background:none;background-size:20px 20px;float:right;box-shadow:none;margin:0;padding:0;z-index:1}div.asp_m.ajaxsearchpro button.promagnifier:focus-visible{box-shadow:inset 0 0 0 2px rgba(0,0,0,0.4)}div.asp_m.ajaxsearchpro .probox .proloading,div.asp_m.ajaxsearchpro .probox .proclose{background-position:center center;display:none;background-size:auto;background-repeat:no-repeat;background-color:transparent}div.asp_m.ajaxsearchpro .probox .proloading{padding:2px;box-sizing:border-box}div.asp_m.ajaxsearchpro .probox .proclose{position:relative;cursor:pointer;z-index:2}div.asp_m.ajaxsearchpro .probox .promagnifier .innericon,div.asp_m.ajaxsearchpro .probox .prosettings .innericon,div.asp_m.ajaxsearchpro .probox .proclose .innericon{background-size:20px 20px;background-position:center center;background-repeat:no-repeat;background-color:transparent;width:100%;height:100%;line-height:initial;text-align:center;overflow:hidden}div.asp_m.ajaxsearchpro .probox .promagnifier .innericon svg,div.asp_m.ajaxsearchpro .probox .prosettings .innericon svg,div.asp_m.ajaxsearchpro .probox .proloading svg{height:100%;width:22px;vertical-align:baseline;display:inline-block}div.asp_m.ajaxsearchpro .probox .proclose svg{background:#333;position:absolute;top:50%;width:20px;height:20px;left:50%;fill:#fefefe;box-sizing:border-box;box-shadow:0 0 0 2px rgba(255,255,255,0.9)}.opacityOne{opacity:1}.opacityZero{opacity:0}div.asp_w.asp_s [disabled].noUi-connect,div.asp_w.asp_s [disabled] .noUi-connect{background:#B8B8B8}div.asp_w.asp_s [disabled] .noUi-handle{cursor:not-allowed}div.asp_w.asp_r p.showmore{display:none;margin:0}div.asp_w.asp_r.asp_more_res_loading p.showmore a,div.asp_w.asp_r.asp_more_res_loading p.showmore a span{color:transparent !important}@-webkit-keyframes shm-rot-simple{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg);opacity:1}50%{-webkit-transform:rotate(180deg);transform:rotate(180deg);opacity:0.85}100%{-webkit-transform:rotate(360deg);transform:rotate(360deg);opacity:1}}@keyframes shm-rot-simple{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg);opacity:1}50%{-webkit-transform:rotate(180deg);transform:rotate(180deg);opacity:0.85}100%{-webkit-transform:rotate(360deg);transform:rotate(360deg);opacity:1}}div.asp_w.asp_r div.asp_showmore_container{position:relative}div.asp_w.asp_r. div.asp_moreres_loader{display:none;position:absolute;width:100%;height:100%;top:0;left:0;background:rgba(255,255,255,0.2)}div.asp_w.asp_r.asp_more_res_loading div.asp_moreres_loader{display:block !important}div.asp_w.asp_r div.asp_moreres_loader-inner{height:24px;width:24px;animation:shm-rot-simple 0.8s infinite linear;-webkit-animation:shm-rot-simple 0.8s infinite linear;border:4px solid #353535;border-right-color:transparent;border-radius:50%;box-sizing:border-box;position:absolute;top:50%;margin:-12px auto auto -12px;left:50%}div.asp_hidden_data,div.asp_hidden_data *{display:none}div.asp_w.asp_r{display:none}div.asp_w.asp_r *{text-decoration:none;text-shadow:none}div.asp_w.asp_r .results{overflow:hidden;width:auto;height:0;margin:0;padding:0}div.asp_w.asp_r .asp_nores{display:flex;flex-wrap:wrap;gap:8px;overflow:hidden;width:auto;height:auto;position:relative;z-index:2}div.asp_w.asp_r .results .item{overflow:hidden;width:auto;margin:0;padding:3px;position:relative;background:#f4f4f4;border-left:1px solid rgba(255,255,255,0.6);border-right:1px solid rgba(255,255,255,0.4)}div.asp_w.asp_r .results .item,div.asp_w.asp_r .results .asp_group_header{animation-delay:0s;animation-duration:0.5s;animation-fill-mode:both;animation-timing-function:ease;backface-visibility:hidden;-webkit-animation-delay:0s;-webkit-animation-duration:0.5s;-webkit-animation-fill-mode:both;-webkit-animation-timing-function:ease;-webkit-backface-visibility:hidden}div.asp_w.asp_r .results .item .asp_image{overflow:hidden;background:transparent;padding:0;float:left;background-position:center;background-size:cover;position:relative}div.asp_w.asp_r .results .asp_image canvas{display:none}
1679div.asp_w.asp_r .results .asp_image .asp_item_canvas{position:absolute;top:0;left:0;right:0;bottom:0;margin:0;width:100%;height:100%;z-index:1;display:block;opacity:1;background-position:inherit;background-size:inherit;transition:opacity 0.5s}div.asp_w.asp_r .results .item:hover .asp_image .asp_item_canvas,div.asp_w.asp_r .results figure:hover .asp_image .asp_item_canvas{opacity:0}div.asp_w.asp_r a.asp_res_image_url,div.asp_w.asp_r a.asp_res_image_url:hover,div.asp_w.asp_r a.asp_res_image_url:focus,div.asp_w.asp_r a.asp_res_image_url:active{box-shadow:none !important;border:none !important;margin:0 !important;padding:0 !important;display:inline !important}div.asp_w.asp_r .results .item .asp_image_auto{width:auto !important;height:auto !important}div.asp_w.asp_r .results .item .asp_image img{width:100%;height:100%}div.asp_w.asp_r .results a span.overlap{position:absolute;width:100%;height:100%;top:0;left:0;z-index:1}div.asp_w.asp_r .resdrg{height:auto}div.asp_w.ajaxsearchpro .asp_results_group{margin:10px 0 0 0}div.asp_w.ajaxsearchpro .asp_results_group:first-of-type{margin:0 !important}div.asp_w.asp_r.vertical .results .item:first-child{border-radius:0}div.asp_w.asp_r.vertical .results .item:last-child{border-radius:0;margin-bottom:0}div.asp_w.asp_r.vertical .results .item:last-child:after{height:0;margin:0;width:0}div.asp_w.asp_r.horizontal{padding:2px 0 10px}div.asp_w.asp_r.horizontal .results .asp_nores{background:transparent}div.asp_w.asp_r.horizontal .results{height:auto;width:auto}div.asp_w.asp_r.horizontal .results .item .asp_content{height:auto;width:100%;padding:0}div.asp_w.asp_r.horizontal .resdrg{height:auto;width:auto}div.asp_w.asp_r.horizontal .resdrg:after{content:"";clear:both;display:table}div.asp_w.asp_s.searchsettings{width:auto;height:auto;position:absolute;display:none;z-index:11001;border-radius:0 0 3px 3px;visibility:hidden;opacity:0;overflow:visible}div.asp_w.asp_sb.searchsettings{display:none;visibility:hidden;direction:ltr;overflow:visible;position:relative;z-index:1}div.asp_w.asp_sb.searchsettings .asp_sett_scroll::-webkit-scrollbar-thumb{background:transparent;border-radius:5px;border:none}div.asp_w.asp_s.searchsettings form,div.asp_w.asp_sb.searchsettings form{display:flex;flex-wrap:wrap;margin:0 0 12px 0 !important;padding:0 !important}div.asp_w.asp_s.searchsettings .asp_option_inner,div.asp_w.asp_sb.searchsettings .asp_option_inner,div.asp_w.asp_sb.searchsettings input[type='text']{margin:2px 10px 0 10px;*padding-bottom:10px}div.asp_w.asp_s.searchsettings input[type='text']:not(.asp_select2-search__field),div.asp_w.asp_sb.searchsettings input[type='text']:not(.asp_select2-search__field){width:86% !important;padding:8px 6px !important;margin:0 0 0 10px !important;background-color:#FAFAFA !important;font-size:13px;border:none !important;line-height:17px;height:20px}div.asp_w.asp_s.searchsettings.ie78 .asp_option_inner,div.asp_w.asp_sb.searchsettings.ie78 .asp_option_inner{margin-bottom:0 !important;padding-bottom:0 !important}div.asp_w.asp_s.searchsettings div.asp_option_label,div.asp_w.asp_sb.searchsettings div.asp_option_label{font-size:14px;line-height:20px !important;margin:0;width:150px;text-shadow:none;padding:0;min-height:20px;border:none;background:transparent;float:none;-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}div.asp_w.asp_s.searchsettings .asp_label,div.asp_w.asp_sb.searchsettings .asp_label{line-height:24px !important;vertical-align:middle;display:inline-block;cursor:pointer}div.asp_w.asp_s.searchsettings input[type=radio],div.asp_w.asp_sb.searchsettings input[type=radio]{vertical-align:middle;margin:0 6px 0 17px;display:inline-block;appearance:normal;-moz-appearance:normal;-webkit-appearance:radio}div.asp_w.asp_s.searchsettings .asp_option_inner input[type=checkbox],div.asp_w.asp_sb.searchsettings .asp_option_inner input[type=checkbox]{display:none !important}div.asp_w.asp_s.searchsettings.ie78 .asp_option_inner input[type=checkbox],div.asp_w.asp_sb.searchsettings.ie78 .asp_option_inner input[type=checkbox]{display:block}div.asp_w.asp_s.searchsettings.ie78 div.asp_option_label,div.asp_w.asp_sb.
1679searchsettings.ie78 div.asp_option_label{float:right !important}div.asp_w.asp_s.searchsettings .asp_option_inner,div.asp_w.asp_sb.searchsettings .asp_option_inner{width:17px;height:17px;position:relative;flex-grow:0;-webkit-flex-grow:0;flex-shrink:0;-webkit-flex-shrink:0}div.asp_w.asp_sb.searchsettings .asp_option_inner{border-radius:3px;background:rgb(66,66,66);box-shadow:none}div.asp_w.asp_s.searchsettings .asp_option_inner .asp_option_checkbox,div.asp_w.asp_sb.searchsettings .asp_option_inner .asp_option_checkbox{cursor:pointer;position:absolute;width:17px;height:17px;top:0;padding:0;border-radius:2px;box-shadow:none;font-size:0 !important;color:rgba(0,0,0,0)}div.asp_w.asp_s.searchsettings.ie78 .asp_option_inner .asp_option_checkbox,div.asp_w.asp_sb.searchsettings.ie78 .asp_option_inner .asp_option_checkbox{display:none}div.asp_w.asp_s.searchsettings .asp_option_inner .asp_option_checkbox:before,div.asp_w.asp_sb.searchsettings .asp_option_inner .asp_option_checkbox:before{display:none !important}div.asp_w.asp_s.searchsettings .asp_option_inner .asp_option_checkbox:after,div.asp_w.asp_sb.searchsettings .asp_option_inner .asp_option_checkbox:after{opacity:0;font-family:'asppsicons2';content:"\e800";background:transparent;border-top:none;border-right:none;box-sizing:content-box;height:100%;width:100%;padding:0 !important;position:absolute;top:0;left:0}div.asp_w.asp_s.searchsettings.ie78 .asp_option_inner .asp_option_checkbox:after,div.asp_w.asp_sb.searchsettings.ie78 .asp_option_inner .asp_option_checkbox:after{display:none}div.asp_w.asp_s.searchsettings .asp_option_inner .asp_option_checkbox:hover::after,div.asp_w.asp_sb.searchsettings .asp_option_inner .asp_option_checkbox:hover::after{opacity:0.3}div.asp_w.asp_s.searchsettings .asp_option_inner input[type=checkbox]:checked ~ div:after,div.asp_w.asp_sb.searchsettings .asp_option_inner input[type=checkbox]:checked ~ div:after{opacity:1}div.asp_w.asp_sb.searchsettings span.checked ~ div:after,div.asp_w.asp_s.searchsettings span.checked ~ div:after{opacity:1 !important}div.asp_w.asp_s.searchsettings fieldset,div.asp_w.asp_sb.searchsettings fieldset{position:relative;float:left}div.asp_w.asp_s.searchsettings fieldset,div.asp_w.asp_sb.searchsettings fieldset{background:transparent;font-size:.9em;margin:12px 0 0 !important;padding:0 !important;width:200px;
1679min-width:200px}div.asp_w.asp_sb.searchsettings fieldset:last-child{margin:5px 0 0 !important}div.asp_w.asp_sb.searchsettings fieldset{margin:10px 0 0}div.asp_w.asp_sb.searchsettings fieldset legend{padding:0 0 0 10px;margin:0;font-weight:normal;font-size:13px}div.asp_w.asp_sb.searchsettings .asp_option,div.asp_w.asp_s.searchsettings .asp_option{display:flex;flex-direction:row;-webkit-flex-direction:row;align-items:flex-start;margin:0 0 10px 0;cursor:pointer}div.asp_w.asp_sb.searchsettings .asp_option:focus,div.asp_w.asp_s.searchsettings .asp_option:focus{outline:none}div.asp_w.asp_sb.searchsettings .asp_option:focus-visible,div.asp_w.asp_s.searchsettings .asp_option:focus-visible{outline-style:auto}div.asp_w.asp_s.searchsettings .asp_option.asp-o-last,div.asp_w.asp_s.searchsettings .asp_option:last-child{margin-bottom:0}div.asp_w.asp_s.searchsettings fieldset .asp_option,div.asp_w.asp_s.searchsettings fieldset .asp_option_cat,div.asp_w.asp_sb.searchsettings fieldset .asp_option,div.asp_w.asp_sb.searchsettings fieldset .asp_option_cat{width:auto;max-width:none}div.asp_w.asp_s.searchsettings fieldset .asp_option_cat_level-1,div.asp_w.asp_sb.searchsettings fieldset .asp_option_cat_level-1{margin-left:12px}div.asp_w.asp_s.searchsettings fieldset .asp_option_cat_level-2,div.asp_w.asp_sb.searchsettings fieldset .asp_option_cat_level-2{margin-left:24px}div.asp_w.asp_s.searchsettings fieldset .asp_option_cat_level-3,div.asp_w.asp_sb.searchsettings fieldset .asp_option_cat_level-3{margin-left:36px}div.asp_w.asp_s.searchsettings fieldset div.asp_option_label,div.asp_w.asp_sb.searchsettings fieldset div.asp_option_label{width:70%;display:block}div.asp_w.asp_s.searchsettings fieldset div.asp_option_label{width:auto;display:block;box-sizing:border-box}div.asp_w.asp_s.searchsettings fieldset .asp_option_cat_level-2 div.asp_option_label{padding-right:12px}div.asp_w.asp_s.searchsettings fieldset .asp_option_cat_level-3 div.asp_option_label{padding-right:24px}div.asp_w.asp_s select,div.asp_w.asp_sb select{width:100%;max-width:100%;border-radius:0;padding:5px !important;background:#f9f9f9;background-clip:padding-box;-webkit-box-shadow:none;box-shadow:none;margin:0;border:none;color:#111;margin-bottom:0 !important;box-sizing:border-box;line-height:initial;outline:none !important;font-family:Roboto,Helvetica;font-size:14px;height:34px;min-height:unset !important}div.asp_w.asp_s select[multiple],div.asp_w.asp_sb select[multiple]{background:#fff}div.asp_w.asp_s select:not([multiple]),div.asp_w.asp_sb select:not([multiple]){overflow:hidden !important}div.asp_w.asp_s .asp-nr-container,div.asp_w.asp_sb .asp-nr-container{display:flex;gap:8px;justify-content:space-between}div.ajaxsearchpro.searchsettings fieldset.asp_custom_f{margin-top:9px}div.ajaxsearchpro.searchsettings fieldset legend{margin-bottom:8px !important;-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}div.ajaxsearchpro.searchsettings fieldset legend + div.asp_option_inner{margin-top:0 !important}div.ajaxsearchpro.searchsettings .asp_sett_scroll>.asp_option_cat:first-child>.asp_option_inner{margin-top:0 !important}div.ajaxsearchpro.searchsettings fieldset .asp_select_single,div.ajaxsearchpro.searchsettings fieldset .asp_select_multiple{padding:0 10px}.asp_arrow_box{position:absolute;background:#444;padding:12px;color:white;border-radius:4px;font-size:14px;max-width:240px;display:none;z-index:99999999999999999}.asp_arrow_box:after{top:100%;left:50%;border:solid transparent;content:" ";height:0;width:0;position:absolute;pointer-events:none;border-color:transparent;border-top-color:#444;border-width:6px;margin-left:-6px}.asp_arrow_box.asp_arrow_box_bottom:after{bottom:100%;top:unset;border-bottom-color:#444;border-top-color:transparent}.asp_two_column{margin:8px 0 12px 0}.asp_two_column .asp_two_column_first,.asp_two_column .asp_two_column_last{width:48%;padding:1% 2% 1% 0;float:left;box-sizing:content-box}.asp_two_column .asp_two_column_last{padding:1% 0 1% 2%}.asp_shortcodes_container{display:-webkit-flex;display:flex;-webkit-flex-wrap:wrap;flex-wrap:wrap;margin:-10px 0 12px -10px;box-sizing:border-box}.asp_shortcodes_container .asp_shortcode_column{-webkit-flex-grow:0;flex-grow:0;-webkit-flex-shrink:1;flex-shrink:1;min-width:120px;padding:10px 0 0 10px;flex-basis:33%;-webkit-flex-basis:33%;box-sizing:border-box}p.asp-try{color:#555;font-size:14px;margin-top:5px;line-height:28px;font-weight:300;visibility:hidden}p.asp-try a{color:#FFB556;margin-left:10px;cursor:pointer;display:inline-block}.asp_ac_autocomplete,.asp_ac_autocomplete div,.asp_ac_autocomplete span{}.asp_ac_autocomplete{display:inline;position:relative;word-spacing:normal;text-transform:none;text-indent:0;text-shadow:none;text-align:start}.asp_ac_autocomplete .asp_ac_autocomplete_dropdown{position:absolute;border:1px solid #ccc;border-top-color:#d9d9d9;box-shadow:0 2px 4px rgba(0,0,0,0.2);-webkit-box-shadow:0 2px 4px rgba(0,0,0,0.2);cursor:default;display:none;z-index:1001;margin-top:-1px;background-color:#fff;min-width:100%;overflow:auto}.asp_ac_autocomplete .asp_ac_autocomplete_hint{position:absolute;z-index:1;color:#ccc !important;-webkit-text-fill-color:#ccc !important;text-fill-color:#ccc !important;overflow:hidden !important;white-space:pre !important}.asp_ac_autocomplete .asp_ac_autocomplete_hint span{color:transparent;opacity:0.0}.asp_ac_autocomplete .asp_ac_autocomplete_dropdown>div{background:#fff;white-space:nowrap;cursor:pointer;line-height:1.5em;padding:2px 0 2px 0}.asp_ac_autocomplete .asp_ac_autocomplete_dropdown>div.active{background:#0097CF;color:#FFF}.rtl .asp_content,.rtl .asp_nores,.rtl .asp_content *,.rtl .asp_nores *,.rtl .searchsettings form{text-align:right !important;direction:rtl !important}.rtl .asp_nores>*{display:inline-block}.rtl .searchsettings .asp_option{flex-direction:row-reverse !important;-webkit-flex-direction:row-reverse !important}.rtl .asp_option{direction:ltr}.rtl .asp_label,.rtl .asp_option div.asp_option_label{text-align:right !important}.rtl .asp_label{max-width:1000px !important;width:100%;direction:rtl !important}.rtl .asp_label input[type=radio]{margin:0 0 0 6px !important}.rtl .asp_option_cat_level-0 div.asp_option_label{font-weight:bold !important}.rtl fieldset .asp_option_cat_level-1{margin-right:12px !important;margin-left:0}.rtl fieldset .asp_option_cat_level-2{margin-right:24px !important;margin-left:0}.rtl fieldset .asp_option_cat_level-3{margin-right:36px !important;margin-left:0}.rtl .searchsettings legend{text-align:right !important;display:block;width:100%}.rtl .searchsettings input[type=text],.rtl .searchsettings select{direction:rtl !important;text-align:right !important}
1679.rtl div.asp_w.asp_s.searchsettings form,.rtl div.asp_w.asp_sb.searchsettings form{flex-direction:row-reverse !important}.rtl div.horizontal.asp_r div.item{float:right !important}.rtl p.asp-try{direction:rtl;text-align:right;margin-right:10px;width:auto !important}.asp_elementor_nores{text-align:center}.elementor-sticky__spacer .asp_w,.elementor-sticky__spacer .asp-try{visibility:hidden !important;opacity:0 !important;z-index:-1 !important}</style><style id='asp-instance-3'>div[id*='ajaxsearchpro3_'] div.asp_loader,div[id*='ajaxsearchpro3_'] div.asp_loader *{box-sizing:border-box !important;margin:0;padding:0;box-shadow:none}div[id*='ajaxsearchpro3_'] div.asp_loader{box-sizing:border-box;display:flex;flex:0 1 auto;flex-direction:column;flex-grow:0;flex-shrink:0;flex-basis:28px;max-width:100%;max-height:100%;align-items:center;justify-content:center}div[id*='ajaxsearchpro3_'] div.asp_loader-inner{width:100%;margin:0 auto;text-align:center;height:100%}@-webkit-keyframes rotate-simple{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}50%{-webkit-transform:rotate(180deg);transform:rotate(180deg)}100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@keyframes rotate-simple{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}50%{-webkit-transform:rotate(180deg);transform:rotate(180deg)}100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}div[id*='ajaxsearchpro3_'] div.asp_simple-circle{margin:0;height:100%;width:100%;animation:rotate-simple 0.8s infinite linear;-webkit-animation:rotate-simple 0.8s infinite linear;border:4px solid rgb(255,255,255);border-right-color:transparent;border-radius:50%;box-sizing:border-box}div[id*='ajaxsearchprores3_'] .asp_res_loader div.asp_loader,div[id*='ajaxsearchprores3_'] .asp_res_loader div.asp_loader *{box-sizing:border-box !important;margin:0;padding:0;box-shadow:none}div[id*='ajaxsearchprores3_'] .asp_res_loader div.asp_loader{box-sizing:border-box;display:flex;flex:0 1 auto;flex-direction:column;flex-grow:0;flex-shrink:0;flex-basis:28px;max-width:100%;max-height:100%;align-items:center;justify-content:center}div[id*='ajaxsearchprores3_'] .asp_res_loader div.asp_loader-inner{width:100%;margin:0 auto;text-align:center;height:100%}@-webkit-keyframes rotate-simple{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}50%{-webkit-transform:rotate(180deg);transform:rotate(180deg)}100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@keyframes rotate-simple{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}50%{-webkit-transform:rotate(180deg);transform:rotate(180deg)}100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}div[id*='ajaxsearchprores3_'] .asp_res_loader div.asp_simple-circle{margin:0;height:100%;width:100%;animation:rotate-simple 0.8s infinite linear;-webkit-animation:rotate-simple 0.8s infinite linear;border:4px solid rgb(255,255,255);border-right-color:transparent;border-radius:50%;box-sizing:border-box}#ajaxsearchpro3_1 div.asp_loader,#ajaxsearchpro3_2 div.asp_loader,#ajaxsearchpro3_1 div.asp_loader *,#ajaxsearchpro3_2 div.asp_loader *{box-sizing:border-box !important;margin:0;padding:0;box-shadow:none}#ajaxsearchpro3_1 div.asp_loader,#ajaxsearchpro3_2 div.asp_loader{box-sizing:border-box;display:flex;flex:0 1 auto;flex-direction:column;flex-grow:0;flex-shrink:0;flex-basis:28px;max-width:100%;max-height:100%;align-items:center;justify-content:center}#ajaxsearchpro3_1 div.asp_loader-inner,#ajaxsearchpro3_2 div.asp_loader-inner{width:100%;margin:0 auto;text-align:center;height:100%}@-webkit-keyframes rotate-simple{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}50%{-webkit-transform:rotate(180deg);transform:rotate(180deg)}100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@keyframes rotate-simple{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}50%{-webkit-transform:rotate(180deg);transform:rotate(180deg)}100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}#ajaxsearchpro3_1 div.asp_simple-circle,#ajaxsearchpro3_2 div.asp_simple-circle{margin:0;height:100%;width:100%;animation:rotate-simple 0.8s infinite linear;-webkit-animation:rotate-simple 0.8s infinite linear;border:4px solid rgb(255,255,255);border-right-color:transparent;border-radius:50%;box-sizing:border-box}@-webkit-keyframes asp_an_fadeInDown{0%{opacity:0;-webkit-transform:translateY(-20px)}100%{opacity:1;-webkit-transform:translateY(0)}}@keyframes asp_an_fadeInDown{0%{opacity:0;transform:translateY(-20px)}100%{opacity:1;transform:translateY(0)}}.asp_an_fadeInDown{-webkit-animation-name:asp_an_fadeInDown;animation-name:asp_an_fadeInDown}div.asp_r.asp_r_3,div.asp_r.asp_r_3 *,div.asp_m.asp_m_3,div.asp_m.asp_m_3 *,div.asp_s.asp_s_3,div.asp_s.asp_s_3 *{-webkit-box-sizing:content-box;-moz-box-sizing:content-box;-ms-box-sizing:content-box;-o-box-sizing:content-box;box-sizing:content-box;border:0;border-radius:0;text-transform:none;text-shadow:none;box-shadow:none;text-decoration:none;text-align:left;letter-spacing:normal}div.asp_r.asp_r_3,div.asp_m.asp_m_3,div.asp_s.asp_s_3{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;-ms-box-sizing:border-box;-o-box-sizing:border-box;box-sizing:border-box}div.asp_r.asp_r_3,div.asp_r.asp_r_3 *,div.asp_m.asp_m_3,div.asp_m.asp_m_3 *,div.asp_s.asp_s_3,div.asp_s.asp_s_3 *{padding:0;margin:0}.wpdreams_clear{clear:both}.asp_w_container_3{width:100%}div.asp_m.asp_m_3{width:100%;height:auto;max-height:none;border-radius:5px;background:#d1eaff;margin-top:0;margin-bottom:0;background:rgb(255,255,255);overflow:hidden;border:0 none rgb(0,0,0);border-radius:0;box-shadow:none}div.asp_m.asp_m_3 .probox{margin:0;height:40px;background:transparent;border:1px none rgb(81,81,81);border-radius:0;box-shadow:none}p[id*=asp-try-3]{color:rgb(85,85,85) !important;display:block}div.asp_main_container+[id*=asp-try-3]{width:100%}p[id*=asp-try-3] a{color:rgba(238,131,0,1) !important}p[id*=asp-try-3] a:after{color:rgb(85,85,85) !important;display:inline;content:','}p[id*=asp-try-3] a:last-child:after{display:none}div.asp_m.asp_m_3 .probox .proinput{font-weight:normal;font-family:"Inter-Regular";color:rgb(141,141,141);font-size:17px;line-height:15px;text-shadow:none;line-height:normal;flex-grow:1;order:5;margin:0 0 0 10px;padding:0 5px}div.asp_m.asp_m_3 .probox .proinput input.orig{font-weight:normal;font-family:"Inter-Regular";color:rgb(141,141,141);font-size:17px;line-height:15px;text-shadow:none;line-height:normal;border:0;box-shadow:none;height:40px;position:relative;z-index:2;padding:0 !important;padding-top:2px !important;margin:-1px 0 0 -4px !important;width:100%;background:transparent !important}div.asp_m.asp_m_3 .probox .proinput input.autocomplete{font-weight:normal;font-family:"Inter-Regular";color:rgb(141,141,141);font-size:17px;line-height:15px;text-shadow:none;line-height:normal;opacity:0.25;height:40px;
1679display:block;position:relative;z-index:1;padding:0 !important;margin:-1px 0 0 -4px !important;margin-top:-40px !important;width:100%;background:transparent !important}.rtl div.asp_m.asp_m_3 .probox .proinput input.orig,.rtl div.asp_m.asp_m_3 .probox .proinput input.autocomplete{font-weight:normal;font-family:"Inter-Regular";color:rgb(141,141,141);font-size:17px;line-height:15px;text-shadow:none;line-height:normal;direction:rtl;text-align:right}.rtl div.asp_m.asp_m_3 .probox .proinput{margin-right:2px}.rtl div.asp_m.asp_m_3 .probox .proloading,.rtl div.asp_m.asp_m_3 .probox .proclose{order:3}div.asp_m.asp_m_3 .probox .proinput input.orig::-webkit-input-placeholder{font-weight:normal;font-family:"Inter-Regular";color:rgb(141,141,141);font-size:17px;text-shadow:none;opacity:0.85}div.asp_m.asp_m_3 .probox .proinput input.orig::-moz-placeholder{font-weight:normal;font-family:"Inter-Regular";color:rgb(141,141,141);font-size:17px;text-shadow:none;opacity:0.85}div.asp_m.asp_m_3 .probox .proinput input.orig:-ms-input-placeholder{font-weight:normal;font-family:"Inter-Regular";color:rgb(141,141,141);font-size:17px;text-shadow:none;opacity:0.85}div.asp_m.asp_m_3 .probox .proinput input.orig:-moz-placeholder{font-weight:normal;font-family:"Inter-Regular";color:rgb(141,141,141);font-size:17px;text-shadow:none;opacity:0.85;line-height:normal !important}div.asp_m.asp_m_3 .probox .proinput input.autocomplete{font-weight:normal;font-family:"Inter-Regular";color:rgb(141,141,141);font-size:17px;line-height:15px;text-shadow:none;line-height:normal;border:0;box-shadow:none}div.asp_m.asp_m_3 .probox .proloading,div.asp_m.asp_m_3 .probox .proclose,div.asp_m.asp_m_3 .probox .promagnifier,div.asp_m.asp_m_3 .probox .prosettings{width:40px;height:40px;flex:0 0 40px;flex-grow:0;order:7;text-align:center}div.asp_m.asp_m_3 .probox .proclose svg{fill:rgb(254,254,254);background:rgb(51,51,51);box-shadow:0 0 0 2px rgba(255,255,255,0.9);border-radius:50%;box-sizing:border-box;margin-left:-10px;margin-top:-10px;padding:4px}div.asp_m.asp_m_3 .probox .proloading{width:40px;height:40px;min-width:40px;min-height:40px;max-width:40px;max-height:40px}div.asp_m.asp_m_3 .probox .proloading .asp_loader{width:36px;height:36px;min-width:36px;min-height:36px;max-width:36px;max-height:36px}div.asp_m.asp_m_3 .probox .promagnifier{width:auto;height:40px;flex:0 0 auto;order:7;-webkit-flex:0 0 auto;-webkit-order:7}div.asp_m.asp_m_3 .probox .promagnifier:focus-visible{outline:black outset}div.asp_m.asp_m_3 .probox .proloading .innericon,div.asp_m.asp_m_3 .probox .proclose .innericon,div.asp_m.asp_m_3 .probox .promagnifier .innericon,div.asp_m.asp_m_3 .probox .prosettings .innericon{text-align:center}div.asp_m.asp_m_3 .probox .promagnifier .innericon{display:block;width:40px;height:40px;float:right}div.asp_m.asp_m_3 .probox .promagnifier .asp_text_button{display:block;width:auto;height:40px;float:right;margin:0;padding:0 10px 0 2px;font-weight:normal;font-family:"Inter-Regular";color:rgb(51,51,51);font-size:15px;line-height:normal;text-shadow:none;line-height:40px}div.asp_m.asp_m_3 .probox .promagnifier .innericon svg{fill:rgb(39,39,39)}div.asp_m.asp_m_3 .probox .prosettings .innericon svg{fill:rgb(255,255,255)}div.asp_m.asp_m_3 .probox .promagnifier{width:40px;height:40px;background:rgb(190,76,70);background-position:center center;background-repeat:no-repeat;order:11;-webkit-order:11;float:right;border:0 solid rgb(0,0,0);border-radius:0;box-shadow:0 0 0 0 rgba(255,255,255,0.61);cursor:pointer;background-size:100% 100%;background-position:center center;background-repeat:no-repeat;cursor:pointer}div.asp_m.asp_m_3 .probox .prosettings{width:40px;height:40px;background:rgb(190,76,70);background-position:center center;background-repeat:no-repeat;order:10;-webkit-order:10;float:right;border:0 none rgb(104,174,199);border-radius:0;box-shadow:0 0 0 0 rgba(255,255,255,0.63);cursor:pointer;background-size:100% 100%;align-self:flex-end}div.asp_r.asp_r_3{position:static;z-index:1;width:auto;margin:15px 0 0 0}div.asp_r.asp_r_3 .asp_nores{border:0 solid rgb(0,0,0);border-radius:0;box-shadow:0 5px 5px -5px #dfdfdf;padding:6px 12px 6px 12px;margin:0;font-weight:normal;font-family:inherit;color:rgba(74,74,74,1);font-size:1rem;line-height:1.2rem;text-shadow:none;font-weight:normal;background:rgb(255,255,255)}div.asp_r.asp_r_3 .asp_nores .asp_nores_kw_suggestions{color:rgba(234,67,53,1);font-weight:normal}div.asp_r.asp_r_3 .asp_nores .asp_keyword{padding:0 8px 0 0;cursor:pointer;color:rgba(20,84,169,1);font-weight:bold}div.asp_r.asp_r_3 .asp_nores .asp_keyword.asp_keyword--ai::before{content:"";display:inline-block;width:1em;height:1em;margin-right:4px;vertical-align:-0.125em;background-color:var(--asp-ai-badge-color,#f5b301);-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='black' d='M10 1C10.5 5.5 14.5 9.5 19 10 14.5 10.5 10.5 14.5 10 19 9.5 14.5 5.5 10.5 1 10 5.5 9.5 9.5 5.5 10 1Z'/%3E%3Cpath fill='black' d='M19 14C19.2 16.8 21.2 17.8 23 18 21.2 18.2 19.2 19.2 19 22 18.8 19.2 16.8 18.2 15 18 16.8 17.8 18.8 16.8 19 14Z'/%3E%3C/svg%3E") center / contain no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='black' d='M10 1C10.5 5.5 14.5 9.5 19 10 14.5 10.5 10.5 14.5 10 19 9.5 14.5 5.5 10.5 1 10 5.5 9.5 9.5 5.5 10 1Z'/%3E%3Cpath fill='black' d='M19 14C19.2 16.8 21.2 17.8 23 18 21.2 18.2 19.2 19.2 19 22 18.8 19.2 16.8 18.2 15 18 16.8 17.8 18.8 16.8 19 14Z'/%3E%3C/svg%3E") center / contain no-repeat}div.asp_r.asp_r_3 .asp_results_top{background:rgb(255,255,255);border:1px none rgb(81,81,81);border-radius:0;padding:6px 12px 6px 12px;margin:0 0 4px 0;text-align:center;font-weight:normal;font-family:"Open Sans";color:rgb(74,74,74);font-size:15px;line-height:20px;text-shadow:none}div.asp_r.asp_r_3 .results .item{height:auto;background:rgb(255,255,255)}div.asp_r.asp_r_3 .results .item.hovered{background-image:-moz-radial-gradient(center,ellipse cover,rgba(245,242,242,0.64),rgb(245,244,244));background-image:-webkit-gradient(radial,center center,0px,center center,100%,rgba(245,242,242,0.64),rgb(245,244,244));background-image:-webkit-radial-gradient(center,ellipse cover,rgba(245,242,242,0.64),rgb(245,244,244));background-image:-o-radial-gradient(center,ellipse cover,rgba(245,242,242,0.64),rgb(245,244,244));background-image:-ms-radial-gradient(center,ellipse cover,rgba(245,242,242,0.64),rgb(245,244,244));background-image:radial-gradient(ellipse at center,rgba(245,242,242,0.64),rgb(245,244,244))}div.asp_r.asp_r_3 .results .item .asp_image{background-size:contain;background-repeat:no-repeat}div.asp_r.asp_r_3 .results .item .asp_image img{object-fit:contain}div.asp_r.asp_r_3 .results .item .asp_item_overlay_img{background-size:contain;background-repeat:no-repeat}div.asp_r.asp_r_3 .results .item .asp_content{overflow:hidden;background:transparent;margin:0;padding:0 10px}div.asp_r.asp_r_3 .results .item .asp_content h3{margin:0;padding:0;display:inline-block;line-height:inherit;font-weight:normal;font-family:"Inter-Regular";color:rgb(54,54,54);font-size:13px;line-height:20px;text-shadow:none}div.asp_r.asp_r_3 .results .item .asp_content h3 a{margin:0;padding:0;line-height:inherit;display:block;font-weight:normal;font-family:"Inter-Regular";color:rgb(54,54,54);font-size:13px;line-height:20px;text-shadow:none}div.asp_r.asp_r_3 .results .item .asp_content h3 a:hover{font-weight:normal;font-family:"Inter-Regular";color:rgb(54,54,54);font-size:13px;line-height:20px;text-shadow:none}div.asp_r.asp_r_3 .results .item div.etc{padding:0;font-size:13px;line-height:1.3em;margin-bottom:6px}div.asp_r.asp_r_3 .results .item .etc .asp_author{padding:0;font-weight:normal;font-family:"Inter-Regular";color:rgb(126,126,126);font-size:11px;line-height:13px;text-shadow:none}div.asp_r.asp_r_3 .results .item .etc .asp_date{margin:0 0 0 10px;padding:0;font-weight:normal;font-family:"Inter-Regular";color:rgb(126,126,126);font-size:11px;line-height:15px;text-shadow:none}div.asp_r.asp_r_3 .results .item div.asp_content{margin:0;padding:0;font-weight:normal;font-family:"Inter-Regular";color:rgb(74,74,74);font-size:13px;line-height:1.35em;text-shadow:none}div.asp_r.asp_r_3 span.highlighted{font-weight:bold;color:rgb(245,240,29);background-color:rgba(238,238,238,1)}div.asp_r.asp_r_3 p.showmore{text-align:center;font-weight:normal;font-family:"Inter-Regular";color:rgb(5,94,148);font-size:12px;line-height:15px;text-shadow:none}div.asp_r.asp_r_3 p.showmore a{font-weight:normal;font-family:"Inter-Regular";color:rgb(5,94,148);font-size:12px;line-height:15px;text-shadow:none;padding:10px 5px;margin:0 auto;background:rgb(255,255,255);
1679display:block;text-align:center}div.asp_r.asp_r_3 .asp_res_loader{background:rgb(255,255,255);height:200px;padding:10px}div.asp_r.asp_r_3.isotopic .asp_res_loader{background:rgba(255,255,255,0)}div.asp_r.asp_r_3 .asp_res_loader .asp_loader{height:200px;width:200px;margin:0 auto}div.asp_s.asp_s_3.searchsettings{direction:ltr;padding:0;background:rgb(190,76,70);box-shadow:none;;max-width:208px;z-index:2}div.asp_s.asp_s_3.searchsettings.asp_s{z-index:11001}div.asp_sb.asp_sb_3.searchsettings{max-width:none}div.asp_s.asp_s_3.searchsettings form{display:flex}div.asp_sb.asp_sb_3.searchsettings form{display:flex}div.asp_s.asp_s_3.searchsettings div.asp_option_label,div.asp_s.asp_s_3.searchsettings .asp_label{font-weight:normal;font-family:"Inter-Regular";color:rgb(255,255,255);font-size:12px;line-height:15px;text-shadow:none}div.asp_sb.asp_sb_3.searchsettings .asp_option_inner .asp_option_checkbox,div.asp_s.asp_s_3.searchsettings .asp_option_inner .asp_option_checkbox{background-image:-webkit-linear-gradient(180deg,rgb(34,34,34),rgb(69,72,77));background-image:-moz-linear-gradient(180deg,rgb(34,34,34),rgb(69,72,77));background-image:-o-linear-gradient(180deg,rgb(34,34,34),rgb(69,72,77));background-image:-ms-linear-gradient(180deg,rgb(34,34,34) 0,rgb(69,72,77) 100%);background-image:linear-gradient(180deg,rgb(34,34,34),rgb(69,72,77))}div.asp_sb.asp_sb_3.searchsettings .asp_option_inner .asp_option_checkbox:after,div.asp_s.asp_s_3.searchsettings .asp_option_inner .asp_option_checkbox:after{font-family:'asppsicons2';border:none;content:"\e800";display:block;position:absolute;top:0;left:0;font-size:11px;color:rgb(255,255,255);margin:1px 0 0 0 !important;line-height:17px;text-align:center;text-decoration:none;text-shadow:none}div.asp_sb.asp_sb_3.searchsettings .asp_sett_scroll,div.asp_s.asp_s_3.searchsettings .asp_sett_scroll{scrollbar-width:thin;scrollbar-color:rgba(0,0,0,0.5) transparent}div.asp_sb.asp_sb_3.searchsettings .asp_sett_scroll::-webkit-scrollbar,div.asp_s.asp_s_3.searchsettings .asp_sett_scroll::-webkit-scrollbar{width:7px}div.asp_sb.asp_sb_3.searchsettings .asp_sett_scroll::-webkit-scrollbar-track,div.asp_s.asp_s_3.searchsettings .asp_sett_scroll::-webkit-scrollbar-track{background:transparent}div.asp_sb.asp_sb_3.searchsettings .asp_sett_scroll::-webkit-scrollbar-thumb,div.asp_s.asp_s_3.searchsettings .asp_sett_scroll::-webkit-scrollbar-thumb{background:rgba(0,0,0,0.5);border-radius:5px;border:none}div.asp_s.asp_s_3.searchsettings .asp_sett_scroll{max-height:none;overflow:auto}div.asp_sb.asp_sb_3.searchsettings .asp_sett_scroll{max-height:none;overflow:auto}div.asp_s.asp_s_3.searchsettings fieldset{width:200px;
1679min-width:200px;max-width:10000px}div.asp_sb.asp_sb_3.searchsettings fieldset{width:200px;min-width:200px;max-width:10000px}div.asp_s.asp_s_3.searchsettings fieldset legend{padding:0 0 0 10px;margin:0;background:transparent;font-weight:normal;font-family:"Inter-Regular";color:rgb(31,31,31);font-size:14px;line-height:15px;text-shadow:none}.asp-sl-overlay{background:#FFF !important}div.asp_r.asp_r_3.vertical{padding:4px;background:rgb(225,99,92);border-radius:3px;border:1px none rgb(0,0,0);border-radius:0;box-shadow:none;visibility:hidden;display:none}div.asp_r.asp_r_3.vertical .results{max-height:none;overflow-x:hidden;overflow-y:auto}div.asp_r.asp_r_3.vertical .item{position:relative;box-sizing:border-box}div.asp_r.asp_r_3.vertical .item .asp_content h3{display:inline}div.asp_r.asp_r_3.vertical .results .item .asp_content{overflow:hidden;width:auto;height:auto;background:transparent;margin:0;padding:8px}div.asp_r.asp_r_3.vertical .results .item .asp_image{width:70px;height:70px;margin:2px 8px 0 0}div.asp_r.asp_r_3.vertical .asp_simplebar-scrollbar::before{background:transparent;background:rgba(0,0,0,0.5)}div.asp_r.asp_r_3.vertical .results .item::after{display:block;position:absolute;bottom:0;content:"";height:1px;width:100%;background:rgba(255,255,255,0.55)}div.asp_r.asp_r_3.vertical .results .item.asp_last_item::after{display:none}.asp_spacer{display:none !important;}.asp_v_spacer{width:100%;height:0}div.asp_r.asp_r_3 .asp_group_header{background:#DDD;background:rgb(246,246,246);border-radius:3px 3px 0 0;border-top:1px solid rgb(248,248,248);border-left:1px solid rgb(248,248,248);border-right:1px solid rgb(248,248,248);margin:0 0 -3px;padding:7px 0 7px 10px;position:relative;z-index:1000;min-width:90%;flex-grow:1;font-weight:normal;font-family:"Inter-Regular";color:rgb(45,45,45);font-size:11px;line-height:13px;text-shadow:none}div.asp_r.asp_r_3.vertical .results{scrollbar-width:thin;scrollbar-color:rgba(0,0,0,0.5) rgb(255,255,255)}div.asp_r.asp_r_3.vertical .results::-webkit-scrollbar{width:10px}div.asp_r.asp_r_3.vertical .results::-webkit-scrollbar-track{background:rgb(255,255,255);box-shadow:inset 0 0 12px 12px transparent;border:none}div.asp_r.asp_r_3.vertical .results::-webkit-scrollbar-thumb{background:transparent;box-shadow:inset 0 0 12px 12px rgba(0,0,0,0);border:solid 2px transparent;border-radius:12px}div.asp_r.asp_r_3.vertical:hover .results::-webkit-scrollbar-thumb{box-shadow:inset 0 0 12px 12px rgba(0,0,0,0.5)}@media(hover:none),(max-width:500px){div.asp_r.asp_r_3.vertical .results::-webkit-scrollbar-thumb{box-shadow:inset 0 0 12px 12px rgba(0,0,0,0.5)}}#ajaxsearchpro3_1 .probox .proinput input.autocomplete,#ajaxsearchpro3_2 .probox .proinput input.autocomplete,div.asp_m.asp_m_3 .probox .proinput input.autocomplete{margin-top:-15px !important}</style> 1680 <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin /> 1681 <style> 1682 @font-face { 1683 font-family: 'Lato'; 1684 font-style: normal; 1685 font-weight: 300; 1686 font-display: swap; 1687 src: url(https://fonts.gstatic.com/s/lato/v23/S6u9w4BMUTPHh7USSwiPHA.ttf) format('truetype'); 1688} 1689@font-face { 1690 font-family: 'Lato'; 1691 font-style: normal; 1692 font-weight: 400; 1693 font-display: swap; 1694 src: url(https://fonts.gstatic.com/s/lato/v23/S6uyw4BMUTPHjx4wWw.ttf) format('truetype'); 1695} 1696@font-face { 1697 font-family: 'Lato'; 1698 font-style: normal; 1699 font-weight: 700; 1700 font-display: swap; 1701 src: url(https://fonts.gstatic.com/s/lato/v23/S6u9w4BMUTPHh6UVSwiPHA.ttf) format('truetype'); 1702} 1703@font-face { 1704 font-family: 'Open Sans'; 1705 font-style: normal; 1706 font-weight: 300; 1707 font-stretch: normal; 1708 font-display: swap; 1709 src: url(https://fonts.gstatic.com/s/opensans/v34/memSYaGs126MiZpBA-UvWbX2vVnXBbObj2OVZyOOSr4dVJWUgsiH0B4gaVc.ttf) format('truetype'); 1710} 1711@font-face { 1712 font-family: 'Open Sans'; 1713 font-style: normal; 1714 font-weight: 400; 1715 font-stretch: normal; 1716 font-display: swap; 1717 src: url(https://fonts.gstatic.com/s/opensans/v34/memSYaGs126MiZpBA-UvWbX2vVnXBbObj2OVZyOOSr4dVJWUgsjZ0B4gaVc.ttf) format('truetype'); 1718} 1719@font-face { 1720 font-family: 'Open Sans'; 1721 font-style: normal; 1722 font-weight: 700; 1723 font-stretch: normal; 1724 font-display: swap;
1725 src: url(https://fonts.gstatic.com/s/opensans/v34/memSYaGs126MiZpBA-UvWbX2vVnXBbObj2OVZyOOSr4dVJWUgsg-1x4gaVc.ttf) format('truetype'); 1726} 1727 1728 </style></head> 1729 1730 1731 1732<body class="wp-singular page-template page-template-page-kanal-ny page-template-page-kanal-ny-php page page-id-99143 custom-background wp-theme-KiteTheme contained"> 1733 1734 1735 <div class="pagewrapper"> 1736 <header class="main border"> 1737 <div class="wrapper"> 1738 <div class="logo"> <a href="https://webb-tv.nu"> 1739 <img class="svglogo" style="width:190px;height:38px" alt="WEBB-TV-PLAY" src="https://webb-tv.nu/pictures/logosfront/webb-tv-play.svg" /></a> 1740 <div id="tagline"><h2>Gratis svensk TV & streaming</h2></div> 1741 </div> 1742 1743 1744<div class="searchbarmiddle"> 1745 1746 1747<div id="advsearch"> 1748<div class="asp_w_container asp_w_container_3 asp_w_container_3_1" data-id="3" data-instance="1"><div class='asp_w asp_m asp_m_3 asp_m_3_1 wpdreams_asp_sc wpdreams_asp_sc-3 ajaxsearchpro asp_main_container asp_non_compact' data-id="3" data-name="Webb-TV sök" data-instance="1" id='ajaxsearchpro3_1'><div class="probox"><div class='prosettings' style='display:none;' data-opened=0><div class='innericon'><svg xmlns="http://www.w3.org/2000/svg" width="22" height="22" viewBox="0 0 512 512"><path d="M170 294c0 33.138-26.862 60-60 60-33.137 0-60-26.862-60-60 0-33.137 26.863-60 60-60 33.138 0 60 26.863 60 60zm-60 90c-6.872 0-13.565-.777-20-2.243V422c0 11.046 8.954 20 20 20s20-8.954 20-20v-40.243c-6.435 1.466-13.128 2.243-20 2.243zm0-180c6.872 0 13.565.777 20 2.243V90c0-11.046-8.954-20-20-20s-20 8.954-20 20v116.243c6.435-1.466 13.128-2.243 20-2.243zm146-7c12.13 0 22 9.87 22 22s-9.87 22-22 22-22-9.87-22-22 9.87-22 22-22zm0-38c-33.137 0-60 26.863-60 60 0 33.138 26.863 60 60 60 33.138 0 60-26.862 60-60 0-33.137-26.862-60-60-60zm0-30c6.872 0 13.565.777 20 2.243V90c0-11.046-8.954-20-20-20s-20 8.954-20 20v41.243c6.435-1.466 13.128-2.243 20-2.243zm0 180c-6.872 0-13.565-.777-20-2.243V422c0 11.046 8.954 20 20 20s20-8.954 20-20V306.757c-6.435 1.466-13.128 2.243-20 2.243zm146-75c-33.137 0-60 26.863-60 60 0 33.138 26.863 60 60 60 33.138 0 60-26.862 60-60 0-33.137-26.862-60-60-60zm0-30c6.872 0 13.565.777 20 2.243V90c0-11.046-8.954-20-20-20s-20 8.954-20 20v116.243c6.435-1.466 13.128-2.243 20-2.243zm0 180c-6.872 0-13.565-.777-20-2.243V422c0 11.046 8.954 20 20 20s20-8.954 20-20v-40.243c-6.435 1.466-13.128 2.243-20 2.243z"/></svg></div></div><div class='proinput'><form role="search" action='#' autocomplete="off" aria-label="Search form"><input type='search' class='orig' placeholder='Vad vill du titta på idag?' name='phrase' value='' aria-label="Search input" autocomplete="off"/><input type='text' class='autocomplete' name='phrase' value='' aria-label="Search autocomplete input" aria-hidden="true" tabindex="-1" autocomplete="off" disabled/></form></div><button class='promagnifier' aria-label="Search magnifier button"><span class='asp_text_button hiddend'> Sök </span><span class='innericon'><svg xmlns="http://www.w3.org/2000/svg" width="22" height="22" viewBox="0 0 512 512"><path d="M460.355 421.59l-106.51-106.512c20.04-27.553 31.884-61.437 31.884-98.037C385.73 124.935 310.792 50 218.685 50c-92.106 0-167.04 74.934-167.04 167.04 0 92.107 74.935 167.042 167.04 167.042 34.912 0 67.352-10.773 94.184-29.158L419.945 462l40.41-40.41zM100.63 217.04c0-65.095 52.96-118.055 118.056-118.055 65.098 0 118.057 52.96 118.057 118.056 0 65.097-52.96 118.057-118.057 118.057-65.096 0-118.055-52.96-118.055-118.056z"/></svg></span><span class="asp_clear"></span></button><div class='proloading'><div class="asp_loader"><div class="asp_loader-inner asp_simple-circle"></div></div></div><div class='proclose'><svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve"><polygon points="438.393,374.595 319.757,255.977 438.378,137.348 374.595,73.607 255.995,192.225 137.375,73.622 73.607,137.352 192.246,255.983 73.622,374.625 137.352,438.393 256.002,319.734 374.652,438.378 "/></svg></div></div></div><div class='asp_data_container' style="display:none !important;"><div class="asp_init_data" style="display:none !important;" id="asp_init_id_3_1" data-asp-id="3" data-asp-instance="1" data-settings="{"animations":{"pc":{"settings":{"anim":"fadedrop","dur":100},"results":{"anim":"fadedrop","dur":100},"items":"fadeInDown"},"mob":{"settings":{"anim":"fadedrop","dur":"100"},"results":{"anim":"fadedrop","dur":"100"},"items":"voidanim"}},"autocomplete":{"enabled":0,"trigger_charcount":0,"googleOnly":0,"lang":"en","mobile":0},"autop":{"state":"disabled","phrase":"","count":5},"charcount":3,"closeOnDocClick":1,"compact":{"enabled":0,"focus":1,"width":"100%","width_tablet":"480px","width_phone":"320px","closeOnMagnifier":1,"closeOnDocument":0,"position":"fixed","overlay":0},"cptArchive":{"useAjax":0,"selector":"#main","url":""},"detectVisibility":0,"divi":{"bodycommerce":0},"focusOnPageload":0,"fss_layout":"flex","highlight":0,"highlightWholewords":1,"homeurl":"https:\/\/webb-tv.nu\/","is_results_page":0,"isotopic":{"itemWidth":"200px","itemWidthTablet":"200px","itemWidthPhone":"200px","itemHeight":"200px","itemHeightTablet":"200px","itemHeightPhone":"200px","pagination":1,"rows":2,"gutter":5,"showOverlay":1,"blurOverlay":1,"hideContent":1},"itemscount":1000,"loaderLocation":"auto","mobile":{"trigger_on_type":1,"click_action":"ajax_search","return_action":"ajax_search","click_action_location":"same","return_action_location":"same","redirect_url":"?s={phrase}","elementor_url":"https:\/\/webb-tv.nu\/?asp_ls={phrase}","menu_selector":"#menu-toggle","hide_keyboard":0,"force_res_hover":0,"force_sett_hover":0,"force_sett_state":"none"},"override_method":"get","overridewpdefault":1,"prescontainerheight":"400px","preventBodyScroll":0,"preventEvents":0,"rb":{"action":"nothing"},"resPage":{"useAjax":0,"selector":"#main","trigger_type":1,"trigger_facet":1,"trigger_magnifier":0,"trigger_return":0},"results":{"width":"auto","width_tablet":"auto","width_phone":"auto","disableClick":false},"resultsSnapTo":"right","resultsposition":"block","resultstype":"vertical","sb":{"redirect_action":"ajax_search","redirect_location":"same","redirect_url":"?s={phrase}","elementor_url":"https:\/\/webb-tv.nu\/?asp_ls={phrase}"},"scrollBar":{"horizontal":{"enabled":1}},"scrollToResults":{"enabled":0,"offset":0},"select2":{"nores":"Inga resultat p\u00e5"},"settings":{"unselectChildren":1,"unselectParent":0,"hideChildren":0},"settingsHideOnRes":0,"settingsimagepos":"right","settingsVisible":0,"show_more":{"enabled":0,"url":"?s={phrase}","elementor_url":"https:\/\/webb-tv.nu\/?asp_ls={phrase}","action":"ajax","location":"same","infinite":1},"singleHighlight":0,"taxArchive":{"useAjax":0,"selector":"#main","url":""},"lightbox":{"overlay":true,"overlayOpacity":0.7,"overlayColor":"#FFFFFF","nav":true,"disableRightClick":true,"close":true,"animationSpeed":250,"docClose":true,"disableScroll":true,"enableKeyboard":true},"trigger":{"delay":500,"autocomplete_delay":310,"update_href":0,"facet":1,"type":1,"click":"first_result","click_location":"same","return":"first_result","return_location":"same","redirect_url":"?s={phrase}","elementor_url":"https:\/\/webb-tv.nu\/?asp_ls={phrase}","minWordLength":3,"charcount_magnifier_enter":0,"charcount":3},"close_icon":{"action":"clear","close_results":true},"wooShop":{"useAjax":0,"selector":"#main","url":""}}"></div><div class='asp_hidden_data' style="display:none !important;"><div class='asp_item_overlay'><div class='asp_item_inner'><svg xmlns="http://www.w3.org/2000/svg" width="22" height="22" viewBox="0 0 512 512"><path d="M448.225 394.243l-85.387-85.385c16.55-26.08 26.146-56.986 26.146-90.094 0-92.99-75.652-168.64-168.643-168.64-92.988 0-168.64 75.65-168.64 168.64s75.65 168.64 168.64 168.64c31.466 0 60.94-8.67 86.176-23.734l86.14 86.142c36.755 36.754 92.355-18.783 55.57-55.57zm-344.233-175.48c0-64.155 52.192-116.35 116.35-116.35s116.353 52.194 116.353 116.35S284.5 335.117 220.342 335.117s-116.35-52.196-116.35-116.352zm34.463-30.26c34.057-78.9 148.668-69.75 170.248 12.863-43.482-51.037-119.984-56.532-170.248-12.862z"/></svg></div></div></div></div><div id='__original__ajaxsearchprores3_1' class='asp_w asp_r asp_r_3 asp_r_3_1 vertical ajaxsearchpro wpdreams_asp_sc wpdreams_asp_sc-3' data-id="3" data-instance="1"><div class="results"><div class="resdrg"></div></div><div class="asp_res_loader hiddend"><div class="asp_loader"><div class="asp_loader-inner asp_simple-circle"></div></div></div></div><div id='__original__ajaxsearchprosettings3_1' class="asp_w asp_ss asp_ss_3 asp_s asp_s_3 asp_s_3_1 wpdreams_asp_sc wpdreams_asp_sc-3 ajaxsearchpro searchsettings" data-id="3" data-instance="1"><form name='options' class="asp-fss-flex" aria-label="Search settings form" autocomplete = 'off'><input type="hidden" name="current_page_id" value="99143"><input type='hidden' name='qtranslate_lang' value='0'/>
1748<input type="hidden" name="filters_changed" value="0"><input type="hidden" name="filters_initial" value="1"><input type="hidden" name="device" value="1"><fieldset class="asp_filter_generic asp_filter_id_1 asp_filter_n_0"><legend>Generic filters</legend><div class="asp_option asp_option_generic asp_option_generic_exact" role="checkbox" aria-checked="false" tabindex="0"><div class="asp_option_inner"><input type="checkbox" value="exact" id="set_exact3_1" aria-label="Exact matches only" name="asp_gen[]" /><div class="asp_option_checkbox"></div></div><div class="asp_option_label"> Exact matches only </div></div></fieldset><div style="clear:both;"></div></form></div></div></div> 1749 1750 1751</div> 1752 1753 1754 1755<div id ="chtop"><a href="/svt-play/"><button class="channel"><img src="https://webb-tv.nu/pictures/logosfront/svt-play.svg" width="32" height="32" alt="SVT Play" title="SVT Play"></button></a><a href="/tv3-play/"><button class="channel"><img src="https://webb-tv.nu/pictures/logosfront/tv3-play.svg" alt="TV3 Play Pluto TV" title="TV3 Play - Pluto TV" width="32" height="32" ></button></a><a href="/tv4-play/"><button class="channel"><img src="https://webb-tv.nu/pictures/logosfront/tv4-play.svg" alt="TV4 Play" title="TV4 Play" width="32" height="32" ></button></a><a href="/tv6-play/"><button class="channel"><img src="https://webb-tv.nu/pictures/logosfront/tv6-play.svg" alt="TV6 Play Pluto TV" title="TV6 Play - Pluto TV" width="32" height="32" ></button></a><a href="/sjuan-play/"><button class="channel"><img src="https://webb-tv.nu/pictures/logosfront/sjuan.svg" alt="Sjuan" title="Sjuan - TV4 Play" width="32" height="32" ></button></a><a href="/tv8-play/"><button class="channel"><img src="https://webb-tv.nu/pictures/logosfront/tv8-play.svg" alt="TV8 Play Pluto TV" title="TV8 Play - Pluto TV" width="32" height="32" ></button></a><a href="/tv10-play/"><button class="channel"><img src="https://webb-tv.nu/pictures/logosfront/tv10-play.svg" alt="TV10 Pluto TV" title="TV10 - Pluto TV" width="32" height="32" ></button></a><a href="/pluto-tv/"><button class="channel"><img src="https://webb-tv.nu/pictures/logosfront/pluto-tv.svg" alt="Pluto TV" title="Pluto TV" width="32" height="32" ></button></a><a href="/rakuten-tv/"><button class="channel"><img src="https://webb-tv.nu/pictures/logosfront/rakuten-tv.svg" alt="Rakuten TV" title="Rakuten TV" width="32" height="32" ></button></a><a href="/kanaler/"><button class="channel"><img src="https://webb-tv.nu/pictures/logosfront/show-more.svg" alt="Visa fler" title="Visa fler" width="32" height="32" ></button></a></div> 1756 1757 <nav class="main"> 1758 1759 1760<!-- <a href="#" class="navbutton togglenav"><i class="fa fa-navicon"></i></a> --> 1761 1762 1763 1764 <a style=" 1765 /* display: none; */ 1766 position: absolute; 1767 right: 52px; 1768" href="https://webb-tv.nu/favoriter/" class="navbutton togglemyprograms" aria-label="Favoriter"><i class="fa fa-heart" aria-hidden="true"></i></a> 1769 1770<div class="showtablet"> 1771<a href="https://webb-tv.nu/mobilsok/" class="navbutton" style=" 1772 margin-right: 7px; 1773" aria-label="GÃ¥ till mobil sökfunktion"><i class="fa fa-search"></i></a> 1774</div> 1775 1776<!-- <a href="https://webb-tv.nu/live/" class="navbutton livestreambutton"><i class="fa livestream">LIVE</i></a> --> 1777 <ul id="menu-meny" class="menu"><li id="menu-item-107842" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-107842"><a href="https://webb-tv.nu/live/">STREAMA LIVE</a></li> 1778<li id="menu-item-107819" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-107819"><a href="https://webb-tv.nu/program-a-o/">Program A-Ã</a></li> 1779<li id="menu-item-107579" class="menu-item menu-item-type-custom menu-item-object-custom current-menu-ancestor current-menu-parent menu-item-has-children menu-item-107579"><a href="#">Kanaler</a> 1780<ul class="sub-menu"> 1781 <li id="menu-item-107820" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-107820"><a href="https://webb-tv.nu/svt-play/" title="SVT Play"><img src="https://webb-tv.nu/wp-content/uploads/2017/09/svt-play.png" alt="svt play" width="42" height="42" class="pagelogo" /> SVT Play</a></li> 1782 <li id="menu-item-107822" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-107822"><a href="https://webb-tv.nu/tv3-play/" title="TV3 Play"><img src="https://webb-tv.nu/wp-content/uploads/2016/01/tv3-play-meny.png" alt="tv3 play" width="42" height="42" class="pagelogo" /> TV3 Play <span class="chblock">â Pluto TV</span></a></li> 1783 <li id="menu-item-107823" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-107823"><a href="https://webb-tv.nu/tv4-play/" title="TV4 Play"><img src="https://webb-tv.nu/wp-content/uploads/2016/01/tv4-play-meny.png" alt="tv4 play" width="42" height="42" class="pagelogo" /> TV4 Play</a></li> 1784 <li id="menu-item-107827" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-107827"><a href="https://webb-tv.nu/kanal5-play/" title="Kanal 5 Play"><img src="https://webb-tv.nu/wp-content/uploads/2016/01/kanal-5-play-meny.png" alt="kanal 5 hbo max" width="42" height="42" class="pagelogo" /> Kanal 5 <span class="chblock">â HBO Max</span></a></li> 1785 <li id="menu-item-107824" class="menu-item menu-item-type-post_type menu-item-object-page current-menu-item page_item page-item-99143 current_page_item menu-item-107824"><a href="https://webb-tv.nu/tv6-play/" aria-current="page" title="TV6 Play"><img src="https://webb-tv.nu/wp-content/uploads/2016/01/tv6-play-meny.png" alt="tv6 play" width="42" height="42" class="pagelogo" /> TV6 Play <span class="chblock">â Pluto TV</span></a></li> 1786 <li id="menu-item-107825" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-107825"><a href="https://webb-tv.nu/tv8-play/" title="TV8 Play"><img src="https://webb-tv.nu/wp-content/uploads/2016/01/tv8-play-meny.png" alt="tv8 play" width="42" height="40" class="pagelogo" /> TV8 <span class="chblock">Play â Pluto TV</span></a></li> 1787 <li id="menu-item-107829" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-107829"><a href="https://webb-tv.nu/kanal9-play/" title="Kanal 9 Play"><img src="https://webb-tv.nu/wp-content/uploads/2016/01/kanal-9-play-meny.png" alt="kanal 9 hbo max" width="42" height="42" class="pagelogo" /> Kanal 9 <span class="chblock">â HBO Max</span></a></li> 1788 <li id="menu-item-107821" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-107821"><a href="https://webb-tv.nu/tv10-play/" title="TV10 Play"><img src="https://webb-tv.nu/wp-content/uploads/2016/01/tv10-play-meny.png" alt="tv10 play" width="42" height="42" class="pagelogo" /> TV10 Play <span class="chblock">â Pluto TV</span></a></li> 1789 <li id="menu-item-107826" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-107826"><a href="https://webb-tv.nu/ur-play/" title="UR Play"><img src="https://webb-tv.nu/wp-content/uploads/2016/01/ur-play-meny.png" alt="ur play" width="42" height="42" class="pagelogo" /> UR Play</a></li> 1790</ul> 1791</li> 1792<li id="menu-item-117363" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-117363"><a href="https://webb-tv.nu/kategorier/">Kategorier</a></li> 1793<li id="menu-item-110686" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-110686"><a href="https://webb-tv.nu/nya/">Nya</a></li> 1794<li id="menu-item-110693" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-110693"><a href="https://webb-tv.nu/populara-program/">Populära</a></li> 1795<li id="menu-item-116444" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-116444"><a href="https://webb-tv.nu/imdb-betyg/">Betyg</a></li> 1796<li id="menu-item-107840" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-107840"><a href="https://webb-tv.nu/kommande-program/">Kommande</a></li> 1797<li id="menu-item-108854" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-108854"><a href="https://webb-tv.nu/om/">Om</a></li> 1798<li id="menu-item-107841" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-107841"><a href="https://webb-tv.nu/kontakt/">FrÃ¥gor & Kontakt</a></li> 1799</ul> </nav> 1800 </div> 1801 <div class="searchbar"> 1802 <div class="wrapper"> 1803 <form role="search" method="get" id="searchform" action="https://webb-tv.nu/"> 1804 <input type="text" autocomplete="off" value="" class="query ajaxSearch" placeholder=""> 1805 </form> 1806 </div> 1807 1808<div class="results"> 1809</div> 1810 1811 1812 </div> 1813 1814 1815 1816 <nav class="responsive"> 1817 <ul id="menu-meny-1" class="menu"><li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-107842"><a href="https://webb-tv.nu/live/">STREAMA LIVE</a></li> 1818<li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-107819"><a href="https://webb-tv.nu/program-a-o/">Program A-Ã</a></li> 1819<li class="menu-item menu-item-type-custom menu-item-object-custom current-menu-ancestor current-menu-parent menu-item-has-children menu-item-107579"><a href="#">Kanaler</a> 1820<ul class="sub-menu"> 1821 <li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-107820"><a href="https://webb-tv.nu/svt-play/" title="SVT Play"><img src="https://webb-tv.nu/wp-content/uploads/2017/09/svt-play.png" alt="svt play" width="42" height="42" class="pagelogo" /> SVT Play</a></li> 1822 <li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-107822"><a href="https://webb-tv.nu/tv3-play/" title="TV3 Play"><img src="https://webb-tv.nu/wp-content/uploads/2016/01/tv3-play-meny.png" alt="tv3 play" width="42" height="42" class="pagelogo" /> TV3 Play <span class="chblock">â Pluto TV</span></a></li> 1823 <li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-107823"><a href="https://webb-tv.nu/tv4-play/" title="TV4 Play"><img src="https://webb-tv.nu/wp-content/uploads/2016/01/tv4-play-meny.png" alt="tv4 play" width="42" height="42" class="pagelogo" /> TV4 Play</a></li> 1824 <li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-107827"><a href="https://webb-tv.nu/kanal5-play/" title="Kanal 5 Play"><img src="https://webb-tv.nu/wp-content/uploads/2016/01/kanal-5-play-meny.png" alt="kanal 5 hbo max" width="42" height="42" class="pagelogo" /> Kanal 5 <span class="chblock">â HBO Max</span></a></li> 1825 <li class="menu-item menu-item-type-post_type menu-item-object-page current-menu-item page_item page-item-99143 current_page_item menu-item-107824"><a href="https://webb-tv.nu/tv6-play/" aria-current="page" title="TV6 Play"><img src="https://webb-tv.nu/wp-content/uploads/2016/01/tv6-play-meny.png" alt="tv6 play" width="42" height="42" class="pagelogo" /> TV6 Play <span class="chblock">â Pluto TV</span></a></li> 1826 <li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-107825"><a href="https://webb-tv.nu/tv8-play/" title="TV8 Play"><img src="https://webb-tv.nu/wp-content/uploads/2016/01/tv8-play-meny.png" alt="tv8 play" width="42" height="40" class="pagelogo" /> TV8 <span class="chblock">Play â Pluto TV</span></a></li> 1827 <li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-107829"><a href="https://webb-tv.nu/kanal9-play/" title="Kanal 9 Play"><img src="https://webb-tv.nu/wp-content/uploads/2016/01/kanal-9-play-meny.png" alt="kanal 9 hbo max" width="42" height="42" class="pagelogo" /> Kanal 9 <span class="chblock">â HBO Max</span></a></li> 1828 <li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-107821"><a href="https://webb-tv.nu/tv10-play/" title="TV10 Play"><img src="https://webb-tv.nu/wp-content/uploads/2016/01/tv10-play-meny.png" alt="tv10 play" width="42" height="42" class="pagelogo" /> TV10 Play <span class="chblock">â Pluto TV</span></a></li> 1829 <li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-107826"><a href="https://webb-tv.nu/ur-play/" title="UR Play"><img src="https://webb-tv.nu/wp-content/uploads/2016/01/ur-play-meny.png" alt="ur play" width="42" height="42" class="pagelogo" /> UR Play</a></li> 1830</ul> 1831</li> 1832<li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-117363"><a href="https://webb-tv.nu/kategorier/">Kategorier</a></li> 1833<li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-110686"><a href="https://webb-tv.nu/nya/">Nya</a></li> 1834<li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-110693"><a href="https://webb-tv.nu/populara-program/">Populära</a></li> 1835<li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-116444"><a href="https://webb-tv.nu/imdb-betyg/">Betyg</a></li> 1836<li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-107840"><a href="https://webb-tv.nu/kommande-program/">Kommande</a></li> 1837<li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-108854"><a href="https://webb-tv.nu/om/">Om</a></li> 1838<li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-107841"><a href="https://webb-tv.nu/kontakt/">FrÃ¥gor & Kontakt</a></li> 1839</ul> </nav> 1840 </header> 1841 1842<!-- UberMenu [Configuration:main] [Theme Loc:] [Integration:api] --> 1843<span class="ubermenu-responsive-toggle ubermenu-responsive-toggle-main ubermenu-skin-grey-white ubermenu-loc- ubermenu-responsive-toggle-content-align-center ubermenu-responsive-toggle-align-full " tabindex="0" data-ubermenu-target="ubermenu-main-71"><i class="fas fa-bars" ></i>Meny  â¼</span><nav id="ubermenu-main-71" class="ubermenu ubermenu-nojs ubermenu-main ubermenu-menu-71 ubermenu-responsive ubermenu-responsive-1199 ubermenu-responsive-collapse ubermenu-horizontal ubermenu-transition-none ubermenu-trigger-hover_intent ubermenu-skin-grey-white ubermenu-bar-align-full ubermenu-items-align-left ubermenu-bound ubermenu-disable-submenu-scroll ubermenu-sub-indicators ubermenu-retractors-responsive ubermenu-submenu-indicator-closes"><ul id="ubermenu-nav-main-71" class="ubermenu-nav" data-title="Uber"><li id="menu-item-121932" class="ubermenu-item ubermenu-item-type-custom ubermenu-item-object-custom ubermenu-item-home ubermenu-item-121932 ubermenu-item-level-0 ubermenu-column ubermenu-column-auto" ><a class="ubermenu-target ubermenu-item-layout-default ubermenu-item-layout-text_only" title="Starta Webb-TV" href="https://webb-tv.nu" tabindex="0"><span class="ubermenu-target-title ubermenu-target-text">Hem</span></a></li><li id="menu-item-121876" class="ubermenu-item ubermenu-item-type-post_type ubermenu-item-object-page ubermenu-item-121876 ubermenu-item-level-0 ubermenu-column ubermenu-column-auto" ><a class="ubermenu-target ubermenu-item-layout-default ubermenu-item-layout-text_only" href="https://webb-tv.nu/program-a-o/" tabindex="0"><span class="ubermenu-target-title ubermenu-target-text">A-Ã</span></a></li><li id="menu-item-246921" class="ubermenu-item ubermenu-item-type-post_type ubermenu-item-object-page ubermenu-item-246921 ubermenu-item-level-0 ubermenu-column ubermenu-column-auto" ><a class="ubermenu-target ubermenu-item-layout-default ubermenu-item-layout-text_only" href="https://webb-tv.nu/kanaler/" tabindex="0"><span class="ubermenu-target-title ubermenu-target-text">Kanaler</span></a></li><li id="menu-item-247680" class="ubermenu-item ubermenu-item-type-post_type ubermenu-item-object-page ubermenu-item-247680 ubermenu-item-level-0 ubermenu-column ubermenu-column-auto" ><a class="ubermenu-target ubermenu-item-layout-default ubermenu-item-layout-text_only" href="https://webb-tv.nu/kategorier/" tabindex="0"><span class="ubermenu-target-title ubermenu-target-text">Kategorier</span></a></li><li id="menu-item-121892" class="ubermenu-item ubermenu-item-type-post_type ubermenu-item-object-page ubermenu-item-121892 ubermenu-item-level-0 ubermenu-column ubermenu-column-auto" ><a class="ubermenu-target ubermenu-item-layout-default ubermenu-item-layout-text_only" href="https://webb-tv.nu/nya/" tabindex="0"><span class="ubermenu-target-title ubermenu-target-text">Nya</span></a></li><li id="menu-item-268357" clas
1843s="ubermenu-item ubermenu-item-type-post_type ubermenu-item-object-page ubermenu-item-268357 ubermenu-item-level-0 ubermenu-column ubermenu-column-auto" ><a class="ubermenu-target ubermenu-item-layout-default ubermenu-item-layout-text_only" href="https://webb-tv.nu/kommande-program/" tabindex="0"><span class="ubermenu-target-title ubermenu-target-text">Kommande</span></a></li><li id="menu-item-121897" class="ubermenu-item ubermenu-item-type-post_type ubermenu-item-object-page ubermenu-item-121897 ubermenu-item-level-0 ubermenu-column ubermenu-column-auto" ><a class="ubermenu-target ubermenu-item-layout-default ubermenu-item-layout-text_only" href="https://webb-tv.nu/live/" tabindex="0"><span class="ubermenu-target-title ubermenu-target-text">LIVE</span></a></li><li id="menu-item-273991" class="ubermenu-item ubermenu-item-type-post_type ubermenu-item-object-page ubermenu-item-273991 ubermenu-item-level-0 ubermenu-column ubermenu-column-auto" ><a class="ubermenu-target ubermenu-item-layout-default ubermenu-item-layout-text_only" href="https://webb-tv.nu/tv-tabla/" tabindex="0"><span class="ubermenu-target-title ubermenu-target-text">TablÃ¥</span></a></li><li id="menu-item-277882" class="ubermenu-item ubermenu-item-type-custom ubermenu-item-object-custom ubermenu-item-277882 ubermenu-item-level-0 ubermenu-column ubermenu-column-auto" ><a class="ubermenu-target ubermenu-item-layout-default ubermenu-item-layout-text_only" href="https://webb-tv.nu/nyheter/" tabindex="0"><span class="ubermenu-target-title ubermenu-target-text"><svg width="15" height="15" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true" style="flex-shrink:0;vertical-align:-2px;"> <rect x="3" y="4" width="18" height="18" rx="2" ry="2"></rect> <line x1="16" y1="2" x2="16" y2="6"></line> <line x1="8" y1="2" x2="8" y2="6"></line> <line x1="3" y1="10" x2="21" y2="10"></line> </svg> Veckans TV</span></a></li><li id="menu-item-122505" class="ubermenu-item ubermenu-item-type-custom ubermenu-item-object-custom ubermenu-item-122505 ubermenu-item-level-0 ubermenu-column ubermenu-column-auto ubermenu-align-right ubermenu-item-mini" ><a class="ubermenu-target ubermenu-item-layout-default ubermenu-content-align-left ubermenu-item-layout-text_only" href="https://webb-tv.nu/favoriter/" tabindex="0"><span class="ubermenu-target-title ubermenu-target-text"><span class="wider" >â¥</span> <span class="favbar" >Favoriter</span></span></a></li></ul></nav> 1844<!-- End UberMenu --> 1845 1846 1847 1848 1849 1850 1851<style> 1852 1853/* H1 tunnare */ 1854.titleheader .postinfo h1 { font-weight: 300; } 1855.upcoming-header h1 { font-weight: 300; } 1856 1857/* Mobil + desktop sidomarginal */ 1858.upcoming-container { padding-left: 14px; padding-right: 14px; } 1859@media (min-width: 992px){ 1860 .upcoming-container { padding-left: 24px; padding-right: 24px; } 1861} 1862 1863/* Headerblock */ 1864.upcoming-header h1{ 1865 text-align:center; 1866 margin-bottom:12px; 1867 position: relative; 1868} 1869 1870/* ========== TAGLINE UNDER H1 ========== */ 1871/* min-height nollställd i v1.6.3 â fyllde ingen funktion sen taglinen 1872 kommenterades ut, och skapade osynlig luft under stats-raden som 1873 tryckte ner VM-länken. */ 1874.kanal-content-area { 1875 min-height: 0; 1876 display: flex; 1877 flex-direction: column; 1878 justify-content: flex-start; 1879} 1880 1881.kanal-tagline { 1882 text-align: center; 1883 margin: 0 auto 0; 1884 max-width: 700px; 1885} 1886 1887.kanal-tagline-heading { 1888 font-size: 1.1rem; 1889 color: #444; 1890 margin: 0 0 16px; 1891 font-weight: 400; 1892 line-height: 1.4; 1893 min-height: 30px; 1894} 1895 1896@media (max-width: 768px) { 1897 .kanal-content-area { 1898 min-height: 0; 1899 } 1900 1901 .kanal-tagline-heading { 1902 font-size: 0.95rem; 1903 padding: 0 8px; 1904 min-height: 26px; 1905 margin-bottom: 12px; 1906 } 1907 1908 /* Mindre H1 för Kunskapskanalen i mobil */ 1909 .page-kunskapskanalen .upcoming-header h1, 1910 .postid-4493 .upcoming-header h1 { 1911 font-size: 1.5rem; 1912 } 1913} 1914 1915/* Extra liten för riktigt smÃ¥ skärmar */ 1916@media (max-width: 375px) { 1917 .page-kunskapskanalen .upcoming-header h1, 1918 .postid-4493 .upcoming-header h1 { 1919 font-size: 1.3rem; 1920 } 1921} 1922 1923/* ========== PROGRAMSTATISTIK (sammanslagen info-rad) ========== */ 1924.program-stats { 1925 display: flex; 1926 justify-content: center;
1927 align-items: center; 1928 gap: 12px; 1929 flex-wrap: wrap; 1930 margin: 0 auto 16px; 1931 padding: 10px 16px; 1932 background: #f8f9fa; 1933 border-radius: 8px; 1934 max-width: 500px; 1935 font-size: 0.9rem; 1936 color: #586069; 1937 min-height: 42px; 1938} 1939 1940.program-stats-item { 1941 white-space: nowrap; 1942} 1943 1944.program-stats-value { 1945 font-weight: 600; 1946 color: #24292e; 1947} 1948 1949.program-stats-sep { 1950 color: #8b949e; 1951 font-weight: 700; 1952 font-size: 1.1em; 1953 line-height: 1; 1954 position: relative; 1955 top: -1px; 1956} 1957 1958@media (max-width: 768px) { 1959 .program-stats { 1960 font-size: 0.82rem; 1961 gap: 10px; 1962 padding: 8px 12px; 1963 min-height: 38px; 1964 margin-bottom: 14px; 1965 } 1966} 1967 1968/* ========== VM 2026-LÃNK (temporär, tas bort efter turneringen) ========== */ 1969.vm-link-wrapper { 1970 text-align: center; 1971 margin: 0 auto 16px; 1972} 1973 1974.vm-link { 1975 color: #0366d6; 1976 text-decoration: none; 1977 font-weight: 500; 1978 font-size: 1.1rem; 1979} 1980 1981.vm-link:hover { 1982 text-decoration: underline; 1983 color: #0366d6; 1984} 1985 1986@media (max-width: 768px) { 1987 .vm-link { 1988 font-size: 1.05rem; 1989 } 1990} 1991 1992/* ========== KNAPPAR (LIVE + TABLà ) ========== */ 1993.upcoming-container { 1994 position: relative; 1995} 1996 1997.kanal-buttons-wrapper { 1998 display: flex; 1999 justify-content: space-between; 2000 align-items: center; 2001 margin-bottom: 12px; 2002 margin-top: 12px; 2003} 2004 2005@media (min-width: 769px) { 2006 .kanal-buttons-wrapper { 2007 position: absolute; 2008 top: 20px; 2009 left: 0; 2010 right: 0; 2011 z-index: 100; 2012 margin: 0; 2013 } 2014} 2015 2016@keyframes pulse-border { 2017 0% { border-color: #e1e4e8; box-shadow: 0 0 0 rgba(46,204,113,0); } 2018 50% { border-color: rgba(46,204,113,0.5); box-shadow: 0 0 10px rgba(46,204,113,0.3); } 2019 100% { border-color: #e1e4e8; box-shadow: 0 0 0 rgba(46,204,113,0); } 2020} 2021 2022.kanal-live-btn, 2023.kanal-tabla-btn { 2024 display: inline-flex; 2025 align-items: center; 2026 justify-content: center; 2027 gap: 8px; 2028 background: #fff; 2029 color: #333; 2030 padding: 10px 18px; 2031 border-radius: 8px; 2032 text-decoration: none; 2033 font-weight: 700; 2034 font-size: 0.9rem; 2035 transition: all 0.2s ease; 2036 border: 2px solid #e1e4e8; 2037 box-shadow: 0 2px 6px rgba(0,0,0,0.08); 2038} 2039 2040.kanal-live-btn { 2041 animation: pulse-border 2s ease-in-out infinite; 2042} 2043 2044.kanal-live-btn:hover, 2045.kanal-tabla-btn:hover { 2046 transform: translateY(-2px); 2047 box-shadow: 0 4px 12px rgba(0,0,0,0.12); 2048 color: #333; 2049} 2050 2051.kanal-live-btn:hover { 2052 border-color: #2ecc71; 2053} 2054 2055.kanal-tabla-btn:hover { 2056 border-color: #7a9abd; 2057} 2058 2059/* Grön prick för LIVE */ 2060.kanal-live-btn::before { 2061 content: ''; 2062 display: inline-block; 2063 width: 10px; 2064 height: 10px; 2065 background: #2ecc71; 2066 border-radius: 50%; 2067 margin-right: 4px; 2068 margin-left: -4px; 2069 transform: translateY(1px); 2070 animation: pulse-live 2s ease-in-out infinite; 2071} 2072 2073/* Prickens puls */ 2074@keyframes pulse-live { 2075 0% { box-shadow: 0 0 0 0 rgba(46,204,113,0.35); } 2076 100% { box-shadow: 0 0 0 8px rgba(46,204,113,0); } 2077} 2078 2079@media (max-width: 768px) { 2080 .kanal-live-btn, 2081 .kanal-tabla-btn { 2082 font-size: 0.85rem; 2083 padding: 8px 14px; 2084 } 2085} 2086 2087/* Betalkrav + dagens direktsända sport (2026-09-24). Betalfärgen är plommon, samma 2088 som betalsport-knappen pÃ¥ /kommande-program/. Kravet är en upplysning, inte en 2089 säljknapp â läsbart, inte nedtonat. */ 2090.kanal-live-krav { 2091 font-weight: 500; 2092 font-size: 0.85em; 2093 color: rgb(122,38,80); 2094} 2095.kanal-sport-idag { 2096 display: table; 2097 margin: 6px auto 16px; 2098 padding: 8px 14px; 2099 border: 1px solid rgba(138,45,90,.35); 2100 border-radius: 8px; 2101 background: rgba(138,45,90,.05); 2102 color: #333; 2103 font-size: 0.95rem; 2104 line-height: 1.45; 2105 text-align: center; 2106} 2107.kanal-sport-idag__nar { font-weight: 600; } 2108/* 𪤠Mellanrummen Mà STE vara marginal, inte blanksteg i koden: WP Rockets minifiering 2109 stryker radbrytningen mellan taggarna, och live blev det "TV12:HV71" och 2110 "Play(kräver Plus)" (Pers skärmdump 24/9). */ 2111.kanal-sport-idag strong, 2112.kanal-sport-idag__krav { margin-left: .3em; } 2113.kanal-sport-idag__sep { margin: 0 4px; color: #999; } 2114.kanal-sport-idag__lank { 2115 color: rgb(122,38,80); 2116 font-weight: 600; 2117 text-decoration: underline; 2118} 2119.kanal-sport-idag__krav { color: rgb(122,38,80); font-size: 0.9em; } 2120/* Systersajtraden tar programradens plats och SPEGLAR .program-stats mÃ¥tt (pad
2120ding, min-höjd, 2121 typsnitt, marginal â bÃ¥da brytpunkterna), sÃ¥ kanalväxlaren hamnar pÃ¥ samma höjd som pÃ¥ 2122 vanliga kanalsidor. Ãndras .program-stats: ändra här ocksÃ¥. Mellanrummet före länken är 2123 marginal, inte blanksteg (Rocket-fällan ovan). */ 2124.kanal-systersajt { 2125 display: flex; justify-content: center; align-items: center; flex-wrap: wrap; 2126 margin: 0 auto 16px; padding: 10px 16px; min-height: 42px; max-width: 650px; 2127 background: #f8f9fa; border-radius: 8px; box-sizing: border-box; 2128 font-size: 0.9rem; line-height: 22px; color: #333; text-align: center; 2129} 2130.kanal-systersajt strong { font-weight: 600; margin-left: .3em; } 2131.kanal-systersajt__lank { margin-left: .3em; color: #0366d6; font-weight: 500; text-decoration: none; } 2132.kanal-systersajt__lank:hover { text-decoration: underline; } 2133.kanal-systersajt__kort { display: none; } 2134/* Systersajtraden under kanalraden (Kanal 5/9) â samma typsnitt som när den stod i lÃ¥dan. */ 2135.kanal-betalbesked { text-align: center; color: #586069; margin: 4px auto 18px; max-width: 650px; padding: 0 14px; line-height: 1.4; } 2136.kanal-betalbesked a { color: #0366d6; text-decoration: none; } 2137.kanal-betalbesked a:hover { text-decoration: underline; } 2138.kanal-systersajt-rad { font-size: 0.9rem; } 2139.kanal-systersajt-rad strong { font-weight: 600; color: #333; margin-left: .3em; } 2140/* Betalbeskedet i lÃ¥dan: notisfältets egen span bär storlek (.92em) och radhöjd (1.25). */ 2141.kanal-systersajt--besked { color: #586069; } 2142@media (max-width: 768px) { 2143 .kanal-systersajt-rad { font-size: 0.82rem; } 2144 /* I telefonbredd bryts beskedet pÃ¥ tvÃ¥ rader (~30 px text). Med 4 px luft blir lÃ¥dan 2145 exakt min-höjden 38 â pÃ¥ en rad (surfplatta) likasÃ¥ â sÃ¥ kanalraden stÃ¥r kvar 2146 i jämnhöjd med de andra kanalsidorna. Mätt 390 och 360 px 25/9. */ 2147 .kanal-systersajt.kanal-systersajt--besked { font-size: 0.78rem; padding-top: 4px; padding-bottom: 4px; } 2148} 2149@media (max-width: 768px) { 2150 .kanal-systersajt { font-size: 0.82rem; padding: 8px 12px; min-height: 38px; margin-bottom: 14px; } 2151 .kanal-systersajt__lang { display: none; } 2152 .kanal-systersajt__kort { display: inline; } 2153} 2154@media (max-width: 768px) { 2155 .kanal-sport-idag { font-size: 0.88rem; margin: 4px auto 12px; } 2156} 2157 2158.upcoming-header { 2159 position: relative; 2160} 2161 2162@media (min-width: 769px) { 2163 .upcoming-header { 2164 padding-top: 40px; 2165 } 2166} 2167 2168/* ========== CENTER TEXT/NOTICE ========== */ 2169.kanal-notice-box { 2170 background: #f8f9fa; 2171 border: none; 2172 border-radius: 8px; 2173 padding: 12px 16px; 2174 text-align: center; 2175 margin: 0 auto 16px; 2176 max-width: 650px; 2177 line-height: 1.5; 2178 min-height: 50px; 2179 display: flex; 2180 flex-direction: column; 2181 justify-content: center; 2182} 2183 2184.kanal-notice-box a { 2185 color: #0366d6; 2186 text-decoration: none; 2187 font-weight: 500; 2188} 2189 2190.kanal-notice-box a:hover { 2191 text-decoration: underline; 2192} 2193 2194.kanal-notice-box p { 2195 margin: 8px 0 0; 2196 color: #586069; 2197 font-size: 0.95rem; 2198} 2199 2200/* LIVE-knapp i notice-box */ 2201.kanal-notice-box a[href*="viafree.se"], 2202.kanal-notice-box a[href*="tv4play.se"], 2203.kanal-notice-box .kanal-live-btn { 2204 display: inline-flex; 2205 align-items: center; 2206 justify-content: center; 2207 gap: 5px; 2208 background: #fff; 2209 color: #2ecc71; 2210 padding: 2px 12px; 2211 border-radius: 5px; 2212 text-decoration: none; 2213 font-weight: 600; 2214 font-size: 0.85rem; 2215 transition: all 0.2s ease; 2216 border: 1.5px solid #2ecc71; 2217 margin-top: 10px; 2218} 2219 2220.kanal-notice-box a[href*="viafree.se"]:hover, 2221.kanal-notice-box a[href*="tv4play.se"]:hover, 2222.kanal-notice-box .kanal-live-btn:hover { 2223 border-color: #27ae60; 2224 text-decoration: none; 2225} 2226 2227/* Grön prick för LIVE i notice-box */ 2228.kanal-notice-box a[href*="viafree.se"]::before, 2229.kanal-notice-box a[href*="tv4play.se"]::before, 2230.kanal-notice-box .kanal-live-btn::before { 2231 content: ''; 2232 display: inline-block; 2233 width: 6px; 2234 height: 6px; 2235 background: #2ecc71; 2236 border-radius: 50%; 2237 animation: pulse-live-small 2s ease-in-out infinite; 2238} 2239 2240@keyframes pulse-live-small { 2241 0% { box-shadow: 0 0 0 0 rgba(46, 204, 113, 0.35); } 2242 100% { box-shadow: 0 0 0 5px rgba(46, 204, 113, 0); } 2243} 2244 2245/* ========== KANALVÃXLARE (runda knappar) ========== */ 2246.kanal-nav-switcher { 2247 margin: 0 auto 20px; 2248 max-width: 100%; 2249} 2250 2251.kanal-nav-grid { 2252 display: flex; 2253 gap: 10px; 2254 overflow-x: auto; 2255 -webkit-overflow-scrolling: touch; 2256 padding: 12px 4px; 2257 scroll-snap-type: x proximity; 2258 justify-content: flex-start; 2259} 2260 2261.kanal-nav-grid::-webkit-scrollbar {
2262 height: 6px; 2263} 2264 2265.kanal-nav-grid::-webkit-scrollbar-track { 2266 background: #f1f1f1; 2267 border-radius: 3px; 2268} 2269 2270.kanal-nav-grid::-webkit-scrollbar-thumb { 2271 background: #c1c1c1; 2272 border-radius: 3px; 2273} 2274 2275.kanal-nav-grid::-webkit-scrollbar-thumb:hover { 2276 background: #a8a8a8; 2277} 2278 2279.kanal-nav-item { 2280 flex-shrink: 0; 2281 background: #fff; 2282 border: 2px solid #e1e4e8; 2283 border-radius: 50%; 2284 padding: 0; 2285 cursor: pointer; 2286 transition: all 0.2s ease; 2287 scroll-snap-align: start; 2288 display: flex; 2289 align-items: center; 2290 justify-content: center; 2291 width: 44px; 2292 height: 44px; 2293 box-sizing: border-box; 2294} 2295 2296.kanal-nav-item:hover { 2297 border-color: #b1b7c0; 2298 transform: translateY(-2px); 2299 box-shadow: 0 4px 8px rgba(0,0,0,0.1); 2300} 2301 2302.kanal-nav-grid a .kanal-nav-item.active, 2303.kanal-nav-item.active { 2304 border: 3px solid #7a9abd !important; 2305 background: #fff !important; 2306 box-shadow: none !important; 2307 transform: none !important; 2308} 2309 2310.kanal-nav-item img { 2311 width: 28px; 2312 height: 28px; 2313 object-fit: contain; 2314} 2315 2316/* BETAL-pillen (Per 26/9, variant C): under ikonen, inte i ringen â ringen betyder "vald kanal". 2317 Husets betalplommon. Sticker ut 6 px nedÃ¥t; ryms i gridens 12 px luft, sÃ¥ den klipps inte i mobil. */ 2318.kanal-nav-item--betal { position: relative; } 2319.kanal-nav-betal { 2320 position: absolute; 2321 left: 50%; 2322 bottom: -6px; 2323 transform: translateX(-50%); 2324 padding: 0 4px; 2325 border-radius: 8px; 2326 background: rgba(138, 45, 90, .92); 2327 color: #fff; 2328 font: 700 7px/11px -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif; 2329 letter-spacing: .3px; 2330 text-transform: uppercase; 2331 white-space: nowrap; 2332 box-shadow: 0 0 0 2px #fff; 2333 pointer-events: none; 2334} 2335 2336@media (min-width: 992px) { 2337 .kanal-nav-switcher { 2338 max-width: 1200px; 2339 } 2340 2341 .kanal-nav-grid { 2342 justify-content: center; 2343 flex-wrap: wrap; 2344 overflow-x: visible; 2345 gap: 12px; 2346 } 2347 2348 .kanal-nav-item { 2349 width: 56px; 2350 height: 56px; 2351 } 2352 2353 .kanal-nav-item.active { 2354 border: 5px solid #354659; 2355 } 2356 2357 .kanal-nav-item img { 2358 width: 34px; 2359 height: 34px; 2360 } 2361 2362 .kanal-nav-betal { 2363 bottom: -7px; 2364 padding: 1px 5px; 2365 font-size: 8px; 2366 line-height: 12px; 2367 } 2368} 2369 2370/* ========== SORTERING ========== */ 2371.sorter-label{ text-align:center; margin: 0 0 8px; color:#333; } 2372 2373.program-sort-controls{ 2374 display:grid; 2375 grid-template-columns: repeat(4, 1fr); 2376 gap:8px; 2377 padding:4px 4px; 2378 margin:4px auto 26px; 2379 max-width:100%; 2380} 2381.program-sort-btn{ 2382 background:#f0f2f5; 2383 color:#222; 2384 border:1px solid #d0d4da; 2385 padding:10px 12px; 2386 border-radius:20px; 2387 font-weight:700; 2388 cursor:pointer; 2389 white-space:nowrap; 2390 font-size:.9rem; 2391 box-sizing: border-box; 2392 transition: background-color .2s ease, color .2s ease, border-color .2s ease, border-width .2s ease; 2393} 2394.program-sort-btn:hover { 2395 border-color: #aeb1b6; 2396} 2397.program-sort-btn.selected{ 2398 background:#354659 !important; 2399 color:#fff !important; 2400 border:2px solid #354659 !important; 2401 padding:9px 11px; 2402} 2403 2404.program-sort-btn.selected:hover, 2405.program-sort-btn.selected:focus, 2406.program-sort-btn.selected:active { 2407 background: #354659 !important; 2408 color: #fff !important; 2409 border-color: #354659 !important; 2410 border-width: 2px !important; 2411 box-shadow: none !important; 2412 transform: none !important; 2413} 2414 2415@media (min-width: 992px){ 2416 .program-sort-controls{ 2417 gap:12px; 2418 max-width: 800px; 2419 } 2420 .program-sort-btn{ 2421 padding:10px 18px; 2422 font-size:1rem; 2423 } 2424 .program-sort-btn.selected { 2425 padding:9px 17px; 2426 } 2427} 2428 2429/* Aâà strip */ 2430#program-alpha-strip{ 2431 display:none; 2432 justify-content:flex-start; 2433 gap:6px; 2434 flex-wrap:nowrap; 2435 overflow-x:auto; 2436 -webkit-overflow-scrolling:touch; 2437 padding:10px 0; 2438 margin:8px 0 20px; 2439} 2440#program-alpha-strip .program-alpha-btn{ 2441 background:#fff; 2442 color:#222; 2443 border:1px solid #d0d4da; 2444 padding:5px 10px; 2445 border-radius:10px; 2446 font-weight:700; 2447 cursor:pointer; 2448 white-space:nowrap; 2449 font-size: 1rem !important; 2450 position:relative; 2451 box-sizing: border-box; 2452 transition: background-color .2s ease, color .2s ease, border-color .2s ease; 2453} 2454#program-alpha-strip .program-alpha-btn:hover { 2455 border-color: #aeb1b6; 2456} 2457#program-alpha-strip .program-alpha-btn.active{ 2458 background:#354659; 2459 color:#fff; 2460 border-color:#354659; 2461} 2462#program-alpha-strip .program-alpha-btn.active:hover { 2463 border-color:#354659; 2464} 2465 2466#program-alpha-strip .program-alpha-btn.is-disabled{ 2467 color:#9aa0a6; 2468 border-color:#e0e3e7; 2469 background:#f7f8f9; 2470 cursor:not-allowed; 2471 opacity:.8; 2472} 2473 2474#program-alpha-strip .program-alpha-btn.is-disabled::after{ 2475 content:''; 2476 position:absolute; 2477 top:0; 2478 left:0; 2479 right:0; 2480 bottom:0; 2481 background:linear-gradient(to top right, transparent calc(50% - 0.5px), rgba(192,196,202,0.25) calc(50% - 0.5px), rgba(192,196,202,0.25) calc(50% + 0.5px), transparent calc(50% + 0.5px)); 2482 pointer-events:none; 2483} 2484 2485@media (min-width: 992px){ 2486 #program-alpha-strip{ 2487 overflow:visible; 2488 padding:6px 0; 2489 margin:12px auto 28px; 2490 } 2491 #program-alpha-strip.alpha-active-desktop{ 2492 display:grid !important; 2493 grid-template-columns: repeat(15, minmax(44px, 1fr)); 2494 gap:10px; 2495 width:100%; 2496 max-width: 1200px; 2497 justify-items:center; 2498 } 2499 #program-alpha-strip .program-alpha-btn{ 2500 width:44px; 2501 height:44px; 2502 padding:0; 2503 border-radius:12px; 2504 display:flex; 2505 align-items:center; 2506 justify-content:center; 2507 font-size:1rem; 2508 } 2509 #program-alpha-strip .program-alpha-btn.is-disabled::after{ 2510 background:linear-gradient(to top right, transparent calc(50% - 0.6px), rgba(192,196,202,0.3) calc(50% - 0.6px), rgba(192,196,202,0.3) calc(50% + 0.6px), transparent calc(50% + 0.6px)); 2511 } 2512} 2513 2514/* Grid */ 2515/* minmax(0, 1fr), INTE 1fr (Per 2026-09-22: "korten kan bli olika breda i mobil"). 1fr = minmax(auto, 1fr), 2516 och auto = innehÃ¥llets minsta bredd: ETT lÃ¥ngt ord i titeln ("NaturvÃ¥rdsverksamhetsberättelsen") tryckte ut 2517 sin kolumn. Mätt i Chrome pÃ¥ 390 px: 214 + 246 px (rutnätet 476 px brett, UTANFÃR skärmen) â 166 + 166. 2518 Samma fix som favoritkorten (webbtv-plugins 383fdef): bÃ¥da leden krävs â kolumnen OCH kortets min-width:0. */ 2519.program-grid-container{ 2520 display:grid; 2521 grid-template-columns: repeat(2, minmax(0, 1fr)); 2522 gap:16px; 2523 margin-top:16px; 2524 margin-bottom: 70px; 2525} 2526@media (min-width: 601px){ 2527 .program-grid-container{ 2528 grid-template-columns: repeat(3, minmax(0, 1fr)); 2529 gap:20px; 2530 } 2531} 2532@media (min-width: 992px){ 2533 .program-grid-container{ 2534 grid-template-columns: repeat(4, minmax(0, 1fr)); 2535 gap:24px; 2536 } 2537} 2538 2539/* Kort */ 2540.program-grid-item{ min-width:0; } 2541.program-card-link, .program-card-nolink{ 2542 display:flex; 2543 flex-direction:column; 2544 height:100%; 2545 color:inherit; 2546 text-decoration:none; 2547 border-radius:10px; 2548 transition:transform .2s ease-out, box-shadow .2s ease-out; 2549 background:#fdfdfd; 2550 border:1px solid #eee; 2551 overflow:hidden; 2552} 2553.program-card-link:hover{ 2554 transform:translateY(-3px); 2555 box-shadow:0 8px 20px rgba(0,0,0,.1); 2556} 2557.program{ 2558 display:flex; 2559 flex-direction:column; 2560 flex-grow:1; 2561} 2562.program-img{ 2563 position:relative; 2564 background:#eee; 2565} 2566.program-img img{ 2567 display:block; 2568 width:100%; 2569 height:auto; 2570 aspect-ratio:40/21; 2571 object-fit:cover; 2572 border-bottom:1px solid #eee; 2573} 2574.program-img-placeholder{ 2575 display:flex; 2576 align-items:center; 2577 justify-content:center; 2578 width:100%; 2579 aspect-ratio:40/21; 2580 color:#aaa; 2581 font-size:.9em; 2582} 2583 2584/* Badges */ 2585.nytt-avsnitt-ribbon, .ny-serie-ribbon, .ny-sasong-ribbon, .tillbaka-ribbon{ 2586 position:absolute; 2587 top:5px; 2588 left:5px; 2589 color:#fff; 2590 font-weight:700; 2591 padding:4px 8px; 2592 border-radius:4px; 2593 font-size:.65rem; 2594 letter-spacing:.3px; 2595 z-index:3; 2596} 2597 2598@media (max-width:600px){ 2599 .nytt-avsnitt-ribbon, .ny-serie-ribbon, .ny-sasong-ribbon, .tillbaka-ribbon{ 2600 padding:3px 5px; 2601 font-size:.52rem; 2602 letter-spacing:.2px; 2603 } 2604} 2605 2606.nytt-avsnitt-ribbon{ background:rgba(42,193,92,.8); } 2607.ny-serie-ribbon{ background:rgba(103,81,188,.7); } 2608.ny-sasong-ribbon{ background:#3f6a94; } 2609.tillbaka-ribbon{ background:rgba(103,81,188,.7); }
2610/* Betaletiketten i betalgalleriet (Kanal 5/9 pÃ¥ HBO Max, Per 2026-09-25): husets plommon, uppe till HÃGER 2611 sÃ¥ att den aldrig krockar med NYTT AVSNITT/NY SÃSONG till vänster. Kort text i mobil â den lÃ¥nga 2612 täckte halva bilden i tvÃ¥ kolumner. */ 2613.betal-ribbon{ position:absolute; top:5px; right:5px; z-index:3; background:rgba(138,45,90,.92); color:#fff; 2614 font-weight:700; padding:4px 8px; border-radius:4px; font-size:.65rem; letter-spacing:.3px; text-transform:uppercase; } 2615.betal-ribbon__kort{ display:none; } 2616@media (max-width:600px){ 2617 .betal-ribbon{ padding:3px 5px; font-size:.52rem; letter-spacing:.2px; } 2618 .betal-ribbon__lang{ display:none; } 2619 .betal-ribbon__kort{ display:inline; } 2620} 2621 2622/* Hover-ingress */ 2623.program-ingress-overlay{ 2624 position:absolute; 2625 inset:0; 2626 background:rgba(0,0,0,.88); 2627 color:#fff; 2628 display:flex; 2629 flex-direction:column; 2630 justify-content:center; 2631 align-items:stretch; 2632 opacity:0; 2633 visibility:hidden; 2634 transition:opacity .25s ease, visibility .25s ease; 2635 z-index:2; 2636 padding:6% 12px; 2637} 2638.program-ingress-content{ 2639 width:100%; 2640 max-height:100%; 2641 overflow-y:auto; 2642} 2643.program-ingress-content p{ 2644 margin:0; 2645 color:#fff !important; 2646 font-size:.8rem !important; 2647 line-height:1.35 !important; 2648} 2649@media (min-width: 992px){ 2650 .program-card-link:hover .program-ingress-overlay{ 2651 opacity:1; 2652 visibility:visible; 2653 } 2654} 2655 2656/* Text/metafält */ 2657.program-info{ 2658 padding:12px; 2659 display:flex; 2660 flex-direction:column; 2661 flex-grow:1; 2662 position:relative; 2663} 2664.program-content-main{ 2665 flex-grow:1; 2666 margin-bottom:6px; 2667} 2668.program-title{ 2669 font-size:1.05rem; 2670 margin:0 0 4px; 2671 color:#1a1a1a; 2672 font-weight:600; 2673 line-height:1.25; 2674 display:-webkit-box; 2675 -webkit-line-clamp:2; 2676 -webkit-box-orient:vertical; 2677 overflow:hidden; 2678 hyphens:auto; /* lÃ¥nga svenska ord bryts med bindestreck i stället för att kapas (22/9) */ 2679 overflow-wrap:anywhere; /* reserv där avstavningsordlista saknas */ 2680} 2681 2682.program-title-with-logo { 2683 display: flex; 2684 align-items: center; 2685 gap: 8px; 2686 margin: 0 0 4px; 2687} 2688 2689.program-title-logo { 2690 height: 18px; 2691 width: auto; 2692 flex-shrink: 0; 2693} 2694 2695@media (max-width:600px){ 2696 .program-title-with-logo { 2697 gap: 6px; 2698 align-items: flex-start; 2699 } 2700 2701 .program-title-logo { 2702 height: 16px; 2703 position: relative; 2704 top: 0px; 2705 } 2706} 2707 2708.program-metadata{ 2709 font-size:.85rem; 2710 color:#666; 2711 margin:0 0 1px; 2712 line-height:1.35; 2713} 2714.meta-separator{ 2715 color:#ccc; 2716 margin:0 4px; 2717} 2718.program-meta{ 2719 font-size:.9rem; 2720 color:#555; 2721 margin-top:auto; 2722 padding-top:8px; 2723 border-top:1px solid #f0f0f0; 2724 display:flex; 2725 flex-wrap:wrap; 2726 gap:6px 10px; 2727 align-items:center; 2728} 2729.kanal-badge{ 2730 border:1px solid #ddd; 2731 color:#555; 2732 background:#f7f7f7; 2733 font-weight:normal; 2734 padding:3px 8px; 2735 border-radius:4px; 2736 font-size:.82rem; 2737 display:inline-flex; 2738 align-items:center; 2739} 2740.imdb{ 2741 background:#f5c518; 2742 color:#000; 2743 font-weight:700; 2744 padding:3px 7px; 2745 border-radius:4px; 2746 font-size:.82rem; 2747} 2748 2749.kanal-logo-in-badge{ 2750 height:15px; 2751 width:auto; 2752 margin-right:6px; 2753} 2754 2755/* Kompakt mobil */ 2756@media (max-width:600px){ 2757 .program-info { 2758 padding: 10px 10px 5px; 2759 } 2760 .program-metadata{ 2761 display:none; 2762 } 2763 .program-meta{ 2764 border-top:none; 2765 padding-top:0; 2766 margin-top: 2px; 2767 } 2768 .program-meta .kanal-badge{ 2769 display:none; 2770 } 2771 .program-meta .imdb{ 2772 display:none; 2773 } 2774 .program-title{ 2775 font-size:.88rem; 2776 font-weight:500; 2777 line-height:1.2; 2778 display:-webkit-box; 2779 -webkit-line-clamp:2; 2780 -webkit-box-orient:vertical; 2781 overflow:hidden; 2782 text-overflow:ellipsis; 2783 margin-bottom: 3px; 2784 } 2785 .program-content-main { 2786 margin-bottom: 2px; 2787 } 2788 .kanal-badge{ 2789 font-size:.74rem; 2790 padding:2px 6px; 2791 } 2792 .kanal-logo-in-badge{ 2793 height:13px; 2794 margin-right:5px; 2795 } 2796 .imdb{ 2797 padding:3px 6px; 2798 font-size:.74rem; 2799 } 2800} 2801 2802/* BETYG-läge: visa IMDb i mobil */ 2803@media (max-width:600px){ 2804 .mode-imdb .program-meta .imdb{ 2805 display:inline-block !important; 2806 } 2807} 2808 2809/* ========== KOMMENTARER ========== */
2810.comments-section { 2811 max-width: 900px; 2812 margin: 60px auto 0; 2813 padding: 30px 0; 2814 border-top: 2px solid #e1e4e8; 2815} 2816 2817/* Botten */ 2818hr.section-divider{ 2819 display:none; 2820} 2821.upcoming-container{ 2822 margin-bottom:40px; 2823} 2824 2825.program-title-and-meta { 2826 display: block; 2827} 2828 2829@media (max-width: 768px) { 2830 .kanal-nav-switcher { 2831 margin-bottom: 8px; 2832 } 2833} 2834</style> 2835 2836<div class="upcoming-container"> 2837 <div class="upcoming-header"> 2838 <div class="kanal-buttons-wrapper"> 2839 <a href="https://track.adtraction.com/t/t?a=1320006787&as=1130292334&t=2&tk=1&epi=TV6LiveStream&url=https://viaplay.se/kanaler" 2840 class="kanal-live-btn" 2841 target="_blank" 2842 rel="noopener noreferrer"> 2843 Se TV6 LIVE <span class="kanal-live-krav">kräver Viaplay</span> 2844 </a> 2845 2846 <a href="https://webb-tv.nu/tv-tabla/tv6/" 2847 class="kanal-tabla-btn"> 2848 <svg width="18" height="18" viewBox="0 0 24 24" fill="none" style="flex-shrink: 0;"> 2849 <rect x="3" y="3" width="18" height="18" rx="4" fill="#7a9abd" stroke="none"/> 2850 <polygon points="10,8 10,16 16,12" fill="white"/> 2851 </svg> 2852 TV-tablÃ¥ 2853 </a> 2854 </div> 2855 2856 <h1><img src="https://webb-tv.nu/wp-content/uploads/2016/01/tv6-play-meny.png" alt="tv6-play" width="42" height="42" class="pagelogo" /> TV6 Play <span class="chblock">– Pluto TV</span></h1> 2857 2858 2859 <!-- Tagline + sammanslagen info-rad (v1.6.0) --> 2860 <div class="kanal-content-area"> 2861 <!-- Rad 1: Tagline --> 2862 2863 2864 <!--<div class="kanal-tagline"> 2865 <p class="kanal-tagline-heading">Hitta alla gratisserier pÃ¥ Pluto TV</p> 2866 </div> --> 2867 2868 <!-- Rad 2: Sammanslagen info (program · [Reklamfritt ·] Uppdaterad idag) --> 2869 <div class="program-stats"> 2870 <span class="program-stats-item"> 2871 <span class="program-stats-value">9</span> program 2872 </span> 2873 <span class="program-stats-sep">·</span> 2874 <span class="program-stats-item">Uppdaterad idag</span> 2875 </div> 2876 2877 2878 </div> 2879 2880 <!-- VM 2026-länk (v1.6.1, temporär â självdöende efter finalen 19 juli) --> 2881 2882 <!-- Kanalväxlare --> 2883 <div class="kanal-nav-switcher"> 2884 <div class="kanal-nav-grid"> 2885 <a href="https://webb-tv.nu/svt-play/"> 2886 <button class="kanal-nav-item"> 2887 <img src="https://webb-tv.nu/pictures/logosfront/svt-play.svg" 2888 alt="SVT Play" 2889 width="42" 2890 height="42" /> 2891 </button> 2892 </a> 2893 <a href="https://webb-tv.nu/tv3-play/"> 2894 <button class="kanal-nav-item"> 2895 <img src="https://webb-tv.nu/pictures/logosfront/tv3-play.svg" 2896 alt="TV3 Play" 2897 width="42" 2898 height="42" /> 2899 </button> 2900 </a> 2901 <a href="https://webb-tv.nu/tv4-play/"> 2902 <button class="kanal-nav-item"> 2903 <img src="https://webb-tv.nu/pictures/logosfront/tv4-play.svg" 2904 alt="TV4 Play" 2905 width="42" 2906 height="42" /> 2907 </button> 2908 </a> 2909 <a href="https://webb-tv.nu/kanal5-play/"> 2910 <button class="kanal-nav-item kanal-nav-item--betal"> 2911 <img src="https://webb-tv.nu/pictures/logosfront/kanal-5-play.svg" 2912 alt="Kanal 5 Play (betal, HBO Max)" 2913 width="42" 2914 height="42" />
2915 <span class="kanal-nav-betal" aria-hidden="true">Betal</span> </button> 2916 </a> 2917 <a href="https://webb-tv.nu/tv6-play/"> 2918 <button class="kanal-nav-item"> 2919 <img src="https://webb-tv.nu/pictures/logosfront/tv6-play.svg" 2920 alt="TV6 Play" 2921 width="42" 2922 height="42" /> 2923 </button> 2924 </a> 2925 <a href="https://webb-tv.nu/sjuan-play/"> 2926 <button class="kanal-nav-item"> 2927 <img src="https://webb-tv.nu/pictures/logosfront/sjuan.svg" 2928 alt="Sjuan" 2929 width="42" 2930 height="42" /> 2931 </button> 2932 </a> 2933 <a href="https://webb-tv.nu/tv8-play/"> 2934 <button class="kanal-nav-item"> 2935 <img src="https://webb-tv.nu/pictures/logosfront/tv8-play.svg" 2936 alt="TV8 Play" 2937 width="42" 2938 height="42" /> 2939 </button> 2940 </a> 2941 <a href="https://webb-tv.nu/kanal9-play/"> 2942 <button class="kanal-nav-item kanal-nav-item--betal"> 2943 <img src="https://webb-tv.nu/pictures/logosfront/kanal9-play.svg" 2944 alt="Kanal 9 Play (betal, HBO Max)" 2945 width="42" 2946 height="42" /> 2947 <span class="kanal-nav-betal" aria-hidden="true">Betal</span> </button> 2948 </a> 2949 <a href="https://webb-tv.nu/tv10-play/"> 2950 <button class="kanal-nav-item"> 2951 <img src="https://webb-tv.nu/pictures/logosfront/tv10-play.svg" 2952 alt="TV10 Play" 2953 width="42" 2954 height="42" /> 2955 </button> 2956 </a> 2957 <a href="https://webb-tv.nu/tv12-play/"> 2958 <button class="kanal-nav-item"> 2959 <img src="https://webb-tv.nu/pictures/logosfront/tv12.svg" 2960 alt="TV12" 2961 width="42" 2962 height="42" /> 2963 </button> 2964 </a> 2965 <a href="https://webb-tv.nu/kunskapskanalen/"> 2966 <button class="kanal-nav-item"> 2967 <img src="https://webb-tv.nu/pictures/logos/kunskapskanalen-streaming.png" 2968 alt="Kunskapskanalen" 2969 width="42" 2970 height="42" /> 2971 </button> 2972 </a> 2973 <a href="https://webb-tv.nu/ur-play/"> 2974 <button class="kanal-nav-item"> 2975 <img src="https://webb-tv.nu/pictures/logosfront/ur-play.svg" 2976 alt="UR Play" 2977 width="42" 2978 height="42" /> 2979 </button> 2980 </a> 2981 <a href="https://webb-tv.nu/tv4-film-play/"> 2982 <button class="kanal-nav-item"> 2983 <img src="https://webb-tv.nu/pictures/logosfront/tv4-film.
2983svg" 2984 alt="TV4 Film" 2985 width="42" 2986 height="42" /> 2987 </button> 2988 </a> 2989 <a href="https://webb-tv.nu/tv4-fakta-play/"> 2990 <button class="kanal-nav-item"> 2991 <img src="https://webb-tv.nu/pictures/logosfront/tv4-fakta.svg" 2992 alt="TV4 Fakta" 2993 width="42" 2994 height="42" /> 2995 </button> 2996 </a> 2997 <a href="https://webb-tv.nu/tv4-guld-play/"> 2998 <button class="kanal-nav-item"> 2999 <img src="https://webb-tv.nu/pictures/logosfront/tv4-guld.svg" 3000 alt="TV4 Guld" 3001 width="42" 3002 height="42" /> 3003 </button> 3004 </a> 3005 <a href="https://webb-tv.nu/pluto-tv/"> 3006 <button class="kanal-nav-item"> 3007 <img src="https://webb-tv.nu/pictures/logosfront/pluto-tv.svg" 3008 alt="Pluto TV" 3009 width="42" 3010 height="42" /> 3011 </button> 3012 </a> 3013 <a href="https://webb-tv.nu/rakuten-tv/"> 3014 <button class="kanal-nav-item"> 3015 <img src="https://webb-tv.nu/pictures/logosfront/rakuten-tv.svg" 3016 alt="Rakuten TV" 3017 width="42" 3018 height="42" /> 3019 </button> 3020 </a> 3021 </div> 3022 </div> 3023 3024 3025 <p class="sorter-label">Sortera programmen:</p> 3026 <div class="program-sort-controls"> 3027 <button class="program-sort-btn selected" data-sort="popular">POPULÃRA</button> 3028 <button class="program-sort-btn" data-sort="new">NYA</button> 3029 <button class="program-sort-btn" data-sort="imdb">BETYG</button> 3030 <button class="program-sort-btn" data-sort="alfatext">A-Ã</button> 3031 </div> 3032 3033 <!-- Aâà strip --> 3034 <div id="program-alpha-strip" aria-label="Filtrera pÃ¥ första bokstav"> 3035 <button class="program-alpha-btn active" data-letter="#" >Alla</button><button class="program-alpha-btn is-disabled" data-letter="A" tabindex="-1" aria-disabled="true">A</button><button class="program-alpha-btn" data-letter="B" >B</button><button class="program-alpha-btn" data-letter="C" >C</button><button class="program-alpha-btn" data-letter="D" >D</button><button class="program-alpha-btn is-disabled" data-letter="E" tabindex="-1" aria-disabled="true">E</button><button class="program-alpha-btn is-disabled" data-letter="F" tabindex="-1" aria-disabled="true">F</button><button class="program-alpha-btn is-disabled" data-letter="G" tabindex="-1" aria-disabled="true">G</button><button class="program-alpha-btn is-disabled" data-letter="H" tabindex="-1" aria-disabled="true">H</button><button class="program-alpha-btn is-disabled" data-letter="I" tabindex="-1" aria-disabled="true">I</button><button class="program-alpha-btn is-disabled" data-letter="J" tabindex="-1" aria-disabled="true">J</button><button class="program-alpha-btn is-disabled" data-letter="K" tabindex="-1" aria-disabled="true">K</button><button class="program-alpha-btn is-disabled" data-letter="L" tabindex="-1" aria-disabled="true">L</button><button class="program-alpha-btn" data-letter="M" >M</button><button class="program-alpha-btn is-disabled" data-letter="N" tabindex="-1" aria-disabled="true">N</button><button class="program-alpha-btn is-disabled" data-letter="O" tabindex="-1" aria-disabled="true">O</button><button class="program-alpha-btn is-disabled" data-letter="P" tabindex="-1" aria-disabled="true">P</button><button class="program-alpha-btn is-disabled" data-letter="Q" tabindex="-1" aria-disabled="true">Q</button><button class="program-alpha-btn" data-letter="R" >R</button><button class="program-alpha-btn" data-letter="S" >S</button><button class="program-alpha-btn" data-letter="T" >T</button><button class="program-alpha-btn is-disabled" data-letter="U" tabindex="-1" aria-disabled="true">U</button><button class="program-alpha-btn is-disabled" data-letter="V" tabindex="-1" aria-disabled="true">V</button><button class="program-alpha-btn is-disabled" data-letter="W" tabindex="-1" aria-disabled="true">W</button><button class="program-alpha-btn is-disabled" data-letter="X" tabindex="-1" aria-disabled="true">X</button><button class="program-alpha-btn is-disabled" data-letter="Y" tabindex="-1" aria-disabled="true">Y</button><button class="program-alpha-btn is-disabled" data-letter="Z" tabindex="-1" aria-disabled="true">Z</button><button class="program-alpha-btn is-disabled" data-letter="à " tabindex="-1" aria-disabled="true">à </button><button class="program-alpha-btn is-disabled" data-letter="Ã" tabindex="-1" aria-disabled="true">Ã</button><button class="program-alpha-btn is-disabled" data-letter="Ã" tabindex="-1" aria-disabled="true">Ã</button> </div> 3036 </div> 3037 3038 <div class="program-grid-container" id="grid"> 3039 </div> 3040 3041 <!-- Lazy load trigger --> 3042 <div id="load-more-trigger" style="height: 20px; margin: 40px 0;"></div> 3043 3044 <div id="loading-indicator" style="text-align: center; padding: 20px; display: none;"> 3045 <p style="color: #666;">Laddar fler program...</p> 3046 </div> 3047 3048 <hr class="section-divider"> 3049 3050 <!-- Kommentarer --> 3051 </div> 3052
3053<script> 3054(function() { 3055 'use strict'; 3056 3057 // Program data från PHP 3058 const allPrograms = [{"pdbnr":43864,"kdbnr":6,"namn":"Top Gear","url":"https:\/\/webb-tv.nu\/top-gear-tv6-play-pluto-tv\/","externurl":"https:\/\/pluto.tv\/se\/on-demand\/series\/top-gear-sv","bild":"https:\/\/webb-tv.nu\/wp-content\/uploads\/2026\/05\/top-gear-tv6-play-streama-gratis-online.jpg","poster":"0","imdbgrade":"8.7","imdbid":"tt1628033","ar":0,"delar":0,"plangd":0,"ingress":"Brittisk motorunderh\u00e5llning d\u00e4r Clarkson, Hammond och May testar bilar genom v\u00e5ghalsiga utmaningar, internationella biltrippar och varvtidsjakter p\u00e5 den \u00f6k\u00e4nda testbanan i Dunsfold.","inldatum":"2026-05-13","utgar":"0000-00-00","dagar":null,"dagarsista":"0000-00-00","dagarforsta":"0000-00-00","online":1,"kategorier":"64,65","playnamn":"Pluto TV","logo":"https:\/\/webb-tv.nu\/pictures\/logosfront\/tv6-play.svg","klick":2,"sist":0,"betal":0},{"pdbnr":34535,"kdbnr":6,"namn":"Captain Fantastic","url":"https:\/\/webb-tv.nu\/captain-fantastic-svt-play\/","externurl":"https:\/\/pluto.tv\/se\/on-demand\/movies\/629079658b143a001ab6202d","bild":"https:\/\/webb-tv.nu\/wp-content\/uploads\/2020\/11\/captain-fantastic-tv4-play-streama-gratis.jpg","poster":"2026\/07\/captain-fantastic-poster-tv4-play-poster.jpg","imdbgrade":"7.9","imdbid":"tt3553976","ar":2016,"delar":1,"plangd":114,"ingress":"Ben uppfostrar sina sex barn helt utanf\u00f6r samh\u00e4llet, i en skog i Washington. N\u00e4r tragedin pl\u00f6tsligt sl\u00e5r till tvingas familjen ut i civilisationen och hans livsval s\u00e4tts p\u00e5 prov. Amerikansk dramakomedi fr\u00e5n 2016.","inldatum":"2021-03-01","utgar":"0000-00-00","dagar":null,"dagarsista":"0000-00-00","dagarforsta":"0000-00-00","online":1,"kategorier":"1,106,146","playnamn":"Pluto TV","logo":"https:\/\/webb-tv.nu\/pictures\/logosfront\/tv6-play.svg","klick":2,"sist":0,"betal":0},{"pdbnr":43274,"kdbnr":6,"namn":"Medium","url":"https:\/\/webb-tv.nu\/medium-tv6-play-pluto-tv\/","externurl":"https:\/\/pluto.tv\/se\/on-demand\/series\/medium-ptv3","bild":"https:\/\/webb-tv.nu\/wp-content\/uploads\/2025\/12\/medium-play-to-serie-streama-gratis.jpg","poster":"2025\/12\/medium-play-tv-poster.jpg","imdbgrade":"7.2","imdbid":"tt0412175","ar":0,"delar":0,"plangd":0,"ingress":"Mediet Allison Dubois k\u00e4mpar f\u00f6r att hitta en balans mellan sitt familjeliv och sin naturliga intuition om m\u00e4nniskor och sin f\u00f6rm\u00e5ga att kommunicera med de d\u00f6da. Amerikansk kriminaldramaserie.","inldatum":"2025-12-13","utgar":"0000-00-00","dagar":null,"dagarsista":"0000-00-00","dagarforsta":"0000-00-00","online":1,"kategorier":"6,606,610,612","playnamn":"Pluto TV","logo":"https:\/\/webb-tv.nu\/pictures\/logosfront\/tv6-play.svg","klick":1,"sist":0,"betal":0},{"pdbnr":42938,"kdbnr":6,"namn":"Don\u2019t Hate Your House with the Property Brothers","url":"https:\/\/webb-tv.nu\/dont-hate-your-house-with-the-property-brothers-tv6-play-pluto-tv\/","externurl":"https:\/\/pluto.tv\/se\/on-demand\/series\/dont-hate-your-house-with-the-property-brothers","bild":"https:\/\/webb-tv.nu\/wp-content\/uploads\/2025\/10\/dont-hate-your-house-with-the-property-brothers-tv6-play-streama-gratis.jpg","poster":"0","imdbgrade":"6.7","imdbid":"tt29534542","ar":2024,"delar":14,"plangd":0,"ingress":"Br\u00f6derna Scott f\u00f6rvandlar slitna, tr\u00f6tta hus till dr\u00f6mhem. Med kreativitet, byggkunskap och humor hj\u00e4lper de familjer som tappat hoppet att \u00e5ter bli stolta \u00f6ver sin bostad.","inldatum":"2025-10-01","utgar":"0000-00-00","dagar":null,"dagarsista":"0000-00-00","dagarforsta":"0000-00-00","online":1,"kategorier":"4,65","playnamn":"Pluto TV","logo":"https:\/\/webb-tv.nu\/pictures\/logosfront\/tv6-play.svg","klick":1,"sist":0,"betal":0},{"pdbnr":33570,"kdbnr":6,"namn":"Tattoo Fixers","url":"https:\/\/webb-tv.nu\/tattoo-fixers-tv6-play-viafree\/","externurl":"https:\/\/pluto.tv\/se\/on-demand\/series\/tattoo-fixers-da-ptv1","bild":"https:\/\/webb-tv.nu\/wp-content\/uploads\/2017\/04\/tattoo-fixers-tv6-play-viafree.jpg","poster":"","imdbgrade":"6.8","imdbid":"tt5307354","ar":0,"delar":0,"plangd":0,"ingress":"Serie d\u00e4r tre av Englands mest beg\u00e5vade tatuerare hj\u00e4lper kunder i sin pop-up salong i London f\u00f6r att transformera Englands v\u00e4rsta tatueringar till levande konstverk.","inldatum":"2020-09-13","utgar":"0000-00-00","dagar":null,"dagarsista":"0000-00-00","dagarforsta":"0000-00-00","online":1,"kategorier":"4","playnamn":"Pluto TV","logo":"https:\/\/webb-tv.nu\/pictures\/logosfront\/tv6-play.svg","klick":1,"sist":0,"betal":0},{"pdbnr":33121,"kdbnr":6,"namn":"Stolen","url":"https:\/\/webb-tv.nu\/stolen-tv6-v
3058iafree\/","externurl":"https:\/\/pluto.tv\/se\/on-demand\/movies\/628b564173a0a1001458555a","bild":"https:\/\/webb-tv.nu\/wp-content\/uploads\/2019\/12\/stolen-pluto-tv-film-streama-gratis.jpg","poster":"2022\/06\/stolen-tv6-play-poster.jpg","imdbgrade":"5.5","imdbid":"tt1656186","ar":2012,"delar":1,"plangd":92,"ingress":"Amerikansk action fr\u00e5n 2012 med Nicolas Cage.","inldatum":"2022-06-06","utgar":"0000-00-00","dagar":null,"dagarsista":"0000-00-00","dagarforsta":"0000-00-00","online":1,"kategorier":"1,101,110,112","playnamn":"Pluto TV","logo":"https:\/\/webb-tv.nu\/pictures\/logosfront\/tv6-play.svg","klick":1,"sist":0,"betal":0},{"pdbnr":42937,"kdbnr":6,"namn":"The Yorkshire Auction House","url":"https:\/\/webb-tv.nu\/the-yorkshire-auction-house-tv6-play-pluto-tv\/","externurl":"https:\/\/pluto.tv\/se\/on-demand\/series\/the-yorkshire-auction-house","bild":"https:\/\/webb-tv.nu\/wp-content\/uploads\/2025\/10\/the-yorkshire-auction-house-tv6-play-viafree-streama.jpg","poster":"0","imdbgrade":"7.4","imdbid":"tt14403160","ar":2021,"delar":10,"plangd":0,"ingress":"Auktionsf\u00f6rr\u00e4ttaren Angus Ashworth tar oss med bakom kulisserna i antikv\u00e4rlden. Fr\u00e5n sp\u00e4nnande husvisningar till intensiva budgivningar f\u00f6ljer vi honom och teamet p\u00e5 jakt efter skatter med historia.","inldatum":"2025-10-01","utgar":"0000-00-00","dagar":null,"dagarsista":"0000-00-00","dagarforsta":"0000-00-00","online":1,"kategorier":"4,65","playnamn":"Pluto TV","logo":"https:\/\/webb-tv.nu\/pictures\/logosfront\/tv6-play.svg","klick":1,"sist":0,"betal":0},{"pdbnr":43257,"kdbnr":6,"namn":"Rebecca och Emelie take USA","url":"https:\/\/webb-tv.nu\/rebecca-och-emelie-take-usa-tv6-play-pluto-tv\/","externurl":"https:\/\/pluto.tv\/se\/on-demand\/series\/rebecca-and-emelie-take-usa","bild":"https:\/\/webb-tv.nu\/wp-content\/uploads\/2025\/12\/rebecca-och-emelie-take-usa-pluto-tv-streama-serie.jpg","poster":"0","imdbgrade":"0.0","imdbid":"0","ar":2025,"delar":8,"plangd":0,"ingress":"Rebecca Stella och Emelie Johansson, tv\u00e5 av Sveriges mest inflytelserika profiler inom sk\u00f6nhet och underh\u00e5llning, f\u00f6renar sina krafter och tar oss med p\u00e5 of\u00f6rgl\u00f6mliga upplevelser n\u00e4r de tar \u00f6ver USA.","inldatum":"2025-12-09","utgar":"0000-00-00","dagar":"","dagarsista":"0000-00-00","dagarforsta":"0000-00-00","online":1,"kategorier":"4","playnamn":"Pluto TV","logo":"https:\/\/webb-tv.nu\/pictures\/logosfront\/tv6-play.svg","klick":1,"sist":0,"betal":0},{"pdbnr":28582,"kdbnr":6,"namn":"Bilprovningen","url":"https:\/\/webb-tv.nu\/bilprovningen-tv3-viafree\/","externurl":"https:\/\/pluto.tv\/se\/on-demand\/series\/bilprovningen-sv","bild":"https:\/\/webb-tv.nu\/wp-content\/uploads\/2017\/09\/bilprovningen-tv3-play.jpg","poster":"","imdbgrade":"0.0","imdbid":"","ar":2019,"delar":4,"plangd":0,"ingress":"F\u00f6lj med till fordonsentusiasterna p\u00e5 Bilprovningen som \u00e4lskar att m\u00f6ta nya fordon och nya m\u00e4nniskor.","inldatum":"2019-08-19","utgar":"0000-00-00","dagar":null,"dagarsista":"0000-00-00","dagarforsta":"0000-00-00","online":1,"kategorier":"4","playnamn":"Pluto TV","logo":"https:\/\/webb-tv.nu\/pictures\/logosfront\/tv6-play.svg","klick":1,"sist":0,"betal":0}]; 3059 const today = '2026-10-02'; 3060 3061 // ========== POPULÃRA: kategori-demotering (v1.6.7) ========== 3062 // Tre listor styr vad som demoteras ur POPULÃRA-vyn, i ordning: 3063 // 1) KEEP â kategori (edbnr) som ALLTID behÃ¥lls, även om annat nedan 3064 // matchar. 3 = Dokumentär. Det är "behÃ¥ll sportdokumentärer"- 3065 // regeln, och den gäller generiskt (även nyhetsdok stannar). 3066 // 2) DEMOTE-KATEGORI â kategori som demoteras. 19 = Nyheter. FÃ¥ngar ALLA 3067 // regionala nyhetssändningar automatiskt (de är taggade 19), 3068 // sÃ¥ de behöver inte namnges. 3069 // 3) DEMOTE-NAMN â exakta programnamn (gemener) för rikssändningar som har 3070 // saknad/inkonsekvent kategori. Namnet ljuger inte även när 3071 // taggningen gör det. Regionala fÃ¥ngas redan av (2). 3072 // Bekräftade titlar frÃ¥n sajten: Aktuellt, SVT Nyheter, Forum. 3073 // Ãvriga är standardtitlar â matchar de inte exakt i DB händer 3074 // inget (no-op), säg till sÃ¥ justerar jag. 3075 // Sportdok {25,3} räddas av (1); ligger utanför (2) och (3) â kvar. 3076 const POPULAR_KEEP_CATEGORIES = [3]; // 3 = Dokumentär (behÃ¥lls alltid) 3077 const POPULAR_DEMOTE_CATEGORIES = [19]; // 19 = Nyheter (fÃ¥ngar regionala) 3078 const POPULAR_DEMOTE_NAMES = [ 3079 'aktuellt', 'svt nyheter', 'forum', 3080 'rapport', 'morgonstudion', 'sportnytt', 3081 'dating naked uk' // Per 2026-09-16: med i katalogen, men ska inte lyftas av klick 3082 ]; 3083 3084 // Vänta pÃ¥ DOM 3085 if (document.readyState === 'loading') { 3086 document.addEventListener('DOMContentLoaded', initApp); 3087 } else { 3088 initApp(); 3089 } 3090 3091 function initApp() { 3092 const grid = document.getElementById('grid'); 3093 const sortBtns = document.querySelectorAll('.program-sort-control
3093s .program-sort-btn'); 3094 const alphaStrip = document.getElementById('program-alpha-strip'); 3095 const alphaBtns = alphaStrip ? alphaStrip.querySelectorAll('.program-alpha-btn') : []; 3096 const loadMoreTrigger = document.getElementById('load-more-trigger'); 3097 const loadingIndicator = document.getElementById('loading-indicator'); 3098 3099 if (!grid) return; 3100 3101 const svCollator = new Intl.Collator('sv', {sensitivity:'base'}); 3102 3103 // Lazy loading variabler 3104 let currentIndex = 0; 3105 const programsPerLoad = 24; 3106 let filteredPrograms = [...allPrograms]; 3107 let isLoading = false; 3108 3109 // Intersection Observer för lazy loading 3110 const observer = new IntersectionObserver((entries) => { 3111 entries.forEach(entry => { 3112 if (entry.isIntersecting && !isLoading && currentIndex < filteredPrograms.length) { 3113 loadMorePrograms(); 3114 } 3115 }); 3116 }, { 3117 rootMargin: '200px' 3118 }); 3119 3120 if (loadMoreTrigger) { 3121 observer.observe(loadMoreTrigger); 3122 } 3123 3124 function loadMorePrograms() { 3125 if (isLoading || currentIndex >= filteredPrograms.length) return; 3126 3127 isLoading = true; 3128 if (loadingIndicator) loadingIndicator.style.display = 'block'; 3129 3130 setTimeout(() => { 3131 const batch = filteredPrograms.slice(currentIndex, currentIndex + programsPerLoad); 3132 batch.forEach(program => { 3133 const card = createProgramCard(program); 3134 grid.appendChild(card); 3135 }); 3136 3137 currentIndex += programsPerLoad; 3138 isLoading = false; 3139 if (loadingIndicator) loadingIndicator.style.display = 'none'; 3140 3141 if (currentIndex >= filteredPrograms.length && loadMoreTrigger) { 3142 loadMoreTrigger.style.display = 'none'; 3143 } 3144 }, 300); 3145 } 3146 3147 function createProgramCard(p) { 3148 const div = document.createElement('div'); 3149 div.className = 'program-grid-item'; 3150 div.dataset.alpha = (p.namn || '').toLowerCase(); 3151 div.dataset.first = ((p.namn || '').toLowerCase().charAt(0)); 3152 div.dataset.imdb = p.imdbgrade || '0'; 3153 3154 const newDate = p.dagarforsta && p.dagarforsta > '0000-00-00' ? p.dagarforsta : 3155 (p.inldatum && p.inldatum > '0000-00-00' ? p.inldatum : '1970-01-01'); 3156 div.dataset.new = new Date(newDate).getTime(); 3157 div.dataset.pop = p.klick || '0'; 3158 3159 const badge = getBadge(p); 3160 const hasUrl = p.url && p.url !== '' && p.url !== '0'; 3161 3162 div.innerHTML = ` 3163 ${hasUrl ? `<a href="${p.url}" class="program-card-link" title="${p.namn}">` : '<div class="program-card-nolink">'} 3164 <div class="program"> 3165 <div class="program-img"> 3166 ${p.bild ? `<img src="${p.bild}" alt="${p.namn}" loading="lazy" width="800" height="420" />` : '<div class="program-img-placeholder">Bild saknas</div>'} 3167 ${badge ? `<span class="${badge.class}">${badge.text}</span>` : ''} 3168 ${p.betal == 1 ? '<span class="betal-ribbon"><span class="betal-ribbon__lang">Kräver abonnemang</span><span class="betal-ribbon__kort">Abonnemang</span></span>' : ''} 3169 ${p.ingress ? `<div class="program-ingress-overlay"><div class="program-ingress-content"><p>${p.ingress.replace(/\n/g, '<br>')}</p></div></div>` : ''} 3170 </div> 3171 <div class="program-info"> 3172 <div class="program-content-main"> 3173 <div class="program-title-and-meta"> 3174 ${getProgramTitle(p)} 3175 ${getMetadata(p)} 3176 </div> 3177 </div> 3178 <div class="program-meta">
3179 ${p.playnamn ? `<span class="kanal-badge">${p.logo ? `<img src="${p.logo}" alt="${p.playnamn}" class="kanal-logo-in-badge">` : ''}${p.playnamn}</span>` : ''} 3180 ${p.imdbgrade && parseFloat(p.imdbgrade) > 0 ? `<span class="imdb" ${p.imdbid ? `onclick="window.open('https://www.imdb.com/title/${p.imdbid}/', '_blank'); event.stopPropagation(); return false;"` : ''}>IMDb: ${p.imdbgrade}</span>` : ''} 3181 </div> 3182 </div> 3183 </div> 3184 ${hasUrl ? '</a>' : '</div>'} 3185 `; 3186 3187 return div; 3188 } 3189 3190 function getBadge(p) { 3191 const koder = (p.dagar || '').trim(); 3192 const df = p.dagarforsta || '0000-00-00'; 3193 const inl = p.inldatum || '0000-00-00'; 3194 const ds = p.dagarsista || '0000-00-00'; 3195 const ut = p.utgar || '0000-00-00'; 3196 3197 let near = false; 3198 if (df > '0000-00-00' && df <= today && daysDiff(df, today) <= 2) near = true; 3199 if (!near && inl > '0000-00-00' && inl <= today && daysDiff(inl, today) <= 2) near = true; 3200 3201 if (near && koder.includes('9')) return {class: 'ny-sasong-ribbon', text: 'NY SÃSONG'}; 3202 if (near && koder.includes('8')) return {class: 'tillbaka-ribbon', text: 'TILLBAKA'}; 3203 if (near && koder.includes('0')) return {class: 'ny-serie-ribbon', text: 'NY SERIE'}; 3204 3205 const wToday = new Date(today).getDay() || 7; 3206 const periodOk = !((df != '0000-00-00' && today < df) || (ds != '0000-00-00' && today > ds) || (ut != '0000-00-00' && today > ut)); 3207 if (periodOk && /[1234567]/.test(koder) && koder.includes(String(wToday))) { 3208 return {class: 'nytt-avsnitt-ribbon', text: 'NYTT AVSNITT'}; 3209 } 3210 3211 return null; 3212 } 3213 3214 function daysDiff(from, to) { 3215 const f = new Date(from); 3216 const t = new Date(to); 3217 return Math.floor((t - f) / (1000 * 60 * 60 * 24)); 3218 } 3219 3220 function getProgramTitle(p) { 3221 const isMobile = window.innerWidth <= 600; 3222 3223 if (isMobile && p.logo) { 3224 return ` 3225 <div class="program-title-with-logo"> 3226 <img src="${p.logo}" alt="${p.playnamn}" class="program-title-logo"> 3227 <h2 class="program-title">${p.namn}</h2> 3228 </div> 3229 `; 3230 } 3231 3232 return `<h2 class="program-title">${p.namn}</h2>`; 3233 } 3234 3235 function getMetadata(p) { 3236 const meta = []; 3237 if (p.ar && p.ar != '0') meta.push(p.ar == '9' ? new Date().getFullYear() : p.ar); 3238 if (p.delar && parseInt(p.delar) > 1) meta.push(parseInt(p.delar) + ' delar'); 3239 if (p.plangd && parseInt(p.plangd) > 0) meta.push(parseInt(p.plangd) + ' min'); 3240 return meta.length ? `<p class="program-metadata">${meta.join(' <span class="meta-separator">|</span> ')}</p>` : ''; 3241 } 3242 3243 function resetAndLoad() { 3244 grid.innerHTML = ''; 3245 currentIndex = 0; 3246 if (loadMoreTrigger) loadMoreTrigger.style.display = 'block'; 3247 loadMorePrograms(); 3248 } 3249 3250 // Markera aktiv kanal 3251 const kanalNavItems = document.querySelectorAll('.kanal-nav-item'); 3252 const kanalNavGrid = document.querySelector('.kanal-nav-grid'); 3253 const currentUrl = window.location.href.toLowerCase(); 3254 3255 kanalNavItems.forEach((btn) => { 3256 const link = btn.closest('a'); 3257 if (link) { 3258 const linkUrl = link.href.toLowerCase(); 3259 if (currentUrl === linkUrl || currentUrl === linkUrl.replace(/\/$/, '')) { 3260 btn.classList.add('active'); 3261 3262 const isDesktopView = window.matchMedia('(min-width: 992px)').matches; 3263 if (!isDesktopView && kanalNavGrid) { 3264 setTimeout(() => { 3265 link.scrollIntoView({ 3266 behavior: 'smooth', 3267 block: 'nearest', 3268 inline: 'center' 3269 }); 3270 }, 150); 3271 } 3272 } 3273 } 3274 }); 3275 3276 // FIX v1.5.7: Lade till skipReset-parameter sÃ¥ att filtrering inte 3277 // nollställs när sortBy anropas efter filterByLetter/filterByImdb 3278 function sortBy(key, dir, skipReset) { 3279 dir = dir || 'desc'; 3280 3281 // Reset till alla program först (om inte skipReset) 3282 if (!skipReset) { 3283 filteredPrograms = [...allPrograms]; 3284 } 3285 3286 // v1.6.7 â POPULÃRA: hybrid. Tre steg i ordning: 3287 // 1) Dokumentär (kategori 3) â behÃ¥ll alltid (sport- som nyhetsdok). 3288 // 2) Nyheter (kategori 19) â demotera (fÃ¥ngar regionala automatiskt). 3289 // 3) Namngiven rikssändning â demotera (oavsett taggning). 3290 // Sportdok {25,3} räddas av (1), ligger utanför (2)+(3) â kvar. 3291 // Gäller ENDAST klick-sorteringen; under NYA/BETYG/A-à är allt kvar. 3292 if (key === 'klick') {
3293 const keepCats = new Set(POPULAR_KEEP_CATEGORIES); 3294 const demoteCats = new Set(POPULAR_DEMOTE_CATEGORIES); 3295 const demoteNames = new Set(POPULAR_DEMOTE_NAMES.map(n => n.toLowerCase())); 3296 filteredPrograms = filteredPrograms.filter(p => { 3297 const cats = String(p.kategorier || '') 3298 .split(',') 3299 .map(s => parseInt(s, 10)) 3300 .filter(n => !isNaN(n)); 3301 if (cats.some(c => keepCats.has(c))) return true; // 1) dokumentär â kvar 3302 if (cats.some(c => demoteCats.has(c))) return false; // 2) nyheter â ut 3303 const namn = String(p.namn || '').trim().toLowerCase(); 3304 if (demoteNames.has(namn)) return false; // 3) namngiven bulletin â ut 3305 return true; 3306 }); 3307 } 3308 3309 // Filtrera för NYA om det behövs 3310 if (key === 'new') { 3311 filteredPrograms = filteredPrograms.filter(p => { 3312 const inl = p.inldatum || '0000-00-00'; 3313 const df = p.dagarforsta || '0000-00-00'; 3314 3315 const inlOk = inl === '0000-00-00' || inl <= today; 3316 const dfOk = df === '0000-00-00' || df <= today; 3317 3318 return inlOk && dfOk; 3319 }); 3320 } 3321 3322 // Sortera 3323 filteredPrograms.sort((a,b) => { 3324 // POPULÃRA (Per 2026-09-22): feat 99 sist ("sist i Populära", t.ex. Kan du vissla Johanna? tills jul), 3325 // sedan dagens klick. Vid LIKA dagens klick returneras 0 och den stabila sorteringen behÃ¥ller 3326 // SERVERNS ordning: veckans klick â IMDb â Aâà (ORDER BY i hamta-frÃ¥gan). Samma regel som 3327 // kategorisidornas /program/get-programs*.php och genresidorna. ð´ feat 9 (startsidans spak) rörs inte. 3328 if (key === 'klick') { 3329 const s = (parseInt(a.sist, 10) || 0) - (parseInt(b.sist, 10) || 0); 3330 if (s !== 0) return s; 3331 } 3332 if (key === 'alpha') { 3333 const aVal = (a.namn || '').toLowerCase(); 3334 const bVal = (b.namn || '').toLowerCase(); 3335 return svCollator.compare(aVal, bVal) * (dir === 'asc' ? 1 : -1); 3336 } else if (key === 'new') { 3337 const aDateDf = a.dagarforsta && a.dagarforsta > '0000-00-00' ? a.dagarforsta : '1970-01-01'; 3338 const aDateInl = a.inldatum && a.inldatum > '0000-00-00' ? a.inldatum : '1970-01-01'; 3339 const aDate = aDateDf > aDateInl ? aDateDf : aDateInl; 3340 3341 const bDateDf = b.dagarforsta && b.dagarforsta > '0000-00-00' ? b.dagarforsta : '1970-01-01'; 3342 const bDateInl = b.inldatum && b.inldatum > '0000-00-00' ? b.inldatum : '1970-01-01'; 3343 const bDate = bDateDf > bDateInl ? bDateDf : bDateInl; 3344 3345 const an = new Date(aDate).getTime(); 3346 const bn = new Date(bDate).getTime(); 3347 return (bn - an) * (dir === 'desc' ? 1 : -1); 3348 } else { 3349 const an = parseFloat(a[key] || '0') || 0; 3350 const bn = parseFloat(b[key] || '0') || 0; 3351 return (bn - an) * (dir === 'desc' ? 1 : -1); 3352 } 3353 }); 3354 3355 resetAndLoad(); 3356 } 3357 3358 function filterByLetter(letter) { 3359 if (letter === '#') { 3360 filteredPrograms = [...allPrograms]; 3361 } else { 3362 const L = letter.toLowerCase(); 3363 filteredPrograms = allPrograms.filter(p => { 3364 const first = ((p.namn || '').toLowerCase().charAt(0)); 3365 return first === L; 3366 }); 3367 } 3368 resetAndLoad(); 3369 } 3370 3371 function filterByImdb(showOnlyWithImdb) { 3372 if (showOnlyWithImdb) { 3373 filteredPrograms = allPrograms.filter(p => { 3374 const imdb = parseFloat(p.imdbgrade || '0') || 0; 3375 return imdb > 0; 3376 }); 3377 } else { 3378 filteredPrograms = [...allPrograms]; 3379 } 3380 resetAndLoad(); 3381 } 3382 3383 // Sorteringsknappar 3384 sortBtns.forEach(btn => { 3385 btn.addEventListener('click', function() { 3386 sortBtns.forEach(b => b.classList.remove('selected')); 3387 btn.classList.add('selected'); 3388 3389 const mode = btn.dataset.sort; 3390 const isDesktopView = window.matchMedia('(min-width: 992px)').matches; 3391 3392 if (mode === 'alfatext') { 3393 if (alphaStrip) { 3394 alphaStrip.style.display = 'flex'; 3395 if (isDesktopView) { 3396 alphaStrip.classList.add('alpha-active-desktop'); 3397 } else { 3398 alphaStrip.classList.remove('alpha-active-desktop'); 3399 } 3400 } 3401 } else { 3402 if (alphaStrip) { 3403 alphaStrip.style.display = 'none'; 3404 alphaStrip.classList.remove('alpha-active-desktop'); 3405 } 3406 alphaBtns.forEach(b => b.classList.remove('active')); 3407 if (alphaBtns.length) alphaBtns[0].classList.add('active'); 3408 } 3409 3410 if (mode === 'imdb') { 3411 grid.classList.add('mode-imdb'); 3412 filterByImdb(true); 3413 // FIX v1.5.7: skipReset=true sÃ¥ filtreringen bevaras 3414 sortBy('imdbgrade', 'desc', true); 3415 } else { 3416 grid.classList.remove('mode-imdb'); 3417 3418 if (mode === 'popular') sortBy('klick', 'desc'); 3419 else if (mode === 'new') sortBy('new', 'desc');
3420 else if (mode === 'alfatext') sortBy('alpha', 'asc'); 3421 } 3422 }); 3423 }); 3424 3425 // A-à knappar 3426 alphaBtns.forEach(btn => { 3427 if (btn.classList.contains('is-disabled')) return; 3428 3429 btn.addEventListener('click', function() { 3430 alphaBtns.forEach(b => b.classList.remove('active')); 3431 btn.classList.add('active'); 3432 const letter = btn.dataset.letter || '#'; 3433 filterByLetter(letter); 3434 // FIX v1.5.7: skipReset=true så bokstavsfiltreringen bevaras 3435 sortBy('alpha', 'asc', true); 3436 }); 3437 }); 3438 3439 // Initial load: Populära 3440 sortBy('klick', 'desc'); 3441 } 3442})(); 3443</script>
3443 3444 3445<style> 3446 3447@media (min-width: 770px) { 3448 body:not(.home):not(.page) footer { 3449 margin: 0 4%; 3450 } 3451} 3452 3453 3454.kategori-header { 3455 color: #e0e0e0; /* Vit text */ 3456 text-align: center; /* Centrera texten */ 3457 text-transform: uppercase; /* Gör texten capitalized */ 3458 /*margin-top: -5px !important; BehÃ¥ll din marginal */ 3459 margin-bottom: 15px !important; /* BehÃ¥ll din marginal */ 3460 font-weight: lighter; 3461 padding: 20px; 3462 font-size: 23px; 3463} 3464 3465.kategori-box { 3466 margin: 0 4%; 3467} 3468 3469 3470 3471@media (min-width: 770px) { 3472 body:not(.home):not(.page) .kategorier-wrapper { 3473 margin: 0; 3474 } 3475} 3476 3477 3478 3479 3480 3481.kategorier-wrapper { 3482 background-color: #0d0d0d; 3483 padding: 20px; 3484 padding-top: 40px; /* Lägg till denna rad */ 3485 margin-bottom: 0px; 3486 padding-bottom: 60px; 3487 max-width: 1400px; 3488 margin: auto !important; 3489} 3490 3491 @media (max-width: 768px) { 3492 .kategorier-wrapper { 3493 padding-top: 60px; 3494 } 3495} 3496 3497 3498.kategorier-container { 3499 display: grid; 3500 grid-template-columns: repeat(4, 1fr); 3501 gap: 10px; 3502 list-style: none; /* Ta bort listpunkter */ 3503 padding: 0; /* Ta bort extra padding */ 3504 margin: 0 3%; 3505} 3506 3507.kategori a { 3508 font-size: 14px; 3509 display: block; 3510 text-align: center; 3511 background-color: #212a40; /* MörkblÃ¥ bakgrund */ 3512 color: #fff; /* Nästintill vit text */ 3513 padding: 10px; 3514 border: 1px solid #e0e0e0; /* Vit ram */ 3515 border-radius: 8px; 3516 text-decoration: none; 3517 transition: all 0.3s ease; /* Smidig övergÃ¥ng */ 3518 box-shadow: 0 0 0 transparent; /* Ingen skugga frÃ¥n början */ 3519} 3520 3521.kategori a:hover { 3522 box-shadow: 0 0 0 1px #e0e0e0; /* "Extra ram" via skugga */ 3523 transform: scale(1.005); /* Valfritt: liten förstoring för hovringseffekt */ 3524} 3525 3526 3527@media (max-width: 768px) { 3528 .kategorier-container { 3529 grid-template-columns: repeat(2, 1fr); /* 2 kolumner pÃ¥ mindre skärmar */ 3530 } 3531} 3532 3533.kategori-divider { 3534 border: none; 3535 height: 1px; 3536 width: 99%; 3537 background-color: #e0e0e063; 3538 margin: 45px auto 0; 3539} 3540 3541 3542</style> 3543 3544 3545 3546 3547<!-- FOOTER --> 3548 3549 3550<footer> 3551 3552 3553<style> 3554.kategori-header-with-icon { 3555 display: flex !important; 3556 align-items: center !important; 3557 gap: 8px !important; 3558 justify-content: center !important; 3559} 3560 3561.kategori-header-with-icon svg { 3562 margin-left: 0; 3563} 3564 3565@media (min-width: 768px) { 3566 .kategori-header-with-icon { 3567 justify-content: flex-start !important; 3568 margin-left: 3% !important; 3569 padding-left: 0 !important; 3570 } 3571 3572 .kategori-header-with-icon svg { 3573 margin-left: 7px !important; 3574 } 3575} 3576</style> 3577 3578<nav class="kategorier-wrapper" aria-label="Huvudkategorier"> 3579 3580 3581 <h3 class="kategori-header kategori-header-with-icon" style=" 3582 margin-top: -10px !important; 3583 margin-bottom: 7px !important; 3584 "> 3585 <svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="#88a8b4" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><rect width="7" height="7" x="3" y="3" rx="1"/><rect width="7" height="7" x="14" y="3" rx="1"/><rect width="7" height="7" x="14" y="14" rx="1"/><rect width="7" height="7" x="3" y="14" rx="1"/></svg> 3586 Kategorier 3587 </h3> 3588 <div class="kategorier-box"> 3589 <ul class="kategorier-container"> 3590 <li class="kategori"><a href="https://webb-tv.nu/film/">Film</a></li> 3591 <li class="kategori"><a href="https://webb-tv.nu/serier/">Serier</a></li> 3592 <li class="kategori"><a href="https://webb-tv.nu/dokumentar/">Dokumentär</a></li> 3593 <li class="kategori"><a href="https://webb-tv.nu/krim/">Krim</a></li> 3594 3595 <li class="kategori"><a href="https://webb-tv.nu/noje/">Nöje</a></li> 3596 <li class="kategori"><a href="https://webb-tv.nu/reality/">Reality</a></li> 3597 3598 <li class="kategori"><a href="https://webb-tv.nu/sport/">Sport</a></li> 3599 <li class="kategori"><a href="https://webb-tv.nu/kategorier/">Alla kategorier</a></li> 3600 </ul> 3601 </div> 3602 3603 3604 <h3 class="kategori-header kategori-header-with-icon" style=" 3605 margin-top: 40px !important; 3606 margin-bottom: 7px !important; 3607 "> 3608 <svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="#a78bfa" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"> 3609 <circle cx="7" cy="7" r="2.5"/><circle cx="17" cy="7" r="2.5"/> 3610 <circle cx="7" cy="17" r="2.5"/><circle cx="17" cy="17" r="2.5"/> 3611 </svg> 3612 POPULÃRA GENRER 3613 </h3> 3614 <div class="kategorier-box"> 3615 <ul class="kategorier-container" style=" 3616 margin-bottom: 50px; 3617 "> 3618 <li class="kategori"><a href="https://webb-tv.nu/genre/action/">Action</a></li> 3619 <li class="kategori"><a href="https://webb-tv.nu/genre/drama/">Drama</a></li> 3620 <li class="kategori"><a href="https://webb-tv.nu/genre/komedi/">Komedi</a></li> 3621 <li class="kategori"><a href="https://webb-tv.nu/genre/kriminaldrama-deckare/">Kriminaldrama</a></li> 3622 <li class="kategori"><a href="https://webb-tv.nu/genre/romantik/">Romantik</a></li> 3623 <li class="kategori"><a href="https://webb-tv.nu/genre/svenskt/">Svenskt</a></li> 3624 <li class="kategori"><a href="https://webb-tv.nu/genre/thriller/">Thriller</a></li> 3625 <li class="kategori"><a href="https://webb-tv.nu/genre/verklighetsbaserat/">Verklighetsbaserat</a></li> 3626 </ul> 3627 </div> 3628 3629 3630 <hr class="kategori-divider"> 3631</nav> 3632 3633 3634 3635 3636 <div class="widgets" style=" 3637 max-width: 1400px; 3638 margin: auto; 3639"> 3640 <div class="background" style=" 3641 max-width: 1400px !important; 3642 margin: auto !important; 3643"></div> 3644 <div class="wrapper"> 3645 3646 <section class="footer_widget"> <div class="textwidget"><div id="footerlogo"><a href="https://webb-tv.nu"><img src="https://webb-tv.nu/wp-content/uploads/2015/05/webb-tv-play-2.png" alt="webb-tv-play" height="50" class="size-full wp-image-110775" /></a></div> 3647 3648 3649 3650</div> 3651 </section><section class="footer_widget"> <div class="textwidget"><div class="tablethide">
3652<a href="https://webb-tv.nu/kontakt/" style="color: #e0e0e0; text-decoration: none;font-size: 15px;">FRà GOR & KONTAKT</a> 3653</div> 3654</div> 3655 </section><section class="footer_widget"> <div class="textwidget"><div class="tablethide"> 3656<a href="https://webb-tv.nu/privacy-policy/" aria-label="Läs vÃ¥r integritetspolicy" style="color: #e0e0e0; text-decoration: none;font-size: 15px;">INTEGRITETSPOLICY</a> 3657</div></div> 3658 </section><section class="footer_widget"> <div class="textwidget"><div class="tablethide"> 3659<div id="socicons" > 3660 3661<a href="https://www.facebook.com/webbtvnu/" alt="Facebook" aria-label="Facebook" target="_blank" rel="noopener noreferrer" style="display: inline-block; margin-top: 0px; padding-bottom: 60px;"><svg xmlns="http://www.w3.org/2000/svg" width="22" height="22" viewBox="0 0 24 24" fill="#e0e0e0" aria-hidden="true"><path d="M24 12.073c0-6.627-5.373-12-12-12s-12 5.373-12 12c0 5.99 4.388 10.954 10.125 11.854v-8.385H7.078v-3.47h3.047V9.43c0-3.007 1.792-4.669 4.533-4.669 1.312 0 2.686.235 2.686.235v2.953H15.83c-1.491 0-1.956.925-1.956 1.874v2.25h3.328l-.532 3.47h-2.796v8.385C19.612 23.027 24 18.062 24 12.073z"/></svg></a> 3662 3663</div> 3664</div></div> 3665 </section> 3666 </div> 3667 </div> 3668 <div class="lower"> 3669 <div class="wrapper"> 3670 <div class="bloginfo"> 3671 3672 3673 3674 3675 3676 </div> 3677 <div class="disclaimer"> 3678 3679 3680 3681 <aside class="copyright"> 3682<p class="main">© WEBB-TV.nu 2009-2026</p> 3683 3684 </aside> 3685 </div> 3686 </div> 3687 </div> 3688 </footer> 3689 3690 </div> 3691 3692
3693<script nowprocket type="text/javascript" charset="UTF-8" src="https://cdn.cookie-script.com/s/2c3181e324dbbe18d0411dc70ce87d48.js"></script>
3693 3694 3695 3696
3697<script defer src="//cdnjs.cloudflare.com/ajax/libs/handlebars.js/4.7.7/handlebars.min.js"></script>
3697 3698 3699 3700
3700<script> 3701jQuery(function() { 3702 $("button[data-sort='alfatext']").click(function() { $('#aotext').show(); }); 3703 $("button[data-sort='alfatext']").click(function() { $('#fphwrap').hide(); }); 3704 $("button:not([data-sort='alfatext'])").click(function() { $('#aotext').hide(); }); 3705 $("button:not([data-sort='alfatext'])").click(function() { $('#fphwrap').show(); }); 3706}); 3707</script>
3707 3708 3709 3710
3710<script> 3711window.onload = function() { 3712 window.scrollTo(0, 0); 3713 window.dispatchEvent(new Event('scroll')); 3714}; 3715</script>
3715 3716 3717 <div class='asp_hidden_data' id="asp_hidden_data" style="display: none !important;"> 3718 <svg style="position:absolute" height="0" width="0"> 3719 <filter id="aspblur"> 3720 <feGaussianBlur in="SourceGraphic" stdDeviation="4"/> 3721 </filter> 3722 </svg> 3723 <svg style="position:absolute" height="0" width="0"> 3724 <filter id="no_aspblur"></filter> 3725 </svg> 3726 </div>
3727<script type='text/javascript' src='https://webb-tv.nu/wp-content/themes/KiteTheme/assets/js/theme.min.js?ver=1.2.1'></script>
3727 3728<!-- ASP-hardkodning borttagen 2026-07-11: pluginet skoter sin egen skriptladdning. Original: /home/user_10152/asp-backup-2026-07-10/footer.php.orig-2026-07-11 -->
3729<script type='text/javascript'> 3730/* <![CDATA[ */ 3731var ubermenu_data = {"remove_conflicts":"on","reposition_on_load":"off","intent_delay":"300","intent_interval":"100","intent_threshold":"7","scrollto_offset":"50","scrollto_duration":"1000","responsive_breakpoint":"1180","accessible":"on","retractor_display_strategy":"responsive","touch_off_close":"on","submenu_indicator_close_mobile":"on","collapse_after_scroll":"on","v":"3.7.8","configurations":["newmeny","main"],"ajax_url":"https:webb-tv.nuwp-admin\/admin-ajax.php","plugin_url":"https:webb-tv.nuwp-content\/plugins\/ubermenu\/","disable_mobile":"off","prefix_boost":"","use_core_svgs":"off","aria_role_navigation":"off","aria_nav_label":"off","aria_expanded":"off","aria_hidden":"off","aria_controls":"","aria_responsive_toggle":"off","icon_tag":"i","esc_close_mobile":"on","theme_locations":{"primary":"Primary Menu","new-menu":"Ny meny"}}; 3732/* ]]> */ 3733</script>
vendor: 1 bytes, line 3733
3733
3734<script type='text/javascript' src='https://webb-tv.nu/wp-content/plugins/ubermenu/assets/js/ubermenu.min.js?ver=3.7.8'></script>
vendor: 1 bytes, line 3734
3734
3735<script type='text/javascript' src='https://webb-tv.nu/wp-includes/js/wp-embed.min.js?ver=8a117720eaaf4396e150735e72efc12f'></script>
3735 3736
3736<script type="text/javascript"> 3737 //UberMenu Diagnostics only loaded for admin users 3738 (function($){ 3739 var ubermenu_diagnostics_initialized = false; 3740 window.ubermenu_diagnostics_present = false; 3741 3742 jQuery(function($) { 3743 ubermenu_init_diagnostics(); 3744 }); 3745 3746 $( window ).on( 'load' , function(){ 3747 ubermenu_init_diagnostics(); 3748 }); 3749 3750 function ubermenu_init_diagnostics(){ 3751 3752 if( ubermenu_diagnostics_initialized ) return; 3753 ubermenu_diagnostics_initialized = true; 3754 $( '.ubermenu-diagnostics-loader-button' ).on( 'click' , function(e){ 3755 e.preventDefault(); 3756 //Load script once 3757 if( !window.ubermenu_diagnostics_present ){ 3758 ubermenu_load_diagnostics(); 3759 } 3760 }); 3761 if( window.location.search == '?ubermenu_diagnostics' ){ 3762 ubermenu_load_diagnostics(); 3763 } 3764 } 3765 function ubermenu_load_diagnostics(){ 3766 ubermenu_load_screen( true ); 3767 $.getScript( 'https://webb-tv.nu/wp-content/plugins/ubermenu/pro/diagnostics/diagnostics.js' , function(){ ubermenu_load_screen( false ) }); 3768 $('head').append('<link rel="stylesheet" type="text/css" href="https://webb-tv.nu/wp-content/plugins/ubermenu/pro/diagnostics/diagnostics.css">'); 3769 } 3770 3771 window.ubermenu_load_screen = function( state ){ 3772 if( state !== false ) state = true; 3773 var $screen = $( '.ubermenu-diagnostics-loadscreen' ); 3774 if( state ){ 3775 if( !$screen.length ){ 3776 var container = '<div class="ubermenu-diagnostics-loadscreen">'; 3777 container+= '<div class="um-folding-cube"><div class="um-cube1 um-cube"></div><div class="um-cube2 um-cube"></div><div class="um-cube4 um-cube"></div><div class="um-cube3 um-cube"></div></div>'; 3778 container+= '</div>'; 3779 jQuery( 'body' ).append( container ); 3780 } 3781 else{ 3782 $screen.fadeIn(); 3783 } 3784 } 3785 else{ 3786 $screen.fadeOut(); 3787 } 3788 3789 } 3790 3791 //Testing 3792 //setTimeout( ubermenu_load_diagnostics , 300 ); 3793 })(jQuery); 3794 </script>
3794 3795 3796 3797<!-- Ej FB --> 3798
3798<script type="text/javascript"> 3799 window.config = { 3800 'hide_comments': 0, 3801 }; 3802 </script>
3802 3803 3804 3805 3806 3807 3808 3809 3810 3811 3812 3813 3814 3815
3816<script nowprocket> 3817 /** 3818 * HÃ¥ller ihop plattformsdelen av programrubriken pÃ¥ en rad. 3819 * 3820 * .block är `display:inline-block !important` (assets/css/testingcss.css:207) 3821 * och bryts därför aldrig internt â "TV3 | Pluto TV" hamnar pÃ¥ samma rad i 3822 * stället för att brytas mitt i namnet. 3823 * 3824 * OMSKRIVEN 2026-07-27. Förra versionen matchade en hÃ¥rdkodad lista med tre 3825 * namn â SVT Play, TV4 Play, UR Play. Den täckte 16 711 inlägg, men lämnade 3826 * allt annat: TV3 | Viafree (366), Kunskapskanalen | UR Play (500), 3827 * TV4 Film | TV4 Play (314), TV10/TV3 Play (467), Pluto TV m.fl. Därför bröts 3828 * "PLUTO / TV" mitt itu (Per 2026-07-27). Listan hade dessutom behövt 3829 * underhÃ¥llas vid varje ny plattform. 3830 * 3831 * Nu wrappas HELA delen efter sista avdelaren, vilket täcker nuvarande OCH 3832 * framtida plattformar, och hÃ¥ller sammansatta namn ihop som EN enhet. 3833 * 3834 * â ï¸ AVDELAREN ÃR ETT TANKSTRECK I DOM:EN. Databasen har " - " (20 456 rader) 3835 * men wptexturize gör om det till "â" vid utskrift; 200 titlar har redan 3836 * tankstreck. BÃ¥da hanteras â den som stÃ¥r längst till höger vinner, sÃ¥ 3837 * "Polen - Sverige VM-kval - TV4 | C More" splittas pÃ¥ rätt ställe. 3838 */ 3839 document.addEventListener('DOMContentLoaded', function () { 3840 document.querySelectorAll('.post-title-text').forEach(function (el) { 3841 // InnehÃ¥ller rubriken redan HTML? DÃ¥ har Per satt en <span class="block"> 3842 // för hand (219 inlägg) â rör den inte, annars nästlas inline-block. 3843 if (el.children.length > 0) { return; } 3844 3845 var txt = el.textContent; 3846 var i = Math.max(txt.lastIndexOf(' â '), txt.lastIndexOf(' - ')); 3847 if (i < 0) { return; } 3848 3849 var huvud = txt.slice(0, i + 3); 3850 var platt = txt.slice(i + 3); 3851 if (!platt.trim()) { return; } 3852 3853 // DOM-API i stället för innerHTML: ingen escaping att göra fel pÃ¥ och 3854 // ingen väg in för HTML ur titeln. 3855 el.textContent = huvud; 3856 var span = document.createElement('span'); 3857 span.className = 'block'; 3858 span.textContent = platt; 3859 el.appendChild(span); 3860 }); 3861 }); 3862</script>
3862 3863 3864 3865
3866<script> 3867/** 3868 * Flyttar sändningsinformationen för ett program 3869 * till en position direkt under den första H2-rubrilen i inlägget. 3870 * 3871 * KORREKT VERSION som letar efter ".program-sandningstid-container" 3872 */ 3873document.addEventListener('DOMContentLoaded', function() { 3874 3875 // DENNA RAD ÃR ÃNDRAD: Vi letar nu efter den nya containern. 3876 const sandningsdagContainer = document.querySelector('.program-sandningstid-container'); 3877 3878 // Denna rad är korrekt för ditt tema. 3879 const targetH2 = document.querySelector('.postcontents h2'); 3880 3881 // VIKTIGT: Kontrollera den nya variabeln här. 3882 if (sandningsdagContainer && targetH2) { 3883 3884 // Flytta containern. 3885 targetH2.insertAdjacentElement('beforebegin', sandningsdagContainer); 3886 } 3887}); 3888</script>
3888 3889 3890 3891 3892 3893 3894 3895 3896 3897 3898 3899 3900 3901<div class="lfn-motor" style="display:none" aria-hidden="true"><div class="lfn-bell-container"><button class="lfn-bell-btn" aria-label="Visa notifikationer"><svg class="lfn-bell-icon" viewBox="0 0 24 24" aria-hidden="true"><g fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"><path d="M6.5 10.5a5.5 5.5 0 0 1 11 0c0 3.8 1.7 5.2 2.6 6H3.9c.9-.8 2.6-2.2 2.6-6z"/><path d="M13.5 20 a1.5 1.5 0 0 1-3 0"/></g></svg><span class="lfn-badge-html hidden">0</span></button></div><div class="lfn-modal-overlay"></div><div class="lfn-modal"><button class="lfn-close" aria-label="Stäng"><svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><line x1="18" y1="6" x2="6" y2="18"/><line x1="6" y1="6" x2="18" y2="18"/></svg></button><div class="lfn-modal-header"><div class="lfn-modal-header-content"><h3><a href="https://webb-tv.nu/favoriter">Mina favoriter</a> <span class="lfn-modal-count">0</span></h3><p class="lfn-modal-subtitle">Nytt senaste veckan</p></div></div><div class="lfn-modal-body"><div class="lfn-list"><div class="lfn-loading"><div class="lfn-spinner"></div><div>Laddar notifikationer...</div></div></div></div></div> 3902 </div><style> 3903body:not(.page-id-98771) .lfn-bell-container{display:none !important;} 3904.lfn-menu-badge{position:static !important;display:inline-block !important;top:auto !important;right:auto !important;transform:none !important; 3905 width:9px !important;height:9px !important;min-width:9px !important;padding:0 !important;border:0 !important;border-radius:50% !important; 3906 font-size:0 !important;line-height:0 !important;overflow:hidden !important;background:#e02020 !important; 3907 margin:0 0 2px 6px !important;vertical-align:middle !important;} 3908/* Reservera prickens plats sÃ¥ FAVORITER inte hoppar i sidled när den tänds. 3909 Pricken sätts av ett AJAX-svar ett par hundra ms EFTER att sidan renderat, 3910 alltsÃ¥ ett hopp pÃ¥ en satt sida â den sorten ögat fastnar pÃ¥. 3911 ð´ SPECIFICITET, inte fler !important: pluginet skriver sin egen 3912 .lfn-badge-html.hidden{display:none !important} via wp_footer(), alltsÃ¥ 3913 EFTER det här blocket (mätt 31/8: vÃ¥r @631266, deras @638183). Vid samma 3914 specificitet vinner den som stÃ¥r sist. Selektorn nedan är (0,4,1) mot 3915 deras (0,2,0) och vinner oavsett ordning. 3916 â ï¸ Scopad till ubermeny-länken med flit: en bredare selektor hade slagit ut 3917 regeln som döljer hjärtknappens prick pÃ¥ desktop och tryckt in 15px där. 3918 â ï¸ Bà DA egenskaperna krävs â visibility ensam övertar inte deras display. */ 3919.ubermenu a[href*="/favoriter"] .lfn-menu-badge.hidden{display:inline-block !important;visibility:hidden !important;} 3920.lfn-menu-badge.hidden{display:none !important;} 3921/* Mobil (sajtens etablerade gräns, samma som mobile-bottom-nav): pricken flyttar 3922 frÃ¥n "efter ordet" till INSKUREN i tilens övre högra hörn â 2px ring i tilens 3923 svärta ger den urstansade looken. position:relative pÃ¥ länken är ENDA regeln 3924 som rör ett befintligt element: ren förankring, visuellt verkningslös. */ 3925@media (max-width:991px){ 3926 .ubermenu a[href*="/favoriter"]{position:relative !important;} 3927 .ubermenu .lfn-menu-badge{position:absolute !important;top:5px !important;right:6px !important; 3928 margin:0 !important;border:2px solid #000 !important;box-sizing:content-box !important;} 3929 /* Hjärtknappen (a.togglemyprograms, nav.main) är REDAN position:absolute = eget ankare. 3930 Vit ring â den sitter i den vita mobilheadern, inte pÃ¥ svarta tilen. */ 3931 .togglemyprograms .lfn-menu-badge{position:absolute !important;top:-7px !important;right:-4px !important; 3932 margin:0 !important;border:2px solid #fff !important;box-sizing:content-box !important;} 3933} 3934/* Desktop: hjärtknappens prick av â menyns prick är desktoppens enda. */ 3935@media (min-width:992px){ .togglemyprograms .lfn-menu-badge{display:none !important;} } 3936</style>
3937<script> 3938(function(){ 3939 document.querySelectorAll('.ubermenu a[href*="/favoriter"], a.togglemyprograms').forEach(function(a){ 3940 if(a.querySelector('.lfn-menu-badge')) return; 3941 a.insertAdjacentHTML('beforeend', ' <span class="lfn-badge-html lfn-menu-badge hidden" aria-label="Nya avsnitt bland dina favoriter">0</span>'); 3942 }); 3943})(); 3944</script>
vendor: 1 bytes, line 3944
3944
3945<script type="speculationrules"> 3946{"prefetch":[{"source":"document","where":{"and":[{"href_matches":"/*"},{"not":{"href_matches":["/wp-*.php","/wp-admin/*","/wp-content/uploads/*","/wp-content/*","/wp-content/plugins/*","/wp-content/themes/KiteTheme/*","/*\\?(.+)"]}},{"not":{"selector_matches":"a[rel~=\"nofollow\"]"}},{"not":{"selector_matches":".no-prefetch, .no-prefetch a"}}]},"eagerness":"conservative"}]} 3947</script>
3947 3948 3949<nav class="mobile-bottom-nav" id="mobileBottomNav" aria-label="Mobilnavigation"> 3950 <a href="https://webb-tv.nu/"> 3951 <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M3 9l9-7 9 7v11a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z"/><polyline points="9 22 9 12 15 12 15 22"/></svg> <span>Hem</span> 3952 </a> 3953 <a href="https://webb-tv.nu/kategorier/"> 3954 <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><rect x="3" y="3" width="7" height="7"/><rect x="14" y="3" width="7" height="7"/><rect x="3" y="14" width="7" height="7"/><rect x="14" y="14" width="7" height="7"/></svg> <span>Kategorier</span> 3955 </a> 3956 <a href="https://webb-tv.nu/nya/"> 3957 <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><polygon points="12 2 15.09 8.26 22 9.27 17 14.14 18.18 21.02 12 17.77 5.82 21.02 7 14.14 2 9.27 8.91 8.26 12 2"/></svg> <span>Nya</span> 3958 </a> 3959 <a href="https://webb-tv.nu/tv-tabla/"> 3960 <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><rect x="3" y="4" width="18" height="18" rx="2" ry="2"/><line x1="16" y1="2" x2="16" y2="6"/><line x1="8" y1="2" x2="8" y2="6"/><line x1="3" y1="10" x2="21" y2="10"/></svg> <span>Tablå</span> 3961 </a> 3962 3963 <a href="https://webb-tv.nu/mobilsok/"> 3964 <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"> 3965 <circle cx="11" cy="11" r="8"/><line x1="21" y1="21" x2="16.65" y2="16.65"/> 3966 </svg> 3967 <span>Sök</span> 3968 </a> 3969</nav> 3970 3971 3972 3973
3973<script id="lfn-config"> 3974 window.lfnConfig = { 3975 ajaxUrl: "https:\/\/webb-tv.nu\/wp-admin\/admin-ajax.php", 3976 nonce: "514231213a" }; 3977 </script>
3977 3978 3979 <style id="lfn-styles"> 3980 .lfn-bell-container{position:relative;display:inline-block;} 3981 .lfn-bell-btn{ 3982 background:transparent !important; 3983 border:none; 3984 cursor:pointer; 3985 padding:10px; 3986 border-radius:10px; 3987 transition:background 0.2s; 3988 position:relative; 3989 /* iOS fixes */ 3990 -webkit-tap-highlight-color: rgba(255,255,255,0.1); 3991 touch-action: manipulation; 3992 } 3993 .lfn-bell-btn:hover{background:rgba(255,255,255,0.1) !important;} 3994 .lfn-bell-icon{width:40px;height:40px;fill:none;background:transparent !important;} 3995 3996 /* HTML Badge - oberoende av ikonstorlek */ 3997 .lfn-badge-html { 3998 position: absolute; 3999 top: 3px; 4000 right: 3px; 4001 background: #dc2626; 4002 color: #fff; 4003 font-size: 11px; 4004 font-weight: 700; 4005 min-width: 20px; 4006 height: 20px; 4007 border-radius: 9px; 4008 display: inline-flex; 4009 align-items: center; 4010 justify-content: center; 4011 padding: 0 4px; 4012 border: 2px solid #fff; 4013 box-shadow: 0 2px 4px rgba(0,0,0,0.2); 4014 pointer-events: none; 4015 transition: opacity 0.2s; 4016 font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif; 4017 /* iOS rendering fixes */ 4018 -webkit-transform: translateZ(0); 4019 transform: translateZ(0); 4020 will-change: contents; 4021 z-index: 100; 4022 } 4023 4024 /* Perfekt cirkel för ental (1-9) */ 4025 .lfn-badge-html[data-count="1"], 4026 .lfn-badge-html[data-count="2"], 4027 .lfn-badge-html[data-count="3"], 4028 .lfn-badge-html[data-count="4"], 4029 .lfn-badge-html[data-count="5"], 4030 .lfn-badge-html[data-count="6"], 4031 .lfn-badge-html[data-count="7"], 4032 .lfn-badge-html[data-count="8"], 4033 .lfn-badge-html[data-count="9"] { 4034 width: 18px; 4035 padding: 0; 4036 } 4037 4038 .lfn-badge-html.hidden { 4039 display: none !important; 4040 } 4041 4042 /* Kompakt variant för #chtop - kraftfull override */ 4043 #chtop .lfn-bell-container, 4044 #chtop span .lfn-bell-container, 4045 #chtop div .lfn-bell-container { 4046 display: inline-block !important; 4047 position: relative !important; 4048 vertical-align: middle !important; 4049 margin: 0 !important; 4050 padding: 0 !important; 4051 height: auto !important; 4052 width: auto !important; 4053 flex: none !important; 4054 } 4055 4056 #chtop .lfn-bell-btn, 4057 #chtop span .lfn-bell-btn, 4058 #chtop div .lfn-bell-btn { 4059 padding: 0 !important; 4060 margin: 0 !important; 4061 border-radius: 0 !important; 4062 background: transparent !important; 4063 width: 32px !important; 4064 height: 32px !important; 4065 position: relative !important; 4066 display: inline-flex !important; 4067 align-items: center !important; 4068 justify-content: center !important; 4069 line-height: 1 !important; 4070 } 4071 4072 /* Ta bort effekten av <br> taggar */ 4073 #chtop .lfn-bell-btn br { 4074 display: none !important; 4075 } 4076 4077 #chtop .lfn-bell-btn:hover { 4078 background: transparent !important; 4079 opacity: 0.7; 4080 } 4081 4082 #chtop .lfn-bell-icon { 4083 width: 28px !important; 4084 height: 28px !important; 4085 display: block !important; 4086 } 4087 4088 /* Badge närmare klockan i #chtop */ 4089 #chtop .lfn-badge-html, 4090 #chtop span .lfn-badge-html, 4091 #chtop div .lfn-badge-html { 4092 top: 0px; 4093 right: 0px; 4094 font-size: 10px; 4095 min-width: 16px; 4096 height: 16px; 4097 border-width: 1.5px; 4098 padding: 0 3px; 4099 } 4100 4101 /* Perfekt cirkel för ental i #chtop */ 4102 #chtop .lfn-badge-html[data-count="1"], 4103 #chtop .lfn-badge-html[data-count="2"], 4104 #chtop .lfn-badge-html[data-count="3"], 4105 #chtop .lfn-badge-html[data-count="4"], 4106 #chtop .lfn-badge-html[data-count="5"], 4107 #chtop .lfn-badge-html[data-count="6"], 4108 #chtop .lfn-badge-html[data-count="7"], 4109 #chtop .lfn-badge-html[data-count="8"], 4110 #chtop .lfn-badge-html[data-count="9"], 4111 #chtop span .lfn-badge-html[data-count="1"], 4112 #chtop span .lfn-badge-html[data-count="2"], 4113 #chtop span .lfn-badge-html[data-count="3"], 4114 #chtop span .lfn-badge-html[data-count="4"], 4115 #chtop span .lfn-badge-html[data-count="5"], 4116 #chtop span .lfn-badge-html[data-count="6"], 4117 #chtop span .lfn-badge-html[data-count="7"], 4118 #chtop span .lfn-badge-html[data-count="8"], 4119 #chtop span .lfn-badge-html[data-count="9"], 4120 #chtop div .lfn-badge-html[data-count="1"], 4121 #chtop div .lfn-badge-html[data-count="2"], 4122 #chtop div .lfn-badge-html[data-count="3"], 4123 #chtop div .lfn-badge-html[data-count="4"], 4124 #chtop div .lfn-badge-html[data-count="5"], 4125 #chtop div .lfn-badge-html[data-count="6"], 4126 #chtop div .lfn-badge-html[data-count="7"], 4127 #chtop div .lfn-badge-html[data-count="8"], 4128 #chtop div .lfn-badge-html[data-count="9"] { 4129 width: 16px; 4130 padding: 0; 4131 } 4132 4133 /* Modal styles */ 4134 .lfn-modal-overlay{ 4135 display:none; 4136 position:fixed; 4137 top:0;left:0;right:0;bottom:0; 4138 background:rgba(0,0,0,0.5); 4139 z-index:999998 !important; 4140 animation:lfnFadeIn 0.2s ease-out; 4141 } 4142 .lfn-modal-overlay.show{display:block;} 4143 4144 .lfn-modal{ 4145 display:none; 4146 position:fixed; 4147 top:8%; 4148 left:50%; 4149 transform:translate(-50%, 0); 4150 background:#fff; 4151 border-radius:12px; 4152 box-shadow:0 20px 60px rgba(0,0,0,0.3); 4153 width:90vw; 4154 max-width:800px; 4155 max-height:85vh; 4156 z-index:999999 !important; 4157 flex-direction:column; 4158 overflow:hidden; 4159 font-family:'Open Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif; 4160 font-weight:500; 4161 } 4162 .lfn-modal.show{display:flex;
4162animation:lfnSlideIn 0.3s ease-out;} 4163 4164 @media (max-width: 768px) { 4165 .lfn-modal{ 4166 top:2%; 4167 transform:translate(-50%, 0); 4168 /* ð´ HÃJDEN Mà STE LÃMNA PLATS à T BOTTENNAVIGERINGEN. 4169 Per 2026-09-11: "bottennavigeringen skymmer lite därnere och 4170 det gÃ¥r inte att dra upp modalen". Orsaken är INTE att listan 4171 saknar rullning â .lfn-list har overflow-y:auto och fungerar. 4172 Orsaken är att modalen blir HÃGRE ÃN DEN SYNLIGA YTAN: pÃ¥ iOS 4173 räknas `vh` mot den STORA vyn (adressfältet dolt), medan 4174 #mobileBottomNav är position:fixed och ligger mot den SYNLIGA. 4175 Med adressfältet uppe hamnar modalens nederkant under bÃ¥de 4176 navigeringen och Safaris verktygsfält, och eftersom rullningen 4177 sker inuti en behÃ¥llare som sträcker sig utanför skärmen gÃ¥r 4178 de sista raderna inte att nÃ¥. 4179 Avdraget är mätt: navigeringen är 55 px hög, modalen börjar 4180 2 % (~13 px) ner. Resten är luft. */ 4181 max-height:calc(90vh - 72px); 4182 width:95vw; 4183 } 4184 .lfn-modal.show{ 4185 animation:lfnSlideInMobile 0.3s ease-out; 4186 } 4187 .lfn-modal-header h3{ 4188 font-size:1.1rem; 4189 } 4190 .lfn-modal-subtitle{ 4191 font-size:0.75rem !important; 4192 } 4193 @keyframes lfnSlideInMobile{from{opacity:0;transform:translate(-50%, -5%);}to{opacity:1;transform:translate(-50%, 0);}} 4194 } 4195 4196 /* Samma tak, men mätt mot den DYNAMISKA vyhöjden där den finns. `dvh` 4197 krymper när Safaris adressfält visas â alltsÃ¥ exakt det mÃ¥tt `vh` 4198 saknar. Regeln ligger efter media-frÃ¥gan ovan och vinner därför pÃ¥ 4199 källordning; `vh`-varianten blir fallback i äldre webbläsare. 4200 𪤠Höjs taket igen: det mÃ¥ste rymmas ovanför #mobileBottomNav (55 px), 4201 annars blir sista raden i listan onÃ¥bar igen. */ 4202 @supports (height: 100dvh) { 4203 @media (max-width: 768px) { 4204 .lfn-modal{ max-height:calc(100dvh - 88px); } 4205 } 4206 } 4207 4208 @keyframes lfnFadeIn{from{opacity:0;}to{opacity:1;}} 4209 @keyframes lfnSlideIn{from{opacity:0;transform:translate(-50%, -2%);}to{opacity:1;transform:translate(-50%, 0);}} 4210 4211 .lfn-modal-header{ 4212 padding:16px 20px; 4213 border-bottom:1px solid #e5e7eb; 4214 } 4215 .lfn-modal-header-content{ 4216 flex:1; 4217 } 4218 .lfn-modal-header h3{ 4219 font-size:1.5rem; 4220 color:#111827; 4221 font-weight:500; 4222 margin:0 0 4px 0; 4223 display:flex; 4224 align-items:center; 4225 gap:8px; 4226 } 4227 .lfn-modal-header h3 a{ 4228 color:#3b82f6; 4229 text-decoration:none; 4230 font-weight:500; 4231 transition:color 0.2s; 4232 } 4233 .lfn-modal-header h3 a:hover{ 4234 color:#2563eb; 4235 text-decoration:underline; 4236 } 4237 .lfn-modal-count{ 4238 background:#3b82f6; 4239 color:#fff; 4240 font-size:0.85rem; 4241 font-weight:500; 4242 min-width:24px; 4243 height:24px; 4244 border-radius:50%; 4245 display:inline-flex; 4246 align-items:center; 4247 justify-content:center; 4248 padding:0 6px; 4249 } 4250 .lfn-modal-subtitle{ 4251 font-size:0.85rem; 4252 color:#6b7280; 4253 margin-top:-5px !important; 4254 font-weight:500; 4255 } 4256 .lfn-modal-subtitle a{ 4257 color:#3b82f6; 4258 text-decoration:none; 4259 font-weight:500; 4260 transition:color 0.2s; 4261 } 4262 .lfn-modal-subtitle a:hover{ 4263 color:#2563eb; 4264 text-decoration:underline; 4265 } 4266 .lfn-close{ 4267 background:transparent; 4268 border:none; 4269 cursor:pointer; 4270 padding:6px; 4271 color:#6b7280; 4272 border-radius:6px; 4273 transition:all 0.2s; 4274 position:absolute; 4275 top:12px; 4276 right:20px; 4277 z-index:10; 4278 } 4279 .lfn-close:hover{ 4280 background:#f3f4f6; 4281 color:#111827; 4282 } 4283 .lfn-close svg{ 4284 width:24px; 4285 height:24px; 4286 } 4287 4288 .lfn-modal-body{ 4289 flex:1; 4290 overflow:hidden; 4291 display:flex; 4292 flex-direction:column; 4293 background:#fff; 4294 } 4295 4296 .lfn-list{ 4297 flex:1; 4298 overflow-y:auto; 4299 padding:8px; 4300 min-height:0; 4301 position:relative; 4302 } 4303 4304 .lfn-item{ 4305 padding:12px 16px; 4306 background:#fafafa; 4307 border-radius:8px; 4308 border:1px solid transparent; 4309 transition:all 0.2s; 4310 position:relative; 4311 margin-bottom:8px; 4312 cursor:pointer; 4313 display:flex; 4314 align-items:center; 4315 gap:10px; 4316 } 4317 .lfn-item:hover{ 4318 background:#fff; 4319 border-color:#93c5fd; 4320 box-shadow:0 1px 3px rgba(59,130,246,0.06); 4321 } 4322 .lfn-item:last-child{ 4323 margin-bottom:70px; 4324 } 4325 .lfn-item.lfn-fade-out{ 4326 opacity:0; 4327 transform:translateX(-10px); 4328 transition:all 0.3s ease-out; 4329 } 4330 4331 /* Badges i övre högra hörnet */ 4332 .lfn-badge{ 4333 position:absolute; 4334 top:12px; 4335 right:12px; 4336 color:#fff; 4337 font-weight:600; 4338 padding:3px 8px; 4339 border-radius:4px; 4340 font-size:0.65rem; 4341 letter-spacing:0.2px; 4342 box-shadow:0 2px 4px rgba(0,0,0,0.2); 4343 white-space:nowrap; 4344 z-index:2; 4345 min-width:80px; 4346 text-align:center; 4347 } 4348 /* HUSETS FÃRGER (2026-09-14). Nytt program lÃ¥g pÃ¥ en blÃ¥ som ligger nära
4349 Tillbaka-blÃ¥et pÃ¥ systerytan (Personlig tablÃ¥), och Nytt avsnitt var 4350 grön â samma gröna som "Ny idag" bär, sÃ¥ de gick bara att skilja pÃ¥ 4351 texten. Nu: grönt = "nytt hos oss", teal = nytt avsnitt, precis som pÃ¥ 4352 de sju andra ytorna. */ 4353 .badge-new-program{ 4354 background:rgba(42,193,92,0.9); 4355 } 4356 .badge-new-episode{ 4357 background:rgba(25,120,105,0.95); 4358 } 4359 .badge-expiring{ 4360 background:rgba(217,119,6,0.95); 4361 } 4362 4363 .lfn-seen-checkbox{ 4364 position:absolute; 4365 top:42px; 4366 right:12px; 4367 display:flex; 4368 align-items:center; 4369 gap:6px; 4370 font-size:0.7rem; 4371 color:#4b5563; 4372 cursor:pointer; 4373 user-select:none; 4374 padding:3px 6px; 4375 border-radius:4px; 4376 transition:all 0.2s; 4377 font-weight:500; 4378 z-index:3; 4379 } 4380 .lfn-seen-checkbox:hover{ 4381 background:#f3f4f6; 4382 color:#111827; 4383 } 4384 .lfn-seen-checkbox input[type="checkbox"]{ 4385 cursor:pointer; 4386 width:13px; 4387 height:13px; 4388 } 4389 4390 .lfn-logo{ 4391 width:26px !important; 4392 height:26px !important; 4393 max-width:26px !important; 4394 max-height:26px !important; 4395 object-fit:contain; 4396 flex-shrink:0; 4397 } 4398 .lfn-logo-fallback{ 4399 padding:6px 10px; 4400 background:#e5e7eb; 4401 border-radius:0.25rem; 4402 font-size:0.6875rem; 4403 color:#6b7280; 4404 font-weight:600; 4405 flex-shrink:0; 4406 text-transform:uppercase; 4407 letter-spacing:0.025em; 4408 } 4409 4410 .lfn-item-content{ 4411 flex:1; 4412 min-width:0; 4413 padding-right:90px; 4414 } 4415 4416 .lfn-item-title{ 4417 font-weight:600; 4418 color:#111827; 4419 font-size:0.9rem; 4420 margin-bottom:4px; 4421 line-height:1.4; 4422 } 4423 .lfn-item-subtitle{ 4424 font-size:0.85rem; 4425 color:#111827; 4426 margin-bottom:3px; 4427 font-weight:500; 4428 } 4429 .lfn-item-meta{ 4430 font-size:0.75rem; 4431 color:#4b5563; 4432 margin-top:3px; 4433 font-weight:500; 4434 } 4435 4436 .lfn-empty{ 4437 padding:60px 20px; 4438 text-align:center; 4439 color:#6b7280; 4440 font-size:0.9rem; 4441 font-weight:500; 4442 } 4443 .lfn-empty-icon{ 4444 width:48px; 4445 height:48px; 4446 stroke:#d1d5db; 4447 stroke-width:1.5; 4448 margin:0 auto 12px; 4449 } 4450 4451 .lfn-loading{ 4452 padding:60px 20px; 4453 text-align:center; 4454 color:#6b7280; 4455 font-weight:500; 4456 } 4457 .lfn-spinner{ 4458 width:36px; 4459 height:36px; 4460 border:3px solid #e5e7eb; 4461 border-top-color:#3b82f6; 4462 border-radius:50%; 4463 animation:lfnSpin 0.8s linear infinite; 4464 margin:0 auto 12px; 4465 } 4466 @keyframes lfnSpin{to{transform:rotate(360deg);}} 4467 4468 /* First-visit tooltip - positioned to the LEFT of bell (temp) */ 4469 .lfn-tooltip { 4470 position: absolute; 4471 right: calc(100% + 10px); 4472 top: 50%; 4473 transform: translateY(-50%); 4474 background: #1f2937; 4475 color: #fff; 4476 padding: 8px 12px; 4477 border-radius: 6px; 4478 font-size: 12px; 4479 white-space: nowrap; 4480 box-shadow: 0 4px 12px rgba(0,0,0,0.3); 4481 z-index: 999999; 4482 animation: lfnTooltipSlide 0.5s ease-out; 4483 } 4484 .lfn-tooltip::before { 4485 content: ''; 4486 position: absolute; 4487 top: 50%; 4488 left: 100%; 4489 transform: translateY(-50%); 4490 border: 6px solid transparent; 4491 border-left-color: #1f2937; 4492 border-right: 0; 4493 } 4494 .lfn-tooltip-close { 4495 margin-left: 8px; 4496 cursor: pointer; 4497 opacity: 0.7; 4498 } 4499 .lfn-tooltip-close:hover { opacity: 1; } 4500 @keyframes lfnTooltipSlide { 4501 0% { opacity: 0; transform: translateY(-50%) translateX(-10px); } 4502 100% { opacity: 1; transform: translateY(-50%) translateX(0); } 4503 } 4504 4505 @media(max-width:600px){ 4506 .lfn-bell-icon{width:31px !important;height:31px !important;} 4507 .lfn-modal-header{padding:12px 16px !important;} 4508 .lfn-close{padding:4px !important;} 4509 .lfn-close svg{width:22px !important;height:22px !important;} 4510 .lfn-list{padding:6px;} 4511 .lfn-item{padding:10px 12px !important;margin-bottom:6px;gap:8px;} 4512 .lfn-item-content{padding-right:88px;} 4513 .lfn-item-title{font-size:0.875rem !important;margin-bottom:3px !important;} 4514 .lfn-item-subtitle{font-size:0.8rem !important;margin-bottom:2px !important;} 4515 .lfn-item-meta{font-size:0.7rem !important;margin-top:2px !important;} 4516 .lfn-logo{width:23px !important;height:23px !important;} 4517 .lfn-badge{top:10px !important;right:10px !important;font-size:0.6rem !important;padding:2px 6px !important;min-width:70px;} 4518 .lfn-seen-checkbox{top:38px !important;right:10px !important;font-size:0.65rem !important;padding:2px 5px !important;} 4519 .lfn-empty{padding:40px 16px !important;font-size:0.85rem !important;} 4520 .lfn-loading{padding:40px 16px !important;} 4521 /* Mobile: hide tooltip completely */ 4522 .lfn-tooltip { display: none !important; } 4523 } 4524 </style> 4525 4526
4526<script id="lfn-script"> 4527 (function(){ 4528 'use strict'; 4529 4530 if(window.lfnBooted) return; 4531 window.lfnBooted = true; 4532 4533 console.log('ð Episode Notifications v3.3.0: Tooltip + GA4 Tracking'); 4534 4535 const KEY_FAV = 'wpfp_favorites'; 4536 const KEY_VISIT = 'lfn_last_visit'; 4537 const KEY_SEEN = 'lfn_seen'; 4538 4539 // iOS-safe localStorage wrapper 4540 function safeGetItem(key) { 4541 try { 4542 return localStorage.getItem(key); 4543 } catch(e) { 4544 console.warn('ð localStorage unavailable, using sessionStorage'); 4545 return sessionStorage.getItem(key) || null; 4546 } 4547 } 4548 4549 function safeSetItem(key, value) { 4550 try { 4551 localStorage.setItem(key, value); 4552 } catch(e) { 4553 console.warn('ð localStorage unavailable, using sessionStorage'); 4554 sessionStorage.setItem(key, value); 4555 } 4556 } 4557 4558 function getFavorites(){ 4559 try{ 4560 const raw = safeGetItem(KEY_FAV); 4561 if (!raw) return []; 4562 4563 const arr = JSON.parse(raw); 4564 if (!Array.isArray(arr)) return []; 4565 4566 return arr.map(v => parseInt(v, 10)).filter(n => !isNaN(n) && n > 0); 4567 }catch(e){ 4568 console.error('LFN: Error reading favorites', e); 4569 return []; 4570 } 4571 } 4572 4573 // â ï¸ Texten lovar inget heltäckande: vi ser programmets utgÃ¥ngsdatum, inte 4574 // enskilda avsnitts. För serier där avsnitt utgÃ¥r ett i taget saknas data. 4575 function formatUtgar(dagarKvar){ 4576 // dagarKvar = dagar kvar att SE (utgar â 1), inte dagar till nedtagning. 4577 if (dagarKvar <= 0) return 'Sista dagen i dag'; 4578 if (dagarKvar === 1) return 'Sista dagen i morgon'; 4579 var d = new Date(); d.setHours(0,0,0,0); d.setDate(d.getDate() + dagarKvar); 4580 return 'Sista dagen pÃ¥ ' + ['söndag','mÃ¥ndag','tisdag','onsdag','torsdag','fredag','lördag'][d.getDay()]; 4581 } 4582 4583 function getSeenItems(){ 4584 try{ 4585 const raw = safeGetItem(KEY_SEEN); 4586 if (!raw) return {}; 4587 return JSON.parse(raw); 4588 }catch(e){ 4589 console.error('LFN: Error reading seen items', e); 4590 return {}; 4591 } 4592 } 4593 4594 function markAsSeen(pdbnr, latestDate){ 4595 try{ 4596 const seen = getSeenItems(); 4597 seen[pdbnr] = latestDate; 4598 safeSetItem(KEY_SEEN, JSON.stringify(seen)); 4599 console.log('ð Marked as seen:', pdbnr, latestDate); 4600 }catch(e){ 4601 console.error('LFN: Error saving seen status', e); 4602 } 4603 } 4604 4605 function isItemSeen(pdbnr, latestDate){ 4606 const seen = getSeenItems(); 4607 if (!seen[pdbnr]) return false; 4608 return seen[pdbnr] >= latestDate; 4609 } 4610 4611 function getLastVisit(){ 4612 try{ 4613 return safeGetItem(KEY_VISIT) || null; 4614 }catch(e){ 4615 return null; 4616 } 4617 } 4618 4619 function setLastVisit(date){ 4620 try{ 4621 safeSetItem(KEY_VISIT, date); 4622 console.log('ð Last visit set to:', date); 4623 }catch(e){ 4624 console.error('LFN: Error setting last visit', e); 4625 } 4626 } 4627 4628 function updateBadge(total){ 4629 const badgeHtml = document.querySelectorAll('.lfn-badge-html'); 4630 const modalCount = document.querySelector('.lfn-modal-count'); 4631 4632 console.log('ð Badge update - Total:', total); 4633 4634 badgeHtml.forEach(badge => { 4635 badge.textContent = total; 4636 badge.setAttribute('data-count', total); 4637 badge.classList.toggle('hidden', total === 0); 4638 }); 4639 4640 if (modalCount) { 4641 modalCount.textContent = total; 4642 } 4643 } 4644 4645 function createItem(item){ 4646 const div = document.createElement('div'); 4647 div.className = 'lfn-item'; 4648 div.dataset.pdbnr = item.pdbnr; 4649 4650 // Badge för typ 4651 const badge = document.createElement('span'); 4652 badge.className = 'lfn-badge ' + (item.isExpiring ? 'badge-expiring' 4653 : (item.isNewProgram ? 'badge-new-program' : 'badge-new-episode')); 4654 if (item.isExpiring) { 4655 // Samma klocka som startsidans Sista chansen-rubrik (Per
4655s val 9/9). 4656 badge.innerHTML = '<svg width=\"11\" height=\"11\" viewBox=\"0 0 24 24\" fill=\"none\" ' 4657 + 'stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" ' 4658 + 'stroke-linejoin=\"round\" aria-hidden=\"true\" style=\"vertical-align:-1px;margin-right:3px\">' 4659 + '<circle cx=\"12\" cy=\"12\" r=\"10\"></circle>' 4660 + '<polyline points=\"12 6 12 12 16 14\"></polyline></svg>Går ut'; 4661 } else { 4662 badge.textContent = item.isNewProgram ? 'Nytt program' : 'Nytt avsnitt'; 4663 } 4664 div.appendChild(badge); 4665 4666 // Checkbox "Redan sett" 4667 const seenLabel = document.createElement('label'); 4668 seenLabel.className = 'lfn-seen-checkbox'; 4669 seenLabel.innerHTML = '<input type="checkbox"> Sett'; 4670 4671 const checkbox = seenLabel.querySelector('input'); 4672 checkbox.addEventListener('change', function(e){ 4673 e.stopPropagation(); 4674 if (this.checked) { 4675 div.classList.add('lfn-fade-out'); 4676 markAsSeen(item.seenKey || item.pdbnr, item.latestDate); 4677 4678 setTimeout(() => { 4679 div.remove(); 4680 updateModalCounts(); 4681 }, 300); 4682 } 4683 }); 4684 div.appendChild(seenLabel); 4685 4686 // Logo till vänster 4687 if (item.logo_url) { 4688 const logo = document.createElement('img'); 4689 logo.src = item.logo_url; 4690 logo.width = 26; 4691 logo.height = 26; 4692 logo.alt = item.playnamn; 4693 logo.className = 'lfn-logo'; 4694 logo.title = item.playnamn; 4695 div.appendChild(logo); 4696 } else { 4697 const logoFallback = document.createElement('div'); 4698 logoFallback.className = 'lfn-logo-fallback'; 4699 logoFallback.textContent = item.playnamn; 4700 div.appendChild(logoFallback); 4701 } 4702 4703 // Content i mitten 4704 const content = document.createElement('div'); 4705 content.className = 'lfn-item-content'; 4706 4707 const title = document.createElement('div'); 4708 title.className = 'lfn-item-title'; 4709 title.textContent = item.namn; 4710 content.appendChild(title); 4711 4712 const subtitle = document.createElement('div'); 4713 subtitle.className = 'lfn-item-subtitle'; 4714 if (item.isNewProgram) { 4715 subtitle.textContent = 'Ny på ' + item.playnamn; 4716 } else { 4717 const avsnittText = item.count === 1 ? 'nytt avsnitt' : 'nya avsnitt'; 4718 subtitle.textContent = item.count + ' ' + avsnittText + ' på ' + item.playnamn; 4719 } 4720 content.appendChild(subtitle); 4721 4722 const meta = document.createElement('div'); 4723 meta.className = 'lfn-item-meta'; 4724 meta.textContent = item.dateText; 4725 content.appendChild(meta); 4726 4727 div.appendChild(content); 4728 4729 // Klick på hela item navigerar 4730 div.addEventListener('click', function(e){ 4731 if (e.target !== checkbox && !e.target.closest('.lfn-seen-checkbox')) { 4732 window.location.href = item.url; 4733 } 4734 }); 4735 4736 return div; 4737 } 4738 4739 function formatDates(dates, airtime) { 4740 if (!dates || dates.length === 0) return ''; 4741 4742 const today = new Date().toISOString().split('T')[0]; 4743 const yesterday = new Date(Date.now() - 86400000).toISOString().split('T')[0]; 4744 4745 if (dates.length === 1) { 4746 const d = dates[0]; 4747 if (d === today) { 4748 if (airtime && airtime.toString().length >= 3) { 4749 const timeStr = airtime.toString().padStart(4, '0'); 4750 const hours = timeStr.substring(0, 2); 4751 const minutes = timeStr.substring(2, 4); 4752 return 'Sänds idag kl ' + hours + '.' + minutes; 4753 } 4754 return 'Släppt idag'; 4755 } 4756 if (d === yesterday) return 'Släppt igår'; 4757 return 'Släppt ' + formatDateWithWeekday(d); 4758 } 4759 4760 if (dates.length <= 3) { 4761 return dates.map(d => { 4762 if (d === today) return 'idag'; 4763 if (d === yesterday) return 'igår'; 4764 return formatShortDate(d); 4765 }).join(', '); 4766 } 4767 4768 const first = dates[0]; 4769 const last = dates[dates.length - 1]; 4770 return formatShortDate(last) + ' - ' + formatShortDate(first); 4771 } 4772 4773 function formatInldatum(inldatum, airtime) { 4774 if (!inldatum) return ''; 4775 4776 const today = new Date().toISOString().split('T')[0]; 4777 const yesterday = new Date(Date.now() - 86400000).toISOString().split('T')[0]; 4778 4779 if (inldatum === today) { 4780 if (airtime && airtime.toString().length >= 3) { 4781 const timeStr = airtime.toString().padStart(4, '0'); 4782 const hours = timeStr.substring(0, 2); 4783 const minutes = timeStr.substring(2, 4); 4784 return 'Sänds idag kl ' + hours + '.' + minutes; 4785 } 4786 return 'Inlagd idag'; 4787 } 4788 if (inldatum === yesterday) return 'Inlagd igår'; 4789 return 'Inlagd ' + formatDateWithWeekday(inldatum); 4790 } 4791 4792 function formatShortDate(dateStr) { 4793 if (!dateStr) return ''; 4794 const [y, m, d] = dateStr.split('-'); 4795 return parseInt(d) + '/' + parseInt(m); 4796 } 4797
4798 function getSwedishWeekday(dateStr) { 4799 if (!dateStr) return ''; 4800 const weekdays = ['söndag', 'mÃ¥ndag', 'tisdag', 'onsdag', 'torsdag', 'fredag', 'lördag']; 4801 const date = new Date(dateStr + 'T12:00:00'); 4802 return weekdays[date.getDay()]; 4803 } 4804 4805 function formatDateWithWeekday(dateStr) { 4806 if (!dateStr) return ''; 4807 const weekday = getSwedishWeekday(dateStr); 4808 const shortDate = formatShortDate(dateStr); 4809 return weekday + ' ' + shortDate; 4810 } 4811 4812 function updateModalCounts(){ 4813 const list = document.querySelector('.lfn-list'); 4814 const totalCount = list.querySelectorAll('.lfn-item:not(.lfn-fade-out)').length; 4815 4816 updateBadge(totalCount); 4817 4818 if (totalCount === 0 && list.querySelector('.lfn-item')) { 4819 setTimeout(() => { 4820 if (list.querySelectorAll('.lfn-item').length === 0) { 4821 list.innerHTML = '<div class="lfn-empty">Inga nya program eller avsnitt den senaste veckan</div>'; 4822 } 4823 }, 350); 4824 } 4825 } 4826 4827 function renderModal(data){ 4828 try { 4829 const modal = document.querySelector('.lfn-modal'); 4830 const overlay = document.querySelector('.lfn-modal-overlay'); 4831 const list = document.querySelector('.lfn-list'); 4832 4833 if (!modal || !overlay || !list) { 4834 console.error('ð Modal elements not found'); 4835 return; 4836 } 4837 4838 // Om användaren inte har nÃ¥gra favoriter 4839 if (data.noFavorites) { 4840 updateBadge(0); 4841 4842 const helpMessage = '<div class="lfn-empty">' + 4843 '<svg class="lfn-empty-icon" viewBox="0 0 24 24" fill="none" stroke="currentColor">' + 4844 '<path d="M20.84 4.61a5.5 5.5 0 0 0-7.78 0L12 5.67l-1.06-1.06a5.5 5.5 0 0 0-7.78 7.78l1.06 1.06L12 21.23l7.78-7.78 1.06-1.06a5.5 5.5 0 0 0 0-7.78z"></path>' + 4845 '</svg>' + 4846 '<div style="font-weight:600;font-size:1rem;color:#111827;margin-bottom:12px;">Lägg till favoriter för att fÃ¥ notifikationer</div>' + 4847 '<div style="color:#374151;margin-bottom:12px;">GÃ¥ till valfritt program och klicka pÃ¥ hjärtat för att lägga till det under "Mina favoriter".</div>' + 4848 '<div style="color:#374151;">Kommande program att lägga till hittar du här: <a href="https://webb-tv.nu/kommande-program" style="color:#3b82f6;text-decoration:none;font-weight:500;transition:color 0.2s;" onmouseover="this.style.color=\'#2563eb\';this.style.textDecoration=\'underline\'" onmouseout="this.style.color=\'#3b82f6\';this.style.textDecoration=\'none\'">Kommande program</a></div>' + 4849 '</div>'; 4850 4851 list.innerHTML = helpMessage; 4852 4853 // iOS-compatible scroll lock 4854 const scrollY = window.scrollY; 4855 document.body.style.position = 'fixed'; 4856 document.body.style.top = `-${scrollY}px`; 4857 document.body.style.width = '100%'; 4858 document.body.dataset.scrollY = scrollY; 4859 4860 // Sänk z-index pÃ¥ alla element som kan ligga över modalen 4861 const elementsToLower = [ 4862 { selector: '#ubermenu-main-71', name: 'UberMenu Wrapper' }, 4863 { selector: '#ubermenu-nav-main-71', name: 'Menu' }, 4864 { selector: 'header.main', name: 'Header' }, 4865 { selector: 'header', name: 'Header (generic)' }, 4866 { selector: '.asp_w', name: 'Ajax Search Pro' }, 4867 { selector: '#chtop', name: 'CHTop' } 4868 ]; 4869 4870 elementsToLower.forEach(item => { 4871 const elements = document.querySelectorAll(item.selector);
4872 elements.forEach(el => { 4873 el.dataset.originalZIndex = window.getComputedStyle(el).zIndex; 4874 el.style.zIndex = '1'; 4875 4876 // För header-element, lägg även till position och top 4877 if (item.selector === 'header.main' || item.selector === 'header') { 4878 el.dataset.originalPosition = window.getComputedStyle(el).position; 4879 el.dataset.originalTop = window.getComputedStyle(el).top; 4880 el.style.position = 'relative'; 4881 el.style.top = '-76px'; 4882 console.log('ð Adjusted header position:', item.name); 4883 } else { 4884 console.log('ð Lowered z-index for:', item.name); 4885 } 4886 4887 // Sänk även alla barn till detta element 4888 const children = el.querySelectorAll('*'); 4889 children.forEach(child => { 4890 const childZ = window.getComputedStyle(child).zIndex; 4891 if (childZ !== 'auto' && parseInt(childZ) >= 1) { 4892 child.dataset.lfnOriginalZIndex = childZ; 4893 child.style.zIndex = '1'; 4894 } 4895 }); 4896 }); 4897 }); 4898 4899 // Hitta och sänk alla element med z-index > 100000 (utom modal/overlay) 4900 const allElements = document.querySelectorAll('*'); 4901 allElements.forEach(el => { 4902 if (el.classList.contains('lfn-modal') || el.classList.contains('lfn-modal-overlay')) { 4903 return; 4904 } 4905 4906 const zIndex = window.getComputedStyle(el).zIndex; 4907 if (zIndex !== 'auto' && parseInt(zIndex) > 100000) { 4908 el.dataset.lfnOriginalZIndex = zIndex; 4909 el.style.zIndex = '100000'; 4910 console.log('ð Lowered high z-index element:', el.className || el.tagName); 4911 } 4912 }); 4913 4914 overlay.classList.add('show'); 4915 modal.classList.add('show'); 4916 return; 4917 } 4918 4919 // Kombinera nya program och avsnitt i en array 4920 const allItems = []; 4921 4922 // Lägg till nya program 4923 (data.newPrograms || []).forEach(prog => { 4924 if (!isItemSeen(prog.pdbnr, prog.inldatum)) { 4925 allItems.push({ 4926 pdbnr: prog.pdbnr, 4927 namn: prog.namn, 4928 url: prog.url, 4929 playnamn: prog.playnamn, 4930 logo_url: prog.logo_url || '', 4931 latestDate: prog.inldatum, 4932 sortDate: prog.inldatum, 4933 airtime: prog.airtime || '', 4934 dateText: formatInldatum(prog.inldatum, prog.airtime), 4935 isNewProgram: true, 4936 count: 1 4937 }); 4938 } 4939 }); 4940 4941 // Lägg till nya avsnitt 4942 (data.newEpisodes || []).forEach(ep => { 4943 const latestDate = ep.dates && ep.dates.length > 0 ? ep.dates[0] : ''; 4944 if (!isItemSeen(ep.pdbnr, latestDate)) { 4945 allItems.push({ 4946 pdbnr: ep.pdbnr, 4947 namn: ep.namn, 4948 url: ep.url, 4949 playnamn: ep.playnamn, 4950 logo_url: ep.logo_url || '', 4951 latestDate: latestDate, 4952 sortDate: latestDate, 4953 airtime: ep.airtime || '', 4954 dateText: formatDates(ep.dates, ep.airtime), 4955 isNewProgram: false, 4956 count: ep.count 4957 }); 4958 } 4959 }); 4960 4961 // Program pÃ¥ väg att gÃ¥ ut (steg 1, Per 8/9). 4962 // ð´ EGEN SETT-NYCKEL. Sett-minnet är seen[pdbnr] = datum, alltsÃ¥ EN 4963 // nyckel per program. Utan prefix skulle ett bortklickat 'gÃ¥r ut'
4964 // kunna dölja en nyare avsnittsnotis för samma program. Nyckeln är 4965 // (pdbnr, utgar) â en förlängning ger nytt datum och väcker 4966 // varningen igen, precis som textsvepets godkännanden. 4967 (data.expiring || []).forEach(ex => { 4968 const seenKey = 'exp_' + ex.pdbnr; 4969 if (!isItemSeen(seenKey, ex.utgar)) { 4970 allItems.push({ 4971 pdbnr: ex.pdbnr, 4972 seenKey: seenKey, 4973 namn: ex.namn, 4974 url: ex.url, 4975 playnamn: ex.playnamn, 4976 logo_url: ex.logo_url || '', 4977 latestDate: ex.utgar, 4978 sortDate: ex.utgar, 4979 airtime: ex.airtime || '', 4980 dateText: formatUtgar(ex.dagar_kvar), 4981 isExpiring: true, 4982 dagarKvar: ex.dagar_kvar, 4983 count: 1 4984 }); 4985 } 4986 }); 4987 4988 // Sortera allt efter datum (nyast först), sedan efter airtime. 4989 // UtgÃ¥ngsvarningar gÃ¥r först â de har en deadline, resten är nyheter. 4990 allItems.sort((a, b) => { 4991 if (!!a.isExpiring !== !!b.isExpiring) return a.isExpiring ? -1 : 1; 4992 if (a.isExpiring && b.isExpiring) return a.dagarKvar - b.dagarKvar; 4993 const dateCompare = b.sortDate.localeCompare(a.sortDate); 4994 if (dateCompare !== 0) return dateCompare; 4995 4996 const airtimeA = a.airtime && parseInt(a.airtime) > 9 ? parseInt(a.airtime) : 0; 4997 const airtimeB = b.airtime && parseInt(b.airtime) > 9 ? parseInt(b.airtime) : 0; 4998 4999 return airtimeA - airtimeB; 5000 }); 5001 5002 // Uppdatera badge 5003 updateBadge(allItems.length); 5004 5005 // Rendera listan 5006 list.innerHTML = ''; 5007 if (allItems.length > 0) { 5008 allItems.forEach(item => { 5009 list.appendChild(createItem(item)); 5010 }); 5011 } else { 5012 list.innerHTML = '<div class="lfn-empty">' + 5013 '<svg class="lfn-empty-icon" viewBox="0 0 24 24" fill="none" stroke="currentColor">' + 5014 '<path stroke-linecap="round" stroke-linejoin="round" d="M9 12l2 2 4-4m6 2a9 9 0 11-18 0 9 9 0 0118 0z"/>' + 5015 '</svg>' + 5016 '<div style="font-weight:600;font-size:1rem;color:#111827;margin-bottom:8px;">Du är uppdaterad!</div>' + 5017 '<div style="color:#6b7280;margin-bottom:12px;">Inga nya avsnitt frÃ¥n dina favoriter den senaste veckan.</div>' + 5018 '<div style="color:#374151;">Hitta fler program att följa: <a href="https://webb-tv.nu/kommande-program" style="color:#3b82f6;text-decoration:none;font-weight:500;transition:color 0.2s;" onmouseover="this.style.color=\'#2563eb\';this.style.textDecoration=\'underline\'" onmouseout="this.style.color=\'#3b82f6\';this.style.textDecoration=\'none\'">Kommande program</a></div>' + 5019 '</div>'; 5020 } 5021 5022 // iOS-compatible scroll lock 5023 const scrollY = window.scrollY; 5024 document.body.style.position = 'fixed'; 5025 document.body.style.top = `-${scrollY}px`; 5026 document.body.style.width = '100%'; 5027 document.body.dataset.scrollY = scrollY; 5028 5029 // Sänk z-index pÃ¥ alla element som kan ligga över modalen 5030 const elementsToLower = [ 5031 { selector: '#ubermenu-main-71', name: 'UberMenu Wrapper' }, 5032 { selector: '#ubermenu-nav-main-71', name: 'Menu' }, 5033 { selector: 'header.main', name: 'Header' }, 5034 { selector: 'header', name: 'Header (generic)' }, 5035 { selector: '.asp_w', name: 'Ajax Search Pro' }, 5036 { selector: '#chtop', name: 'CHTop' } 5037 ]; 5038 5039 elementsToLower.forEach(item => { 5040 const elements = document.querySelectorAll(item.selector);
5041 elements.forEach(el => { 5042 el.dataset.originalZIndex = window.getComputedStyle(el).zIndex; 5043 el.style.zIndex = '1'; 5044 5045 // För header-element, lägg även till position och top 5046 if (item.selector === 'header.main' || item.selector === 'header') { 5047 el.dataset.originalPosition = window.getComputedStyle(el).position; 5048 el.dataset.originalTop = window.getComputedStyle(el).top; 5049 el.style.position = 'relative'; 5050 el.style.top = '-76px'; 5051 console.log('ð Adjusted header position:', item.name); 5052 } else { 5053 console.log('ð Lowered z-index for:', item.name); 5054 } 5055 5056 // Sänk även alla barn till detta element 5057 const children = el.querySelectorAll('*'); 5058 children.forEach(child => { 5059 const childZ = window.getComputedStyle(child).zIndex; 5060 if (childZ !== 'auto' && parseInt(childZ) >= 1) { 5061 child.dataset.lfnOriginalZIndex = childZ; 5062 child.style.zIndex = '1'; 5063 } 5064 }); 5065 }); 5066 }); 5067 5068 // Hitta och sänk alla element med z-index > 100000 (utom modal/overlay) 5069 const allElements = document.querySelectorAll('*'); 5070 allElements.forEach(el => { 5071 if (el.classList.contains('lfn-modal') || el.classList.contains('lfn-modal-overlay')) { 5072 return; 5073 } 5074 5075 const zIndex = window.getComputedStyle(el).zIndex; 5076 if (zIndex !== 'auto' && parseInt(zIndex) > 100000) { 5077 el.dataset.lfnOriginalZIndex = zIndex; 5078 el.style.zIndex = '100000'; 5079 console.log('ð Lowered high z-index element:', el.className || el.tagName); 5080 } 5081 }); 5082 5083 // Visa modal 5084 overlay.classList.add('show'); 5085 modal.classList.add('show'); 5086 5087 } catch(error) { 5088 console.error('ð Error in renderModal:', error); 5089 const scrollY = document.body.dataset.scrollY || '0'; 5090 document.body.style.position = ''; 5091 document.body.style.top = ''; 5092 document.body.style.width = ''; 5093 window.scrollTo(0, parseInt(scrollY)); 5094 delete document.body.dataset.scrollY; 5095 } 5096 } 5097 5098 function closeModal(){ 5099 const modal = document.querySelector('.lfn-modal'); 5100 const overlay = document.querySelector('.lfn-modal-overlay'); 5101 5102 if (overlay) overlay.classList.remove('show'); 5103 if (modal) modal.classList.remove('show'); 5104 5105 // à terställ z-index, position och top pÃ¥ kända element 5106 const selectors = [ 5107 '#ubermenu-main-71', 5108 '#ubermenu-nav-main-71', 5109 'header.main', 5110 'header', 5111 '.asp_w', 5112 '#chtop' 5113 ]; 5114 5115 selectors.forEach(selector => { 5116 const elements = document.querySelectorAll(selector); 5117 elements.forEach(el => { 5118 if (el.dataset.originalZIndex !== undefined) { 5119 el.style.removeProperty('z-index'); 5120 delete el.dataset.originalZIndex; 5121 } 5122 if (el.dataset.originalPosition !== undefined) { 5123 el.style.removeProperty('position'); 5124 delete el.dataset.originalPosition; 5125 } 5126 if (el.dataset.originalTop !== undefined) { 5127 el.style.removeProperty('top'); 5128 delete el.dataset.originalTop; 5129 } 5130 }); 5131 }); 5132 5133 // à terställ alla element med lfnOriginalZIndex 5134 const allElements = document.querySelectorAll('*');
5135 allElements.forEach(el => { 5136 if (el.dataset.lfnOriginalZIndex !== undefined) { 5137 el.style.removeProperty('z-index'); 5138 delete el.dataset.lfnOriginalZIndex; 5139 } 5140 }); 5141 5142 console.log('ð All z-index and position restored'); 5143 5144 // iOS-compatible scroll restore 5145 const scrollY = document.body.dataset.scrollY || '0'; 5146 document.body.style.position = ''; 5147 document.body.style.top = ''; 5148 document.body.style.width = ''; 5149 window.scrollTo(0, parseInt(scrollY)); 5150 delete document.body.dataset.scrollY; 5151 } 5152 5153 function loadNotifications(){ 5154 const favs = getFavorites(); 5155 const since = getLastVisit(); 5156 5157 console.log('ð Loading notifications for', favs.length, 'favorites'); 5158 5159 if (favs.length === 0) { 5160 updateBadge(0); 5161 5162 window.lfnData = { 5163 newPrograms: [], 5164 newEpisodes: [], 5165 noFavorites: true 5166 }; 5167 return; 5168 } 5169 5170 fetch(window.lfnConfig.ajaxUrl, { 5171 method: 'POST', 5172 headers: {'Content-Type': 'application/x-www-form-urlencoded'}, 5173 body: new URLSearchParams({ 5174 action: 'lfn_check_new', 5175 nonce: window.lfnConfig.nonce, 5176 ids: JSON.stringify(favs), 5177 since: since || '' 5178 }) 5179 }) 5180 .then(r => r.json()) 5181 .then(resp => { 5182 if (!resp.success) { 5183 console.error('LFN: API error', resp); 5184 updateBadge(0); 5185 return; 5186 } 5187 5188 const data = resp.data; 5189 5190 const unseenPrograms = (data.newPrograms || []).filter(prog => { 5191 return !isItemSeen(prog.pdbnr, prog.inldatum); 5192 }); 5193 5194 const unseenEpisodes = (data.newEpisodes || []).filter(ep => { 5195 const latestDate = ep.dates && ep.dates.length > 0 ? ep.dates[0] : ''; 5196 return !isItemSeen(ep.pdbnr, latestDate); 5197 }); 5198 5199 const totalCount = unseenPrograms.length + unseenEpisodes.length; 5200 5201 console.log('ð Loaded:', totalCount, 'unseen items'); 5202 5203 updateBadge(totalCount); 5204 5205 window.lfnData = data; 5206 }) 5207 .catch(err => { 5208 console.error('LFN: Network error', err); 5209 updateBadge(0); 5210 }); 5211 } 5212 5213 // === FIRST-VISIT TOOLTIP === 5214 const KEY_TOOLTIP_SEEN = 'lfn_tooltip_seen'; 5215 5216 function hasSeenTooltip() { 5217 try { return safeGetItem(KEY_TOOLTIP_SEEN) === '1'; } catch(e) { return false; } 5218 } 5219 5220 function markTooltipSeen() { 5221 try { safeSetItem(KEY_TOOLTIP_SEEN, '1'); } catch(e) {} 5222 } 5223 5224 function showFirstVisitTooltip() { 5225 if (hasSeenTooltip()) return; 5226 const container = document.querySelector('.lfn-bell-container'); 5227 if (!container) return; 5228 5229 const tooltip = document.createElement('div'); 5230 tooltip.className = 'lfn-tooltip'; 5231 tooltip.innerHTML = 'FÃ¥ notiser om favoriter! <span class="lfn-tooltip-close">â</span>'; 5232 container.appendChild(tooltip); 5233 5234 tooltip.querySelector('.lfn-tooltip-close').addEventListener('click', function(e) { 5235 e.stopPropagation(); 5236 tooltip.remove(); 5237 markTooltipSeen(); 5238 }); 5239 5240 // Auto-hide efter 8 sekunder 5241 setTimeout(() => { 5242 if (tooltip.parentNode) { 5243 tooltip.remove(); 5244 markTooltipSeen(); 5245 } 5246 }, 8000); 5247 5248 console.log('ð First-visit tooltip shown'); 5249 } 5250 5251 // === GA4 TRACKING === 5252 function trackBellClick(hasFavorites, notificationCount) { 5253 if (typeof gtag === 'function') { 5254 gtag('event', 'bell_click', { 5255 'has_favorites': hasFavorites, 5256 'notification_count': notificationCount, 5257 'favorites_count': getFavorites().length 5258 }); 5259 console.log('ð GA4: bell_click tracked', { hasFavorites, notificationCount }); 5260 } 5261 } 5262 5263 // Event listeners 5264 document.addEventListener('DOMContentLoaded', function(){ 5265 const btn = document.querySelector('.lfn-bell-btn'); 5266 const closeBtn = document.querySelector('.lfn-close');
5267 const overlay = document.querySelector('.lfn-modal-overlay'); 5268 5269 if (btn) { 5270 btn.addEventListener('click', function(e){ 5271 e.preventDefault(); 5272 e.stopPropagation(); 5273 5274 // Ta bort tooltip om den finns 5275 const tooltip = document.querySelector('.lfn-tooltip'); 5276 if (tooltip) { 5277 tooltip.remove(); 5278 markTooltipSeen(); 5279 } 5280 5281 const currentFavs = getFavorites(); 5282 const hasFavorites = currentFavs.length > 0; 5283 5284 // GA4 tracking 5285 const notifCount = document.querySelector('.lfn-badge-html')?.textContent || '0'; 5286 trackBellClick(hasFavorites, parseInt(notifCount) || 0); 5287 5288 console.log('ð Click - Current favorites count:', currentFavs.length); 5289 5290 if (!hasFavorites) { 5291 renderModal({ 5292 newPrograms: [], 5293 newEpisodes: [], 5294 noFavorites: true 5295 }); 5296 } else if (window.lfnData) { 5297 renderModal(window.lfnData); 5298 } 5299 }); 5300 } 5301 5302 if (closeBtn) { 5303 closeBtn.addEventListener('click', closeModal); 5304 } 5305 5306 if (overlay) { 5307 overlay.addEventListener('click', closeModal); 5308 } 5309 5310 document.addEventListener('keydown', function(e){ 5311 if (e.key === 'Escape') { 5312 closeModal(); 5313 } 5314 }); 5315 5316 // iOS emergency scroll unlock och z-index restore 5317 setInterval(function() { 5318 const modal = document.querySelector('.lfn-modal'); 5319 const overlay = document.querySelector('.lfn-modal-overlay'); 5320 const isModalVisible = modal && modal.classList.contains('show'); 5321 const isOverlayVisible = overlay && overlay.classList.contains('show'); 5322 5323 if (!isModalVisible && !isOverlayVisible) { 5324 if (document.body.style.position === 'fixed') { 5325 console.warn('ð Emergency: Unlocking scroll'); 5326 const scrollY = document.body.dataset.scrollY || '0'; 5327 document.body.style.position = ''; 5328 document.body.style.top = ''; 5329 document.body.style.width = ''; 5330 window.scrollTo(0, parseInt(scrollY)); 5331 delete document.body.dataset.scrollY; 5332 } 5333 5334 // Emergency restore för position och top ocksÃ¥ 5335 const selectors = [ 5336 '#ubermenu-main-71', 5337 '#ubermenu-nav-main-71', 5338 'header.main', 5339 'header', 5340 '.asp_w', 5341 '#chtop' 5342 ]; 5343 5344 selectors.forEach(selector => { 5345 const elements = document.querySelectorAll(selector); 5346 elements.forEach(el => { 5347 if (el.dataset.originalZIndex !== undefined) { 5348 el.style.removeProperty('z-index'); 5349 delete el.dataset.originalZIndex; 5350 } 5351 if (el.dataset.originalPosition !== undefined) { 5352 el.style.removeProperty('position'); 5353 delete el.dataset.originalPosition; 5354 } 5355 if (el.dataset.originalTop !== undefined) { 5356 el.style.removeProperty('top'); 5357 delete el.dataset.originalTop; 5358 } 5359 }); 5360 }); 5361 5362 const allElements = document.querySelectorAll('[data-lfn-original-z-index]');
5363 allElements.forEach(el => { 5364 if (el.dataset.lfnOriginalZIndex !== undefined) { 5365 el.style.removeProperty('z-index'); 5366 delete el.dataset.lfnOriginalZIndex; 5367 } 5368 }); 5369 } 5370 }, 2000); 5371 5372 loadNotifications(); 5373 5374 // Räkna besök och visa tooltip pÃ¥ 3:e besöket 5375 const KEY_VISITS = 'lfn_visits'; 5376 let visits = 1; 5377 try { 5378 visits = parseInt(safeGetItem(KEY_VISITS) || '0') + 1; 5379 safeSetItem(KEY_VISITS, visits.toString()); 5380 } catch(e) {} 5381 5382 // Visa tooltip efter 2 sekunder (endast pÃ¥ 3:e besöket eller senare, om inte redan sett) 5383 if (visits >= 3) { 5384 setTimeout(showFirstVisitTooltip, 2000); 5385 } 5386 console.log('ð Visit count:', visits, visits >= 3 ? '(tooltip eligible)' : '(waiting for visit 3)'); 5387 }); 5388 })(); 5389 </script>
5389 5390
5390<script> 5391 document.addEventListener('DOMContentLoaded', function() { 5392 const shareBtn = document.getElementById('smartShareBtn'); 5393 const shareMenu = document.getElementById('shareMenu'); 5394 const copyBtn = document.getElementById('copyLinkBtn'); 5395 5396 if (!shareBtn) return; 5397 5398 const ogTitle = document.querySelector('meta[property="og:title"]'); 5399 5400 const shareData = { 5401 title: ogTitle ? ogTitle.content : '<img src="https://webb-tv.nu/wp-content/uploads/2016/01/tv6-play-meny.png" alt="tv6-play" width="42" height="42" class="pagelogo" /> TV6 Play <span class="chblock">– Pluto TV</span>', 5402 url: 'https://webb-tv.nu/tv6-play/' 5403 }; 5404 5405 // GA4 event tracking helper 5406 function trackShare(method) { 5407 if (typeof gtag === 'function') { 5408 gtag('event', 'share', { 5409 method: method, 5410 content_type: 'article', 5411 item_id: shareData.url 5412 }); 5413 } 5414 } 5415 5416 shareBtn.addEventListener('click', async function(e) { 5417 e.preventDefault(); 5418 5419 // Försök alltid med native share först 5420 if (navigator.share) { 5421 try { 5422 await navigator.share({ 5423 title: shareData.title, 5424 url: shareData.url 5425 }); 5426 trackShare('native'); 5427 return; // Lyckades - klart! 5428 } catch (err) { 5429 // Om användaren avbröt - gör ingenting 5430 if (err.name === 'AbortError') { 5431 return; 5432 } 5433 // Om det verkligen failade, fortsätt till fallback 5434 } 5435 } 5436 5437 // Fallback-meny för desktop eller om native share inte finns 5438 if (shareMenu) { 5439 const isOpen = shareMenu.style.display !== 'none'; 5440 shareMenu.style.display = isOpen ? 'none' : 'block'; 5441 shareBtn.setAttribute('aria-expanded', !isOpen); 5442 } 5443 }); 5444 5445 if (copyBtn) { 5446 copyBtn.addEventListener('click', async function() { 5447 try { 5448 await navigator.clipboard.writeText(shareData.url); 5449 trackShare('copy_link'); 5450 const originalText = copyBtn.textContent; 5451 copyBtn.textContent = 'Kopierad!'; 5452 setTimeout(() => { 5453 copyBtn.textContent = originalText; 5454 if (shareMenu) { 5455 shareMenu.style.display = 'none'; 5456 shareBtn.setAttribute('aria-expanded', 'false'); 5457 } 5458 }, 2000); 5459 } catch (err) { 5460 alert('Kunde inte kopiera länken'); 5461 } 5462 }); 5463 } 5464 5465 document.addEventListener('click', function(e) { 5466 if (shareMenu && !e.target.closest('.smart-share-wrapper')) { 5467 shareMenu.style.display = 'none'; 5468 shareBtn.setAttribute('aria-expanded', 'false'); 5469 } 5470 }); 5471 5472 document.addEventListener('keydown', function(e) { 5473 if (shareMenu && e.key === 'Escape' && shareMenu.style.display !== 'none') { 5474 shareMenu.style.display = 'none'; 5475 shareBtn.setAttribute('aria-expanded', 'false'); 5476 shareBtn.focus(); 5477 } 5478 }); 5479 5480 // Track clicks on share links (email, whatsapp, facebook) 5481 document.querySelectorAll('.share-item[data-share]').forEach(function(link) { 5482 link.addEventListener('click', function() { 5483 trackShare(this.dataset.share); 5484 }); 5485 }); 5486 }); 5487 </script>
5487 5488 <div class='asp_hidden_data' id="asp_hidden_data" style="display: none !important;"> 5489 <svg style="position:absolute" height="0" width="0"> 5490 <filter id="aspblur"> 5491 <feGaussianBlur in="SourceGraphic" stdDeviation="4"/> 5492 </filter> 5493 </svg> 5494 <svg style="position:absolute" height="0" width="0"> 5495 <filter id="no_aspblur"></filter> 5496 </svg> 5497 </div> 5498 <div id="asp-statistics" data-statistics-id="0" style="display:none;"></div> 5499
5499<script async data-wp-strategy="async" id="add-to-calendar-button-js" src="https://webb-tv.nu/wp-content/plugins/add-to-calendar-button/build/atcb/3.0.3/atcb.min.js?ver=3.0.3"></script>
vendor: 1 bytes, line 5499
5499
5500<script id="wbtv-recommendations-js-extra"> 5501var wbtvRecConfig = {"ajaxUrl":"https://webb-tv.nu/wp-admin/admin-ajax.php","nonce":"c679ea56b3","devMode":"","i18n":{"recommend":"Rekommendera","recommended":"Rekommenderad","error":"N\u00e5got gick fel. F\u00f6rs\u00f6k igen.","rateLimit":"Du har n\u00e5tt gr\u00e4nsen f\u00f6r rekommendationer.","firstTime":"Tack f\u00f6r din rekommendation! Den hj\u00e4lper andra att hitta bra inneh\u00e5ll."}}; 5502//# sourceURL=wbtv-recommendations-js-extra 5503</script>
vendor: 1 bytes, line 5503
5503
5504<script id="wbtv-recommendations-js" src="https://webb-tv.nu/wp-content/plugins/recommendations/assets/frontend.js?ver=0.5.9"></script>
vendor: 1 bytes, line 5504
5504
5505<script id="wbtv-newsletter-js-extra"> 5506var wbtvNlConfig = {"ajaxUrl":"https://webb-tv.nu/wp-admin/admin-ajax.php"}; 5507//# sourceURL=wbtv-newsletter-js-extra 5508</script>
vendor: 1 bytes, line 5508
5508
5509<script id="wbtv-newsletter-js" src="https://webb-tv.nu/wp-content/plugins/wbtv-newsletter/assets/signup-form.js?ver=0.1.1"></script>
vendor: 1 bytes, line 5509
5509
5510<script id="ubermenu-js-extra"> 5511var ubermenu_data = {"remove_conflicts":"on","reposition_on_load":"off","intent_delay":"300","intent_interval":"100","intent_threshold":"7","scrollto_offset":"50","scrollto_duration":"1000","responsive_breakpoint":"1199","accessible":"on","retractor_display_strategy":"responsive","touch_off_close":"on","submenu_indicator_close_mobile":"on","collapse_after_scroll":"on","v":"3.7.8","configurations":["newmeny","main"],"ajax_url":"https://webb-tv.nu/wp-admin/admin-ajax.php","plugin_url":"https://webb-tv.nu/wp-content/plugins/ubermenu/","disable_mobile":"off","prefix_boost":"","use_core_svgs":"off","aria_role_navigation":"off","aria_nav_label":"off","aria_expanded":"off","aria_hidden":"off","aria_controls":"","aria_responsive_toggle":"off","icon_tag":"i","esc_close_mobile":"on","theme_locations":{"primary":"Primary Menu","new-menu":"Ny meny"}}; 5512//# sourceURL=ubermenu-js-extra 5513</script>
vendor: 1 bytes, line 5513
5513
5514<script id="ubermenu-js" src="https://webb-tv.nu/wp-content/plugins/ubermenu/assets/js/ubermenu.min.js?ver=3.7.8"></script>
5514 5515
5515<script id="local-favorites-config"> 5516window.lfavL10n = {"add":"Spara","favorit":"Sparad","first_time":"Sparad! Du hittar dina favoriter under Favoriter i menyn \u2013 ingen inloggning kr\u00e4vs.","remove":"Ta bort","empty":"Du har inga favoriter sparade \u00e4nnu. Detta g\u00f6r du enkelt med hj\u00e4rtat p\u00e5 programsidorna.","no_login":"OBS! Ingen inloggning kr\u00e4vs.","sort_alpha":"Program A\u2013\u00d6","sort_recent":"Senaste nytt","sort_oldest":"\u00c4ldst tillagd","loading":"Laddar program"}; 5517window.lfavServices = ["SVT Play","TV4 Play","TV4 Play+","Pluto TV","Max","TV3 Play","TV6 Play","TV8 Play","TV10 Play","TV12","Sjuan","Kanal 5","Kanal 9","Kanal 5 | Max","Kanal 9 | Max","TV3 Play | Pluto TV","TV6 Play | Pluto TV","TV8 Play | Pluto TV","TV10 Play | Pluto TV","Netflix","Viaplay","Disney+","HBO Max","Prime Video"]; 5518window.lfavAjax = {"url":"https:\/\/webb-tv.nu\/wp-admin\/admin-ajax.php","nonce":"e0b10a61c2","action":"lfav_resolve"}; 5519 </script>
5519 5520
5520<script id="local-favorites-js"> 5521/*! Local Favorites â Standalone JS v1.4.7 (idempotent PER egenskap â fixar mutation-loop + behÃ¥ller â¡ i startläget) */ 5522(function () { 5523 var LS_KEY = "wpfp_favorites"; 5524 var LS_META = "wpfp_favorites_meta"; 5525 var LS_SORT = "wpfp_favorites_sort"; 5526 var LS_TOAST = "wpfp_favorites_toast_shown"; // förstagÃ¥ngsbekräftelsen, visas en gÃ¥ng per webbläsare 5527 5528 function lfavToast(msg){ 5529 var old=document.querySelector(".lfav-toast"); if(old){ old.remove(); } 5530 var t=document.createElement("div"); t.className="lfav-toast"; t.textContent=msg; 5531 t.setAttribute("role","status"); t.setAttribute("aria-live","polite"); 5532 document.body.appendChild(t); void t.offsetWidth; t.classList.add("lfav-toast--visible"); 5533 setTimeout(function(){ t.classList.remove("lfav-toast--visible"); setTimeout(function(){ if(t.parentNode){ t.remove(); } },300); },4000); 5534 } 5535 function firstSaveToast(){ 5536 var seen=null; try{ seen=localStorage.getItem(LS_TOAST); }catch(e){} 5537 if(seen) return; 5538 lfavToast((window.lfavL10n&&window.lfavL10n.first_time)||"Sparad! Du hittar dina favoriter under Favoriter i menyn."); 5539 try{ localStorage.setItem(LS_TOAST,"1"); }catch(e){} 5540 } 5541 // 2026-09-13: tomma med flit. Hjärtat ritas numera av CSS (.lfav-btn::before, 5542 // Font Awesome 5) i stället för att skrivas in som textprefix â se det lÃ¥nga 5543 // stycket vid .lfav-heart-btn::before ovan. Konstanterna stÃ¥r kvar i stället 5544 // för att strykas, sÃ¥ att raden nedan behÃ¥ller sin form och diffen blir liten; 5545 // vill man backa räcker det att fylla dem igen. 5546 // 𪤠Att de är tomma är ocksÃ¥ det som hÃ¥ller textContent-jämförelsen ren: 5547 // knappen innehÃ¥ller nu exakt "Spara"/"Sparad", inget osynligt prefix. 5548 var HEART_EMPTY = ""; 5549 var HEART_FULL = ""; 5550 var lastItemsCache = null; 5551 5552 (function migrateOnce(){ 5553 try{ 5554 var raw = localStorage.getItem(LS_KEY); 5555 if(!raw) return; 5556 var parsed; try{ parsed = JSON.parse(raw); }catch(e){ parsed = raw; } 5557 var ids = []; 5558 if(Array.isArray(parsed)){ 5559 for(var i=0;i<parsed.length;i++){ 5560 var v = parsed[i]; 5561 if (v && typeof v === "object" && "id" in v) v = v.id; 5562 var n = parseInt(v,10); 5563 if(!isNaN(n) && n>0) ids.push(n); 5564 } 5565 } else if (typeof parsed === "string"){ 5566 parsed.split(",").forEach(function(s){ 5567 var n = parseInt(s,10); 5568 if(!isNaN(n) && n>0) ids.push(n); 5569 }); 5570 } 5571 if(ids.length){ 5572 localStorage.setItem(LS_KEY, JSON.stringify(Array.from(new Set(ids)))); 5573 } 5574 }catch(e){} 5575 })(); 5576 5577 function getFavs(){ 5578 try{ 5579 var raw = localStorage.getItem(LS_KEY); 5580 if(!raw) return []; 5581 var arr = JSON.parse(raw); 5582 if(!Array.isArray(arr)) return []; 5583 return arr.map(function(x){ return +x; }).filter(function(n){ return Number.isInteger(n) && n>0; }).slice(0,500); 5584 }catch(e){ return []; } 5585 } 5586 function saveFavs(arr){ 5587 try{ 5588 var uniq = Array.from(new Set(arr.map(function(x){return +x;}))).filter(function(n){return Number.isInteger(n)&&n>0;}).slice(0,500); 5589 localStorage.setItem(LS_KEY, JSON.stringify(uniq)); 5590 return uniq; 5591 }catch(e){ return arr; } 5592 } 5593 function getMeta(){ try{ var raw=localStorage.getItem(LS_META); return raw?JSON.parse(raw):{}; }catch(e){ return {}; } } 5594 function setMeta(m){ try{ localStorage.setItem(LS_META, JSON.stringify(m)); }catch(e){} } 5595 function addFav(id){ 5596 var a=getFavs(); 5597 if(a.indexOf(+id)===-1){ a.unshift(+id); saveFavs(a); } 5598 var meta=getMeta(); meta[id]=meta[id]||{}; meta[id].addedAt=Date.now(); setMeta(meta); 5599 return a; 5600 } 5601 function removeFav(id){ 5602 var a=getFavs().filter(function(x){return x!==+id;}); saveFavs(a); 5603 var meta=getMeta(); if(meta[id]){ delete meta[id]; setMeta(meta); } 5604 return a; 5605 } 5606 function isFav(id){ return getFavs().indexOf(+id)!==-1; } 5607 5608 function getSort(){ var s=localStorage.getItem(LS_SORT); return (s==="alpha"||s==="oldest"||s==="recent")?s:"recent"; } 5609 function setSort(s){ try{ localStorage.setItem(LS_SORT, s); }catch(e){} } 5610 5611 function updateCounts(){ 5612 var n=getFavs().length; 5613 document.querySelectorAll(".wpfp-count.lfav-count-badge,.wpfp-count").forEach(function(el){ 5614 if(n>0){ el.textContent=n; el.style.display=""; } 5615 else { el.textContent=""; el.style.display="none"; } 5616 }); 5617 if(n>0){ 5618 document.querySelectorAll(".wpfp-count.lfav-count-badge").forEach(function(el){ 5619 el.classList.remove("lfav-pulse"); void el.offsetWidth; 5620 el.style.setProperty("--lfav-pulse-iter","1"); 5621 el.classList.add("lfav-pulse"); 5622 }); 5623 } 5624 5625 // Visa/dölj Export-knappen baserat pÃ¥ antal favoriter 5626 var exportBtn = document.querySelector('.lfav-backup-btn[data-action="export"]'); 5627 if(exportBtn){ 5628 if(n > 0){ 5629 exportBtn.classList.remove('hidden'); 5630 } else { 5631 exportBtn.classList.add('hidden'); 5632 } 5633 } 5634 } 5635 window.addEventListener("storage", function(ev){ if(ev.key===LS_KEY||ev.key===LS_META){ updateCounts(); } }); 5636 5637 function setToggleState(el, fav){ 5638 var addText=(window.lfavL10n&&window.lfavL10n.add)||"Lägg till favorit"; 5639 var favText=(window.lfavL10n&&window.lfavL10n.favorit)||"Favorit"; 5640 var isHeartBtn = el.classList.contains("lfav-heart-btn"); 5641 var wantPressed = fav ? "true" : "false"; 5642 var wantText = isHeartBtn ? null : (fav ? HEART_FULL + favText : HEART_EMPTY + addText); 5643 5644 // Idempotent PER egenskap: skriv bara det som faktiskt skiljer sig. 5645 // Annars river varje textContent-skrivning text-noden â MutationObservern 5646 // nedan triggar om sig själv ~20 ggr/sek â klick (mousedown utan click) äts. 5647 // OBS: â¡-/â¤-prefixet skrivs fortfarande in (en gÃ¥ng) vid första hydreringen. 5648 if(el.classList.contains("wpfp-favorited") !== !!fav){ 5649 if(fav){ el.classList.add("wpfp-favorited"); } else { el.classList.remove("wpfp-favorited"); } 5650 } 5651 if(!isHeartBtn && el.textContent !== wantText){ 5652 el.textContent = wantText; 5653 } 5654 if(el.getAttribute("aria-pressed") !== wantPressed){ 5655 el.setAttribute("aria-pressed", wantPressed); 5656 } 5657 } 5658
5659 function parsePostIdFromNode(el){ 5660 if(el && el.dataset && el.dataset.postId){ return +el.dataset.postId; } 5661 var host = el && el.closest && el.closest("[data-post-id],[id^=\"post-\"]"); 5662 if(host){ 5663 if(host.dataset && host.dataset.postId) return +host.dataset.postId; 5664 var m=(/post-(\\d+)/).exec(host.id||""); if(m) return +m[1]; 5665 } 5666 return null; 5667 } 5668 5669 function hydrateToggles(ctx){ 5670 (ctx||document).querySelectorAll(".wpfp-toggle").forEach(function(el){ 5671 var id=parsePostIdFromNode(el); if(!id) return; 5672 if(String(el.dataset.postId) !== String(id)){ el.dataset.postId = id; } 5673 setToggleState(el, isFav(id)); 5674 }); 5675 } 5676 5677 function escapeForRegex(s){ return s.replace(/[.*+?^${}()|[\\]\\\\]/g, "\\\\$&"); } 5678 function trimTitleSuffix(title){ 5679 try{ 5680 var services = Array.isArray(window.lfavServices)? window.lfavServices : []; 5681 var dash = "[\\\\-\\\\u2012\\\\u2013\\\\u2014]"; 5682 for(var i=0;i<services.length;i++){ 5683 var s = escapeForRegex(services[i]); 5684 var re = new RegExp("\\\\s*" + dash + "\\\\s*(" + s + ")\\\\s*$", "i"); 5685 if(re.test(title)){ return title.replace(re, "").trim(); } 5686 } 5687 return title; 5688 }catch(e){ return title; } 5689 } 5690 /* Sorteringsnyckel: senasteSlapp för vanliga program, men för en SPORTSIDA hur
5691 nära matchen är. Lagsidorna är frÃ¥n 2020â2022, sÃ¥ senasteSlapp gjorde att ett 5692 lag med match i morgon sorterades sist av alla. Matchen mappas därför till 5693 dagens datum minus antalet dygn kvar â i dag om matchen är i dag, en vecka 5694 tillbaka om den är om en vecka. DÃ¥ hamnar sport och serier pÃ¥ samma skala. 5695 𪤠Spegling av favSortNyckel() i toptopnewest42.php â ändra bÃ¥da. */ 5696 /* Matchens klockslag som minuter efter midnatt, eller null när raden inte är en 5697 sportrad. Parsas i stället för att strängjämföras: fältet skrivs "15:05" i JSON 5698 men visas "15.05", och en icke-nollfylld timme ("9:05") hade sorterat EFTER 5699 15:05 i en strängjämförelse. 5700 𪤠Spegling â samma funktion finns i toptopnewest42.php. Ãndra bÃ¥da. */ 5701 function favMatchMinut(it){ 5702 var t = it && it.nastaMatch && it.nastaMatch.tid; 5703 if(!t) return null; 5704 var m = String(t).match(/^(\d{1,2})[:.](\d{2})/); 5705 return m ? (+m[1])*60 + (+m[2]) : null; 5706 } 5707 function favSortNyckel(it){ 5708 if (it.nastaMatch && it.nastaMatch.datum) { 5709 var n = new Date(it.nastaMatch.datum + "T00:00:00"); 5710 var i = new Date(); i.setHours(0,0,0,0); 5711 var d = Math.max(0, Math.round((n - i) / 86400000)); 5712 var e = new Date(i); e.setDate(e.getDate() - d); 5713 return e.getFullYear() + "-" + ("0"+(e.getMonth()+1)).slice(-2) + "-" + ("0"+e.getDate()).slice(-2); 5714 } 5715 return it.senasteSlapp || ""; 5716 } 5717 function sortItems(items, mode){ 5718 var meta=getMeta(); 5719 if(mode==="recent"){ 5720 return items.slice().sort(function(a,b){ 5721 var sa=favSortNyckel(a); 5722 var sb=favSortNyckel(b); 5723 if(sa===sb){ 5724 /* INOM SAMMA DAG LIGGER DET SOM INTE SÃNTS ÃN FÃRST (Per 2026-09-14: 5725 "jag tror att jag vill att den sorterar först längst till vänster iom 5726 att den inte har publicerats än"). Datumet ensamt kunde inte skilja 5727 dem Ã¥t â allt som kom i dag delar senasteSlapp â sÃ¥ ordningen föll 5728 tillbaka pÃ¥ listans egen, och kvällens sändning hamnade mitt bland 5729 det som redan gick att se i morse. 5730 tidMin finns bara pÃ¥ rader som är nya i dag OCH har klockslag; tvÃ¥ 5731 sÃ¥dana sorteras tidigast först, eftersom det är den som händer snart. */ 5732 var pa = (a.tidMin !== undefined) ? 1 : 0; 5733 var pb = (b.tidMin !== undefined) ? 1 : 0; 5734 if(pa !== pb) return pb - pa; 5735 if(pa === 1) return a.tidMin - b.tidMin; 5736 /* ð´ INOM SAMMA DAG AVGÃR MATCHENS KLOCKSLAG (Per 2026-09-17: "rätt ordning men 5737 inte mellan Björklöven och SkellefteÃ¥"). Sortnyckeln ovan är DATUM-bara, sÃ¥ alla 5738 lördagsmatcher fÃ¥r identisk nyckel â och en sportrad saknar tidMin, som bara sätts 5739 pÃ¥ rader nya i dag. Jämförelsen föll därför hit och lät listans egen ordning avgöra: 5740 Björklöven 17.50 stod före SkellefteÃ¥ AIK 15.05. 5741 nastaMatch.tid har funnits hela tiden, oanvänd i sorteringen. 5742 𪤠StÃ¥r EFTER tidMin-grenarna med flit â fälten gäller olika slags rader, och den 5743 jämförelse som redan fungerade fÃ¥r inte ändra beteende. */ 5744 var ma=favMatchMinut(a), mb=favMatchMinut(b); 5745 if(ma!==null && mb!==null && ma!==mb) return ma-mb; 5746 return 0; 5747 } 5748 return sa>sb ? -1 : 1; 5749 }); 5750 } else if(mode==="oldest"){ 5751 return items.slice().sort(function(a,b){ 5752 var ta=(meta[a.id]&&meta[a.id].addedAt)||0; 5753 var tb=(meta[b.id]&&meta[b.id].addedAt)||0; 5754 return ta - tb; 5755 }); 5756 } else { 5757 var collator = new Intl.Collator(navigator.language || "sv", { sensitivity:"base" }); 5758 return items.slice().sort(function(a,b){ 5759 var ta=trimTitleSuffix(a.title||""); 5760 var tb=trimTitleSuffix(b.title||""); 5761 return collator.compare(ta, tb); 5762 }); 5763 } 5764 } 5765 5766 function placeholderSVG(){ return "data:image/svg+xml;utf8,"+encodeURIComponent("<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"640\" height=\"360\" viewBox=\"0 0 640 360\"><rect width=\"640\" height=\"360\" fill=\"#efefef\"/><text x=\"50%\" y=\"50%\" dominant-baseline=\"middle\" text-anchor=\"middle\" fill=\"#999\" font-family=\"sans-serif\" font-size=\"18\">Ingen bild</text></svg>"); } 5767 5768 function buildListHTML(items){ 5769 var meta=getMeta(); 5770 var html = ""; 5771 html += "<div class=\"wpfp-toolbar\">" 5772 + "<button type=\"button\" class=\"wpfp-sort-btn"+(getSort()==="recent"?" active":"")+"\" data-sort=\"recent\">"+((window.lfavL10n&&lfavL10n.sort_recent)||"Senaste nytt")+"</button>" 5773 + "<button type=\"button\" class=\"wpfp-sort-btn"+(getSort()==="oldest"?" active":"")+"\" data-sort=\"oldest\">"+((window.lfavL10n&&lfavL10n.sort_oldest)||"Ãldst tillagd")+"</button>" 5774 + "<button type=\"button\" class=\"wpfp-sort-btn"+(getSort()==="alpha"?" active":"")+"\" data-sort=\"alpha\">"+((window.lfavL10n&&lfavL10n.sort_alpha)||"Titel AâÃ")+"</button>" 5775 + "</div>"; 5776 5777 html += "<ul class=\"wpfp-list\">"; 5778 for (var i=0;i<items.length;i++){ 5779 var p = items[i]; 5780 var title = (p.title || ("#"+p.id)); 5781 // Titeln bär plattformen som svans ("⦠â TV4 Film | TV4 Play") och tar dÃ¥
5782 // tvÃ¥ rader pÃ¥ ett smalt kort. Plattformen visas i stället pÃ¥ egen rad 5783 // under, i grÃ¥tt â samma uppgift, mindre buller. (Per 2026-09-09.) 5784 if (p.platform) { 5785 var tmp = document.createElement("textarea"); 5786 tmp.innerHTML = title; 5787 var ren = tmp.value; // avkodar – till â 5788 var skilj = ren.lastIndexOf(p.platform); 5789 if (skilj > 0) { 5790 var kandidat = ren.slice(0, skilj).replace(/[\s\u00a0]*[ââ|-][\s\u00a0]*$/, "").trim(); 5791 if (kandidat) { title = kandidat; } 5792 } 5793 } 5794 var badgeText = ""; 5795 var badgeClass = ""; 5796 if (p.post_type === "kommande_program") { 5797 badgeText = "Kommer snart"; 5798 badgeClass = "wpfp-badge--soon"; 5799 } else if (p.post_type === "betalprogram_sport") { 5800 /* v1.5.22: nav pÃ¥ fri kanal (p.fri, se lfav_ajax_resolve) är sport men inte betal â 5801 samma ord som startsidans remsa skriver för alla sportsidor. */ 5802 badgeText = p.fri ? "Sport" : "Betalprogram Sport"; 5803 badgeClass = "wpfp-badge--sport"; 5804 } else if (p.betal) { 5805 /* ð´ BETAL SOM BRICKA, INTE BARA TEXT (Per 2026-09-15: "borde det inte synas 5806 lika bra som pÃ¥ hockeyn?"). Han jämförde med Hockeykväll, som har framtida 5807 inldatum och därför fÃ¥r brickan "Kommer snart" Pà BILDEN â medan Betal lÃ¥g 5808 som grÃ¥ text i plattformsraden och försvann bredvid den. 5809 Samma ord och samma plommon som .badge-betalprogram pÃ¥ /kommande-program/ 5810 och som "Betalprogram Sport" här ovanför: ett besked, en färg, hela sajten. 5811 𪤠KROCKAR INTE med de andra brickorna. premiarText, nyttAvsnitt och nyIdag 5812 sätts alla bara när online = 1, och en betalsida är per definition 0. */ 5813 badgeText = "Betalprogram"; 5814 badgeClass = "wpfp-badge--betal"; 5815 } 5816 5817 /* Husnormen: tre besked, tre färger (2026-09-14). Saknas premiarTyp â t.ex. 5818 ett svar som ligger kvar i webbläsarens cache frÃ¥n före ändringen â blir 5819 det tom sträng och .wpfp-badge--premiar behÃ¥ller sin gamla stÃ¥lblÃ¥. 5820 Degraderar alltsÃ¥ till exakt det tidigare utseendet i stället för att 5821 tappa färg helt. */ 5822 function premiarKlass(typ){ 5823 if (typ === "Ny serie") return "wpfp-badge--nyserie"; 5824 if (typ === "Tillbaka") return "wpfp-badge--tillbaka"; 5825 if (typ === "Ny säsong") return "wpfp-badge--nysasong"; 5826 return ""; 5827 } 5828 var imgUrl = p.thumb || ""; 5829 var img = 5830 "<a class=\"wpfp-thumb-link\" href=\""+p.link+"\">" + 5831 "<span class=\"wpfp-thumb "+(imgUrl?"":"no-image")+"\">" + 5832 "<img loading=\"lazy\" src=\""+(imgUrl || placeholderSVG())+"\" alt=\"\">" + 5833 (badgeText ? "<span class=\"wpfp-badge "+badgeClass+"\" aria-label=\""+badgeText+"\">"+badgeText+"</span>" : "") + 5834 (p.premiarText ? "<span class=\"wpfp-badge wpfp-badge--premiar "+premiarKlass(p.premiarTyp)+"\" aria-label=\""+p.premiarText+"\">"+p.premiarText+"</span>" : "") + 5835 (p.nyttAvsnitt ? "<span class=\"wpfp-badge wpfp-badge--nyttavsnitt\" aria-label=\"Nytt avsnitt\">Nytt avsnitt</span>" : "") + 5836 (p.nyIdag ? "<span class=\"wpfp-badge "+(p.tidText ? "wpfp-badge--tid" : "wpfp-badge--nyidag")+"\" aria-label=\""+(p.tidText || "Ny idag")+"\">"+(p.tidText || "Ny idag")+"</span>" : "") + 5837 (p.expiringText ? "<span class=\"wpfp-badge wpfp-badge--expiring\" aria-label=\""+p.expiringText+"\"><svg class=\"wdtv-klocka\" xmlns=\"http://www.w3.org/2000/svg\" width=\"12\" height=\"12\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><circle cx=\"12\" cy=\"12\" r=\"10\"></circle><polyline points=\"12 6 12 12 16 14\"></polyline></svg><span class=\"lfav-lang\">"+p.expiringText+"</span><span class=\"lfav-kort\">"+(p.expiringShort||p.expiringText)+"</span></span>" : "") + 5838 "</span>" + 5839 "</a>"; 5840 5841 var added = (getMeta()[p.id] && getMeta()[p.id].addedAt) || 0; 5842 5843 html += 5844 "<li class=\"wpfp-item"+(p.utgatt ? " wpfp-item--utgatt" : "")+(p.betal ? " wpfp-item--betal" : "")+"\" data-id=\""+p.id+"\" data-added=\""+added+"\">" + 5845 img + 5846 "<a class=\"wpfp-item-link\" href=\""+p.link+"\">"+ title +"</a>" + 5847 (p.platform 5848 ? "<span class=\"wpfp-platform\">"+p.platform+(p.utgatt ? " · UtgÃ¥tt" : (p.betal ? " · Betal" : ""))+"</span>" 5849 : (p.utgatt ? "<span class=\"wpfp-platform\">UtgÃ¥tt</span>" : (p.betal ? "<span class=\"wpfp-platform\">Betal</span>" : ""))) + 5850 /* ââ NÃSTA SÃNDNING (Per 2026-09-17) ââ 5851 Sport före serie. Sportraden ur wtv_sport_nasta() â samma matchare som 5852 lagsidans "Kommande sändningar"; serieraden ur `dagar`-koderna. Utelämnas 5853 när avsnittet är i dag: dÃ¥ stÃ¥r badgen "Nytt avsnitt" redan pÃ¥ bilden. 5854 𪤠Spegling av toptopnewest42.php (startsidans strip) â ändra bÃ¥da. */ 5855 (function(){ 5856 if (p.nastaMatch && p.nastaMatch.datum) { 5857 var nd = new Date(p.nastaMatch.datum + "T00:00:00"); 5858 var K = ["sön","mÃ¥n","tis","ons","tors","fre","lör"]; 5859 var i0 = new Date(); i0.setHours(0,0,0,0); 5860 var d = Math.round((nd - i0) / 86400000); 5861 /* 𪤠VECKODAG BÃR BARA EN VECKA (Per 2026-09-20: favoritkortet för 5862 Kalmar FF stod utan matchrad medan Björklöven bar "tors 18.45 · 5863 Ãrebro"). Sedan wtv_sport_nasta() letar bortom 14 dygn kan matchen 5864 ligga en mÃ¥nad bort, och "mÃ¥n" om en match den 19 oktober läses som 5865 i morgon-ish. Vid 7 dygn växlar raden till datumform. 5866 Samma block finns i toptopnewest42.php â ändra bÃ¥da. */ 5867 var M = ["jan","feb","mars","apr","maj","juni","juli","aug","sep","okt","nov","dec"]; 5868 var nar = d === 0 ? "i dag" 5869 : d === 1 ? "i morgon" 5870 : d < 7 ? K[nd.getDay()] 5871 : nd.getDate() + " " + M[nd.getMonth()]; 5872 var tid = (p.nastaMatch.tid || "").replace(":", "."); 5873 var vem = p.nastaMatch.mot || p.nastaMatch.titel || ""; 5874 return "<span class=\"wpfp-nasta\">" + nar + (tid ? " " + tid : "") + 5875 (vem ? " · " + vem : "") + "</span>"; 5876 } 5877 if (typeof p.dagarTillNasta === "number" && p.dagarTillNasta > 0) { 5878 var d2 = new Date(); d2.setDate(d2.getDate() + p.dagarTillNasta); 5879 var V = ["söndag","mÃ¥ndag","tisdag","onsdag","torsdag","fredag","lördag"]; 5880 return "<span class=\"wpfp-nasta\">Nytt avsnitt " + 5881 (p.dagarTillNasta === 1 ? "i morgon" : V[d2.getDay()]) + "</span>"; 5882 } 5883 return ""; 5884 })() + 5885 "<div class=\"wpfp-spacer\"></div>" + 5886 "<button type=\"button\" class=\"wpfp-link wpfp-remove\" data-post-id=\""+p.id+"\">"+ ((window.lfavL10n&&lfavL10n.remove)||"Ta bort") +"</button>" + 5887 "</li>"; 5888 } 5889 html += "</ul>"; 5890 5891 // Bestäm om Export-knappen ska vara synlig 5892 var favCount = getFavs().length; 5893 var exportHidden = favCount === 0 ? ' hidden' : ''; 5894 5895 // Lägg till backup-sektion längst ner 5896 html += "<div class=\"lfav-backup-section\" data-tribute=\"mattsson\">" +
5897 "<div class=\"lfav-backup-header\">" + 5898 "<div class=\"lfav-backup-title\">ð¾ Säkerhetskopiera</div>" + 5899 "<div class=\"lfav-backup-arrow\">â¼</div>" + 5900 "</div>" + 5901 "<div class=\"lfav-backup-content\">" + 5902 "<p class=\"lfav-backup-text\">Spara dina favoriter som en fil. Om du rensar webbläsarens data kan du importera dem igen.</p>" + 5903 "<div class=\"lfav-backup-buttons\">" + 5904 "<button type=\"button\" class=\"lfav-backup-btn" + exportHidden + "\" data-action=\"export\">⬠Exportera</button>" + 5905 "<button type=\"button\" class=\"lfav-backup-btn\" data-action=\"import\">⬠Importera</button>" + 5906 "<input type=\"file\" class=\"lfav-backup-file-input\" accept=\".json\">" + 5907 "</div>" + 5908 "</div>" + 5909 "</div>"; 5910 5911 return html; 5912 } 5913 5914 function setSpinner(){ 5915 var box=document.getElementById("wpfp-favorites-client"); if(!box) return; 5916 box.innerHTML = 5917 "<div class=\"lfav-placeholder\" role=\"status\" aria-busy=\"true\">"+ 5918 "<div class=\"lfav-box\">"+ 5919 "<div class=\"lfav-spinner\" aria-hidden=\"true\"></div>"+ 5920 "<p class=\"lfav-loading\">"+((window.lfavL10n&&lfavL10n.loading)||"Laddar program")+"</p>"+ 5921 "</div>"+ 5922 "</div>"; 5923 } 5924 5925 async function renderFavList(fromSortToggle){ 5926 var box=document.getElementById("wpfp-favorites-client"); if(!box) return; 5927 var ids=getFavs(); 5928 if(!ids.length){ 5929 var emptyHTML = "<p>"+((window.lfavL10n&&lfavL10n.empty)||"Du har inga favoriter sparade ännu. Detta gör du enkelt med hjärtat pÃ¥ programsidorna.")+"</p>"; 5930 emptyHTML += "<p>"+((window.lfavL10n&&lfavL10n.no_login)||"OBS! Ingen inloggning krävs.")+"</p>"; 5931 5932 // Lägg till backup-sektion även när tom 5933 emptyHTML += "<div class=\"lfav-backup-section\" data-tribute=\"mattsson\">" + 5934 "<div class=\"lfav-backup-header\">" + 5935 "<div class=\"lfav-backup-title\">ð¾ Säkerhetskopiera</div>" + 5936 "<div class=\"lfav-backup-arrow\">â¼</div>" + 5937 "</div>" + 5938 "<div class=\"lfav-backup-content\">" + 5939 "<p class=\"lfav-backup-text\">Spara dina favoriter som en fil. Om du rensar webbläsarens data kan du importera dem igen.</p>" + 5940 "<div class=\"lfav-backup-buttons\">" + 5941 "<button type=\"button\" class=\"lfav-backup-btn hidden\" data-action=\"export\">⬠Exportera</button>" + 5942 "<button type=\"button\" class=\"lfav-backup-btn\" data-action=\"import\">⬠Importera</button>" + 5943 "<input type=\"file\" class=\"lfav-backup-file-input\" accept=\".json\">" + 5944 "</div>" + 5945 "</div>" + 5946 "</div>"; 5947 5948 box.innerHTML = emptyHTML; 5949 return; 5950 } 5951 5952 if(fromSortToggle && lastItemsCache && Array.isArray(lastItemsCache)){ 5953 box.innerHTML = buildListHTML(sortItems(lastItemsCache, getSort())); 5954 return; 5955 } 5956 5957 setSpinner(); 5958 5959 if(!window.lfavAjax){ 5960 box.innerHTML="<p>Kunde inte ladda favoriter just nu.</p>"; 5961 return; 5962 } 5963 5964 try{ 5965 var fd = new FormData(); 5966 fd.append("action", window.lfavAjax.action); 5967 fd.append("nonce", window.lfavAjax.nonce); 5968 for(var i=0;i<ids.length;i++){ fd.append("ids[]", String(ids[i])); } 5969 5970 var res = await fetch(window.lfavAjax.url, { method:"POST", body: fd, credentials:"same-origin" }); 5971 if(!res.ok) throw new Error("HTTP "+res.status); 5972 var json = await res.json(); 5973 var items = (json && json.success && json.data && Array.isArray(json.data.items)) ? json.data.items : []; 5974 5975 lastItemsCache = items.slice(); 5976 box.innerHTML = buildListHTML(sortItems(items, getSort())); 5977 } catch(e){ 5978 console.error("[LocalFavorites] AJAX resolve error:", e); 5979 box.innerHTML="<p>Kunde inte ladda favoriter just nu.</p>"; 5980 } 5981 } 5982 5983 /* ============================================ 5984 MATTSSON BACKUP FEATURE 5985 Inspired by Johan Mattsson's feedback 5986 "Tjockare text pÃ¥ nedre raden" och backup-funktion 5987 ============================================ */ 5988 5989 function isIOS(){ 5990 return /iPhone|iPad|iPod/i.test(navigator.userAgent) || 5991 (navigator.platform === 'MacIntel' && navigator.maxTouchPoints > 1); 5992 } 5993 5994 function isMobile(){ 5995 return /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent); 5996 } 5997 5998 function exportFavorites(){ 5999 var favs = getFavs(); 6000 var meta = getMeta(); 6001 6002 if(favs.length === 0){ 6003 alert('Du har inga favoriter att exportera.'); 6004 return; 6005 } 6006 6007 var exportData = { 6008 version: "1.0", 6009 exported: new Date().toISOString(), 6010 favorites: favs, 6011 meta: meta 6012 }; 6013 6014 var json = JSON.stringify(exportData, null, 2); 6015 var blob = new Blob([json], { type: 'application/json' }); 6016 6017 var now = new Date(); 6018 var date = now.toISOString().split('T')[0]; 6019 var hours = String(now.getHours()).padStart(2, '0'); 6020 var minutes = String(now.getMinutes()).padStart(2, '0'); 6021 var time = hours + minutes; 6022 var filename = 'mina-favoriter-' + date + '-' + time + '.json'; 6023 6024 // iOS/Mobile: Använd Share API 6025 if (navigator.share && navigator.canShare && isMobile()) { 6026 var file = new File([blob], filename, { type: 'application/json' }); 6027 6028 if (navigator.canShare({ files: [file] })) { 6029 navigator.share({ 6030 files: [file], 6031 title: 'Mina favoriter', 6032 text: favs.length + ' favoriter frÃ¥n Webb-TV.nu' 6033 }) 6034 .then(function(){ 6035 console.log('[LocalFavorites] Exported via Share API:', favs.length, 'favorites'); 6036 }) 6037 .catch(function(err){ 6038 if (err.name !== 'AbortError') { 6039 console.error('[LocalFavorites] Share error:', err);
6040 // Fallback till vanlig download 6041 downloadFile(blob, filename); 6042 } 6043 }); 6044 return; 6045 } 6046 } 6047 6048 // Desktop/Fallback: Vanlig download 6049 downloadFile(blob, filename); 6050 console.log('[LocalFavorites] Exported', favs.length, 'favorites'); 6051 } 6052 6053 function downloadFile(blob, filename){ 6054 var url = URL.createObjectURL(blob); 6055 var a = document.createElement('a'); 6056 a.href = url; 6057 a.download = filename; 6058 document.body.appendChild(a); 6059 a.click(); 6060 document.body.removeChild(a); 6061 URL.revokeObjectURL(url); 6062 } 6063 6064 function importFavorites(file){ 6065 if(!file){ 6066 console.error('[LocalFavorites] No file selected'); 6067 return; 6068 } 6069 6070 var reader = new FileReader(); 6071 reader.onload = function(e){ 6072 try{ 6073 var importData = JSON.parse(e.target.result); 6074 6075 if(!importData.favorites || !Array.isArray(importData.favorites)){ 6076 alert('Ogiltig fil. Kunde inte hitta favoriter.'); 6077 return; 6078 } 6079 6080 var currentFavs = getFavs(); 6081 var newFavs = importData.favorites.map(function(x){ return +x; }).filter(function(n){ return Number.isInteger(n) && n>0; }); 6082 6083 // Kombinera med befintliga (behåll unika) 6084 var combined = Array.from(new Set(currentFavs.concat(newFavs))); 6085 saveFavs(combined); 6086 6087 // Importera metadata 6088 if(importData.meta && typeof importData.meta === 'object'){ 6089 var currentMeta = getMeta(); 6090 for(var id in importData.meta){ 6091 if(!currentMeta[id]){ 6092 currentMeta[id] = importData.meta[id]; 6093 } 6094 } 6095 setMeta(currentMeta); 6096 } 6097 6098 var added = combined.length - currentFavs.length; 6099 alert('Import klar! ' + added + ' favoriter importerade.'); 6100 6101 // Ladda om sidan så notifikationer uppdateras 6102 window.location.reload(); 6103 6104 console.log('[LocalFavorites] Imported', added, 'new favorites'); 6105 } catch(error){ 6106 console.error('[LocalFavorites] Import error:', error); 6107 alert('Kunde inte läsa filen. Kontrollera att det är en giltig JSON-fil.'); 6108 } 6109 }; 6110 reader.readAsText(file); 6111 } 6112 6113 document.addEventListener("click", function(ev){ 6114 var el = ev.target.closest(".wpfp-toggle, .wpfp-remove, .wpfp-sort-btn, .lfav-backup-header, .lfav-backup-btn"); 6115 if(!el) return; 6116 6117 if(el.classList.contains("wpfp-sort-btn")){ 6118 ev.preventDefault(); 6119 var mode = el.dataset.sort; 6120 if(mode && (mode==="alpha" || mode==="recent" || mode==="oldest")){ 6121 setSort(mode); 6122 renderFavList(true); 6123 } 6124 return; 6125 } 6126 6127 if(el.classList.contains("lfav-backup-header")){ 6128 ev.preventDefault(); 6129 var section = el.closest('.lfav-backup-section'); 6130 if(section){ 6131 section.classList.toggle('expanded'); 6132 } 6133 return; 6134 } 6135 6136 if(el.classList.contains("lfav-backup-btn")){ 6137 ev.preventDefault(); 6138 var action = el.dataset.action; 6139 6140 if(action === 'export'){ 6141 exportFavorites(); 6142 } else if(action === 'import'){ 6143 var fileInput = document.querySelector('.lfav-backup-file-input'); 6144 if(fileInput){ 6145 fileInput.click(); 6146 } 6147 } 6148 return; 6149 } 6150 6151 ev.preventDefault(); 6152 6153 // Ignorera klick på disabled knappar 6154 if(el.disabled) return; 6155 6156 var id = parsePostIdFromNode(el); if(!id) return; 6157 6158 if(el.classList.contains("wpfp-toggle")){ 6159 var fav = isFav(id); 6160 if(fav){ removeFav(id); setToggleState(el,false); } 6161 else { addFav(id); setToggleState(el,true); firstSaveToast(); } 6162 updateCounts(); 6163 return; 6164 } 6165 if(el.classList.contains("wpfp-remove")){ 6166 if(isFav(id)){ 6167 removeFav(id); 6168 var li = el.closest(".wpfp-item"); 6169 if(li){ 6170 li.classList.add("lfav-removing"); 6171 setTimeout(function(){ 6172 li.remove(); 6173 if(!getFavs().length){ 6174 var box=document.getElementById("wpfp-favorites-client"); 6175 if(box){ 6176 var emptyHTML = "<p>"+((window.lfavL10n&&lfavL10n.empty)||"Du har inga favoriter sparade ännu. Detta gör du enkelt med hjärtat på programsidorna.")+"</p>"; 6177 emptyHTML += "<p>"+((window.lfavL10n&&lfavL10n.no_login)||"OBS! Ingen inloggning krävs.")+"</p>"; 6178 6179 // Lägg till backup-sektion även när tom 6180 emptyHTML += "<div class=\"lfav-backup-section\" data-tribute=\"mattsson\">" +
6181 "<div class=\"lfav-backup-header\">" + 6182 "<div class=\"lfav-backup-title\">ð¾ Säkerhetskopiera</div>" + 6183 "<div class=\"lfav-backup-arrow\">â¼</div>" + 6184 "</div>" + 6185 "<div class=\"lfav-backup-content\">" + 6186 "<p class=\"lfav-backup-text\">Spara dina favoriter som en fil. Om du rensar webbläsarens data kan du importera dem igen.</p>" + 6187 "<div class=\"lfav-backup-buttons\">" + 6188 "<button type=\"button\" class=\"lfav-backup-btn hidden\" data-action=\"export\">⬠Exportera</button>" + 6189 "<button type=\"button\" class=\"lfav-backup-btn\" data-action=\"import\">⬠Importera</button>" + 6190 "<input type=\"file\" class=\"lfav-backup-file-input\" accept=\".json\">" + 6191 "</div>" + 6192 "</div>" + 6193 "</div>"; 6194 6195 box.innerHTML = emptyHTML; 6196 } 6197 } 6198 }, 200); 6199 } 6200 } 6201 updateCounts(); 6202 } 6203 }, {passive:false}); 6204 6205 // File input change event 6206 document.addEventListener('change', function(ev){ 6207 if(ev.target.classList.contains('lfav-backup-file-input')){ 6208 var file = ev.target.files[0]; 6209 if(file){ 6210 importFavorites(file); 6211 ev.target.value = ''; // Reset input 6212 } 6213 } 6214 }); 6215 6216 function rehydrateAll(){ hydrateToggles(); renderFavList(false); updateCounts(); } 6217 6218 document.addEventListener("turbolinks:load", rehydrateAll); 6219 document.addEventListener("turbo:load", rehydrateAll); 6220 document.addEventListener("pjax:end", rehydrateAll); 6221 document.addEventListener("swup:contentReplaced", rehydrateAll); 6222 document.addEventListener("barba:ready", rehydrateAll); 6223 document.addEventListener("barba:after", rehydrateAll); 6224 var mo = new MutationObserver(function(){ 6225 clearTimeout(window.__lfav_ob_to); 6226 window.__lfav_ob_to=setTimeout(function(){ hydrateToggles(); updateCounts(); }, 50); 6227 }); 6228 try{ mo.observe(document.documentElement,{childList:true,subtree:true}); }catch(e){} 6229 6230 if (document.readyState === "loading") { 6231 document.addEventListener("DOMContentLoaded", function(){ hydrateToggles(); renderFavList(false); updateCounts(); }); 6232 } else { 6233 hydrateToggles(); renderFavList(false); updateCounts(); 6234 } 6235})(); 6236 </script>
6236 6237
6237<script id="sok-tva-tecken" nowprocket> 6238(function () { 6239 var undantag = ["gw","vm"]; 6240 document.addEventListener('input', function (e) { 6241 var t = e.target; 6242 if (!t || !t.classList || !t.classList.contains('orig')) return; 6243 if (!window.ASP || !ASP.instances || typeof ASP.instances.get !== 'function') return; 6244 var fras = String(t.value || '').trim().toLowerCase(); 6245 for (var i = 0; i < 25; i++) { 6246 var inst = ASP.instances.get(3, i); 6247 if (inst === false || !inst || !inst.o) continue; 6248 if (inst.sokTvaOrig === undefined) inst.sokTvaOrig = inst.o.charcount; 6249 inst.o.charcount = undantag.indexOf(fras) !== -1 ? 2 : inst.sokTvaOrig; 6250 } 6251 }, true); 6252})(); 6253</script>
6253 6254
6254<script data-cfasync="false" data-no-optimize="1" data-no-defer="1"> 6255(function () { 6256 var konfig = {"affiliate":["to.tv4play.se","adt246.net","adtraction.com"],"stream":["svtplay.se","tv4play.se","urplay.se","viaplay.se","hbomax.com","max.com","discoveryplus.se","pluto.tv","plutotv.com"],"imdb":["imdb.com"]}; 6257 var egenVard = window.location.hostname; 6258 6259 function typFor(vard) { 6260 for (var typ in konfig) { 6261 for (var i = 0; i < konfig[typ].length; i++) { 6262 var d = konfig[typ][i]; 6263 if (vard === d || vard.slice(-(d.length + 1)) === '.' + d) return typ; 6264 } 6265 } 6266 return 'extern'; 6267 } 6268 6269 // epi-taggen skiljer trafikkällorna Ã¥t i Adtraction: Exp<programnamn> frÃ¥n 6270 // utgÃ¥ngna programsidor, tabla frÃ¥n tablÃ¥n. Den är enda kopplingen mellan 6271 // ett klick och vilket program det gällde. 6272 function epiFor(url) { 6273 try { 6274 var v = new URL(url).searchParams.get('epi'); 6275 return v ? v.slice(0, 90) : ''; 6276 } catch (e) { 6277 return ''; 6278 } 6279 } 6280 6281 // WP Rocket spelar upp klicket EN Gà NG TILL (syntetiskt, knappt en sekund senare) 6282 // när besökarens allra första interaktion är ett klick â sÃ¥ att fördröjd JS ska 6283 // hinna reagera. Utan spärren nedan dubbelräknas exakt de klick som betyder mest: 6284 // den som landar och gÃ¥r vidare direkt. Mätt i webbläsare 2026-08-12. 6285 var senaste = { href: '', tid: 0 }; 6286 6287 document.addEventListener('click', function (e) { 6288 try { 6289 if (typeof gtag !== 'function') return; 6290 6291 var lank = e.target && e.target.closest ? e.target.closest('a[href]') : null; 6292 if (!lank) return; 6293 6294 var vard = lank.hostname; 6295 if (!vard || vard === egenVard) return; // intern navigering 6296 if (lank.protocol !== 'http:' && lank.protocol !== 'https:') return; 6297 6298 var nu = Date.now();
6299 if (lank.href === senaste.href && nu - senaste.tid < 2000) return; 6300 senaste = { href: lank.href, tid: nu }; 6301 6302 gtag('event', 'utgaende_klick', { 6303 lank_typ: typFor(vard), 6304 destination: vard, 6305 sida: window.location.pathname.slice(0, 90), 6306 program: epiFor(lank.href) 6307 }); 6308 } catch (err) { 6309 // Mätning får aldrig stå i vägen för klicket. 6310 } 6311 }, true); 6312})(); 6313</script>
6313 6314
6314<script> 6315 (function() { 6316 if (typeof jQuery === 'undefined') return; 6317 6318 var lastSearchSent = ''; 6319 6320 // Bredare selector för Ajax Search Pro 6321 jQuery(document).on('input', 'input.orig, .ajaxsearchpro input', function() { 6322 var term = this.value.trim(); 6323 6324 clearTimeout(window.aspGA4Timer); 6325 window.aspGA4Timer = setTimeout(function() { 6326 if (term.length >= 3 && term !== lastSearchSent) { 6327 lastSearchSent = term; 6328 if (typeof gtag !== 'undefined') { 6329 gtag('event', 'search', { search_term: term }); 6330 console.log('GA4 Search sent:', term); 6331 } 6332 } 6333 }, 1500); 6334 }); 6335 6336 console.log('GA4 Search Tracking loaded'); 6337 })(); 6338 </script>
6338 6339 6340 6341 6342
6343<script src="https://webb-tv.nu/wp-content/themes/KiteTheme/assets/js/prepend-no-cache.js?ver=1790945803"></script>
6343 6344 6345 6346 6347<!-- Feedback Knapp HTML --> 6348<button id="feedback-trigger-btn-custom">Feedback</button> 6349 6350<!-- Feedback Modal/Popup HTML --> 6351<div id="feedback-modal-custom" class="feedback-modal-custom" style="display: none;"> 6352 <div class="feedback-modal-content-custom"> 6353 <span class="feedback-close-btn-custom">Ã</span> 6354 6355 <div id="feedback-step-1-custom" class="feedback-step-custom"> 6356 <h2>Vi värdesätter din Ã¥sikt!</h2> 6357 6358 <p style="font-size: 14px; margin-bottom: 10px;"> 6359 Hör gärna av dig om du hittar nÃ¥got som inte stämmer. <br>Har du frÃ¥gor hänvisar vi till vÃ¥r <a href="https://webb-tv.nu/kontakt/" >kontaktsida</a>. 6360</p> 6361 6362 <textarea id="feedback-question1-custom" rows="5" placeholder="Din feedback om sidan och dess funktioner..."></textarea> 6363 <button id="feedback-submit-main-btn-custom">Skicka feedback</button> 6364 </div> 6365 6366 <div id="feedback-step-thanks-custom" class="feedback-step-custom" style="display: none;"> 6367 <h2>Tack för din feedback!</h2> 6368 <p>Vi uppskattar att du tog dig tid. ð</p> 6369 <p><strong>Vi tar till oss av alla svar. Hör gärna av dig igen!</strong></p> <!-- Ny rad tillagd här --> 6370 <button id="feedback-close-thanks-btn-custom">Stäng</button> 6371 </div> 6372 </div> 6373</div> 6374 6375<!-- CSS för Feedback Popup --> 6376<style type="text/css"> 6377 #feedback-trigger-btn-custom { 6378 position: fixed; 6379 bottom: 30px; 6380 right: 20px; 6381 padding: 10px 20px; 6382 background-color: #007bff !important; 6383 color: white !important; 6384 border: none !important; 6385 border-radius: 5px; 6386 cursor: pointer; 6387 font-size: 16px; 6388 box-shadow: 2px 2px 10px rgba(0,0,0,0.2); 6389 z-index: 99998; 6390 text-indent: 0 !important; 6391 /* Standard är att den visas, döljs sedan av media query för mindre skärmar */ 6392 display: block; /* Eller inline-block / flex beroende pÃ¥ knappens natur, block är ok här */ 6393 } 6394 6395 .feedback-modal-custom { 6396 display: none; /* Styrs av JS, inte av skärmstorlek direkt */ 6397 position: fixed; 6398 z-index: 99999; 6399 left: 0; 6400 top: 0; 6401 width: 100%; 6402 height: 100%; 6403 overflow: auto; 6404 background-color: rgba(0,0,0,0.5); 6405 align-items: center; 6406 justify-content: center; 6407 } 6408 6409 .feedback-modal-content-custom { 6410 background-color: #fefefe; 6411 margin: auto; 6412 padding: 30px; 6413 border: 1px solid #888; 6414 width: 90%; 6415 max-width: 500px; 6416 border-radius: 8px; 6417 box-shadow: 0 4px 8px rgba(0,0,0,0.1); 6418 position: relative; 6419 text-align: center; 6420 } 6421 6422 .feedback-close-btn-custom { 6423 color: #aaa; 6424 position: absolute; 6425 top: 10px; 6426 right: 15px; 6427 font-size: 28px; 6428 font-weight: bold; 6429 cursor: pointer; 6430 } 6431 6432 .feedback-close-btn-custom:hover, 6433 .feedback-close-btn-custom:focus { 6434 color: black; 6435 text-decoration: none; 6436 } 6437 6438 .feedback-step-custom h2 { 6439 margin-top: 0; 6440 color: #333; 6441 margin-bottom: -4px !important; 6442 font-size: 24px; 6443 } 6444 .feedback-step-custom p { 6445 margin-bottom: 15px; 6446 color: #555; 6447 } 6448 6449 .feedback-step-custom textarea { 6450 width: calc(100% - 22px); 6451 padding: 10px; 6452 margin-bottom: 20px; 6453 border: 1px solid #ccc; 6454 border-radius: 4px; 6455 font-size: 16px; 6456 box-sizing: border-box; 6457 } 6458 6459 .feedback-modal-content-custom .feedback-step-custom #feedback-submit-main-btn-custom, 6460 .feedback-modal-content-custom .feedback-step-custom #feedback-close-thanks-btn-custom { 6461 background-color: #28a745 !important; 6462 color: white !important; 6463 padding: 10px 20px; 6464 border: none !important; 6465 border-radius: 4px; 6466 cursor: pointer; 6467 font-size: 16px; 6468 margin: 5px auto; 6469 display: inline-block; 6470 text-indent: 0 !important; 6471 font-weight: normal !important; 6472 } 6473 .feedback-modal-content-custom .feedback-step-custom #feedback-submit-main-btn-custom:hover, 6474 .feedback-modal-content-custom .feedback-step-custom #feedback-close-thanks-btn-custom:hover { 6475 opacity: 0.9; 6476 } 6477 6478 /* ---- NYTT FÃR ATT DÃLJA Pà MOBIL ---- */ 6479 @media (max-width: 767px) { /* Gäller för skärmar som är 767px breda eller smalare */ 6480 #feedback-trigger-btn-custom { 6481 /* display: none !important; Dölj knappen helt */ 6482 } 6483 } 6484 /* -------------------------------------- */ 6485 6486</style> 6487 6488<!-- JavaScript för Feedback Popup (INGA ÃNDRINGAR HÃR) -->
6489<script type="text/javascript"> 6490document.addEventListener('DOMContentLoaded', () => { 6491 const feedbackTriggerBtn = document.getElementById('feedback-trigger-btn-custom'); 6492 const feedbackModal = document.getElementById('feedback-modal-custom'); 6493 const closeBtn = document.querySelector('.feedback-close-btn-custom'); 6494 6495 const step1 = document.getElementById('feedback-step-1-custom'); 6496 const stepThanks = document.getElementById('feedback-step-thanks-custom'); 6497 6498 const submitMainBtn = document.getElementById('feedback-submit-main-btn-custom'); 6499 const closeThanksBtn = document.getElementById('feedback-close-thanks-btn-custom'); 6500 6501 const question1Input = document.getElementById('feedback-question1-custom'); 6502 6503 // --- KORREKTA VÃRDEN NU! --- 6504 const GOOGLE_FORM_ACTION_URL = 'https://docs.google.com/forms/d/e/1FAIpQLSeVYJNZA17qIiFzU9ajW6ICl3ipmjt1rKEtAWM5DsUXcnHFSA/formResponse'; 6505 const QUESTION1_ENTRY_ID = 'entry.2137745933'; 6506 // ----------------------------------- 6507 6508 // Kontrollera om feedback-knappen finns innan vi lägger till event listeners 6509 // Detta är viktigt eftersom knappen nu kan vara dold av CSS och JS kanske inte ska köras 6510 // om knappen inte är avsedd att visas. 6511 // Men i detta fall, lÃ¥t JS vara som det är, CSS sköter synligheten av själva trigger-knappen. 6512 // Om knappen är `display: none` kommer användaren ändÃ¥ inte kunna klicka pÃ¥ den. 6513 6514 if (feedbackTriggerBtn) { 6515 feedbackTriggerBtn.addEventListener('click', showModal); 6516 } 6517 if (closeBtn) { 6518 closeBtn.addEventListener('click', closeModal); 6519 } 6520 if (closeThanksBtn) { 6521 closeThanksBtn.addEventListener('click', closeModal); 6522 } 6523 6524 window.addEventListener('click', (event) => { 6525 if (feedbackModal && event.target === feedbackModal) { 6526 closeModal(); 6527 } 6528 }); 6529 6530 if (submitMainBtn) { 6531 submitMainBtn.addEventListener('click', () => { 6532 submitFeedback(); 6533 }); 6534 } 6535 6536 function showModal() { 6537 // Kontrollera om knappen faktiskt är synlig (valfritt, men kan vara bra) 6538 // Om feedbackTriggerBtn har display: none, kanske vi inte vill visa modalen. 6539 // Men det är enklare att bara lÃ¥ta CSS sköta detta. Om knappen inte syns, kan den inte klickas. 6540 if (feedbackModal) feedbackModal.style.display = 'flex'; 6541 showStep(step1); 6542 if (question1Input) question1Input.value = ''; 6543 } 6544 6545 function closeModal() { 6546 if (feedbackModal) feedbackModal.style.display = 'none'; 6547 } 6548 6549 function showStep(stepToShow) { 6550 if (step1) step1.style.display = 'none'; 6551 if (stepThanks) stepThanks.style.display = 'none'; 6552 if (stepToShow) stepToShow.style.display = 'block'; 6553 } 6554 6555 async function submitFeedback() { 6556 const formData = new FormData(); 6557 if (question1Input) { 6558 formData.append(QUESTION1_ENTRY_ID, question1Input.value.trim()); 6559 } else { 6560 formData.append(QUESTION1_ENTRY_ID, ""); 6561 } 6562 6563 try { 6564 showStep(stepThanks); 6565 await fetch(GOOGLE_FORM_ACTION_URL, { 6566 method: 'POST', 6567 body: formData, 6568 mode: 'no-cors' 6569 }); 6570 console.log('Feedback submitted (likely successfully).'); 6571 } catch (error) { 6572 console.error('Error submitting feedback:', error); 6573 showStep(step1); 6574 alert('Ett fel uppstod när din feedback skulle skickas. Försök igen senare.'); 6575 } 6576 } 6577}); 6578</script>
vendor: 1 bytes, line 6578
6578
6579<script> 6580/** 6581 * MOBILFIX FÃR HORISONTELL SCROLL (Svaj vänster-höger) 6582 * 6583 * Problem: Sidan kunde scrollas horisontellt pÃ¥ mobil (svaja vänster/höger) 6584 * Lösning: Sätt overflow-x: hidden pÃ¥ .pagewrapper (INTE pÃ¥ html/body för att inte förstöra menyn) 6585 * 6586 * Körs vid sidladdning och vid skärmrotation (porträtt â landskap) 6587 * Gäller endast skärmar ⤠768px bredd (mobil/tablet) 6588 * Gäller BARA pÃ¥ sidor (pages), INTE inlägg (posts) 6589 */ 6590/** 6591 * ð´ ELSE-GRENEN ÃR HELA POÃNGEN (Per 2026-09-14: "headern lägger sig helt till 6592 * vänster om man förminskar skärmvidden och sedan drar ut fönstret igen"). 6593 * 6594 * Funktionen körs vid VARJE resize men kunde förut bara sätta Pà . Drog man ut 6595 * fönstret igen lÃ¥g `max-width: 100vw` kvar som inline-stil, och inline slÃ¥r 6596 * stilarkets `body.contained .pagewrapper { max-width: 1400px; margin: 0 auto }`. 6597 * Utan 1400-gränsen har `margin: 0 auto` inget att centrera: wrappern blir hela 6598 * fönsterbredden medan innehÃ¥llet under behÃ¥ller sin indragning, och sidan ser 6599 * ut att ha glidit Ã¥t vänster. à terskapat 2026-09-14 genom att tvinga pÃ¥ samma 6600 * värde pÃ¥ en normal sida vid 1600 px â exakt Pers symptom. 6601 * 6602 * 𪤠TOM STRÃNG, INTE ETT NYTT VÃRDE. `style.maxWidth = ''` tar bort egenskapen ur 6603 * style-attributet sÃ¥ stilarket gäller igen. Att i stället skriva t.ex. '1400px' 6604 * hade lÃ¥st värdet inline och slagit ut varje mediefrÃ¥ga som rör wrappern. 6605 */ 6606function fixMobileOverflow() { 6607 // Kolla om det är en sida (page) och inte ett inlägg (single-post) 6608 var isPage = document.body.classList.contains('page'); 6609 var isPost = document.body.classList.contains('single-post'); 6610 var wrapper = document.querySelector('.pagewrapper'); 6611 if (!wrapper) return; 6612 6613 if (window.innerWidth <= 768 && isPage && !isPost) { 6614 wrapper.style.overflowX = 'hidden'; 6615 wrapper.style.maxWidth = '100vw'; 6616 } else { 6617 wrapper.style.overflowX = ''; 6618 wrapper.style.maxWidth = ''; 6619 } 6620} 6621 6622// Kör direkt vid sidladdning 6623fixMobileOverflow(); 6624 6625// Kör även vid skärmrotation/resize 6626window.addEventListener('resize', fixMobileOverflow); 6627</script>
6627 6628 6629
6630<script type='text/javascript' id='wd-asp-prereq-and-wrapper-js-before'>if ( typeof window.ASP == 'undefined') { window.ASP = {wp_rocket_exception: "DOMContentLoaded", ajaxurl: "https:\/\/webb-tv.nu\/wp-admin\/admin-ajax.php", home_url: "https:\/\/webb-tv.nu\/", rest_url: "https:\/\/webb-tv.nu\/wp-json\/", backend_ajaxurl: "https:\/\/webb-tv.nu\/wp-admin\/admin-ajax.php", asp_url: "https:\/\/webb-tv.nu\/wp-content\/plugins\/ajax-search-pro\/", upload_url: "https:\/\/webb-tv.nu\/wp-content\/uploads\/asp_upload\/", detect_ajax: 0, media_query: "UrUzlQ", version: "4.29.3", build: 5129, pageHTML: "", additional_scripts: [{"handle":"wd-asp-ajaxsearchpro-core","src":"https:\/\/webb-tv.nu\/wp-content\/plugins\/ajax-search-pro\/js\/min\/plugin\/optimized\/asp-core.min.js","prereq":[]},{"handle":"wd-asp-ajaxsearchpro-settings","src":"https:\/\/webb-tv.nu\/wp-content\/plugins\/ajax-search-pro\/js\/min\/plugin\/optimized\/asp-settings.min.js","prereq":["wd-asp-ajaxsearchpro"]},{"handle":"wd-asp-ajaxsearchpro-vertical","src":"https:\/\/webb-tv.nu\/wp-content\/plugins\/ajax-search-pro\/js\/min\/plugin\/optimized\/asp-results-vertical.min.js","prereq":["wd-asp-ajaxsearchpro"]},{"handle":"wd-asp-ajaxsearchpro-live","src":"https:\/\/webb-tv.nu\/wp-content\/plugins\/ajax-search-pro\/js\/min\/plugin\/optimized\/asp-live.min.js","prereq":["wd-asp-ajaxsearchpro"]},{"handle":"wd-asp-ajaxsearchpro-addon-woocommerce","src":"https:\/\/webb-tv.nu\/wp-content\/plugins\/ajax-search-pro\/js\/min\/plugin\/optimized\/asp-addons-woocommerce.min.js","prereq":["wd-asp-ajaxsearchpro-live"]}], script_async_load: true, font_url: "https:\/\/webb-tv.nu\/wp-content\/plugins\/ajax-search-pro\/css\/fonts\/icons\/icons2.woff2", init_only_in_viewport: true, cache: {"enabled":true,"type":"super_file","list":[],"url":"https:\/\/webb-tv.nu\/wp-content\/cache\/asp\/results\/","uid":0}, highlight: {"enabled":false,"data":[]}, debug: false, instances: {}, statistics: {"enabled":true,"record_results":true,"record_result_interactions":true,"results_page_dom_selector":""}, analytics: {"method":false,"tracking_id":"","event":{"focus":{"items":[]},"search_start":{"items":[]},"search_end":{"items":[]},"magnifier":{"items":[]},"return":{"items":[]},"try_this":{"items":[]},"facet_change":{"items":[]},"result_click":{"items":[]}}}}};</script>
6630<script type='text/javascript' src='https://webb-tv.nu/wp-content/plugins/ajax-search-pro/js/min/plugin/merged/asp-prereq-and-wrapper.min.js?ver=4.29.3' id='wd-asp-prereq-and-wrapper-js'></script>
6630</body> 6631</html> 6632<!-- Performance optimized by Redis Object Cache. Learn more: https://wprediscache.com -->
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.