PageSourceSearch

https://webb-tv.nu/tv6-play/

html webb-tv.nu collected 2026-10-02 12:56:44 UTC 380,533 bytes, 6,632 lines download raw bytes

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 &raquo; Webbflöde" href="https://webb-tv.nu/feed/" />
80<link rel="alternate" type="application/rss+xml" title="Webb-TV.nu &raquo; 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&#038;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="{&quot;animations&quot;:{&quot;pc&quot;:{&quot;settings&quot;:{&quot;anim&quot;:&quot;fadedrop&quot;,&quot;dur&quot;:100},&quot;results&quot;:{&quot;anim&quot;:&quot;fadedrop&quot;,&quot;dur&quot;:100},&quot;items&quot;:&quot;fadeInDown&quot;},&quot;mob&quot;:{&quot;settings&quot;:{&quot;anim&quot;:&quot;fadedrop&quot;,&quot;dur&quot;:&quot;100&quot;},&quot;results&quot;:{&quot;anim&quot;:&quot;fadedrop&quot;,&quot;dur&quot;:&quot;100&quot;},&quot;items&quot;:&quot;voidanim&quot;}},&quot;autocomplete&quot;:{&quot;enabled&quot;:0,&quot;trigger_charcount&quot;:0,&quot;googleOnly&quot;:0,&quot;lang&quot;:&quot;en&quot;,&quot;mobile&quot;:0},&quot;autop&quot;:{&quot;state&quot;:&quot;disabled&quot;,&quot;phrase&quot;:&quot;&quot;,&quot;count&quot;:5},&quot;charcount&quot;:3,&quot;closeOnDocClick&quot;:1,&quot;compact&quot;:{&quot;enabled&quot;:0,&quot;focus&quot;:1,&quot;width&quot;:&quot;100%&quot;,&quot;width_tablet&quot;:&quot;480px&quot;,&quot;width_phone&quot;:&quot;320px&quot;,&quot;closeOnMagnifier&quot;:1,&quot;closeOnDocument&quot;:0,&quot;position&quot;:&quot;fixed&quot;,&quot;overlay&quot;:0},&quot;cptArchive&quot;:{&quot;useAjax&quot;:0,&quot;selector&quot;:&quot;#main&quot;,&quot;url&quot;:&quot;&quot;},&quot;detectVisibility&quot;:0,&quot;divi&quot;:{&quot;bodycommerce&quot;:0},&quot;focusOnPageload&quot;:0,&quot;fss_layout&quot;:&quot;flex&quot;,&quot;highlight&quot;:0,&quot;highlightWholewords&quot;:1,&quot;homeurl&quot;:&quot;https:\/\/webb-tv.nu\/&quot;,&quot;is_results_page&quot;:0,&quot;isotopic&quot;:{&quot;itemWidth&quot;:&quot;200px&quot;,&quot;itemWidthTablet&quot;:&quot;200px&quot;,&quot;itemWidthPhone&quot;:&quot;200px&quot;,&quot;itemHeight&quot;:&quot;200px&quot;,&quot;itemHeightTablet&quot;:&quot;200px&quot;,&quot;itemHeightPhone&quot;:&quot;200px&quot;,&quot;pagination&quot;:1,&quot;rows&quot;:2,&quot;gutter&quot;:5,&quot;showOverlay&quot;:1,&quot;blurOverlay&quot;:1,&quot;hideContent&quot;:1},&quot;itemscount&quot;:1000,&quot;loaderLocation&quot;:&quot;auto&quot;,&quot;mobile&quot;:{&quot;trigger_on_type&quot;:1,&quot;click_action&quot;:&quot;ajax_search&quot;,&quot;return_action&quot;:&quot;ajax_search&quot;,&quot;click_action_location&quot;:&quot;same&quot;,&quot;return_action_location&quot;:&quot;same&quot;,&quot;redirect_url&quot;:&quot;?s={phrase}&quot;,&quot;elementor_url&quot;:&quot;https:\/\/webb-tv.nu\/?asp_ls={phrase}&quot;,&quot;menu_selector&quot;:&quot;#menu-toggle&quot;,&quot;hide_keyboard&quot;:0,&quot;force_res_hover&quot;:0,&quot;force_sett_hover&quot;:0,&quot;force_sett_state&quot;:&quot;none&quot;},&quot;override_method&quot;:&quot;get&quot;,&quot;overridewpdefault&quot;:1,&quot;prescontainerheight&quot;:&quot;400px&quot;,&quot;preventBodyScroll&quot;:0,&quot;preventEvents&quot;:0,&quot;rb&quot;:{&quot;action&quot;:&quot;nothing&quot;},&quot;resPage&quot;:{&quot;useAjax&quot;:0,&quot;selector&quot;:&quot;#main&quot;,&quot;trigger_type&quot;:1,&quot;trigger_facet&quot;:1,&quot;trigger_magnifier&quot;:0,&quot;trigger_return&quot;:0},&quot;results&quot;:{&quot;width&quot;:&quot;auto&quot;,&quot;width_tablet&quot;:&quot;auto&quot;,&quot;width_phone&quot;:&quot;auto&quot;,&quot;disableClick&quot;:false},&quot;resultsSnapTo&quot;:&quot;right&quot;,&quot;resultsposition&quot;:&quot;block&quot;,&quot;resultstype&quot;:&quot;vertical&quot;,&quot;sb&quot;:{&quot;redirect_action&quot;:&quot;ajax_search&quot;,&quot;redirect_location&quot;:&quot;same&quot;,&quot;redirect_url&quot;:&quot;?s={phrase}&quot;,&quot;elementor_url&quot;:&quot;https:\/\/webb-tv.nu\/?asp_ls={phrase}&quot;},&quot;scrollBar&quot;:{&quot;horizontal&quot;:{&quot;enabled&quot;:1}},&quot;scrollToResults&quot;:{&quot;enabled&quot;:0,&quot;offset&quot;:0},&quot;select2&quot;:{&quot;nores&quot;:&quot;Inga resultat p\u00e5&quot;},&quot;settings&quot;:{&quot;unselectChildren&quot;:1,&quot;unselectParent&quot;:0,&quot;hideChildren&quot;:0},&quot;settingsHideOnRes&quot;:0,&quot;settingsimagepos&quot;:&quot;right&quot;,&quot;settingsVisible&quot;:0,&quot;show_more&quot;:{&quot;enabled&quot;:0,&quot;url&quot;:&quot;?s={phrase}&quot;,&quot;elementor_url&quot;:&quot;https:\/\/webb-tv.nu\/?asp_ls={phrase}&quot;,&quot;action&quot;:&quot;ajax&quot;,&quot;location&quot;:&quot;same&quot;,&quot;infinite&quot;:1},&quot;singleHighlight&quot;:0,&quot;taxArchive&quot;:{&quot;useAjax&quot;:0,&quot;selector&quot;:&quot;#main&quot;,&quot;url&quot;:&quot;&quot;},&quot;lightbox&quot;:{&quot;overlay&quot;:true,&quot;overlayOpacity&quot;:0.7,&quot;overlayColor&quot;:&quot;#FFFFFF&quot;,&quot;nav&quot;:true,&quot;disableRightClick&quot;:true,&quot;close&quot;:true,&quot;animationSpeed&quot;:250,&quot;docClose&quot;:true,&quot;disableScroll&quot;:true,&quot;enableKeyboard&quot;:true},&quot;trigger&quot;:{&quot;delay&quot;:500,&quot;autocomplete_delay&quot;:310,&quot;update_href&quot;:0,&quot;facet&quot;:1,&quot;type&quot;:1,&quot;click&quot;:&quot;first_result&quot;,&quot;click_location&quot;:&quot;same&quot;,&quot;return&quot;:&quot;first_result&quot;,&quot;return_location&quot;:&quot;same&quot;,&quot;redirect_url&quot;:&quot;?s={phrase}&quot;,&quot;elementor_url&quot;:&quot;https:\/\/webb-tv.nu\/?asp_ls={phrase}&quot;,&quot;minWordLength&quot;:3,&quot;charcount_magnifier_enter&quot;:0,&quot;charcount&quot;:3},&quot;close_icon&quot;:{&quot;action&quot;:&quot;clear&quot;,&quot;close_results&quot;:true},&quot;wooShop&quot;:{&quot;useAjax&quot;:0,&quot;selector&quot;:&quot;#main&quot;,&quot;url&quot;:&quot;&quot;}}"></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 &#038; 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 &#038; 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&#038;as=1130292334&#038;t=2&#038;tk=1&#038;epi=TV6LiveStream&#038;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">&#8211; 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">&copy; WEBB-TV.nu&nbsp;&nbsp;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 : '&lt;img src=&quot;https://webb-tv.nu/wp-content/uploads/2016/01/tv6-play-meny.png&quot; alt=&quot;tv6-play&quot; width=&quot;42&quot; height=&quot;42&quot; class=&quot;pagelogo&quot; /&gt; TV6 Play &lt;span class=&quot;chblock&quot;&gt;&#8211; Pluto TV&lt;/span&gt;',
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 &#8211; 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.