/* ============================================================
   FORRE.NU — TEMA (demo)
   Facebook-skal möter tracker & community.
   Platt · hårfina kanter · tabulära siffror · inga gradienter.
   Runda avatarer = socialt · fyrkantiga = data/tävling.
   Ett token-system, två lägen (ljust default + [data-theme=dark]).
   ============================================================ */

/* -------------------- TOKENS: LJUST (default) -------------------- */
:root{
  --bg:#f0f2f5; --card:#ffffff; --inset:#f5f6f8;
  --ink:#0b0f14; --ink2:#465361; --dim:#6c7684; --faint:#7e8794;
  --line:#e4e7eb; --line2:#d8dce1; --zebra:#f6f7f9;
  --accent:#2796f2; --accent-ink:#1268c9; --accent-wash:#eaf4fe;
  --live:#1aa64b; --live-wash:#e7f6ec;
  /* --gold mörkad 2026-07-16 (designkritik, Kentas ok): #d99400 gav 2,57:1 mot vitt
     kort (underkänt WCAG AA för text). #a06f00 ger 4,7:1. Mörka läget behåller ljus guld. */
  --gold:#a06f00; --danger:#e0245e;
  /* rank (flat, aldrig gradient) */
  --champ:#8b3df0; --champ-w:#f3ecfe; --elite:#0f9c86; --elite-w:#e6f7f3;
  --dia:#2796f2; --dia-w:#eaf4fe; --plat:#0a9bb0; --plat-w:#e5f6f9; --gold-r:#c7960c;
  /* scoreboard = broadcast lower-third, mörk i BÅDA lägena (signaturton) */
  --board-bg:#0b0f14; --board-ink:#ffffff; --board-sub:#aeb8c6; --board-line:rgba(255,255,255,.10);
  --r:6px; --r-sm:4px;
  --shadow:0 1px 2px rgba(16,24,40,.04);
  /* ---- KANONISK SIDBREDD (BINDANDE, Kentas beslut 2026-07-26) ----
     ETT värde för hela sajten. Topbar, shoutbar, staffbar, .shell, footer och
     ALLA sidspecifika wrappers ska använda var(--shell-w) — aldrig en egen siffra.
     Historik: 1200px sattes 2026-07-14 som hårt krav i pulse-topdeck.css, men bara
     på toppdäcket. Basen här låg kvar på 1240 och sidfiler drev iväg (coins 1120,
     aimtrainer 1180, arcade 1200) → toppen, innehållet och footern linjerade inte.
     Nu är 1200 kanon överallt och bor på EN rad. Ny sida = var(--shell-w), punkt. */
  --shell-w:1200px;
}
/* -------------------- TOKENS: MÖRKT (tracker-grafit) -------------------- */
[data-theme="dark"]{
  --bg:#0f1114; --card:#16181d; --inset:#1c1f26;
  --ink:#eef1f5; --ink2:#aab3bf; --dim:#7c8695; --faint:#5b6472;
  --line:#24272e; --line2:#2d3139; --zebra:#1a1d23;
  --accent:#2796f2; --accent-ink:#57adff; --accent-wash:#12233a;
  --live:#2bd06b; --live-wash:#122317;
  --gold:#e0a72a; --danger:#f0436a;
  --champ:#b071ff; --champ-w:#241a35; --elite:#2fd0b3; --elite-w:#0f2b26;
  --dia:#57adff; --dia-w:#132538; --plat:#33c6dc; --plat-w:#0e2a30; --gold-r:#e0a72a;
  --board-bg:#1e2634; --board-ink:#ffffff; --board-sub:#9fb0c4; --board-line:rgba(255,255,255,.09);
  --shadow:0 1px 2px rgba(0,0,0,.3);
}

*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{background:var(--bg);color:var(--ink);font-family:'Roboto',sans-serif;font-size:14px;line-height:1.5;-webkit-font-smoothing:antialiased;transition:background .15s,color .15s}
.mono{font-variant-numeric:tabular-nums;font-feature-settings:"tnum" 1}
.disp{font-family:'Roboto',sans-serif}
a{color:inherit;text-decoration:none}
button{font-family:inherit;cursor:pointer;background:none;border:0;color:inherit;padding:0;font-size:inherit}
svg.ic{width:20px;height:20px;stroke:currentColor;fill:none;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round;display:block}
svg.ic.sm{width:16px;height:16px}
:focus-visible{outline:2px solid var(--accent);outline-offset:2px}

/* -------------------- DEMO-RAD -------------------- */
.demobar{position:sticky;top:0;z-index:60;background:var(--ink);color:#fff;display:flex;align-items:center;gap:4px;padding:0 14px;height:38px;font-size:12.5px}
[data-theme="dark"] .demobar{background:#05070a}
.demobar .lbl{font-family:'Roboto';font-weight:800;font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:#66b4ff;margin-right:10px}
.demobar .dl{padding:6px 11px;border-radius:var(--r);color:#c6cdd6;font-weight:600}
.demobar .dl:hover{background:rgba(255,255,255,.08);color:#fff}
.demobar .dl.on{color:#fff;background:rgba(39,150,242,.22)}
.demobar .sp{flex:1}
.demobar .tgl{display:flex;align-items:center;gap:8px;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.14);color:#fff;padding:6px 12px;border-radius:20px;font-weight:600;font-size:12px}
.demobar .tgl:hover{background:rgba(255,255,255,.14)}

/* -------------------- TOPBAR -------------------- */
/* Wrapper runt topbar+shoutbox: transparent på desktop (display:contents → ingen layouteffekt);
   blir flex-kolumn med shoutbox överst på mobil (se @media 820px). */
.pulse-topwrap{display:contents}
.top{position:sticky;top:38px;z-index:50;background:var(--card);border-bottom:1px solid var(--line)}
.top .in{max-width:var(--shell-w);margin:0 auto;height:58px;display:flex;align-items:center;gap:14px;padding:0 16px}
.brand{font-family:'Roboto';font-weight:900;font-size:22px;letter-spacing:-.02em;color:var(--ink)}
.brand b{color:var(--accent)}
.search{display:flex;align-items:center;gap:9px;background:var(--inset);border:1px solid var(--line);border-radius:var(--r);padding:8px 12px;width:230px;color:var(--dim)}
.search input{border:0;background:none;outline:none;font-family:inherit;font-size:13.5px;color:var(--ink);width:100%}
.top .tabs{display:flex;gap:2px;margin:0 auto}
.tab{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;min-width:74px;padding:0 8px;height:50px;border-radius:var(--r);color:var(--dim);position:relative}
.tab:hover{background:var(--inset)}
.tab.on{color:var(--accent)}
.tab.on::after{content:"";position:absolute;left:14px;right:14px;bottom:-8px;height:3px;background:var(--accent);border-radius:3px 3px 0 0}
.tab .tab-lbl{font-family:"Roboto",system-ui,sans-serif;font-size:8px;font-weight:700;letter-spacing:.06em;line-height:1;text-transform:uppercase;color:inherit;white-space:nowrap}
.tab .tab-ct{position:absolute;top:4px;right:6px;font-size:8.5px;font-weight:800;line-height:1.5;min-width:15px;text-align:center;background:var(--accent);color:#fff;border-radius:20px;padding:0 4px}
.top .right{display:flex;align-items:center;gap:8px}
.iconbtn{width:40px;height:40px;border-radius:50%;background:var(--inset);border:1px solid var(--line);display:grid;place-items:center;color:var(--ink2);position:relative}
.iconbtn:hover{filter:brightness(.97)}
.badge{position:absolute;top:-3px;right:-3px;min-width:17px;height:17px;padding:0 4px;border-radius:9px;background:var(--danger);color:#fff;font-size:10px;font-weight:700;display:grid;place-items:center;border:2px solid var(--card)}
.me{display:flex;align-items:center;gap:9px;padding:4px 12px 4px 4px;border:1px solid var(--line);border-radius:30px}
.me:hover{background:var(--inset)}
.avatar-ph{background:#cdd6df;background-image:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 40 40"><circle cx="20" cy="16" r="8" fill="%2395a2af"/><rect x="6" y="28" width="28" height="16" rx="8" fill="%2395a2af"/></svg>');background-size:cover;background-position:center}
[data-theme="dark"] .avatar-ph{background-color:#2a2f38}
.me .av{width:30px;height:30px;border-radius:50%}
.me small{font-weight:600;font-size:13px}
.me .lvl{color:var(--dim);font-weight:600}

/* -------------------- SHELL -------------------- */
/* width:100% är INTE valfritt (2026-07-26): .pulse-shell är display:flex/column och
   <main> är display:contents, så .shell är ett flex-ITEM. Med `margin:0 auto` blir
   cross-axis-marginalerna auto → flexboxen stänger av stretch och krymper elementet
   till innehållets bredd. Sidor med smalt innehåll renderade därför 1135px i stället
   för 1200 trots korrekt max-width. width:100% fyller, max-width kapar. */
.shell{width:100%;max-width:var(--shell-w);margin:0 auto;padding:18px 16px 60px;display:grid;gap:18px;align-items:start}
.shell.c3{grid-template-columns:250px 1fr 320px}
.shell.c2{grid-template-columns:1fr 320px}
.shell.clb{grid-template-columns:250px minmax(0,1fr)}
.dinpos{display:flex;align-items:center;gap:14px;background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:10px 16px;box-shadow:var(--shadow);flex:0 0 auto}
.dinpos .l{font-size:10px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--dim)}
.dinpos .v{font-family:'Roboto';font-weight:900;font-size:24px;line-height:1}
.dinpos .mv{display:inline-flex;align-items:center;gap:4px;font-weight:700;font-size:12.5px;color:var(--live)}
.dinpos .mv svg{width:14px;height:14px}
.dinpos .gap{font-size:11.5px;color:var(--dim)}
.dinpos .gap b{color:var(--ink);font-weight:700}
.rail{position:sticky;top:106px;display:flex;flex-direction:column;gap:14px}
.card{background:var(--card);border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--shadow)}
.pad{padding:14px}
/* Korttitel-mallen (Kentas beslut 2026-07-17: SAMMA på ALLA sidor — leaderboardens
   skala blev sajtens default): 12.5px/600/normal case/0 spärrning, tightare titelrad,
   samt .chd-ic-ikonchip (22px, färg = betydelse: grön live, guld ära, blå innehåll,
   lila sprites). Gamla stilen var 12px/800/VERSALER/.13em. */
.slabel{font-family:'Roboto';font-weight:600;font-size:12.5px;letter-spacing:0;text-transform:none;color:var(--dim)}
/* Konkav titelrad (Kenta 2026-07-17): 1px vit ljuskant överst + mycket ljus grå ton
   direkt under som tonar ut vid ~halva raden → ytan upplevs böjd inåt. Mörkt läge:
   samma idé men med svag ljus-sheen (stark vit linje skulle skrika mot mörk platta). */
.chd{display:flex;align-items:center;justify-content:space-between;padding:9px 13px;border-bottom:1px solid var(--line);background:linear-gradient(180deg,color-mix(in srgb,var(--ink) 3.5%,var(--card)) 0,var(--card) 55%);box-shadow:inset 0 1px 0 rgba(255,255,255,.8)}
[data-theme="dark"] .chd{box-shadow:inset 0 1px 0 rgba(255,255,255,.06)}
.chd a{font-size:12px;font-weight:600;color:var(--accent-ink)} /* 2026-07-16: accent-ink för länktext på kort (kontrast 3,1→5+ mot vitt; mörka läget får ljusare blå) */
.chd .slabel{display:inline-flex;align-items:center;gap:8px}
.chd-ic{width:22px;height:22px;border-radius:var(--r-sm);display:inline-flex;align-items:center;justify-content:center;font-size:12px;flex:0 0 auto}
.chd-ic i{line-height:1}
.chd-ic.ic-live{background:var(--live-wash);color:var(--live);animation:chdLivePulse 1.7s infinite}
.chd-ic.ic-gold,.chd-ic.ic-shop{background:var(--inset);color:var(--gold)}
.chd-ic.ic-comp,.chd-ic.ic-news{background:var(--accent-wash);color:var(--accent-ink)}
.chd-ic.ic-sprite{background:var(--inset);color:var(--champ)}
.chd-ic.ic-friends{background:var(--live-wash);color:var(--live)}
@keyframes chdLivePulse{0%{box-shadow:0 0 0 0 rgba(26,166,75,.5)}70%{box-shadow:0 0 0 7px rgba(26,166,75,0)}100%{box-shadow:0 0 0 0 rgba(26,166,75,0)}}
@media (prefers-reduced-motion:reduce){.chd-ic.ic-live{animation:none}}

/* rank badge */
.dgb{font-family:'Roboto';font-weight:700;font-size:11px;padding:2px 7px;border-radius:var(--r-sm);letter-spacing:.02em;white-space:nowrap}
.dgb.dia{color:var(--dia);background:var(--dia-w)} .dgb.champ{color:var(--champ);background:var(--champ-w)}
.dgb.elite{color:var(--elite);background:var(--elite-w)} .dgb.plat{color:var(--plat);background:var(--plat-w)}
.dgb.gold{color:var(--gold-r);background:color-mix(in srgb,var(--gold-r) 15%,transparent)}
.dgb.silver{color:#8b96a3;background:color-mix(in srgb,#8b96a3 16%,transparent)}

/* buttons */
.btn{display:inline-flex;align-items:center;gap:8px;font-weight:700;font-size:13.5px;padding:9px 16px;border-radius:var(--r);border:1px solid transparent}
.btn.p{background:var(--accent);color:#fff}
.btn.p:hover{background:var(--accent-ink)}
.btn.g{background:transparent;border-color:var(--line2);color:var(--ink)}
.btn.g:hover{border-color:var(--accent);color:var(--accent)}

/* -------------------- LEFT RAIL -------------------- */
.pmini{display:flex;align-items:center;gap:12px;padding:14px}
.pmini .av{width:46px;height:46px;border-radius:50%;flex:0 0 auto}
.pmini .nm{font-weight:700;font-size:15px}
.pmini .sub{font-size:12px;color:var(--dim);display:flex;align-items:center;gap:6px;margin-top:3px}
.nlist{padding:6px}
.nlink{display:flex;align-items:center;gap:12px;padding:9px 10px;border-radius:var(--r);color:var(--ink2);font-weight:600;font-size:13.5px}
.nlink:hover{background:var(--inset);color:var(--ink)}
.nlink .ico{color:var(--accent);flex:0 0 auto}
.nlink .ct{margin-left:auto;font-size:11px;font-weight:700;color:var(--dim);background:var(--inset);padding:2px 7px;border-radius:10px}
.nlink.hot .ct{color:var(--danger);background:color-mix(in srgb,var(--danger) 12%,transparent)}
.fon{display:flex;align-items:center;gap:10px;padding:7px 4px}
.fon .av{width:32px;height:32px;border-radius:50%;position:relative;flex:0 0 auto}
.fon .av i{position:absolute;right:-1px;bottom:-1px;width:11px;height:11px;border-radius:50%;background:var(--live);border:2px solid var(--card)}
.fon .nm{font-weight:600;font-size:13px}
.fon .st{margin-left:auto;font-size:11px;color:var(--dim)}

/* -------------------- CENTER: HUB -------------------- */
.center{display:flex;flex-direction:column;gap:14px;min-width:0}
.pdot{width:8px;height:8px;border-radius:50%;background:var(--live);box-shadow:0 0 0 0 rgba(26,166,75,.5);animation:pp 1.8s infinite}
@keyframes pp{70%{box-shadow:0 0 0 7px rgba(26,166,75,0)}100%{box-shadow:0 0 0 0 rgba(26,166,75,0)}}
@media (prefers-reduced-motion:reduce){.pdot{animation:none}}

.season{display:flex;align-items:center;gap:16px;padding:13px 16px}
.season .lv{display:inline-flex;align-items:center;gap:7px;font-family:'Roboto';font-weight:800;font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--live)}
.season .ttl{font-family:'Roboto';font-weight:900;font-size:17px;letter-spacing:-.01em}
.season .meta{font-size:12px;color:var(--dim)}
.season .bar{flex:1;height:6px;background:var(--inset);border:1px solid var(--line);border-radius:20px;overflow:hidden;min-width:80px}
.season .bar i{display:block;height:100%;width:35%;background:var(--accent)}
.season .cd{font-family:'Roboto';font-weight:900;font-size:21px;letter-spacing:.01em;text-align:right;white-space:nowrap}
.season .cd small{display:block;font-family:'Roboto';font-size:10px;font-weight:600;letter-spacing:.08em;color:var(--dim);text-transform:uppercase}
.season .pct{font-weight:800;font-size:11.5px;color:var(--accent);flex:0 0 auto}

.composer{display:flex;align-items:center;gap:12px;padding:14px}
.composer .av{width:40px;height:40px;border-radius:50%;flex:0 0 auto}
.composer .fake{flex:1;display:flex;align-items:center;gap:10px;background:var(--inset);border:1px solid var(--line);border-radius:22px;padding:11px 16px;color:var(--dim);font-size:14px;text-align:left}
.composer .fake:hover{border-color:var(--line2);background:var(--card)}
.composer .fake .ph-txt{flex:1}
.composer .fake .ic{color:var(--dim)}

.post .ph{display:flex;align-items:center;gap:11px;padding:14px 16px 10px}
.post .ph .av{width:42px;height:42px;border-radius:50%;flex:0 0 auto}
.post .ph .av.sq{border-radius:var(--r);background:var(--accent-wash);display:grid;place-items:center;color:var(--accent)}
.post .ph .nm{font-weight:700;font-size:14.5px;display:flex;align-items:center;gap:7px}
.post .ph .t{font-size:12px;color:var(--dim);margin-top:1px;display:flex;align-items:center;gap:6px}
.chiplbl{font-family:'Roboto';font-weight:700;font-size:10px;letter-spacing:.06em;text-transform:uppercase;padding:2px 7px;border-radius:var(--r-sm)}
.chiplbl.auto{color:var(--gold);background:color-mix(in srgb,var(--gold) 14%,transparent)}
.chiplbl.news{color:var(--accent);background:var(--accent-wash)}
/* Rank-chip bredvid författarnamnet på väggposter: S3 [ikon] Elite · 2.40 K/D · 87 W */
.post .ph .nm{flex-wrap:wrap}
.wallrank{display:inline-flex;align-items:center;gap:5px;font-weight:600;font-size:11.5px;color:var(--dim);white-space:nowrap}
.wallrank-season{font-weight:800;font-size:10px;letter-spacing:.03em;color:var(--accent);background:var(--accent-wash);padding:1px 5px;border-radius:var(--r-sm)}
.wallrank-ico{width:16px;height:16px;object-fit:contain;flex:0 0 auto}
.wallrank-lbl{font-weight:700;color:var(--ink)}
.wallrank-stat b{color:var(--ink);font-weight:700}
.wallrank-stat::before{content:"·";margin-right:5px;color:var(--dim)}
.post .more{margin-left:auto;color:var(--faint)}
.post .body{padding:2px 16px 12px;font-size:14.5px;color:var(--ink)}
.post .body b{font-weight:700}
/* Deep-link från notis: scroll-offset (klarar sticky topbar) + highlight-blink */
.post{scroll-margin-top:80px}
.post.tw-flash{animation:twPostFlash 2.6s ease-out}
@keyframes twPostFlash{
  0%,55%{box-shadow:0 0 0 2px var(--accent),var(--shadow);background:var(--accent-wash)}
  100%{box-shadow:0 0 0 0 rgba(0,0,0,0),var(--shadow);background:var(--card)}
}

/* @namn-omnämnanden (MentionService::linkify + klient-linkify i pulse.js).
   Pulse-tema: blå accent, funkar i både ljust och mörkt via tokens. */
.tw-mention{color:var(--accent);font-weight:600;text-decoration:none;transition:color .12s ease-out}
.tw-mention:hover{color:var(--accent-ink);text-decoration:underline}
.tw-mention--all{color:var(--gold);font-weight:700;padding:0 4px;border-radius:var(--r-sm);background:var(--accent-wash)}

/* --- @SID-MENTIONS (@lfg, @leaderboard, @faq …) — variant "naken ikon" -------
   Kentas val 2026-07-27. Registret: config/mention_pages.php. Renderas av
   MentionService::pageHtml() (server) + linkifyMentions() i pulse.js (klient).

   VARFÖR INGEN PLATTA: en sida ska inte kosta radhöjd. Ikonen bär signalen,
   texten ligger kvar i radrytmen (0 px extra höjd, ~44 px för "LFG").

   VARFÖR INTE BLÅ: --accent är RESERVERAT för person-mentions. Vore sidan också
   blå gick det inte att se skillnad på en människa och en plats — vilket var
   hela poängen. Sidan är --ink2 i vila och vaknar till accent först vid hover.

   Specificiteten är avsiktlig: .tw-mention.tw-mention--page (0,2,0) slår alltid
   .tw-mention (0,1,0) ovanför, oavsett om någon lägger till fler .tw-mention-
   regler senare i filen (jfr BRAIN §4 "senare block med samma selektor vinner"). */
.tw-mention.tw-mention--page{color:var(--ink2);font-weight:600;white-space:nowrap}
.tw-mention.tw-mention--page .bi{font-size:.85em;margin-right:3px;color:var(--dim);transition:color .12s ease-out}
.tw-mention.tw-mention--page:hover{color:var(--accent-ink);text-decoration:underline}
.tw-mention.tw-mention--page:hover .bi{color:var(--accent)}
/* Semantisk ikonfärg i viloläge (Kentas val 2026-07-27) — samma betydelser som
   ikonchipsen .chd-ic: guld = coins/duell/shop, grönt = närvaro/sändning,
   lila = sprites. Aldrig blått (se ovan). */
.tw-mention.tw-mention--gold .bi{color:var(--gold)}
.tw-mention.tw-mention--live .bi{color:var(--live)}
.tw-mention.tw-mention--champ .bi{color:var(--champ)}

/* Klickbara URL-länkar i inlägg/kommentarer (MentionService::linkifyUrls + pulse linkifyUrls). */
.tw-link{color:var(--accent);font-weight:600;text-decoration:none;word-break:break-all;transition:color .12s ease-out}
.tw-link:hover{color:var(--accent-ink);text-decoration:underline}

/* @mention-autocomplete-dropdownen injiceras av mention-autocomplete.js med
   FORRE_DARK-fallbacks (mörk yta/text) som Pulse inte definierar globalt (token-
   bron är scoped till .tw-bot). Override till Pulse-tema här. html[data-pulse]-
   prefixet ger högre specificitet än botens inline-<style> oavsett laddningsordning. */
html[data-pulse] .tw-mention-ac{background:var(--card);border:1px solid var(--line);border-radius:var(--r);box-shadow:0 8px 24px rgba(0,0,0,.18)}
html[data-pulse] .tw-mention-ac__item{color:var(--ink)}
html[data-pulse] .tw-mention-ac__item:hover,html[data-pulse] .tw-mention-ac__item.is-active{background:var(--accent);color:#fff}
html[data-pulse] .tw-mention-ac__avatar{background:var(--inset)}
/* Sid-gruppen i dropdownen (2026-07-27): rubrik + fyrkantig ikonruta.
   Fyrkantig = plats/data, rund avatar = person — temats egen regel. */
html[data-pulse] .tw-mention-ac__grp{background:var(--zebra);color:var(--faint);opacity:1}
html[data-pulse] .tw-mention-ac__icon{background:var(--inset);color:var(--ink2)}
html[data-pulse] .tw-mention-ac__item.is-active .tw-mention-ac__icon{background:rgba(255,255,255,.2);color:#fff}

.royale{margin:0 16px 12px;border:1px solid var(--line2);border-radius:var(--r);overflow:hidden}
.royale .rh{display:flex;align-items:center;gap:10px;padding:12px 14px;background:var(--board-bg);color:var(--board-ink)}
.royale .rh .crown{color:var(--gold)}
.royale .rh .vt{font-family:'Roboto';font-weight:900;font-size:15px;letter-spacing:.04em;text-transform:uppercase}
.royale .rh .md{margin-left:auto;font-size:11px;color:var(--board-sub);font-weight:600;letter-spacing:.08em;text-transform:uppercase}
.royale .rstats{display:grid;grid-template-columns:repeat(3,1fr)}
.royale .rstats div{padding:13px 14px;border-right:1px solid var(--line)}
.royale .rstats div:last-child{border-right:0}
.royale .rstats .k{font-family:'Roboto';font-weight:900;font-size:24px;line-height:1;white-space:nowrap}
.royale .rstats .k.kills{color:var(--live)}
.royale .rstats .l{font-size:11px;color:var(--dim);font-weight:600;margin-top:3px;letter-spacing:.04em;text-transform:uppercase}

.newsmedia{margin:0 16px 12px;border:1px solid var(--line);border-radius:var(--r);overflow:hidden;display:flex}
.newsmedia .th{width:150px;flex:0 0 auto;background:var(--inset);border-right:1px solid var(--line);display:grid;place-items:center;color:var(--faint)}
.newsmedia .nx{padding:14px}
.newsmedia .nx h4{font-family:'Roboto';font-weight:800;font-size:16px;line-height:1.25;margin-bottom:5px}
.newsmedia .nx p{font-size:13px;color:var(--ink2);line-height:1.5}

.pfoot{display:flex;align-items:center;gap:2px;padding:4px 8px;border-top:1px solid var(--line);color:var(--ink2)}
.act{flex:1;display:flex;align-items:center;justify-content:center;gap:8px;padding:10px;border-radius:var(--r);font-weight:600;font-size:13.5px;color:var(--ink2);transition:background .12s,color .12s}
.act:hover{background:var(--inset);color:var(--ink)}
.act.on{color:var(--accent)}
.act.on svg{fill:var(--accent);stroke:var(--accent)}
.pcount{display:flex;align-items:center;gap:6px;padding:8px 16px 2px;font-size:12.5px;color:var(--dim)}
.pcount .lk{width:18px;height:18px;border-radius:50%;background:var(--accent);display:grid;place-items:center;color:#fff}

/* -------------------- SIGNATUR: SPELAR NU -------------------- */
.ticker{overflow:hidden}
.ticker .th{display:flex;align-items:center;gap:9px;padding:12px 14px;border-bottom:1px solid var(--line)}
.ticker .th .lv{font-family:'Roboto';font-weight:900;font-size:13px;letter-spacing:.1em;text-transform:uppercase}
.ticker .th .ct{margin-left:auto;font-size:11px;font-weight:700;color:var(--live);background:var(--live-wash);padding:3px 9px;border-radius:12px}
.trow{display:grid;grid-template-columns:36px 1fr auto;gap:11px;align-items:center;padding:11px 14px;border-bottom:1px solid var(--line)}
.trow:last-child{border-bottom:0}
.trow .av{width:36px;height:36px;border-radius:var(--r-sm);background:var(--inset);border:1px solid var(--line);display:grid;place-items:center;font-family:'Roboto';font-weight:800;color:var(--ink2);position:relative}
.trow .av i{position:absolute;right:-3px;bottom:-3px;width:11px;height:11px;border-radius:50%;background:var(--live);border:2px solid var(--card)}
.trow .nm{font-weight:700;font-size:13.5px}
.trow .md{font-size:11.5px;color:var(--dim);margin-top:1px}
.trow .kx{text-align:right}
.trow .kx .kn{font-family:'Roboto';font-weight:900;font-size:20px;line-height:1;color:var(--live)}
.trow .kx .kl{font-size:10px;color:var(--dim);font-weight:600;letter-spacing:.06em;text-transform:uppercase}
a.trow{transition:background .12s}
a.trow:hover{background:var(--inset)}
.trow .tin{min-width:0;display:flex;flex-direction:column}
.trow .tin .nm{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.trow .kx .klive{display:inline-block;font-family:'Roboto';font-weight:800;font-size:10px;letter-spacing:.08em;color:var(--live);background:var(--live-wash);padding:3px 8px;border-radius:12px}
.tfoot{display:block;padding:10px 14px;text-align:center;font-size:12.5px;font-weight:600;color:var(--accent)}
.tfoot:hover{background:var(--inset)}

/* leaderboard mini (rail) */
.lbrow{display:grid;grid-template-columns:22px 34px 1fr auto;gap:10px;align-items:center;padding:9px 14px;border-bottom:1px solid var(--line)}
.lbrow:last-child{border-bottom:0}
.lbrow .rk{font-family:'Roboto';font-weight:900;font-size:15px;color:var(--faint);text-align:center}
.lbrow.p1 .rk{color:var(--gold-r)}.lbrow.p2 .rk{color:#9aa4b0}.lbrow.p3 .rk{color:#c47b3a}
.lbrow .av{width:34px;height:34px;border-radius:var(--r-sm);background:var(--inset);border:1px solid var(--line);display:grid;place-items:center;font-family:'Roboto';font-weight:800;font-size:13px;color:var(--ink2)}
.lbrow .nm{font-weight:600;font-size:13.5px}
.lbrow .nm small{display:block;font-size:11px;color:var(--dim);font-weight:500}
.lbrow .vr{font-family:'Roboto';font-weight:900;font-size:15px;color:var(--gold);display:flex;align-items:center;gap:5px}

.evrow{display:flex;align-items:center;gap:12px;padding:11px 14px;border-bottom:1px solid var(--line)}
.evrow:last-child{border-bottom:0}
.evrow .date{width:44px;flex:0 0 auto;text-align:center;border:1px solid var(--line);border-radius:var(--r-sm);overflow:hidden}
.evrow .date .m{font-size:9px;font-weight:800;letter-spacing:.1em;text-transform:uppercase;background:var(--accent);color:#fff;padding:2px}
.evrow .date .d{font-family:'Roboto';font-weight:900;font-size:17px;padding:3px 0}
.evrow .en{font-weight:700;font-size:13.5px}
.evrow .es{font-size:11.5px;color:var(--dim);margin-top:1px}
/* composer quick actions */
.cqrow{display:flex;gap:8px;padding:0 14px 13px;flex-wrap:wrap}
.cq{display:inline-flex;align-items:center;gap:7px;font-weight:600;font-size:12.5px;color:var(--ink2);background:var(--inset);border:1px solid var(--line);border-radius:20px;padding:6px 12px;transition:background .12s,color .12s,border-color .12s}
.cq:hover{color:var(--accent);border-color:color-mix(in srgb,var(--accent) 45%,var(--line));background:var(--accent-wash)}
.cq .bi{font-size:14px;color:var(--accent)}

/* -------------------- PAGE HEAD + FILTERS (leaderboard) -------------------- */
.phead{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;margin-bottom:14px;flex-wrap:wrap}
.phead h1{font-family:'Roboto';font-weight:900;font-size:30px;letter-spacing:-.02em;line-height:1}
.phead .psub{color:var(--dim);font-size:13px;margin-top:6px}
.segs{display:flex;gap:6px;flex-wrap:wrap}
.seg{display:flex;background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:3px;box-shadow:var(--shadow)}
.seg button{padding:7px 13px;border:0;background:transparent;border-radius:var(--r-sm);font-weight:700;font-size:12.5px;color:var(--ink2)}
.seg button.on{background:var(--accent);color:#fff}
.seg button:not(.on):hover{background:var(--inset)}

/* big leaderboard table */
.lbtable{overflow:hidden}
.lbt-h,.lbt-r{display:grid;grid-template-columns:50px 1fr 60px 60px 52px 64px 74px;gap:10px;align-items:center;padding:8px 16px}
.lbt-h{font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:var(--dim);font-weight:700;border-bottom:1px solid var(--line);background:var(--inset)}
.lbt-r{border-bottom:1px solid var(--line)}
.lbt-r:nth-child(odd){background:var(--zebra)}
.lbt-r:last-child{border-bottom:0}
.lbt-r:hover{background:var(--inset)}
/* Egen rad: eget klassnamn (lbt-me) — INTE .me, som är den globala miniprofil-pillen
   (rad 81/875) vars padding/gap/border annars skulle krossa radens grid-kolumner. */
.lbt-r.lbt-me{background:var(--accent-wash);box-shadow:inset 3px 0 0 var(--accent),inset -3px 0 0 var(--accent)}
#my-rank-row{scroll-margin-top:90px}
#my-rank-row:target{animation:lbMePulse 1.8s ease-out}
@keyframes lbMePulse{0%,20%{background:color-mix(in srgb,var(--accent) 26%,transparent)}100%{background:var(--accent-wash)}}
.num.score{color:var(--accent);font-weight:900}
/* rank + movement cell */
.rkcell{display:flex;align-items:center;gap:6px;justify-content:flex-start}
.rkcell .rk{font-family:'Roboto';font-weight:900;font-size:17px;color:var(--faint);min-width:18px;text-align:right}
.lbt-r.p1 .rkcell .rk{color:var(--gold-r)}.lbt-r.p2 .rkcell .rk{color:#9aa4b0}.lbt-r.p3 .rkcell .rk{color:#c47b3a}
.mv2{display:inline-flex;align-items:center;font-size:10px;font-weight:800;gap:1px}
.mv2.up{color:var(--live)} .mv2.down{color:var(--danger)} .mv2.flat{color:var(--faint)}
.mv2 svg{width:11px;height:11px}
.trend{display:inline-flex;align-items:center;gap:3px}
.trend.up{color:var(--live)} .trend.down{color:var(--danger)} .trend.flat{color:var(--dim)}
.trend svg{width:13px;height:13px}
.who{display:flex;align-items:center;gap:12px;min-width:0}
.who .av{width:34px;height:34px;border-radius:var(--r-sm);background:var(--inset);border:1px solid var(--line);display:grid;place-items:center;font-family:'Roboto';font-weight:800;font-size:13px;color:var(--ink2);position:relative;flex:0 0 auto}
.who .av.live i{position:absolute;right:-3px;bottom:-3px;width:11px;height:11px;border-radius:50%;background:var(--live);border:2px solid var(--card)}
.who>span:not(.av){display:flex;flex-direction:column;min-width:0}
.who .nm{font-weight:700;font-size:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:1.25}
.who .sub{font-size:11.5px;color:var(--dim);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:1.2}
.num{font-family:'Roboto';font-weight:800;font-size:14px;text-align:right}
.num.win{color:var(--gold)}

/* your placement card */
.place{padding:16px}
.place .big{font-family:'Roboto';font-weight:900;font-size:40px;line-height:1}
.place .mv{display:inline-flex;align-items:center;gap:5px;font-weight:700;font-size:12px;color:var(--live);margin-top:6px}
.place .mv.down{color:var(--danger)}

/* -------------------- PROFILE / TRACKER -------------------- */
.cover{border:1px solid var(--line);border-radius:var(--r);overflow:hidden;box-shadow:var(--shadow);background:var(--card)}
.cover .banner{height:120px;background:var(--inset);border-bottom:1px solid var(--line);position:relative}
[data-theme="dark"] .cover .banner{background:#1a1e26}
.cover .prow{position:relative;display:flex;align-items:flex-end;flex-wrap:wrap;gap:12px 16px;padding:14px 20px 16px 124px;min-height:46px}
.cover .pav{position:absolute;left:20px;top:-44px;width:88px;height:88px;border-radius:50%;border:4px solid var(--card);background:#cdd6df;margin:0}
.cover .pmeta{flex:1;min-width:180px;padding-bottom:4px}
.btn.only{width:40px;padding:9px;justify-content:center;gap:0}
.cover .pmeta h1{font-family:'Roboto';font-weight:900;font-size:24px;letter-spacing:-.01em;display:flex;align-items:center;gap:10px}
.plats{display:flex;gap:6px;margin-top:7px}
.plat-badge{font-size:10px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--ink2);background:var(--inset);border:1px solid var(--line);padding:3px 8px;border-radius:var(--r-sm)}
.cover .pacts{display:flex;gap:8px;padding-bottom:6px}

.statstrip{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin:14px 0}
.stat{padding:16px;text-align:left}
.stat .v{font-family:'Roboto';font-weight:900;font-size:30px;line-height:1;letter-spacing:-.01em}
.stat .v.good{color:var(--accent)} .stat .v.gold{color:var(--gold)}
.stat .l{font-size:11px;color:var(--dim);font-weight:600;text-transform:uppercase;letter-spacing:.06em;margin-top:6px}
.stat .d{font-size:11.5px;color:var(--live);font-weight:700;margin-top:4px}
.stat .d.down{color:var(--danger)}

/* rank panel */
.rankp{padding:18px}
.rankface{display:flex;align-items:center;gap:16px;margin-bottom:16px}
.shield{width:60px;height:60px;border-radius:var(--r);background:var(--inset);border:1px solid var(--line2);display:grid;place-items:center;font-family:'Roboto';font-weight:900;color:var(--dia);font-size:12px;line-height:1.1;text-align:center}
.rankface .big{font-family:'Roboto';font-weight:900;font-size:22px}
.rankface small{color:var(--dim);font-size:12.5px}
.xp{height:9px;background:var(--inset);border:1px solid var(--line);border-radius:8px;overflow:hidden}
.xp i{display:block;height:100%;width:62%;background:var(--accent)}
.xp-l{display:flex;justify-content:space-between;font-size:12px;color:var(--dim);margin-top:10px;font-weight:600}
.xp-l b{color:var(--ink)}

/* match history */
.mrow{display:grid;grid-template-columns:56px 1fr repeat(3,60px);gap:12px;align-items:center;padding:12px 16px;border-bottom:1px solid var(--line);position:relative}
.mrow:last-child{border-bottom:0}
.mrow .res{width:50px;display:inline-flex;align-items:center;justify-content:center;gap:4px;text-align:center;font-family:'Roboto';font-weight:900;font-size:12px;padding:6px 0;border-radius:var(--r-sm);font-variant-numeric:tabular-nums}
.mrow .res.win{color:#fff;background:linear-gradient(160deg,color-mix(in srgb,var(--gold) 80%,#ffe9a8),color-mix(in srgb,var(--gold) 85%,#6b4a00));box-shadow:0 1px 6px color-mix(in srgb,var(--gold) 45%,transparent);text-shadow:0 1px 1px rgba(0,0,0,.28)}
.mrow .res.win .bi{font-size:10px;line-height:1}
.mrow .res.top{color:var(--gold);background:color-mix(in srgb,var(--gold) 14%,transparent)}
.mrow .res.loss{color:var(--dim);background:var(--inset)}
.mrow.mwin{background:linear-gradient(90deg,color-mix(in srgb,var(--gold) 8%,transparent),transparent 58%)}
.mrow.mwin::before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:linear-gradient(180deg,color-mix(in srgb,var(--gold) 70%,#ffe9a8),var(--gold))}
.mrow .mmode{font-weight:700;font-size:13.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.mrow.mwin .mmode{color:var(--ink)}
.mrow .mtime{font-size:11.5px;color:var(--dim)}
.mrow .mc{text-align:right}
.mrow .mc .mv{font-family:'Roboto';font-weight:800;font-size:15px;font-variant-numeric:tabular-nums}
.mrow .mc .mv.mv-dim{color:var(--faint);font-weight:700}
.mrow .mc .ml{font-size:10px;color:var(--dim);text-transform:uppercase;letter-spacing:.05em}

/* percentile bars */
.pcts{padding:16px}
.pctrow{display:grid;grid-template-columns:120px 1fr 42px;gap:12px;align-items:center;padding:8px 0}
.pctrow .pl{font-size:12.5px;font-weight:600;color:var(--ink2)}
.pctrow .track{height:8px;background:var(--inset);border:1px solid var(--line);border-radius:8px;overflow:hidden}
.pctrow .track i{display:block;height:100%;background:var(--accent)}
.pctrow .pv{font-family:'Roboto';font-weight:800;font-size:13px;text-align:right}

/* -------------------- POST-POPUP (modal) -------------------- */
.pmodal{position:fixed;inset:0;z-index:100;display:none;align-items:flex-start;justify-content:center;padding:56px 16px;background:rgba(8,12,18,.55)}
.pmodal.open{display:flex}
.pm-card{width:100%;max-width:520px;background:var(--card);border:1px solid var(--line);border-radius:12px;box-shadow:0 24px 70px rgba(0,0,0,.4);overflow:hidden;animation:pmin .16s ease}
@keyframes pmin{from{transform:translateY(-8px);opacity:0}to{transform:none;opacity:1}}
@media(prefers-reduced-motion:reduce){.pm-card{animation:none}}
/* Släpp-zon highlight när en bild dras in i vägg-composern. */
.pmodal.pm-dragover .pm-card{outline:2px dashed var(--accent);outline-offset:-4px}
.pmodal.pm-dragover .pm-body{background:color-mix(in srgb,var(--accent) 8%,transparent)}
.pm-head{display:flex;align-items:center;justify-content:center;position:relative;padding:15px;border-bottom:1px solid var(--line)}
.pm-head h3{font-family:'Roboto';font-weight:800;font-size:16px}
.pm-close{position:absolute;right:10px;top:50%;transform:translateY(-50%);width:34px;height:34px;border-radius:50%;background:var(--inset);display:grid;place-items:center;color:var(--ink2)}
.pm-close:hover{filter:brightness(.96)}
.pm-user{display:flex;align-items:center;gap:10px;padding:14px 16px 4px}
.pm-user .av{width:42px;height:42px;border-radius:50%}
.pm-user .nm{font-weight:700;font-size:14.5px}
.pm-user .aud{font-size:11px;color:var(--ink2);font-weight:600;display:inline-flex;align-items:center;gap:5px;background:var(--inset);padding:4px 9px;border-radius:12px;margin-top:3px}
/* Synlighetsväljare (segmenterad): båda valen alltid synliga, valt läge ifyllt */
.pm-vis{display:inline-flex;gap:3px;background:var(--inset);border:1px solid var(--line);border-radius:20px;padding:3px;margin-top:4px}
.pm-vis-opt{display:inline-flex;align-items:center;gap:5px;font-size:11px;font-weight:700;color:var(--dim);padding:4px 11px;border-radius:16px;cursor:pointer;transition:background .12s,color .12s;white-space:nowrap}
.pm-vis-opt:hover{color:var(--ink)}
.pm-vis-opt.on{background:var(--accent);color:#fff}
.pm-vis-opt.on[data-pm-vis-opt="friends"]{background:var(--live)}
.pm-vis-hint{display:block;font-size:10.5px;color:var(--dim);margin-top:4px}
/* flödes-badge: inlägg som bara vänner ser */
.post .t .pvis-friends{display:inline-flex;align-items:center;gap:4px;font-size:10px;font-weight:800;letter-spacing:.02em;color:var(--live);background:var(--live-wash);padding:1px 7px;border-radius:10px}
.post .t .pvis-friends .bi{font-size:10px}
.pm-body{padding:8px 16px 12px}
.pm-body textarea{width:100%;min-height:104px;border:0;outline:none;resize:none;background:none;color:var(--ink);font-family:inherit;font-size:18px;line-height:1.5}
.pm-body textarea::placeholder{color:var(--dim)}
.pm-attach{display:flex;align-items:center;justify-content:space-between;border:1px solid var(--line);border-radius:var(--r);padding:8px 8px 8px 14px;margin:0 16px 14px}
.pm-attach .lbl{font-size:13.5px;font-weight:600}
.pm-tools{display:flex;gap:2px}
.pm-tool{width:40px;height:40px;border-radius:50%;display:grid;place-items:center}
.pm-tool:hover{background:var(--inset)}
.pm-tool.img{color:var(--live)} .pm-tool.poll{color:var(--gold)} .pm-tool.at{color:var(--accent)}
.pm-foot{padding:0 16px 16px}
.pm-post{width:100%;background:var(--accent);color:#fff;font-weight:700;font-size:15px;padding:12px;border-radius:var(--r)}
.pm-post:hover{background:var(--accent-ink)}
/* ---- Inläggsmodal: skydd mot messenger-krocken (.pm-*-namnrymden delas) ----
   pulse-messenger.css ([data-pulse] .pm-head/.pm-body/.pm-tools/.pm-tool/.pm-imgprev/.pm-imgrm
   = chat-bubblor) laddas efter och vinner annars över modalen: headern blev 50px-bubbla,
   verktygsraden display:none, emoji/poll-panelerna (display:flex) körde över [hidden].
   html[data-pulse] .pmodal ... har högre specificitet och återställer modalens design. */
html[data-pulse] .pmodal [hidden]{display:none!important}
html[data-pulse] .pmodal .pm-head{position:relative;width:auto;height:auto;border-radius:0;box-shadow:none;background:none;overflow:visible;display:flex;align-items:center;justify-content:center;padding:15px;border-bottom:1px solid var(--line);transition:none;cursor:default}
html[data-pulse] .pmodal .pm-head:hover{transform:none}
html[data-pulse] .pmodal .pm-body{display:block;flex:none;overflow:visible;padding:8px 16px 12px;background:none}
html[data-pulse] .pmodal .pm-tools{display:flex;gap:2px;align-self:auto}
html[data-pulse] .pmodal .pm-tool{width:40px;height:40px;border-radius:50%;display:grid;place-items:center;font-size:20px}
html[data-pulse] .pmodal .pm-tool:hover{background:var(--inset)}
html[data-pulse] .pmodal .pm-tool.img{color:var(--live)}
html[data-pulse] .pmodal .pm-tool.poll{color:var(--gold)}
html[data-pulse] .pmodal .pm-tool.at{color:var(--accent)}
html[data-pulse] .pmodal .pm-imgprev{position:relative;padding:0;margin:8px 0;border:1px solid var(--line);border-radius:var(--r);overflow:hidden}
html[data-pulse] .pmodal .pm-imgprev img{display:block;width:100%;height:auto;max-height:300px;object-fit:cover;border-radius:0}
html[data-pulse] .pmodal .pm-imgrm{position:absolute;top:8px;right:8px;left:auto;width:28px;height:28px;line-height:1;border-radius:50%;background:rgba(8,12,18,.65);color:#fff;display:grid;place-items:center;font-size:13px}


/* -------------------- PROFILE (social) -------------------- */
.ptabs{display:flex;gap:2px;border-top:1px solid var(--line);padding:2px 12px 0;overflow:hidden}
.ptab{padding:13px 14px;font-weight:700;font-size:13.5px;color:var(--ink2);border-bottom:3px solid transparent;margin-bottom:-1px;white-space:nowrap}
.ptab:hover{color:var(--ink)}
.ptab.on{color:var(--accent);border-bottom-color:var(--accent)}

.about{padding:14px}
.about p{font-size:13.5px;color:var(--ink2);line-height:1.62}
.about .meta{display:flex;flex-direction:column;gap:9px;margin-top:13px}
.about .mrow{display:flex;align-items:center;gap:9px;font-size:12.5px;color:var(--ink2)}
.about .mrow svg{color:var(--dim);flex:0 0 auto}
.about .mrow b{color:var(--ink);font-weight:600}

.socials{display:grid;grid-template-columns:1fr 1fr;gap:8px;padding:14px}
.slink{display:flex;align-items:center;gap:10px;padding:8px 10px;border:1px solid var(--line);border-radius:var(--r);font-weight:700;font-size:12.5px;color:var(--ink);min-width:0}
.slink:hover{background:var(--inset);border-color:var(--line2)}
.slink .si{width:30px;height:30px;border-radius:var(--r-sm);display:grid;place-items:center;color:#fff;flex:0 0 auto}
.slink span{min-width:0;overflow:hidden}
.slink small{display:block;font-size:10.5px;color:var(--dim);font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.si.twitch{background:#9146ff} .si.youtube{background:#ff0000} .si.tiktok{background:#111}
.si.discord{background:#5865f2} .si.x{background:#111} .si.kick{background:#53fc18;color:#000}

.statsum{padding:4px 2px 8px}
.ssrow{display:flex;align-items:center;justify-content:space-between;padding:9px 14px;border-bottom:1px solid var(--line)}
.ssrow:last-child{border-bottom:0}
.ssrow .l{font-size:12.5px;color:var(--ink2);font-weight:500}
.ssrow .v{font-family:'Roboto';font-weight:800;font-size:15px}
.ssrow .v.good{color:var(--accent)} .ssrow .v.gold{color:var(--gold)}
.seelink{display:block;text-align:center;padding:11px;font-size:12.5px;font-weight:600;color:var(--accent);border-top:1px solid var(--line)}
.seelink:hover{background:var(--inset)}

.visitors{padding:14px}
.vavs{display:flex;margin:8px 0 10px}
.vavs .va{width:34px;height:34px;border-radius:50%;border:2px solid var(--card);margin-left:-8px}
.vavs .va:first-child{margin-left:0}
.vavs .more{width:34px;height:34px;border-radius:50%;border:2px solid var(--card);margin-left:-8px;background:var(--inset);display:grid;place-items:center;font-size:11px;font-weight:700;color:var(--ink2)}
.vstat{font-size:12.5px;color:var(--dim)}
.vstat b{color:var(--ink);font-weight:700}

.wallhint{font-size:12px;color:var(--dim);padding:0 16px 4px;margin-top:-2px}
.wallhint b{color:var(--ink);font-weight:600}

/* -------------------- SHOUTBOX (slim ticker + utfällbar panel) -------------------- */
.sbar{position:sticky;top:96px;z-index:41;background:var(--card);border-bottom:1px solid var(--line);cursor:pointer;user-select:none}
.sbar .in{max-width:var(--shell-w);margin:0 auto;height:38px;display:flex;align-items:center;gap:12px;padding:0 16px}
.sbar:hover{background:var(--inset)}
.sbar .lbl2{display:inline-flex;align-items:center;gap:7px;font-family:'Roboto';font-weight:800;font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--accent);flex:0 0 auto}
.sbar .tick{flex:1;min-width:0;display:flex;align-items:center;gap:8px;font-size:13px;overflow:hidden;white-space:nowrap;transition:opacity .3s}
.sbar .tick.fade{opacity:0}
.sbar .tick .u{font-weight:700;color:var(--ink);flex:0 0 auto}
.sbar .tick .m{color:var(--ink2);overflow:hidden;text-overflow:ellipsis}
.sbar .on{display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:600;color:var(--live);flex:0 0 auto}
.sbar .on .pdot{width:7px;height:7px}
.sbar .chev{color:var(--dim);transition:transform .18s;flex:0 0 auto}
.sbar.open .chev{transform:rotate(180deg)}

.sbox{display:none;background:var(--card);border-bottom:1px solid var(--line);box-shadow:var(--shadow)}
.sbox.open{display:block}
.sbox .in{max-width:var(--shell-w);margin:0 auto;padding:12px 16px}
.sbox .panel{max-width:460px;border:1px solid var(--line);border-radius:var(--r);background:var(--inset);padding:10px 12px}
.sbox .list{max-height:280px;overflow:auto}
.smsg{display:flex;gap:9px;padding:7px 2px}
.smsg .a{width:30px;height:30px;border-radius:50%;flex:0 0 auto;display:grid;place-items:center;font-family:'Roboto';font-weight:800;font-size:11px;color:#fff}
.smsg .c{min-width:0;flex:1}
.smsg .h{display:flex;align-items:center;gap:6px}
.smsg .h .u{font-weight:700;font-size:13px;color:var(--ink)}
.smsg .h .t{margin-left:auto;font-size:10px;color:var(--dim);font-variant-numeric:tabular-nums}
.smsg .m{font-size:13px;color:var(--ink2);line-height:1.4;word-wrap:break-word}
.rb{font-size:8px;font-weight:800;letter-spacing:.05em;text-transform:uppercase;padding:1px 5px;border-radius:3px;flex:0 0 auto}
.rb.admin{color:#fff;background:var(--danger)} .rb.mod{color:#fff;background:var(--accent)} .rb.vip{color:#3a2c00;background:var(--gold)}
.sbox-input{display:flex;gap:8px;align-items:center;border-top:1px solid var(--line);padding-top:10px;margin-top:8px}
.sbox-input input{flex:1;background:var(--card);border:1px solid var(--line);border-radius:20px;padding:8px 14px;font-size:13px;color:var(--ink);outline:none;font-family:inherit}
.sbox-input input:focus{border-color:var(--accent)}
.sbox-send{width:36px;height:36px;border-radius:50%;background:var(--accent);color:#fff;display:grid;place-items:center;flex:0 0 auto}
.sbox-send:hover{background:var(--accent-ink)}
.sbox-foot{font-size:11px;color:var(--dim);text-align:center;margin-top:10px}

/* -------------------- PLAYSTYLE DNA (mini, vänsterspalt) -------------------- */
.dna{padding:14px}
.dna .top{display:flex;align-items:center;justify-content:space-between;margin-bottom:2px}
.dna .arche{font-family:'Roboto';font-weight:900;font-size:15px}
.dna .form{font-size:10px;font-weight:700;color:var(--live);display:inline-flex;align-items:center;gap:5px;white-space:nowrap}
.dna .cap{font-size:11px;color:var(--dim);margin-bottom:6px}
.dna .cap b{color:var(--accent);font-weight:700}
.dna svg.radar{display:block;margin:2px auto 0;width:100%;max-width:190px;height:auto}
.dna .rg-grid{fill:none;stroke:var(--line2);stroke-width:1}
.dna .rg-axis{stroke:var(--line2);stroke-width:1}
.dna .rg-area{fill:color-mix(in srgb,var(--accent) 22%,transparent);stroke:var(--accent);stroke-width:2;stroke-linejoin:round}
.dna .rg-dot{fill:var(--accent)}
.dna .rg-lbl{fill:var(--dim);font-family:'Roboto';font-weight:800;font-size:7px;letter-spacing:.04em}
.dna .rg-lbl.on{fill:var(--ink2)}

/* -------------------- RESPONSIVE -------------------- */
@media(max-width:1100px){.shell.c3{grid-template-columns:1fr 320px}.shell.clb{grid-template-columns:1fr}.left{display:none}.statstrip{grid-template-columns:repeat(2,1fr)}}
@media(max-width:820px){
  .shell.c3,.shell.c2,.shell.clb{grid-template-columns:1fr}.right{display:none}.top .tabs{display:none}.rail{position:static}
  .lbt-h{display:none}
  .lbt-r{grid-template-columns:44px 1fr 54px 64px;row-gap:2px}
  .lbt-r .col-kills,.lbt-r .col-wins,.lbt-r .col-matcher{display:none}
  .ptabs{overflow-x:auto}
}

/* ================= PULSE real-theme additions (topbar/nav/footer, no demobar) ================= */
[data-pulse] .top{top:0}
[data-pulse] .sbar{top:58px}
[data-pulse] .rail{top:106px}
.tabs-txt{display:flex;gap:2px;margin:0 auto;flex-wrap:wrap}
.ntab{padding:8px 12px;border-radius:var(--r);color:var(--ink2);font-weight:700;font-size:13.5px}
.ntab:hover{background:var(--inset);color:var(--ink)}
.playnow{display:inline-flex;align-items:center;gap:7px;font-size:12.5px;font-weight:600;color:var(--live);background:var(--live-wash);padding:6px 11px;border-radius:20px;white-space:nowrap}
.onlinenow{display:inline-flex;align-items:center;gap:7px;font-size:12.5px;font-weight:600;color:var(--accent-ink);background:var(--accent-wash);padding:6px 11px;border-radius:20px;white-space:nowrap}
.odot{width:8px;height:8px;border-radius:50%;background:var(--accent);flex:0 0 auto}
.top .tgl{display:flex;align-items:center;gap:7px;background:var(--inset);border:1px solid var(--line);color:var(--ink2);padding:7px 12px;border-radius:20px;font-weight:600;font-size:12px}
.top .tgl:hover{border-color:var(--line2)}
/* Sticky-footer: body blir flex-kolumn så footern alltid sitter längst ner även på korta sidor. */
.pulse-shell{min-height:100vh;display:flex;flex-direction:column}
.pulse-shell>.pulse-footer{margin-top:auto}
.pulse-footer{border-top:1px solid var(--line);background:var(--card);margin-top:24px}
.pf-in{max-width:var(--shell-w);margin:0 auto;padding:22px 16px;display:flex;align-items:center;justify-content:space-between;gap:16px 28px;flex-wrap:wrap}
.pf-brandwrap{display:flex;flex-direction:column;gap:3px;min-width:0}
.pf-brand{font-family:'Roboto';font-weight:900;font-size:16px;letter-spacing:.2px;color:var(--ink);text-decoration:none}
.pf-brand b{color:var(--accent)}
.pf-tag{font-size:12.5px;color:var(--dim)}
.pf-links{display:flex;flex-wrap:wrap;align-items:center;gap:4px 2px}
.pf-links a{position:relative;font-size:12.5px;font-weight:600;color:var(--dim);text-decoration:none;padding:4px 11px;border-radius:var(--r-sm);transition:color .12s ease-out,background .12s ease-out}
.pf-links a:not(:last-child)::after{content:"";position:absolute;right:-1px;top:50%;transform:translateY(-50%);width:1px;height:11px;background:var(--line)}
.pf-links a:hover{color:var(--accent);background:var(--inset)}
.pf-bottom{border-top:1px solid var(--line);max-width:var(--shell-w);margin:0 auto;padding:11px 16px;display:flex;align-items:center;justify-content:space-between;gap:6px 22px;flex-wrap:wrap}
.pf-copy{font-size:11.5px;color:var(--dim);font-weight:600}
.pf-note{font-size:11px;color:var(--dim);opacity:.72}
@media(max-width:820px){
  .pf-in{flex-direction:column;align-items:flex-start;gap:12px}
  .pf-links{gap:2px}
  .pf-bottom{flex-direction:column;align-items:flex-start;gap:5px}
  .pulse-footer{margin-bottom:calc(58px + env(safe-area-inset-bottom,0px))} /* rensa fast bottennav */
}
@media(max-width:820px){[data-pulse] .sbar{top:58px}.tabs-txt{display:none}}
/* Shoutbox = slimmad ticker pa mobil: kaffe-dubbletten (finns i drawern) doljs och
   etiketten kortas till bara megafon-ikonen -> tickern far full bredd, mindre plottrigt. */
@media(max-width:820px){
  [data-pulse] .sbar .sb-coffee{display:none}
  [data-pulse] .sbar .in{gap:9px}
  [data-pulse] .sbar .lbl2{font-size:0;gap:0}
  [data-pulse] .sbar .lbl2 .bi{font-size:15px}
}

/* ================= PULSE topbar dropdowns (notiser/meddelanden) ================= */
.tb-item{position:relative}
.tb-searchbtn{display:none}
.tb-dd{position:absolute;top:48px;right:0;width:344px;max-width:92vw;background:var(--card);border:1px solid var(--line);border-radius:var(--r);box-shadow:0 14px 44px rgba(20,30,50,.18);display:none;z-index:70;overflow:hidden}
.tb-dd.open{display:block}
.tb-dd .ddh{display:flex;align-items:center;justify-content:space-between;padding:12px 14px;border-bottom:1px solid var(--line)}
.tb-dd .ddh h4{font-family:'Roboto';font-weight:800;font-size:14px}
.tb-dd .ddh a{font-size:12px;color:var(--accent);font-weight:600}
.tb-dd .ddh .ddh-acts{display:flex;align-items:center;gap:12px}
.tb-dd .ddh .ddh-gear{display:inline-flex;font-size:14px;color:var(--dim)}
.tb-dd .ddh .ddh-gear:hover{color:var(--accent)}
.tb-dd .ddlist{max-height:400px;overflow:auto}
.ddrow{display:flex;gap:10px;padding:10px 14px;border-bottom:1px solid var(--line);align-items:flex-start;color:inherit}
.ddrow:last-child{border-bottom:0}
.ddrow:hover{background:var(--inset)}
.ddrow.unread{background:var(--accent-wash)}
a.ddrow{text-decoration:none;cursor:pointer}
a.ddrow:hover .c .tt{color:var(--accent)}
.ddrow .av{width:36px;height:36px;border-radius:50%;flex:0 0 auto}
.ddrow .c{min-width:0;flex:1}
.ddrow .c .tt{font-size:13px;color:var(--ink);line-height:1.35;display:block}
.ddrow .c .tm{font-size:11px;color:var(--dim);margin-top:2px;display:block}
.dd-empty{padding:26px 14px;text-align:center;color:var(--dim);font-size:13px;display:flex;flex-direction:column;align-items:center;gap:8px}
.dd-empty i{font-size:26px;opacity:.6}
.dd-sec{font-size:10px;font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:var(--dim);padding:10px 14px 4px}

/* ===== Notis-dropdown: typtemad, minst ~5 rader synliga + footer-länk ===== */
.tb-dd--notifs .ddlist{max-height:420px;min-height:64px}
.ddrow--notif{align-items:center;position:relative;padding:11px 14px}
.ddrow--notif .nic{position:relative;flex:0 0 auto;width:40px;height:40px;--ntc:var(--accent)}
.ddrow--notif .nic-main{width:40px;height:40px;border-radius:50%;display:grid;place-items:center;font-size:15px;
  color:var(--ntc);background:color-mix(in srgb,var(--ntc) 15%,transparent);background-clip:padding-box}
.ddrow--notif .nic-main.has-av{background-size:cover;background-position:center;color:transparent}
.ddrow--notif .nic-badge{position:absolute;right:-3px;bottom:-3px;width:19px;height:19px;border-radius:50%;
  display:grid;place-items:center;font-size:9px;color:#fff;background:var(--ntc);border:2px solid var(--card)}
/* Läst = debold (dämpad), oläst = bold + grön prick */
.ddrow--notif .c .tt,
.ddrow--notif .c .tt b{font-weight:500;color:var(--dim)}
.ddrow--notif.unread .c .tt,
.ddrow--notif.unread .c .tt b{font-weight:800;color:var(--ink)}
.ddrow--notif .ndot{flex:0 0 auto;width:9px;height:9px;border-radius:50%;background:#22c55e;align-self:center;box-shadow:0 0 0 3px color-mix(in srgb,#22c55e 22%,transparent)}
/* Vänsterkant-accent på olästa, i notistypens färg */
.ddrow--notif.unread{box-shadow:inset 3px 0 0 var(--ntc)}
/* Kategori-färger (fungerar i ljust + mörkt) */
.ddrow--notif .nic[data-nt="friend"]{--ntc:#2796f2}
.ddrow--notif .nic[data-nt="like"]{--ntc:#f43f5e}
.ddrow--notif .nic[data-nt="comment"]{--ntc:#3b82f6}
.ddrow--notif .nic[data-nt="mention"]{--ntc:#8b5cf6}
.ddrow--notif .nic[data-nt="post"]{--ntc:#22c55e}
.ddrow--notif .nic[data-nt="lfg"]{--ntc:#10b981}
.ddrow--notif .nic[data-nt="squad"]{--ntc:#f59e0b}
.ddrow--notif .nic[data-nt="reward"]{--ntc:#eab308}
.ddrow--notif .nic[data-nt="news"]{--ntc:#06b6d4}
.ddrow--notif .nic[data-nt="fortnite"]{--ntc:#f97316}
.ddrow--notif .nic[data-nt="system"]{--ntc:#64748b}
.ddrow--notif[data-nt="friend"]{--ntc:#2796f2}
.ddrow--notif[data-nt="like"]{--ntc:#f43f5e}
.ddrow--notif[data-nt="comment"]{--ntc:#3b82f6}
.ddrow--notif[data-nt="mention"]{--ntc:#8b5cf6}
.ddrow--notif[data-nt="post"]{--ntc:#22c55e}
.ddrow--notif[data-nt="lfg"]{--ntc:#10b981}
.ddrow--notif[data-nt="squad"]{--ntc:#f59e0b}
.ddrow--notif[data-nt="reward"]{--ntc:#eab308}
.ddrow--notif[data-nt="news"]{--ntc:#06b6d4}
.ddrow--notif[data-nt="fortnite"]{--ntc:#f97316}
.ddrow--notif[data-nt="system"]{--ntc:#64748b}
.ddrow--notif{--ntc:var(--accent)}
.dd-foot{display:flex;align-items:center;justify-content:center;gap:7px;padding:11px 14px;
  border-top:1px solid var(--line);font-size:12.5px;font-weight:700;color:var(--accent);
  text-decoration:none;background:var(--card)}
.dd-foot:hover{background:var(--inset)}
.dd-foot i{font-size:13px;transition:transform .12s}
.dd-foot:hover i{transform:translateX(2px)}
.fr-actions{display:flex;gap:6px;margin-top:6px}
.fr-actions form{display:inline;margin:0}
.fr-actions button{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border:0;border-radius:var(--r-sm);cursor:pointer;color:#fff;font-size:14px;line-height:1;transition:filter .12s ease-out}
.fr-actions button:hover{filter:brightness(1.1)}
.fr-actions .fr-accept{background:var(--live,#22c55e)}
.fr-actions .fr-decline{background:var(--danger,#ef4444)}
.fr-actions .bi{font-size:14px}

/* ============ Bootstrap Icons + scrollande shoutbox + klickbara namn ============ */
.top .bi{font-size:19px;line-height:1;display:inline-flex}
.top .tgl .bi{font-size:14px}
.search .bi{font-size:15px;color:var(--dim)}
.sbar .lbl2 .bi{font-size:14px}
.sbar .chev.bi{font-size:15px}
.sbox-send .bi{font-size:15px}

.sbar .tick{position:relative;overflow:hidden}
.ticktrack{display:inline-flex;gap:30px;white-space:nowrap;padding-right:30px;animation:tickmove 42s linear infinite;will-change:transform}
.tick:hover .ticktrack{animation-play-state:paused}
.tk{display:inline-flex;align-items:center;gap:7px;font-size:13px}
.tk b{font-weight:700;color:var(--ink)}
.tk .tm2{color:var(--ink2)}
@keyframes tickmove{from{transform:translateX(0)}to{transform:translateX(-50%)}}

a.pl-name{color:inherit;text-decoration:none}
a.pl-name:hover{color:var(--accent);text-decoration:underline}
.smsg .h a.u{color:var(--ink);text-decoration:none}
.smsg .h a.u:hover{color:var(--accent)}
.lbrow .vr .bi{color:var(--gold)}
.lbrow.p1{box-shadow:inset 3px 0 0 var(--gold)}

/* ============ Rank-tier badges (Bronze..Unreal) ============ */
.rk{font-family:'Roboto',sans-serif;font-weight:700;font-size:11px;padding:2px 8px;border-radius:5px;display:inline-flex;align-items:center;gap:4px;white-space:nowrap;letter-spacing:.02em}
.rk-bronze{color:#7a4f22;background:#efe0cf}
.rk-silver{color:#5f6a75;background:#e9ecef}
.rk-gold{color:#9a7407;background:#faefc7}
.rk-plat{color:#1a869f;background:#dcf2f8}
.rk-diamond{color:#0a90c8;background:#d6f1ff}
.rk-elite{color:#7c2fe0;background:#efe4fe}
.rk-champion{color:#c85708;background:#ffe6d1}
.rk-unreal{color:#fff;background:linear-gradient(90deg,#a855f7,#2796f2,#f5c518,#a855f7);background-size:300% 100%;animation:unrealshift 6s linear infinite;text-shadow:0 1px 1px rgba(0,0,0,.22)}
@keyframes unrealshift{to{background-position:-300% 0}}
@media(prefers-reduced-motion:reduce){.rk-unreal{animation:none}}
[data-theme="dark"] .rk-bronze{background:#3a2c1c}
[data-theme="dark"] .rk-silver{background:#2a2e33}
[data-theme="dark"] .rk-gold{background:#33290a}
[data-theme="dark"] .rk-plat{background:#0e2a30}
[data-theme="dark"] .rk-diamond{background:#0e2536}
[data-theme="dark"] .rk-elite{background:#241a35}
[data-theme="dark"] .rk-champion{background:#33210f}

/* ============ DNA square-bars ============ */
.dnabars{display:flex;flex-direction:column;gap:8px;margin-top:8px}
.dnab{display:flex;align-items:center;justify-content:space-between;gap:8px}
.dnab .dl{font-size:9px;font-weight:800;letter-spacing:.05em;text-transform:uppercase;color:var(--ink2);width:96px}
.dsq{display:inline-flex;gap:3px}
.dsq i{width:12px;height:12px;border-radius:2px;background:var(--line2)}
.dsq i.on{background:var(--accent);box-shadow:0 0 0 1px rgba(39,150,242,.25)}

/* ============ Shoutbox stats strip + icon tabs ============ */
.sb-sep{width:1px;height:16px;background:var(--line2);flex:0 0 auto}
.sb-stat{display:inline-flex;align-items:center;gap:5px;font-size:12px;color:var(--ink2);font-weight:600;flex:0 0 auto}
.sb-stat b{color:var(--ink)}
.sb-stat .bi{font-size:13px}
.top .tab .bi{font-size:20px}
@media(max-width:900px){.sb-stat,.sb-sep{display:none}}

/* ============ v8: less-bold VR, tooltips, online/spelar hover ============ */
.lbrow .nm{font-weight:500}
.lbrow .vr{font-weight:700;font-size:14px}
.dnab .dl[title],.arche[title],.dna .cap[title]{cursor:help;border-bottom:1px dotted var(--line2)}
.sb-stat{position:relative}
.sb-pop{position:absolute;top:24px;left:-6px;min-width:190px;max-height:280px;overflow:auto;background:var(--card);border:1px solid var(--line);border-radius:var(--r);box-shadow:0 12px 34px rgba(20,30,50,.18);padding:6px;display:none;z-index:90}
.sb-stat:hover .sb-pop{display:block}
/* Osynlig hover-brygga UNDER siffran som täcker gapet ner till listan — musen kan dras ned till namnen utan att popovern stängs.
   Ligger på .sb-stat (inte .sb-pop) eftersom .sb-pop har overflow:auto och klipper bort en ::before utanför boxen.
   Alltid närvarande (ej :hover-gated) → ingen död zon; att hovra strimlan öppnar popovern via .sb-stat:hover. */
.sb-stat::after{content:"";position:absolute;left:0;top:100%;width:100%;height:14px}
.sb-pop a{display:flex;align-items:center;gap:8px;padding:6px 8px;border-radius:var(--r-sm);font-size:12.5px;color:var(--ink);font-weight:500}
.sb-pop a:hover{background:var(--inset)}
.sb-pop .pa{width:22px;height:22px;border-radius:50%;background:var(--inset);flex:0 0 auto;background-size:cover}
.sb-pop .pl2{font-size:10px;color:var(--dim);margin-left:auto;text-transform:capitalize}
.rk .rkico{font-size:12px;line-height:1}

/* ============ v9: ticker links, 3-news, wall media, twitch creators ============ */
.tk-u{font-weight:700;color:var(--ink);text-decoration:none}
.tk-u:hover{color:var(--accent);text-decoration:underline}
.nlink i.bi.ico{color:var(--accent);font-size:17px;width:20px;text-align:center;flex:0 0 auto}

.newsfeat{display:block;border-bottom:1px solid var(--line);color:inherit}
.newsfeat .nf-cover{display:block;height:118px;background:var(--inset) center/cover;border-bottom:1px solid var(--line)}
.newsfeat .nf-body{display:block;padding:11px 14px}
.newsfeat .nf-t{display:block;font-weight:800;font-size:14.5px;line-height:1.25;color:var(--ink)}
.newsfeat .nf-e{display:block;font-size:12.5px;color:var(--ink2);margin-top:4px;line-height:1.45}
.newsfeat .nf-m{display:block;font-size:11px;color:var(--dim);margin-top:6px}
.newsfeat:hover .nf-t{color:var(--accent)}
.newsrow{display:flex;gap:10px;align-items:center;padding:10px 14px;border-bottom:1px solid var(--line);color:inherit}
.newsrow:last-child{border-bottom:0}
.newsrow:hover{background:var(--inset)}
.newsrow .nrh{width:54px;height:40px;border-radius:var(--r-sm);background:var(--inset) center/cover;flex:0 0 auto;display:grid;place-items:center;color:var(--faint);border:1px solid var(--line)}
.newsrow .nri{min-width:0}
.newsrow .nrt{display:block;font-weight:700;font-size:13px;color:var(--ink);line-height:1.3;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.newsrow .nrm{display:block;font-size:11px;color:var(--dim);margin-top:2px}

.wallmedia{margin:0 16px 12px;border:1px solid var(--line);border-radius:var(--r);overflow:hidden}
.wallmedia img{display:block;width:100%;height:auto;max-height:420px;object-fit:cover}
/* Riktiga bildinlägg: blås INTE upp små bilder till full bredd (blir suddigt).
   Visa i naturlig storlek, centrerat, klickbart för helskärm. Stora krymps. */
.wallmedia:not(.wallmedia-mini){display:flex;align-items:center;justify-content:center;background:var(--inset);cursor:zoom-in}
.wallmedia:not(.wallmedia-mini) img{width:auto;max-width:100%;height:auto;max-height:520px;object-fit:contain}
/* ── Media-rutnät: bild(er) + länk-preview sida vid sida (2 = 50/50, wrappar efter 4) ── */
.pc-media:empty{display:none}
.pc-media[data-n="1"]>.forre-lp-card,.pc-media[data-n="1"]>.forre-lp-sbadge{margin:2px 16px 12px;max-width:none}
.pc-media[data-n="2"],.pc-media[data-n="3"],.pc-media[data-n="4"]{display:grid;gap:8px;margin:0 16px 12px;align-items:stretch}
.pc-media[data-n="2"]{grid-template-columns:1fr 1fr}
.pc-media[data-n="3"]{grid-template-columns:1fr 1fr 1fr}
.pc-media[data-n="4"]{grid-template-columns:1fr 1fr}
.pc-media[data-n="2"] .wallmedia,.pc-media[data-n="3"] .wallmedia,.pc-media[data-n="4"] .wallmedia{margin:0}
.pc-media[data-n="2"]>.forre-lp-card,.pc-media[data-n="3"]>.forre-lp-card,.pc-media[data-n="4"]>.forre-lp-card{margin:0;max-width:none;align-self:start}
/* Stream-badge sträcker sig till bildens höjd → bild + badge blir lika stora. */
.pc-media[data-n="2"]>.forre-lp-sbadge,.pc-media[data-n="3"]>.forre-lp-sbadge,.pc-media[data-n="4"]>.forre-lp-sbadge{margin:0;max-width:none;min-height:0}
.pc-media[data-n="2"] .wallmedia img,.pc-media[data-n="3"] .wallmedia img,.pc-media[data-n="4"] .wallmedia img{max-height:340px}
@media(max-width:560px){.pc-media[data-n="2"],.pc-media[data-n="3"],.pc-media[data-n="4"]{grid-template-columns:1fr}}

/* ── Wall: bild + kommentarer i helskärm (lightbox) ─────────────── */
.wlb[hidden]{display:none}
.wlb{position:fixed;inset:0;z-index:2000;display:flex;align-items:center;justify-content:center}
.wlb-backdrop{position:absolute;inset:0;background:rgba(0,0,0,.82);cursor:zoom-out}
.wlb-shell{position:relative;display:flex;width:min(1200px,96vw);height:min(760px,92vh);background:var(--card);border:1px solid var(--line);border-radius:var(--r);overflow:hidden;box-shadow:0 24px 60px rgba(0,0,0,.5)}
.wlb-x{position:absolute;top:8px;right:8px;z-index:3;width:34px;height:34px;border:1px solid var(--line);border-radius:var(--r-sm);background:var(--card);color:var(--ink);cursor:pointer;display:inline-flex;align-items:center;justify-content:center}
.wlb-x:hover{background:var(--inset)}
.wlb-media{flex:1 1 auto;min-width:0;display:flex;align-items:center;justify-content:center;background:#000;padding:12px}
.wlb-media img{max-width:100%;max-height:100%;width:auto;height:auto;object-fit:contain;display:block}
.wlb-side{flex:0 0 380px;width:380px;max-width:42vw;display:flex;flex-direction:column;background:var(--card);border-left:1px solid var(--line);overflow-y:auto}
.wlb-side .card.post{border:0;box-shadow:none;background:transparent;margin:0}
.wlb-phead{display:flex;gap:10px;align-items:center;padding:14px 14px 6px}
.wlb-phead .av{width:38px;height:38px;flex:0 0 auto}
.wlb-phead .nm{font-weight:700;font-size:14px}
.wlb-phead .t{font-size:12px;color:var(--dim)}
.wlb-pbody{padding:0 14px 10px;color:var(--ink);white-space:pre-wrap;word-break:break-word}
.wlb-side .cwrap{margin-top:0}
.wlb-side .clist{padding:4px 12px}
.wlb-side .cbox{position:sticky;bottom:0;background:var(--card);border-top:1px solid var(--line)}
@media (max-width:720px){
  .wlb-shell{flex-direction:column;width:100vw;height:100vh;border-radius:0}
  .wlb-media{flex:1 1 45%;min-height:0}
  .wlb-side{flex:1 1 55%;width:100%;max-width:100%;border-left:0;border-top:1px solid var(--line)}
}

.crow{display:flex;gap:11px;padding:11px 14px;border-bottom:1px solid var(--line);color:inherit}
.crow:last-child{border-bottom:0}
.crow:hover{background:var(--inset)}
.cthumb{position:relative;width:88px;height:50px;flex:0 0 auto;border-radius:var(--r-sm);background:var(--board-bg) center/cover;display:grid;place-items:center;color:#fff;border:1px solid var(--line2)}
.cthumb .bi{font-size:22px;opacity:.92;filter:drop-shadow(0 1px 3px rgba(0,0,0,.5))}
.cthumb .clive{position:absolute;top:4px;left:4px;font-size:8px;font-weight:800;letter-spacing:.06em;background:var(--danger);color:#fff;padding:1px 5px;border-radius:3px}
.cmeta{min-width:0;flex:1}
.cnm{font-weight:700;font-size:13.5px;color:var(--ink);display:flex;align-items:center;gap:6px}
.cttl{font-size:11.5px;color:var(--ink2);margin-top:1px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cview{font-size:11px;color:var(--live);font-weight:600;margin-top:3px;display:flex;align-items:center;gap:4px}
.cplat{font-size:8px;font-weight:800;letter-spacing:.05em;text-transform:uppercase;padding:1px 5px;border-radius:3px;color:#fff;background:#9146ff}
.cplat-youtube{background:#ff0000} .cplat-kick{background:#53fc18;color:#000} .cplat-twitch{background:#9146ff}

/* Creators live — hjälte + slumpade rader (2026-07-12). Titel primär, namn sekundärt,
   pulserande live-dot i headern. Ärver pulse-tokens => funkar i ljust + mörkt automatiskt. */
.creators-card .chd .slabel{display:inline-flex;align-items:center;gap:7px}
.cr-livedot{width:8px;height:8px;flex:0 0 auto;border-radius:50%;background:var(--live);animation:crLivePulse 1.7s infinite}
@keyframes crLivePulse{0%{box-shadow:0 0 0 0 rgba(26,166,75,.5)}70%{box-shadow:0 0 0 7px rgba(26,166,75,0)}100%{box-shadow:0 0 0 0 rgba(26,166,75,0)}}
[data-theme="dark"] .cr-livedot{animation-name:crLivePulseDark}
@keyframes crLivePulseDark{0%{box-shadow:0 0 0 0 rgba(43,208,107,.55)}70%{box-shadow:0 0 0 7px rgba(43,208,107,0)}100%{box-shadow:0 0 0 0 rgba(43,208,107,0)}}
.cr-count{font-size:11px;font-weight:800;letter-spacing:.04em;color:var(--live)}
.cr-hero{display:block;margin:12px 14px;border:1px solid var(--line);border-radius:var(--r);overflow:hidden;color:inherit;background:var(--card)}
.cr-hero:hover{border-color:var(--line2)}
.cr-hero-thumb{position:relative;display:block;height:132px;background:var(--board-bg) center/cover;border-bottom:1px solid var(--line)}
.cr-live-badge{position:absolute;top:8px;left:8px;display:inline-flex;align-items:center;gap:4px;background:var(--danger);color:#fff;font-size:9.5px;font-weight:800;letter-spacing:.05em;padding:3px 7px;border-radius:var(--r-sm)}
.cr-badge-dot{width:5px;height:5px;border-radius:50%;background:#fff}
.cr-hero-view{position:absolute;bottom:8px;left:8px;display:inline-flex;align-items:center;gap:4px;background:rgba(9,14,20,.72);color:#fff;font-size:11px;font-weight:700;padding:3px 8px;border-radius:999px}
.cr-hero-play{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:42px;height:42px;border-radius:50%;background:rgba(255,255,255,.92);color:#0b0f14;display:grid;place-items:center;font-size:20px;transition:transform .12s}
.cr-hero:hover .cr-hero-play{transform:translate(-50%,-50%) scale(1.06)}
.cr-hero-meta{display:flex;align-items:center;gap:9px;padding:9px 11px}
.cr-hero-txt{min-width:0;flex:1}
.cr-hero-title{display:block;font-size:12.5px;font-weight:700;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cr-hero-name{display:flex;align-items:center;gap:6px;font-size:12px;font-weight:500;color:var(--ink2);margin-top:2px}
.cr-hero-watch{flex:0 0 auto;display:inline-flex;align-items:center;gap:5px;background:var(--accent);color:#fff;font-size:12px;font-weight:700;padding:8px 13px;border-radius:var(--r)}
.cr-hero:hover .cr-hero-watch{background:var(--accent-ink)}
/* Rader: titel framhävd överst, namn sekundärt under, tittare till höger. */
.creators-card .crow{align-items:center}
.creators-card .cmeta{display:flex;flex-direction:column;justify-content:center}
.creators-card .cttl{order:0;font-size:12px;font-weight:700;color:var(--ink);margin-top:0;margin-bottom:1px}
.creators-card .cnm{order:1;font-size:11.5px;font-weight:500;color:var(--ink2)}
.cr-rowview{flex:0 0 auto;align-self:center;display:inline-flex;align-items:center;gap:4px;font-size:10.5px;font-weight:700;color:var(--ink2)}
.cr-seeall{display:block;text-align:center;padding:10px 14px;font-size:12px;font-weight:700;color:var(--accent);border-top:1px solid var(--line)}
.cr-seeall:hover{background:var(--inset)}

/* ============ v10: wall comment box ============ */
.cbox{display:flex;gap:8px;padding:0 14px 12px;align-items:center;position:relative}
.cbox[hidden]{display:none}
.cbox-emoji{width:34px;height:34px;border-radius:50%;background:var(--inset);border:1px solid var(--line);color:var(--ink2);display:grid;place-items:center;flex:0 0 auto;cursor:pointer;font-size:15px}
.cbox-emoji:hover{color:var(--accent);border-color:var(--accent)}
.cbox-emos{position:absolute;bottom:46px;right:44px;z-index:6;display:flex;flex-wrap:wrap;gap:2px;max-width:236px;padding:6px;background:var(--card);border:1px solid var(--line);border-radius:var(--r);box-shadow:0 10px 28px rgba(0,0,0,.28)}
.cbox-emos[hidden]{display:none}
.cemo{width:32px;height:32px;border:0;background:transparent;font-size:18px;line-height:1;cursor:pointer;border-radius:var(--r-sm)}
.cemo:hover{background:var(--inset)}
.cbox-in{flex:1;background:var(--inset);border:1px solid var(--line);border-radius:20px;padding:8px 14px;font-size:13px;color:var(--ink);outline:none;font-family:inherit}
.cbox-in:focus{border-color:var(--accent)}
.cbox-send{width:36px;height:36px;border-radius:50%;background:var(--accent);color:#fff;display:grid;place-items:center;flex:0 0 auto}
.cbox-send .bi{font-size:14px}
.act.on svg{fill:var(--accent);stroke:var(--accent)}

/* ============ v11: composer tools + uniform news ============ */
.pm-emoji{display:flex;flex-wrap:wrap;gap:4px;padding:8px 0 2px}
.pm-emoji .emo{font-size:20px;line-height:1;padding:4px 6px;border-radius:var(--r-sm)}
.pm-emoji .emo:hover{background:var(--inset)}
.pm-imgprev{position:relative;margin:8px 0;border:1px solid var(--line);border-radius:var(--r);overflow:hidden}
.pm-imgprev img{display:block;width:100%;height:auto;max-height:300px;object-fit:cover}
.pm-imgrm{position:absolute;top:8px;right:8px;width:30px;height:30px;border-radius:50%;background:rgba(0,0,0,.6);color:#fff;display:grid;place-items:center}
.pm-poll{margin:8px 0;display:flex;flex-direction:column;gap:8px}
.pm-poll input{background:var(--inset);border:1px solid var(--line);border-radius:var(--r);padding:9px 12px;font-size:13.5px;color:var(--ink);outline:none;font-family:inherit}
.pm-poll input:focus{border-color:var(--accent)}
.pm-poll .poll-opts{display:flex;flex-direction:column;gap:6px}
.pm-poll .poll-add{align-self:flex-start;font-size:12.5px;font-weight:700;color:var(--accent);display:inline-flex;align-items:center;gap:5px}
.pm-close .bi{font-size:18px}
.pm-tool .bi{font-size:20px}
.pm-tool.img{color:var(--live)} .pm-tool.poll{color:var(--gold)} .pm-tool.at{color:var(--accent)}
.aud .bi{font-size:12px}

.newsrow2{display:flex;gap:12px;align-items:flex-start;padding:12px 14px;border-bottom:1px solid var(--line);color:inherit}
.newsrow2:last-child{border-bottom:0}
.newsrow2:hover{background:var(--inset)}
.nr2h{width:104px;height:62px;border-radius:var(--r-sm);background:var(--inset) center/cover;flex:0 0 auto;display:grid;place-items:center;color:var(--faint);border:1px solid var(--line)}
.nr2i{min-width:0;flex:1}
.nr2t{display:block;font-weight:700;font-size:13.5px;color:var(--ink);line-height:1.3;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.nr2e{display:block;font-size:12px;color:var(--ink2);margin-top:3px;line-height:1.4;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.nr2m{display:block;font-size:11px;color:var(--dim);margin-top:4px}
.nr2c{display:inline-flex;align-items:center;gap:3px;margin-left:7px}
.nr2c .bi{font-size:12px;line-height:1}
.nr2c.has{color:var(--accent);font-weight:700}

/* ============ v13: post-meny, inline-edit, kaffe-knapp, nyhets-popup ============ */
.pmenu{margin-left:auto;position:relative}
.pmore{width:32px;height:32px;border-radius:50%;display:grid;place-items:center;color:var(--dim);background:transparent}
.pmore:hover{background:var(--inset);color:var(--ink)}
.pmore .bi{font-size:17px}
.pmenu-dd{position:absolute;top:36px;right:0;min-width:184px;background:var(--card);border:1px solid var(--line);border-radius:var(--r);box-shadow:0 12px 30px rgba(0,0,0,.16);padding:6px;z-index:40;display:none}
.pmenu-dd.open{display:block}
.pmi{display:flex;align-items:center;gap:10px;width:100%;padding:9px 11px;border-radius:var(--r-sm);font-size:13.5px;font-weight:600;color:var(--ink);text-align:left;background:transparent}
.pmi:hover{background:var(--inset)}
.pmi .bi{font-size:15px;color:var(--dim);width:16px;text-align:center}
.pmi.danger{color:var(--danger)}
.pmi.danger .bi{color:var(--danger)}
.pmi.danger:hover{background:color-mix(in srgb,var(--danger) 12%,transparent)}

.pedit{padding:2px 0 10px}
.pedit-in{width:100%;min-height:78px;resize:vertical;background:var(--inset);border:1px solid var(--line);border-radius:var(--r);padding:11px 13px;font-family:inherit;font-size:14px;color:var(--ink);line-height:1.5;outline:none}
.pedit-in:focus{border-color:var(--accent)}
.pedit-act{display:flex;gap:8px;justify-content:flex-end;margin-top:8px}
.pedit-save,.pedit-cancel{padding:7px 16px;border-radius:var(--r);font-size:13px;font-weight:700}
.pedit-save{background:var(--accent);color:#fff}
.pedit-save:hover{filter:brightness(1.06)}
.pedit-save:disabled{opacity:.6}
.pedit-cancel{background:var(--inset);color:var(--ink2)}
.pedit-cancel:hover{background:var(--line)}

/* Bjud på kaffe */
.coffee{display:inline-flex;align-items:center;gap:7px;height:34px;padding:0 13px;border-radius:999px;background:#ffdd00;color:#171717;font-size:12.5px;font-weight:800;letter-spacing:.1px;white-space:nowrap;box-shadow:0 1px 0 rgba(0,0,0,.05);transition:transform .12s ease-out,filter .12s ease-out}
.coffee .bi{font-size:15px}
.coffee:hover{filter:brightness(1.04);transform:translateY(-1px)}
.coffee:active{transform:translateY(0)}
@media (max-width:1100px){.coffee span{display:none}.coffee{padding:0;width:34px;justify-content:center}}

/* Nyhets-popup */
.nmodal{position:fixed;inset:0;z-index:200;display:none;align-items:flex-start;justify-content:center;padding:40px 16px;background:rgba(15,20,28,.55);backdrop-filter:blur(2px);overflow-y:auto}
.nmodal.open{display:flex}
/* Lås bakgrundsscroll när nyhets-popupen är öppen — annars repaintar backdrop-blur
   hela den långa sidan vid scroll och känns segt. */
html.nm-lock,html.nm-lock body{overflow:hidden}
.nm-card{position:relative;width:100%;max-width:720px;background:var(--card);border:1px solid var(--line);border-radius:calc(var(--r) + 4px);box-shadow:0 24px 70px rgba(0,0,0,.34);overflow:hidden}
.nm-x{position:absolute;top:12px;right:12px;z-index:3;width:36px;height:36px;border-radius:50%;display:grid;place-items:center;background:rgba(0,0,0,.5);color:#fff;font-size:15px}
.nm-x:hover{background:rgba(0,0,0,.7)}
.nm-body{max-height:calc(100vh - 80px);overflow-y:auto}
.nm-load{padding:60px 24px;text-align:center;color:var(--dim);font-size:14px}

/* Injicerad news-expanded (från api/content/news-item) i pulse-ljus */
.nm-body .tw-news-expanded-close{position:absolute;left:-9999px}
.nm-body .tw-news-expanded-hero-media img{display:block;width:100%;max-height:300px;object-fit:cover}
.nm-body .tw-news-expanded-title{padding:18px 26px 4px;margin:0;font-size:23px;font-weight:900;color:var(--ink);line-height:1.25}
.nm-body .tw-news-expanded-content{padding:12px 26px 8px;color:var(--ink);font-size:15px;line-height:1.7}
.nm-body .tw-news-expanded-content img{max-width:100%;height:auto;border-radius:var(--r-sm);margin:10px 0}
.nm-body .tw-news-expanded-content h1,.nm-body .tw-news-expanded-content h2,.nm-body .tw-news-expanded-content h3{color:var(--ink);line-height:1.3;margin:18px 0 8px}
.nm-body .tw-news-expanded-content a{color:var(--accent)}
.nm-body .tw-news-expanded-content p{margin:0 0 12px}
.nm-body .tw-news-comments{padding:8px 26px 26px;border-top:1px solid var(--line);margin-top:12px}
.nm-body .tw-news-comments-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:14px 0 12px}
.nm-body .tw-news-comments-head strong{display:inline-flex;align-items:center;gap:7px;font-size:14px;font-weight:800;color:var(--ink)}
.nm-body .tw-news-comments-head [data-comment-count-label]{font-size:12.5px;color:var(--dim)}
.nm-body .tw-news-comments-empty{padding:14px 0;color:var(--dim);font-size:13px}
.nm-body .tw-news-comment-list{display:flex;flex-direction:column;gap:14px;margin:6px 0 4px}

/* Enskild kommentar (bubbla) */
.nm-body .tw-news-comment{display:flex;gap:10px;align-items:flex-start}
.nm-body .tw-news-comment-avatar{flex:0 0 auto;width:34px;height:34px;border-radius:50%;overflow:hidden;border:1px solid var(--line);background:var(--inset)}
.nm-body .tw-news-comment-avatar img{width:100%;height:100%;object-fit:cover;display:block}
.nm-body .tw-news-comment-body{min-width:0;flex:1;background:var(--inset);border:1px solid var(--line);border-radius:14px;padding:9px 13px}
.nm-body .tw-news-comment-meta{display:flex;flex-wrap:wrap;align-items:baseline;gap:8px;margin-bottom:3px}
.nm-body .tw-news-comment-name{font-size:13px;font-weight:700;color:var(--ink)}
.nm-body .tw-news-comment-name:hover{color:var(--accent);text-decoration:underline}
.nm-body .tw-news-comment-time{font-size:11.5px;color:var(--dim)}
.nm-body .tw-news-comment-body p{margin:0;font-size:13.5px;color:var(--ink);line-height:1.5;word-break:break-word}
.nm-body .tw-news-comment-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:6px;position:relative}
.nm-body .tw-news-comment-action{display:inline-flex;align-items:center;gap:5px;font-size:11.5px;font-weight:600;color:var(--dim);background:none;border:0;padding:2px 0;cursor:pointer}
.nm-body .tw-news-comment-action:hover{color:var(--accent)}
.nm-body .tw-news-comment-action.is-danger:hover{color:var(--danger)}
.nm-body .tw-news-comment-flagwrap{position:relative}
.nm-body .tw-news-comment-flagmenu{position:absolute;top:100%;left:0;z-index:5;margin-top:4px;min-width:150px;background:var(--card);border:1px solid var(--line);border-radius:var(--r);box-shadow:0 10px 30px rgba(0,0,0,.18);padding:6px}
.nm-body .tw-news-comment-flagmenu[hidden]{display:none}
.nm-body .tw-news-comment-flagmenu-title{display:block;font-size:10.5px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--dim);padding:4px 8px}
.nm-body .tw-news-comment-flagopt{display:block;width:100%;text-align:left;font-size:12.5px;color:var(--ink);background:none;border:0;border-radius:var(--r-sm);padding:6px 8px;cursor:pointer}
.nm-body .tw-news-comment-flagopt:hover{background:var(--inset);color:var(--accent)}

/* "Visa fler kommentarer" */
.nm-body .tw-news-comments-actions{display:flex;justify-content:center;margin:12px 0 2px}
.nm-body .tw-news-secondary-btn{font-size:12.5px;font-weight:700;color:var(--ink2);background:var(--inset);border:1px solid var(--line);border-radius:999px;padding:7px 16px;cursor:pointer;transition:border-color .12s ease-out,color .12s ease-out}
.nm-body .tw-news-secondary-btn:hover{border-color:var(--accent);color:var(--accent)}

/* Skrivfält */
.nm-body .tw-news-comment-form{margin-top:16px;display:flex;flex-direction:column;gap:9px}
.nm-body .tw-news-comment-label{font-size:12px;font-weight:700;color:var(--ink2)}
.nm-body .tw-news-comment-form textarea{width:100%;min-height:82px;resize:vertical;background:var(--inset);border:1px solid var(--line);border-radius:12px;padding:10px 13px;font-family:inherit;font-size:13.5px;color:var(--ink);line-height:1.5;outline:none;transition:border-color .12s ease-out}
.nm-body .tw-news-comment-form textarea::placeholder{color:var(--dim)}
.nm-body .tw-news-comment-form textarea:focus{border-color:var(--accent)}
.nm-body .tw-news-comment-form-foot{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}
.nm-body .tw-news-author-link{display:inline-flex;align-items:center;gap:6px;font-size:12px;color:var(--dim)}
.nm-body .tw-news-author-link:hover{color:var(--accent)}
.nm-body .tw-news-primary-btn{display:inline-flex;align-items:center;gap:6px;background:var(--accent);color:#fff;border:0;border-radius:999px;padding:8px 18px;font-family:inherit;font-size:13px;font-weight:700;cursor:pointer;transition:background .12s ease-out}
.nm-body .tw-news-primary-btn:hover{background:var(--accent-ink)}
.nm-body .tw-news-primary-btn:disabled{opacity:.6;cursor:default}

/* Ej inloggad-prompt */
.nm-body .tw-news-comment-login{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-top:14px;padding:12px 14px;background:var(--inset);border:1px solid var(--line);border-radius:var(--r)}
.nm-body .tw-news-comment-login span{font-size:13px;color:var(--ink2)}

/* ============ v14: kommentarer (lista, edit, flagga) ============ */
.pcount{display:flex;gap:12px;align-items:center;justify-content:space-between}
.pc-c{cursor:default;color:var(--dim)}
.pc-l{margin-left:auto;display:inline-flex;align-items:center;gap:6px;color:var(--dim)}
/* v16: alltid synlig förhandsvisning av första kommentaren + "visa alla"-länk */
.cpreview{border-top:1px solid var(--line);margin-top:8px;padding:10px 14px 12px;display:flex;flex-direction:column;gap:8px}
.cpreview[hidden]{display:none} /* måste vinna över display:flex ovan */
.cpreview .cm{margin:0}
.cmore{align-self:flex-start;font-size:12.5px;font-weight:700;color:var(--ink2);cursor:pointer}
.cmore:hover{color:var(--accent);text-decoration:underline}
.cwrap{border-top:1px solid var(--line);margin-top:8px;padding-top:10px}
.clist{display:flex;flex-direction:column;gap:10px;margin-bottom:10px;padding:0 14px}
.cload{color:var(--dim);font-size:12.5px;padding:4px 2px}
.cm{display:flex;gap:9px;align-items:flex-start}
.cm-av{flex:0 0 auto;width:32px;height:32px;border-radius:50%;background:var(--inset) center/cover no-repeat;border:1px solid var(--line)}
.cm-b{min-width:0;flex:1}
.cm-bub{display:inline-block;max-width:100%;background:var(--inset);border-radius:14px;padding:8px 12px}
.cm-nm{display:block;font-size:12.5px;font-weight:700;color:var(--ink);line-height:1.2}
.cm-tx{display:block;font-size:13.5px;color:var(--ink);line-height:1.45;margin-top:2px;word-break:break-word}
.cm-meta{display:flex;flex-wrap:wrap;gap:10px;align-items:center;padding:4px 12px 0;font-size:11.5px;color:var(--dim)}
.cm-t{color:var(--dim)}
.cm-a{font-size:11.5px;font-weight:700;color:var(--ink2)}
.cm-a:hover{color:var(--accent);text-decoration:underline}
.cm-ed{color:var(--dim);font-style:italic}
.cm-edit{margin-bottom:6px}
.cm-in{width:100%;min-height:56px;resize:vertical;background:var(--inset);border:1px solid var(--line);border-radius:12px;padding:8px 12px;font-family:inherit;font-size:13.5px;color:var(--ink);line-height:1.45;outline:none}
.cm-in:focus{border-color:var(--accent)}
.cm-eact{display:flex;gap:8px;justify-content:flex-end;margin-top:6px}
.cm-save,.cm-cancel{padding:5px 13px;border-radius:999px;font-size:12px;font-weight:700}
.cm-save{background:var(--accent);color:#fff}
.cm-save:disabled{opacity:.6}
.cm-cancel{background:var(--inset);color:var(--ink2)}
.cm-cancel:hover{background:var(--line)}
/* Gilla-knapp på kommentar */
.cm-like{display:inline-flex;align-items:center;gap:4px}
.cm-like .bi{font-size:12px}
.cm-like.is-liked{color:var(--accent)}
.cm-like.is-liked:hover{color:var(--accent)}
.cm-lc{font-weight:700}
/* Svar på kommentar — max ett nivådjup (indragen tråd) */
.cm-replies{display:flex;flex-direction:column;gap:8px;margin:8px 0 0 40px;padding-left:12px;border-left:2px solid var(--line)}
.cm-replies:empty{display:none}
.cm-reply .cm-av{width:26px;height:26px}
.cm-reply .cm-bub{background:var(--card)}
.creply{display:flex;gap:8px;align-items:center;margin-top:2px}
.creply-in{flex:1;background:var(--inset);border:1px solid var(--line);border-radius:20px;padding:7px 13px;font-size:12.5px;color:var(--ink);outline:none;font-family:inherit}
.creply-in:focus{border-color:var(--accent)}
.creply-send{padding:6px 15px;border-radius:999px;background:var(--accent);color:#fff;font-size:12px;font-weight:700;flex:0 0 auto}
.creply-send:disabled{opacity:.6}

/* ============ v15: konto-meny (avatar), ikon-toggle, blå kaffe-ikon ============ */
/* Profil-trigger = bara avatar */
.me{padding:0;border:0;background:transparent;border-radius:50%;gap:0}
.me:hover{background:transparent}
.me .av{width:36px;height:36px;border:2px solid var(--line);background-size:cover;background-position:center}
.me:hover .av{border-color:var(--accent)}

/* Konto-dropdown — öppnas vid HOVER (klick på avataren går direkt till profilen). */
.me-dd{width:auto;min-width:254px}
.me-item .me-dd{top:44px}
.me-item .me-dd::before{content:"";position:absolute;top:-10px;left:0;right:0;height:10px} /* hover-brygga över gapet */
.me-item:hover .me-dd,.me-item:focus-within .me-dd{display:block}

/* Crew-ikon: hover fäller ut staffverktygen (flyttade hit från flytande staff-bar). Klick öppnar crew chat. */
.crew-item{position:relative}
.crew-item .crew-dd{width:260px;top:44px;right:0}
.crew-item .crew-dd::before{content:"";position:absolute;top:-10px;left:0;right:0;height:10px} /* hover-brygga över gapet */
.crew-item:hover .crew-dd{display:block}
.crew-dd .ddrow{align-items:center}
.crew-dd .nic{position:relative;flex:0 0 auto;width:34px;height:34px;--ntc:var(--accent)}
.crew-dd .nic-main{width:34px;height:34px;border-radius:50%;display:grid;place-items:center;font-size:14px;background:var(--inset);color:var(--ntc);border:1px solid var(--line)}
.crew-dd .ddrow-badge{margin-left:auto;align-self:center;background:#e74c3c;color:#fff;font-size:10px;font-weight:700;padding:1px 7px;border-radius:9px;min-width:18px;text-align:center}
.crew-dd .dd-foot--hint{font-size:10px;color:var(--dim);padding:9px 14px;border-top:1px solid var(--line);cursor:default}
.me-head{display:flex;gap:11px;align-items:center;padding:14px 16px;border-bottom:1px solid var(--line);color:inherit}
.me-head:hover{background:var(--inset)}
.me-head .av.big{width:44px;height:44px;border-radius:50%;border:1px solid var(--line);flex:0 0 auto;background-size:cover;background-position:center}
.mh-nm{font-weight:800;font-size:14.5px;color:var(--ink);line-height:1.2}
.mh-sub{font-size:12px;color:var(--dim);margin-top:3px}
.me-links{padding:6px}
.me-links a{display:flex;align-items:center;gap:11px;padding:10px 12px;border-radius:var(--r-sm);font-size:13.5px;font-weight:600;color:var(--ink)}
.me-links a:hover{background:var(--inset)}
.me-links a .bi{font-size:15px;color:var(--dim);width:18px;text-align:center}
.me-links a.madmin{color:var(--accent)} .me-links a.madmin .bi{color:var(--accent)}
.me-links a.mdanger{color:var(--danger)} .me-links a.mdanger .bi{color:var(--danger)}

/* Ikon-only tema-toggle */
.tgl.iconbtn{width:38px;height:38px;padding:0;display:grid;place-items:center}
.tgl.iconbtn .bi{font-size:17px}

/* Bjud på kaffe = blå ikon som blänker lite */
.coffee{display:grid;place-items:center;width:38px;height:38px;padding:0;border-radius:50%;background:transparent;color:#2796f2;box-shadow:none;transform:none}
.coffee .bi{font-size:19px;color:#2796f2;animation:coffeeGlow 2.8s ease-in-out infinite}
.coffee:hover{transform:translateY(-1px);filter:brightness(1.12);background:var(--inset)}
@keyframes coffeeGlow{0%,100%{text-shadow:0 0 0 rgba(39,150,242,0);opacity:.82}50%{text-shadow:0 0 9px rgba(39,150,242,.85);opacity:1}}

/* ============ v18: profilsida ============ */
.pshell{max-width:1000px;margin:0 auto;padding:18px 16px 60px;display:flex;flex-direction:column;gap:16px}
.phero{overflow:hidden;padding:0}
.ph-banner{height:170px;background:linear-gradient(120deg,#1a3a5c,#2796f2 60%,#7b3ff0);background-size:cover;background-position:center}
.ph-body{display:flex;align-items:flex-end;gap:16px;padding:0 22px 18px;margin-top:-46px;flex-wrap:wrap}
.ph-av{width:104px;height:104px;border-radius:50%;border:4px solid var(--card);background:var(--inset) center/cover no-repeat;display:grid;place-items:center;font-family:'Roboto';font-weight:900;font-size:38px;color:var(--ink2);position:relative;flex:0 0 auto}
.ph-dot{position:absolute;right:6px;bottom:8px;width:18px;height:18px;border-radius:50%;background:var(--live);border:3px solid var(--card)}
.ph-main{flex:1;min-width:220px;padding-bottom:4px}
.ph-nm{display:flex;align-items:center;gap:10px;flex-wrap:wrap;font-family:'Roboto';font-weight:900;font-size:24px;color:var(--ink);line-height:1.1}
.ph-rank{font-size:12px;font-weight:800;border:1px solid;border-radius:999px;padding:3px 10px}
.ph-sub{display:flex;flex-wrap:wrap;gap:14px;align-items:center;margin-top:7px;font-size:13px;color:var(--dim)}
.ph-act{display:flex;gap:9px;align-self:flex-end;padding-bottom:4px;flex-wrap:wrap}
.pbtn{display:inline-flex;align-items:center;gap:7px;height:38px;padding:0 16px;border-radius:var(--r);font-size:13.5px;font-weight:700;background:var(--inset);color:var(--ink);border:1px solid var(--line)}
.pbtn:hover{background:var(--line)}
.pbtn.primary{background:var(--accent);color:#fff;border-color:transparent}
.pbtn.primary:hover{filter:brightness(1.07)}
.pbtn.ok{background:color-mix(in srgb,var(--live) 16%,transparent);color:var(--live);border-color:transparent}

.pgrid{display:grid;grid-template-columns:320px 1fr;gap:16px;align-items:start}
@media(max-width:840px){.pgrid{grid-template-columns:1fr}}
.pcol,.pmain{display:flex;flex-direction:column;gap:16px;min-width:0}
.pcard-b{padding:14px 16px 16px}

.idplat{display:inline-flex;align-items:center;gap:7px;font-size:12px;font-weight:700;color:var(--ink2);background:var(--inset);border:1px solid var(--line);border-radius:var(--r-sm);padding:4px 10px;margin-bottom:12px}
.idgrid{display:grid;grid-template-columns:1fr 1fr;gap:9px}
.idcell{background:var(--inset);border:1px solid var(--line);border-radius:var(--r-sm);padding:10px 12px}
.idv{font-weight:800;font-size:14.5px;color:var(--ink);line-height:1.2;min-height:19px}
.idl{font-size:10.5px;font-weight:700;letter-spacing:.4px;text-transform:uppercase;color:var(--dim);margin-top:3px}
.pv-lock{display:inline-flex;align-items:center;gap:6px;filter:blur(0.4px)}
.pv-lock::before{content:"";display:inline-block;width:52px;height:11px;border-radius:6px;background:repeating-linear-gradient(90deg,var(--line),var(--line) 6px,transparent 6px,transparent 11px);filter:blur(2px);opacity:.9}
.pv-lock .bi{color:var(--dim);font-size:12px}
.idnote{margin-top:12px;font-size:11.5px;color:var(--dim);line-height:1.5;background:var(--accent-wash,rgba(39,150,242,.08));border:1px solid var(--line);border-radius:var(--r-sm);padding:9px 11px}
.idnote a{color:var(--accent);font-weight:700}
.idnote .bi{color:var(--accent)}

.psoc{display:flex;flex-wrap:wrap;gap:9px;padding:14px 16px 16px}
.psoc-i{width:42px;height:42px;border-radius:var(--r-sm);display:grid;place-items:center;background:var(--inset);border:1px solid var(--line);color:var(--sc,#777);font-size:19px;transition:transform .12s,background .12s}
.psoc-i:hover{transform:translateY(-2px);background:var(--sc,#777);color:#fff;border-color:transparent}

.pbio{font-size:14.5px;color:var(--ink);line-height:1.65}
.pbio .dim{color:var(--dim)}
.pstyle{margin-top:14px;border-top:1px solid var(--line);padding-top:13px}
.pstyle-h{display:flex;align-items:center;justify-content:space-between;margin-bottom:6px}
.slabel2{font-size:11px;font-weight:800;letter-spacing:.5px;text-transform:uppercase;color:var(--dim)}
.pstyle-tag{font-size:10.5px;font-weight:800;letter-spacing:.4px;text-transform:uppercase;color:var(--accent)}
.pstyle-name{font-family:'Roboto';font-weight:900;font-size:17px;color:var(--ink)}
.pstyle-desc{font-size:13px;color:var(--ink2);line-height:1.55;margin-top:4px}
.pstyle-chips{display:flex;flex-wrap:wrap;gap:7px;margin-top:11px}
.pchip{font-size:12px;font-weight:700;color:var(--ink2);background:var(--inset);border:1px solid var(--line);border-radius:999px;padding:5px 11px}
.pchip b{color:var(--ink);margin-right:3px}
.pform{font-size:11px;font-weight:700;color:var(--dim)}

.pdna{display:flex;flex-direction:column;gap:9px}
.pdna-row{display:flex;align-items:center;gap:12px}
.pdna-l{width:104px;font-size:12px;font-weight:700;color:var(--ink2);text-transform:uppercase;letter-spacing:.3px}
.pdna-bars{display:flex;gap:3px;flex:1}
.pdna-bars i{flex:1;height:14px;border-radius:2px;background:var(--inset);border:1px solid var(--line)}
.pdna-bars i.on{background:var(--accent);border-color:transparent}
.pdna-v{width:30px;text-align:right;font-size:12.5px;font-weight:800;color:var(--ink)}

.flb-meta{padding:2px 16px 8px;font-size:11.5px;font-weight:700;letter-spacing:.4px;text-transform:uppercase;color:var(--dim)}
.flb-row{display:flex;align-items:center;gap:11px;padding:9px 16px;border-top:1px solid var(--line);color:inherit}
.flb-row:hover{background:var(--inset)}
.flb-row.meRow{background:var(--accent-wash,rgba(39,150,242,.1))}
.flb-rk{width:32px;font-size:13px;font-weight:800;color:var(--dim)}
.flb-row.p1 .flb-rk{color:#d99400}.flb-row.p2 .flb-rk{color:#8a94a1}.flb-row.p3 .flb-rk{color:#b06a2b}
.flb-av{width:38px;height:38px;border-radius:50%;background:var(--inset) center/cover no-repeat;border:1px solid var(--line);display:grid;place-items:center;font-weight:800;font-size:13px;color:var(--ink2);flex:0 0 auto}
.flb-i{flex:1;min-width:0}
.flb-nm{display:block;font-weight:700;font-size:14px;color:var(--ink)}
.flb-you{font-size:10px;font-weight:800;background:var(--accent);color:#fff;border-radius:4px;padding:1px 5px;vertical-align:middle}
.flb-s{display:block;font-size:11.5px;color:var(--dim);margin-top:1px}
.flb-pts{font-size:15px;font-weight:900;color:var(--accent)}
.flb-pts small{font-size:10px;font-weight:700;color:var(--dim);margin-left:2px}
.flb-rival{padding:10px 16px;border-top:1px solid var(--line);font-size:12.5px;color:var(--ink2)}
.flb-rival a{color:var(--accent);font-weight:700}

.ph-ricon{width:16px;height:16px;object-fit:contain;vertical-align:-3px;margin-right:2px}

/* ============ v21: profil-redesign (cover, flikar, statistik, per-lage, sessions) ============ */
.pshell.prof{max-width:1060px}
.prof .pgrid{grid-template-columns:1fr 322px}
@media(max-width:860px){.prof .pgrid{grid-template-columns:1fr}}

/* Cover */
.pcover{overflow:hidden;padding:0}
.pcov-banner{height:180px;background:linear-gradient(120deg,#1a3a5c,#2796f2 55%,#7b3ff0);background-size:cover;background-position:center}
.pcov-row{display:flex;align-items:flex-end;gap:16px;padding:0 22px 14px;margin-top:-44px;flex-wrap:wrap}
.pcov-av{width:110px;height:110px;border-radius:50%;border:4px solid var(--card);background:var(--inset) center/cover no-repeat;display:grid;place-items:center;font-family:'Roboto';font-weight:900;font-size:40px;color:var(--ink2);position:relative;flex:0 0 auto}
.pcov-dot{position:absolute;right:7px;bottom:9px;width:18px;height:18px;border-radius:50%;background:var(--live);border:3px solid var(--card)}
.pcov-meta{flex:1;min-width:200px;padding-bottom:2px}
.pcov-meta h1{display:flex;align-items:center;gap:10px;flex-wrap:wrap;font-family:'Roboto';font-weight:900;font-size:25px;color:var(--ink);margin:0;line-height:1.1}
.pcov-rank{font-size:12px;font-weight:800;border:1px solid;border-radius:999px;padding:3px 11px}
.pcov-badges{display:flex;flex-wrap:wrap;gap:7px;margin-top:9px}
.plat-badge{font-size:11.5px;font-weight:700;color:var(--ink2);background:var(--inset);border:1px solid var(--line);border-radius:var(--r-sm);padding:4px 9px}
.pcov-act{display:flex;gap:9px;align-self:flex-end;padding-bottom:4px;flex-wrap:wrap}

/* Hero stats strip */
.pcov-strip{display:flex;align-items:center;gap:22px;flex-wrap:wrap;padding:14px 22px;border-top:1px solid var(--line);background:var(--inset)}
.hs-rank{min-width:170px}
.hs-rank-top{display:flex;justify-content:space-between;gap:10px;font-size:12px;margin-bottom:5px}
.hs-rd{font-weight:800}.hs-rp{color:var(--dim);font-size:11px}
.hs-bar{height:6px;border-radius:99px;background:var(--line);overflow:hidden}
.hs-bar i{display:block;height:100%;border-radius:99px}
.hs-dna{display:flex;gap:11px}
.hs-dna-c{display:flex;flex-direction:column;align-items:center;gap:4px}
.hs-dna-bars{display:flex;flex-direction:column-reverse;gap:2px}
.hs-dna-bars i{width:16px;height:4px;border-radius:1px;background:var(--line)}
.hs-dna-bars i.on{background:var(--accent)}
.hs-dna-l{font-size:9px;font-weight:800;letter-spacing:.3px;color:var(--dim)}
.hs-vis{margin-left:auto;text-align:right}
.hs-vis-l{display:block;font-size:10px;font-weight:800;letter-spacing:.4px;text-transform:uppercase;color:var(--dim);margin-bottom:5px}
.hs-vis-avs{display:inline-flex}
.hs-va{width:28px;height:28px;border-radius:50%;background:var(--card) center/cover no-repeat;border:2px solid var(--card);margin-left:-8px;display:grid;place-items:center;font-size:11px;font-weight:800;color:var(--ink2);box-shadow:0 0 0 1px var(--line)}
.hs-va:first-child{margin-left:0}
.hs-kd{text-align:center;background:var(--accent-wash,rgba(39,150,242,.1));border-radius:var(--r);padding:8px 16px}
.hs-kd-v{display:block;font-size:22px;font-weight:900;color:var(--accent);line-height:1}
.hs-kd-l{font-size:10px;font-weight:700;letter-spacing:.3px;text-transform:uppercase;color:var(--dim)}

/* Tabs */
.pcov-tabs{display:flex;gap:4px;padding:0 16px;border-top:1px solid var(--line)}
/* tab-ikoner + hårfin |-avskiljare mellan flikarna */
.pcov-tabs .ptab{display:inline-flex;align-items:center;gap:7px;position:relative}
.pcov-tabs .ptab .bi{font-size:13px;opacity:.65;line-height:1}
.pcov-tabs .ptab:hover .bi{opacity:.9}
.pcov-tabs .ptab.on .bi{opacity:1}
.pcov-tabs .ptab + .ptab::before{content:"";position:absolute;left:-3px;top:50%;transform:translateY(-50%);height:16px;width:1px;background:var(--line)}

.ptab{padding:13px 15px;font-size:13.5px;font-weight:700;color:var(--ink2);cursor:pointer;border-bottom:2.5px solid transparent;margin-bottom:-1px}
.ptab:hover{color:var(--ink)}
.ptab.on{color:var(--accent);border-bottom-color:var(--accent)}

/* Composer */
.composer{display:flex;align-items:center;gap:11px;padding:12px 14px}
.composer .av{width:40px;height:40px;border-radius:50%;background:var(--inset) center/cover no-repeat;flex:0 0 auto}
.composer .fake{flex:1;display:flex;align-items:center;justify-content:space-between;background:var(--inset);border:1px solid var(--line);border-radius:999px;padding:10px 16px;color:var(--dim);font-size:14px}
.composer .fake:hover{background:var(--line)}
.composer .fake .bi{font-size:18px;color:var(--live)}
.chiplbl.auto{font-size:10.5px;font-weight:800;color:var(--gold);background:color-mix(in srgb,var(--gold) 16%,transparent);border-radius:5px;padding:1px 7px;vertical-align:middle}

/* Statistik grid */
.pstat-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;padding:14px 16px 16px}
.pstat{background:var(--inset);border:1px solid var(--line);border-radius:var(--r-sm);padding:12px 13px;text-align:center}
.pstat .v{font-size:19px;font-weight:900;color:var(--ink);line-height:1.1}
.pstat .v.good{color:var(--live)}.pstat .v.gold{color:var(--gold)}
.pstat .l{font-size:10.5px;font-weight:700;letter-spacing:.3px;text-transform:uppercase;color:var(--dim);margin-top:4px}

/* Per-lage selector */
.plsel{display:flex;flex-wrap:wrap;gap:7px;padding:14px 16px 4px}
.plchip{font-size:12.5px;font-weight:700;color:var(--ink2);background:var(--inset);border:1px solid var(--line);border-radius:999px;padding:6px 14px}
.plchip:hover{background:var(--line)}
.plchip.on{background:var(--accent);color:#fff;border-color:transparent}

/* Sessions */
.psess-list{display:flex;flex-direction:column;gap:7px;padding:0 16px 16px}
.psess-row{display:flex;justify-content:space-between;gap:10px;padding:9px 12px;background:var(--inset);border:1px solid var(--line);border-radius:var(--r-sm);font-size:12.5px;color:var(--ink)}
/* v112: Senaste sessioner (per session: läge, matcher, wins, kills, K/D, längd) */
.psess-sub{font-size:10.5px;font-weight:800;letter-spacing:.4px;text-transform:uppercase;color:var(--dim);padding:4px 0 1px}
.psess-srow{display:flex;align-items:center;flex-wrap:wrap;gap:6px 12px;padding:9px 12px;background:var(--inset);border:1px solid var(--line);border-radius:var(--r-sm);font-size:12.5px;color:var(--ink)}
.psess-srow.live{border-color:color-mix(in srgb,var(--live) 35%,transparent)}
.psess-smode{font-weight:800;color:var(--ink);min-width:74px}
.psess-snums{color:var(--ink2)}
.psess-snums .gold{color:var(--gold)}
.psess-smeta{margin-left:auto;font-size:11.5px}

/* Vanner grid */
.pfr-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(88px,1fr));gap:12px;padding:14px 16px 16px}
.pfr{display:flex;flex-direction:column;align-items:center;gap:7px;color:inherit}
.pfr-av{width:64px;height:64px;border-radius:50%;background:var(--inset) center/cover no-repeat;border:1px solid var(--line);display:grid;place-items:center;font-weight:800;font-size:20px;color:var(--ink2);position:relative}
.pfr-dot{position:absolute;right:3px;bottom:3px;width:13px;height:13px;border-radius:50%;background:var(--live);border:2.5px solid var(--card)}
.pfr-nm{font-size:12px;font-weight:600;color:var(--ink);text-align:center;max-width:84px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

/* Om mig */
.pabout{padding:14px 16px 16px}
.pabout p{font-size:14px;color:var(--ink);line-height:1.6;margin:0 0 12px}
.pabout p.dim{color:var(--dim)}
.pabout-meta{display:flex;flex-direction:column;gap:9px;border-top:1px solid var(--line);padding-top:12px}
.pm-row{display:flex;align-items:center;gap:9px;font-size:13px;color:var(--ink2)}
.pm-row .bi{color:var(--dim);width:16px;text-align:center}
.pm-row b{color:var(--ink);font-weight:700}
.pabout-note{margin-top:12px;font-size:11px;color:var(--dim);line-height:1.5;background:var(--accent-wash,rgba(39,150,242,.07));border:1px solid var(--line);border-radius:var(--r-sm);padding:8px 10px}
.pabout-note a{color:var(--accent);font-weight:700}.pabout-note .bi{color:var(--accent)}

/* Sociala lankar (med handle) */
.psocials{display:grid;grid-template-columns:1fr 1fr;gap:8px;padding:14px 16px 16px}
.pslink{display:flex;align-items:center;gap:9px;background:var(--inset);border:1px solid var(--line);border-radius:var(--r-sm);padding:8px 10px;min-width:0}
.pslink:hover{background:var(--line)}
.psi{width:30px;height:30px;border-radius:var(--r-sm);display:grid;place-items:center;color:#fff;font-weight:900;font-size:13px;flex:0 0 auto}
.psl-t{min-width:0;display:flex;flex-direction:column;line-height:1.2}
.psl-t b{font-size:12.5px;color:var(--ink)}
.psl-t small{font-size:11px;color:var(--dim);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

/* Statistik-sammanfattning */
.pstatsum{padding:8px 16px}
.ssrow{display:flex;justify-content:space-between;align-items:center;padding:9px 0;border-bottom:1px solid var(--line);font-size:13.5px}
.ssrow:last-child{border-bottom:0}
.ssrow .l{color:var(--ink2)}
.ssrow .v{font-weight:800;color:var(--ink)}
.ssrow .v.good{color:var(--live)}.ssrow .v.gold{color:var(--gold)}
.seelink{display:block;padding:11px 16px;border-top:1px solid var(--line);font-size:13px;font-weight:700;color:var(--accent)}
.seelink:hover{background:var(--inset)}

/* Profilbesokare */
.pvisitors{padding:14px 16px 16px}
.pv-avs{display:flex;align-items:center;margin-bottom:10px}
.pv-a{width:38px;height:38px;border-radius:50%;background:var(--card) center/cover no-repeat;border:2px solid var(--card);box-shadow:0 0 0 1px var(--line);margin-left:-10px;display:grid;place-items:center;font-size:13px;font-weight:800;color:var(--ink2)}
.pv-a:first-child{margin-left:0}
.pv-more{margin-left:8px;font-size:12px;font-weight:800;color:var(--dim)}
.pv-stat{font-size:12.5px;color:var(--ink2)}.pv-stat b{color:var(--ink)}

/* Vanner-lista (rail) */
.pfr-list{padding:8px 8px 12px}
.chd a[data-ptab-jump]{cursor:pointer}

.lr-rank{display:inline-block;font-size:10.5px;font-weight:800;border:1px solid var(--line);border-radius:999px;padding:1px 8px}
.center .pcover{margin:0}

/* ============ v24: kompaktare hero + delad nav-count + mini-stats + rank-nästa + add-friend ============ */
/* Kompaktare cover/hero */
.pcov-banner{height:118px}
.pcov-row{margin-top:-36px;padding:0 20px 11px;gap:14px}
.pcov-av{width:90px;height:90px;font-size:32px;border-width:4px}
.pcov-dot{width:16px;height:16px;right:6px;bottom:7px}
.pcov-meta h1{font-size:22px}
.pcov-badges{margin-top:7px}
.pcov-strip{padding:11px 20px;gap:18px}
.hs-kd{padding:6px 15px}
.hs-kd-v{font-size:19px}
.pcov-tabs .ptab{padding:11px 14px}

/* Rank: ikon + nästa rank */
.hs-rd{display:inline-flex;align-items:center}
.hs-ricon{width:18px;height:18px;object-fit:contain;vertical-align:-4px;margin-right:5px}
.hs-ricon.sm{width:14px;height:14px;vertical-align:-3px;margin-right:3px}
.hs-rank-next{margin-top:5px;font-size:11px;color:var(--dim);display:flex;align-items:center;gap:3px}
.hs-rank-next b{color:var(--ink2);font-weight:700}

/* Mini-profil stats (KD/VR/Kills) */
.lr-stats{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--line);margin-top:2px}
.lr-stat{text-align:center;padding:9px 4px;border-right:1px solid var(--line)}
.lr-stat:last-child{border-right:0}
.lr-stat .v{display:block;font-size:15px;font-weight:900;color:var(--ink);line-height:1.05}
.lr-stat .v.good{color:var(--live)}
.lr-stat .v.gold{color:var(--gold)}
.lr-stat .l{font-size:9.5px;font-weight:800;letter-spacing:.3px;text-transform:uppercase;color:var(--dim);margin-top:2px}

/* Nav-räknare (live) */
.nlink .ct.live{color:#fff;background:var(--live)}

/* Add-friend väntar-state */
.pbtn.wait{background:color-mix(in srgb,var(--gold) 18%,transparent);color:var(--gold)}

.lr-rank{display:inline-flex;align-items:center}
.lr-ricon{width:14px;height:14px;object-fit:contain;margin-right:4px;vertical-align:-2px}

/* ============ v29: snyggare mini-profil ============ */
.pmini{display:flex;align-items:center;gap:13px;padding:15px 16px 14px}
.pmini .av{width:54px;height:54px;border-radius:50%;flex:0 0 auto;background-size:cover;background-position:center;border:2px solid var(--line)}
a.av.avatar-ph{display:grid;place-items:center;color:var(--ink);text-decoration:none;font-weight:800;transition:border-color .12s ease-out}
.pmini a.av:hover{border-color:var(--accent)}
.pmini-i{min-width:0;flex:1}
.pmini .nm{font-weight:800;font-size:16px;line-height:1.15;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pmini-meta{display:flex;align-items:center;gap:8px;margin-top:7px;flex-wrap:wrap}
.lr-rank{display:inline-flex;align-items:center;gap:5px;white-space:nowrap;font-size:11px;font-weight:800;line-height:1;border:1px solid var(--line);border-radius:999px;padding:4px 10px;background:var(--inset)}
.lr-ricon{width:15px;height:15px;object-fit:contain;flex:0 0 auto}
.pmini-streak{display:inline-flex;align-items:center;gap:4px;white-space:nowrap;font-size:11.5px;font-weight:600;color:var(--dim)}
.pmini-streak .bi{color:#e86a08;font-size:12px}
/* stats-rad flush mot mini-kortet */
.lr-stats{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--line)}
.lr-stat{text-align:center;padding:11px 4px 12px;border-right:1px solid var(--line)}
.lr-stat:last-child{border-right:0}
.lr-stat .v{display:block;font-size:17px;font-weight:900;line-height:1;color:var(--ink)}
.lr-stat .v.good{color:var(--live)}
.lr-stat .v.gold{color:var(--gold)}
.lr-stat .l{display:block;font-size:9.5px;font-weight:800;letter-spacing:.4px;text-transform:uppercase;color:var(--dim);margin-top:5px}

/* ============ v33: mini-profil "nameplate flat" (pm2-) ============
   Platt tvåtonsheader (tonalt steg från kortet, ingen gradient). Rankfärg
   koncentrerad: kantlinje under headern + avatarring + hörn-emblem.
   BP-baren bor i headern (Fortnite-identitet), XP-baren i kroppen (FORRE). */
.pmini2{overflow:hidden;position:relative}
.pm2-head{background:color-mix(in srgb,var(--ink) 4%,var(--card));border-bottom:2px solid var(--pm2-rank,var(--accent));padding:14px 16px 13px}
[data-theme="dark"] .pm2-head{background:color-mix(in srgb,#000 30%,var(--card))}
.pm2-board{display:flex;align-items:center;gap:12px}
.pm2-avwrap{position:relative;flex:0 0 auto;display:block}
.pm2-av{width:58px;height:58px;border-radius:50%;display:grid;place-items:center;background:var(--inset);background-position:center;color:var(--ink);font-weight:800;font-size:20px;text-decoration:none;border:2px solid var(--pm2-rank,#8a94a1);transition:filter .12s ease-out}
.pm2-av:hover{filter:brightness(1.06)}
.pm2-emblem{position:absolute;right:-4px;bottom:-2px;width:24px;height:24px;border-radius:50%;background:var(--bg);border:1.5px solid var(--pm2-rank,#8a94a1);display:flex;align-items:center;justify-content:center;pointer-events:none}
.pm2-emblem img{width:14px;height:14px;object-fit:contain}
.pm2-id{min-width:0;flex:1;display:flex;flex-direction:column;gap:5px}
.pm2-nm{font-weight:800;font-size:16.5px;line-height:1.15;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;text-decoration:none}
.pm2-nm:hover{text-decoration:underline}
.pm2-rankrow{display:flex;align-items:center;gap:7px;min-width:0}
.pm2-rank{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:10.5px;font-weight:800;line-height:1;letter-spacing:.08em;text-transform:uppercase}
.pm2-dot{color:var(--faint);font-size:11px;line-height:1}
.pm2-lvl{white-space:nowrap;font-size:10.5px;font-weight:700;line-height:1;letter-spacing:.04em;color:var(--dim)}
.pm2-bp{margin-top:12px}
/* Stat-rader: label vänster, värde höger, hårlinjer — K/D leder */
.pm2-rows{padding:2px 16px}
.pm2-row{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:9px 0;border-bottom:1px solid var(--line)}
.pm2-row:last-child{border-bottom:0}
.pm2-row .l{font-size:10px;font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:var(--dim)}
.pm2-row .v{font-size:15px;font-weight:800;line-height:1;color:var(--ink2)}
.pm2-row.lead .v{font-size:18px;font-weight:900;color:var(--ink)}
/* XP-progress + streak */
.pm2-prog{padding:11px 16px 12px;border-top:1px solid var(--line);display:flex;flex-direction:column;gap:8px}
.pm2-xprow{display:flex;align-items:baseline;justify-content:space-between;gap:8px}
.pm2-xpl{font-size:10px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--dim)}
.pm2-xpv{font-size:11.5px;font-weight:700;color:var(--ink2)}
.pm2-xpbar{height:5px;background:var(--inset);border:1px solid var(--line);border-radius:999px;overflow:hidden}
.pm2-xpbar i{display:block;height:100%;background:var(--pm2-rank,var(--accent));border-radius:999px;transition:width .3s ease-out}
.pm2-streak{align-self:flex-start;display:inline-flex;align-items:center;gap:5px;white-space:nowrap;font-size:11px;font-weight:700;color:#e86a08;background:color-mix(in srgb,#e86a08 12%,transparent);border-radius:999px;padding:3px 10px}
.pm2-streak .bi{font-size:11px}
/* "För dig" — rena rader (ingen vänster-accentlinje, ingen ikonruta) */
.pm2-fy{padding:11px 16px 13px;border-top:1px solid var(--line);display:flex;flex-direction:column;gap:9px}
.pm2-fyh{font-size:10px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--dim)}
.pm2-fyi{padding:1px 0 1px 10px}
.pm2-fyb{min-width:0;display:flex;flex-direction:column;gap:2px}
.pm2-fyt{font-size:12.5px;line-height:1.4;color:var(--ink2)}
.pm2-fycta{font-size:12px;font-weight:700;color:var(--accent);text-decoration:none;align-self:flex-start}
.pm2-fycta:hover{text-decoration:underline}

/* v31: kompakt hero-strip (KD/VR/Kills inline, ingen tom rad) */
.pcov-strip{gap:18px;padding:10px 20px}
.hs-mini{display:flex;gap:15px;flex:0 0 auto}
.hs-m{text-align:center}
.hs-m .v{display:block;font-size:16px;font-weight:900;line-height:1;color:var(--ink)}
.hs-m .v.good{color:var(--live)}
.hs-m .v.gold{color:var(--gold)}
.hs-m .l{display:block;font-size:9px;font-weight:800;letter-spacing:.3px;text-transform:uppercase;color:var(--dim);margin-top:3px}
.hs-dna{gap:9px}

.pcov-strip{justify-content:space-between}
.hs-rank{flex:0 1 auto}

/* v33: DNA-text i mini-profil (starka/svaga sidor) */
.mini-dna{padding:12px 16px 14px}
.mini-dna-h{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:9px}
.mini-dna-t{display:inline-flex;align-items:center;gap:6px;font-size:10.5px;font-weight:800;letter-spacing:.4px;text-transform:uppercase;color:var(--dim)}
.mini-dna-t .bi{color:var(--accent);font-size:13px}
.mini-dna-arch{font-size:12.5px;font-weight:800;color:var(--accent);text-align:right}
.mini-sw{display:flex;align-items:center;gap:8px;font-size:12.5px;color:var(--ink2);padding:3px 0}
.mini-sw b{color:var(--ink);font-weight:700;margin-right:3px}
.mini-sw .bi{font-size:14px;flex:0 0 auto}
.mini-sw.up .bi{color:var(--live)}
.mini-sw.down .bi{color:#e0674a}

/* ================================================================
   MOBILT SKAL (portat från FORRE_DARK tw-fm) — hamburger-drawer +
   fast bottennav + scroll-göm. Enbart pulse-tokens → ljust + mörkt.
   ================================================================ */

/* Döljs på desktop; visas endast ≤820px (media-block nedan). */
.burger{display:none}
.pulse-bottomnav{display:none}
.pulse-drawer,.pulse-overlay{display:none}

/* --- Drawer + overlay (positionering funkar i alla lägen, men nås bara via hamburgaren på mobil) --- */
.pulse-overlay{position:fixed;inset:0;z-index:80;background:rgba(11,15,20,.44);opacity:0;pointer-events:none;transition:opacity .24s ease}
.pulse-overlay.is-open{opacity:1;pointer-events:auto}
.pulse-drawer{position:fixed;top:0;left:0;bottom:0;z-index:81;width:min(84vw,340px);background:var(--card);border-right:1px solid var(--line);box-shadow:var(--shadow);
  transform:translateX(-100%);transition:transform .28s ease;overflow-y:auto;-webkit-overflow-scrolling:touch;padding:14px 12px calc(18px + env(safe-area-inset-bottom,0px))}
.pulse-drawer.is-open{transform:translateX(0)}
.pd-head{display:flex;align-items:center;gap:12px;padding:12px 12px;border:1px solid var(--line);border-radius:var(--r);background:var(--inset);color:inherit}
.pd-av{width:44px;height:44px;border-radius:50%;flex:0 0 auto;background:var(--accent-wash);background-size:cover;background-position:center;display:grid;place-items:center;font-weight:800;color:var(--accent)}
.pd-id{min-width:0;flex:1}
.pd-name{display:block;font-weight:800;font-size:15px;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pd-sub{display:block;font-size:12px;color:var(--dim);margin-top:2px}
.pd-chev{color:var(--faint);font-size:15px;flex:0 0 auto}
.pd-sc-title{font-size:10px;font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:var(--dim);padding:16px 8px 8px}
.pd-shortcuts{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
.pd-sc{display:flex;flex-direction:column;align-items:center;gap:7px;padding:14px 6px;border:1px solid var(--line);border-radius:var(--r);background:var(--card);color:var(--ink2);font-size:12px;font-weight:700}
.pd-sc:hover{background:var(--inset);color:var(--ink)}
.pd-sc .bi{font-size:19px;color:var(--accent)}
/* Drawer återanvänder pulse-nav (.nlist); ge den luft mot resten */
.pulse-drawer .nlist{margin-top:2px}
.pd-footer{margin-top:14px;padding-top:12px;border-top:1px solid var(--line);display:flex;flex-direction:column;gap:2px}
.pd-flink{display:flex;align-items:center;gap:12px;padding:12px 12px;border-radius:var(--r);color:var(--ink2);font-weight:600;font-size:14px;width:100%;text-align:left}
.pd-flink:hover{background:var(--inset);color:var(--ink)}
.pd-flink .bi{font-size:17px;width:20px;text-align:center}
.pd-danger{color:var(--danger)}
.pd-danger:hover{background:color-mix(in srgb,var(--danger) 12%,transparent);color:var(--danger)}
/* Sök i drawern (flyttad från topbaren på mobil) — full bredd, egen dropdown */
.pd-search{width:auto;margin:0 0 12px;position:relative;flex:none}
.pd-search input{width:100%}
.pd-search .pulse-search-drop{left:0;right:0}
/* Tema-rad i drawer-foten: liten på/av-pip till höger */
.pd-flink .pd-theme-state{margin-left:auto;font-size:11px;font-weight:700;color:var(--dim);text-transform:uppercase;letter-spacing:.04em}

/* --- Bottennav --- */
.pulse-bottomnav{position:fixed;left:0;right:0;bottom:0;z-index:60;background:var(--card);border-top:1px solid var(--line);
  height:calc(58px + env(safe-area-inset-bottom,0px));padding-bottom:env(safe-area-inset-bottom,0px);
  align-items:stretch;transition:transform .3s ease}
.pbn-tab{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;position:relative;color:var(--dim);font-size:10.5px;font-weight:700}
.pbn-tab .bi{font-size:20px;line-height:1}
.pbn-tab.on{color:var(--accent)}
.pbn-tab:active{background:var(--inset)}
.pbn-badge{position:absolute;top:6px;left:calc(50% + 6px);min-width:16px;height:16px;padding:0 4px;border-radius:9px;background:var(--danger);color:#fff;font-size:10px;font-weight:800;line-height:16px;text-align:center}
.pbn-create .pbn-fab{width:46px;height:46px;border-radius:50%;margin-top:-16px;background:linear-gradient(180deg,color-mix(in srgb,var(--accent) 82%,#fff 18%),var(--accent));color:#fff;display:grid;place-items:center;box-shadow:0 0 0 4px var(--card),0 8px 18px color-mix(in srgb,var(--accent) 50%,transparent),0 3px 8px color-mix(in srgb,var(--accent) 35%,transparent)}
.pbn-create .pbn-fab .bi{font-size:23px}
.pbn-create{color:var(--accent-ink)}
/* Kaffe-flik (ersätter Notiser nere): varm accent så den känns som en stötta-oss-knapp */
.pbn-coffee .bi{color:#f5a623}
.pbn-coffee:active{background:color-mix(in srgb,#f5a623 14%,transparent)}

@media(max-width:820px){
  /* Hamburger syns; högerklustret behålls (avmaska .right) */
  .burger{display:grid}
  .top .right{display:flex}
  /* Toppen bantas på mobil: SÖK flyttas till drawern, TEMA-växlaren till drawern,
     kaffe/"spelar nu"/online döljs. Meddelanden, vänförfrågan, notiser, konto BEHÅLLS. */
  .top .right .coffee,.top .right .playnow,.top .right .onlinenow,
  .top .search,.top .right #tgl{display:none}
  .top .in{gap:9px;padding:0 12px}
  .brand{font-size:19px}

  /* Utan sökrutan (flex-spacern) skjuter vi ikonklustret åt höger */
  .top .right{gap:6px;min-width:0;flex-shrink:0;margin-left:auto}
  .top .in>.burger,.top .right .iconbtn{width:34px;height:34px}
  .top .right .me{padding:4px}
  /* Staff-only crew-shield döljs på mobil (nås via drawern), konsekvent med staff-bar/crew-launcher nedan */
  .top .right .crewbtn,#navCrewChatBtn,.top .right .crew-item{display:none!important}
  /* MOBIL-SLIM (mockup): Meddelanden dubbletteras av Chatt-fliken i bottennaven -> dolj topbar-ikonen. Messenger nas via bottennavens Chatt (PulseMessenger.openFull). */
  .top .right .tb-item:has(> button[data-dd="msgs"]){display:none}
  /* MOBIL-SLIM (mockup): vanforfragan-ikonen bort fra topbaren -> finns som "Vanner"-genvag i drawern. Notiser + Fler + konto kvar. */
  .top .right .tb-item:has(> button[data-dd="friends"]){display:none}
  /* MOBIL: sekundara topbar-dropdowns (radar/notiser/support/konto) oppnas UNDER ikonerna (inte ark langst ner).
     tb-item blir static -> dropdownen ankras mot den sticky:a topwrap: top:100% = precis under hela topbaren
     (adapterar till om adminbaren visas eller ej), hogerjusterad + breddbegransad -> aldrig utanfor skarmen.
     #dd-msgs behaller sin egen bottom-sheet. */
  .top .right .tb-item{position:static}
  .top .tb-dd.open:not(#dd-msgs){
    position:absolute;top:100%;right:8px;left:auto;bottom:auto;
    width:min(340px,calc(100vw - 16px));max-width:none;
    max-height:70vh;overflow:auto;z-index:1200;
  }
  /* MOBIL: doljda tabbar lamnade tva losa vertikala separatorer ("||") bredvid notis-badgen -> dolj dem. */
  .top .tb-vsep{display:none}
  /* MOBIL: sok-ikon i topbaren (mockup) — oppnar drawern dar sokfaltet ligger overst. */
  .top .right .tb-searchbtn{display:grid}
  /* Direkt-sok: sok-ikonen faller ner sokfaltet som en rad under topbaren (ej drawern). Ankras mot sticky topwrap (top:100%). */
  .top.tb-search-open .search{display:flex;flex:1 1 auto;min-width:0;position:relative;margin:0 4px;background:var(--inset);border:1px solid var(--line);border-radius:20px;padding:6px 12px;width:auto}
  .top.tb-search-open .search input{flex:1;min-width:0;font-size:14px}
  .top.tb-search-open .right{display:none}
  .top.tb-search-open .search .pulse-search-drop{position:absolute;left:0;right:0;top:calc(100% + 6px)}
  /* Gäst: login redan dold ≤560px; håll register-knappen kompakt så den ryms */
  .top .tb-guest{min-width:0;gap:6px}
  .top .tb-guest .tb-register{padding:8px 12px}

  /* Meddelande-dropdownen är mobilens messenger-yta (senaste chattar + förfrågningar → öppnar
     fullskärms-chattfönster). På mobil = bottom-sheet: alltid helt synlig, full bredd, oberoende
     av topbarens höjd (den vanliga right:0-ankringen hamnade utanför skärmen för vänstra ikonen). */
  #dd-msgs.tb-dd{
    position:fixed;left:0;right:0;bottom:0;top:auto;width:auto;max-width:none;
    border-radius:16px 16px 0 0;z-index:1200;
    max-height:78vh;flex-direction:column;
    box-shadow:0 -14px 44px rgba(20,30,50,.28)
  }
  /* VIKTIGT: visa bara när .open — ID-selektorn ovan sätter INTE display, så .tb-dd{display:none}
     håller den dold tills den öppnas (annars låg panelen öppen hela tiden på mobil). */
  #dd-msgs.tb-dd.open{display:flex}
  #dd-msgs.tb-dd .ddh{position:sticky;top:0;background:var(--card);z-index:1}
  #dd-msgs .ddh a[href*="messenger/full"]{display:none}
  #dd-msgs .ddlist{max-height:none;flex:1;overflow:auto;-webkit-overflow-scrolling:touch}
  /* Liten "grip"-indikator överst så det känns som ett ark man kan svepa ner */
  #dd-msgs.tb-dd::before{content:"";position:absolute;top:7px;left:50%;transform:translateX(-50%);
    width:38px;height:4px;border-radius:2px;background:var(--line2,var(--line));z-index:2}
  #dd-msgs.tb-dd .ddh{padding-top:18px}

  /* NAVBAR ÖVERST, SHOUTBOX UNDER (Kenta 2026-07-22): wrappern blir flex-kolumn på mobil (desktop = display:contents) */
  .pulse-topwrap{display:flex;flex-direction:column;position:sticky;top:0;z-index:50;transition:transform .3s ease}
  .pulse-topwrap .top{order:1}
  .pulse-topwrap .sbar{order:2}
  .pulse-topwrap .top,.pulse-topwrap .sbar{position:static;transform:none;top:auto}

  /* Scroll-göm: hela toppen (shoutbox+navbar) glider upp, bottennav glider ner */
  body.pulse-hide .pulse-topwrap{transform:translateY(-100%)}
  body.pulse-hide .pulse-bottomnav{transform:translateY(100%)}

  /* Visa mobil-chrome + gör plats så bottennav inte täcker innehåll/footer */
  .pulse-bottomnav{display:flex}
  .pulse-drawer,.pulse-overlay{display:block}
  body{padding-bottom:calc(58px + env(safe-area-inset-bottom,0px))}
  body.pulse-locked{overflow:hidden}

  /* Inga flytande staff-verktyg/crew-launcher på mobil (krockar med bottennaven).
     Staff-baren döljs helt; crew-chatten når man via menyval i drawern istället. */
  #forreStaffBar{display:none!important}
  .tw-cc-launcher{display:none!important}
}

@media(prefers-reduced-motion:reduce){
  .top,.sbar,.pulse-bottomnav,.pulse-drawer,.pulse-overlay{transition:none}
}

/* ============ v34: DNA-text i hero (auto-genererad + mus-över-förklaringar) ============ */
.pcov-strip{justify-content:flex-start}
.hs-rank{flex:0 0 210px}
.hs-dnatext{flex:1 1 auto;min-width:0;border-left:1px solid var(--line);padding-left:20px}
.hs-dt-top{display:flex;align-items:center;gap:10px;margin-bottom:3px;flex-wrap:wrap}
.hs-dt-arch{display:inline-flex;align-items:center;gap:6px;font-family:'Roboto';font-weight:900;font-size:15px;color:var(--ink)}
.hs-dt-arch .bi{color:var(--accent);font-size:15px}
.hs-dt-form{display:inline-flex;align-items:center;gap:5px;font-size:11px;font-weight:700;color:var(--dim)}
.hs-dt-ins{font-size:12.5px;color:var(--ink2);line-height:1.45;margin-bottom:8px;max-width:640px}
.hs-dt-sw{display:flex;gap:20px;flex-wrap:wrap;font-size:12.5px;color:var(--ink2)}
.hs-dt-sw .sw{display:inline-flex;align-items:center;gap:2px}
.hs-dt-sw .sw .bi{font-size:16px}
.hs-dt-sw .sw.up .bi{color:var(--live)}
.hs-dt-sw .sw.down .bi{color:#e0674a}
.hs-dt-sw .tt{color:var(--ink);font-weight:700;border-bottom:1px dotted var(--dim);cursor:help}
.hs-dt-sw .tt:hover{color:var(--accent);border-bottom-color:var(--accent)}
@media(max-width:640px){.hs-dnatext{border-left:0;padding-left:0}.hs-rank{flex:1 1 100%}}

/* ============ v35: vassare badges + coolare DNA-taggar ============ */
/* Mindre runda hörn på badges (var pill/999px) */
.pcov-rank,.lr-rank,.pchip,.plchip{border-radius:5px}
.plat-badge{border-radius:5px}
.nlink .ct{border-radius:5px}
.chiplbl.auto{border-radius:4px}

/* Arketyp + form-badge vassare */
.hs-dt-arch{font-size:14.5px;letter-spacing:.2px}
.hs-dt-arch .bi{color:var(--accent);font-size:12px}
.hs-dt-form{background:var(--card);border:1px solid var(--line);border-radius:5px;padding:3px 8px}

/* DNA starka/svaga sidor = färgade taggar (ersätter understruken text) */
.hs-dt-sw{gap:7px;align-items:center}
.dtag{display:inline-flex;align-items:center;gap:4px;font-size:11.5px;font-weight:800;padding:4px 9px;border-radius:5px;cursor:help;border:1px solid transparent;white-space:nowrap;transition:transform .1s ease-out}
.dtag:hover{transform:translateY(-1px)}
.dtag .bi{font-size:10px}
.dtag.up{color:#12924a;background:rgba(46,196,110,.13);border-color:rgba(46,196,110,.30)}
.dtag.down{color:#c14a2c;background:rgba(224,103,74,.11);border-color:rgba(224,103,74,.26)}
.dtag-sep{width:1px;height:18px;background:var(--line);margin:0 3px}
[data-theme="dark"] .dtag.up{color:#4bf09a}
[data-theme="dark"] .dtag.down{color:#ff8f6b}

/* ============ v36: rank-shield + piffad hero (ljust, mer kant) ============ */
.hs-rank{display:flex;align-items:center;gap:12px;flex:0 0 auto}
.hs-shield{width:48px;height:48px;border-radius:8px;display:grid;place-items:center;flex:0 0 auto;
  background:color-mix(in srgb,var(--rc,#8a94a1) 14%,var(--card));
  border:1px solid color-mix(in srgb,var(--rc,#8a94a1) 45%,transparent);
  box-shadow:0 3px 12px -5px color-mix(in srgb,var(--rc,#8a94a1) 70%,transparent)}
.hs-shield img{width:33px;height:33px;object-fit:contain}
.hs-shield .bi{font-size:22px;color:var(--rc,#8a94a1)}
.hs-rankinfo{min-width:148px}
.hs-rank-top{display:flex;align-items:baseline;justify-content:space-between;gap:8px;margin-bottom:5px}
.hs-rd{font-family:'Roboto';font-weight:900;font-size:15.5px;letter-spacing:.2px;color:var(--ink)}
.hs-rp{font-size:11px;font-weight:800;color:var(--dim)}
.hs-bar{height:7px;border-radius:99px;background:var(--line);overflow:hidden}
.hs-bar i{display:block;height:100%;border-radius:99px;background:var(--rc,var(--accent))}
.hs-rank-next{margin-top:6px;font-size:11px;color:var(--dim);display:flex;align-items:center;gap:3px}
.hs-rank-next b{color:var(--ink2);font-weight:800}
.hs-ricon.sm{width:14px;height:14px;object-fit:contain}
.hs-dt-arch{font-family:'Roboto';font-weight:900;font-size:15px}

/* v37: rank-shield + DNA sida vid sida (ingen wrap p� desktop) */
.pcov-strip{flex-wrap:nowrap;align-items:center}
.hs-dnatext{flex:1 1 0;min-width:0}
@media(max-width:760px){.pcov-strip{flex-wrap:wrap}.hs-dnatext{border-left:0;padding-left:0;flex:1 1 100%}.hs-rank{flex:1 1 100%}}

/* ============ v38: kompaktare hero + mindre rank-redundans ============ */
.pcov-banner{height:96px}
.pcov-row{margin-top:-30px;padding:0 18px 10px;gap:13px}
.pcov-av{width:78px;height:78px;font-size:28px;border-width:3px}
.pcov-dot{width:14px;height:14px;right:4px;bottom:5px}
.pcov-meta h1{font-size:21px}
.pcov-badges{margin-top:6px}
.pcov-strip{padding:9px 18px;gap:16px}
.hs-shield{width:44px;height:44px}
.hs-shield img{width:30px;height:30px}
.hs-dt-ins{margin-bottom:7px}
.pcov-tabs .ptab{padding:10px 13px}

/* ============ v39: Variant A — namn UNDER covern, slimmade knappar, spelar-nu-pill ============ */
/* Facebook-stil: bara avataren skjuter upp i covern, namn/badges/knappar ligger under kanten. */
.pcov-banner{height:150px}
.pcov-row{align-items:center;margin-top:0;padding:14px 22px 14px;gap:16px}
.pcov-av{width:96px;height:96px;font-size:33px;border-width:4px;margin-top:-58px;align-self:flex-start}
.pcov-dot{width:18px;height:18px;right:5px;bottom:5px}   /* straddlar ringen → halva pricken utanför bilden */
.pcov-meta{padding-bottom:0}
.pcov-meta h1{font-size:24px}
.pcov-badges{margin-top:9px}
.pcov-act{align-self:center;padding-bottom:0}
.pcov-act .pbtn{height:33px;padding:0 12px;font-size:12.5px;gap:6px}
/* "Spelar nu"-pill bredvid namnet (visas endast vid aktiv Fortnite-match) */
.pcov-live{display:inline-flex;align-items:center;gap:6px;font-size:11.5px;font-weight:800;line-height:1;
  color:var(--live);background:var(--live-wash);white-space:nowrap;letter-spacing:.2px;
  border:1px solid color-mix(in srgb,var(--live) 34%,transparent);border-radius:99px;padding:4px 10px 4px 8px}
.pcov-live i{width:7px;height:7px;border-radius:50%;background:var(--live);flex:0 0 auto;
  box-shadow:0 0 0 2px color-mix(in srgb,var(--live) 26%,transparent);animation:pcovlive 1.8s ease-in-out infinite}
@keyframes pcovlive{0%,100%{box-shadow:0 0 0 2px color-mix(in srgb,var(--live) 26%,transparent)}
  50%{box-shadow:0 0 0 5px color-mix(in srgb,var(--live) 5%,transparent)}}
@media (prefers-reduced-motion:reduce){.pcov-live i{animation:none}}
@media(max-width:560px){
  .pcov-banner{height:112px}
  .pcov-av{width:80px;height:80px;font-size:28px;margin-top:-46px}
  .pcov-dot{width:16px;height:16px;right:4px;bottom:4px}
  .pcov-meta h1{font-size:21px}
}

/* ============ v40: kompakt hero-strip (Alternativ A1) — 2 rader per sida ============ */
.pcov-strip{align-items:center;padding:10px 20px;gap:18px}
/* Rank: namn + % + "Nästa X" på EN rad, bar under (var 3 rader → 2) */
.hs-rankinfo{min-width:158px}
.hs-rank-top{justify-content:flex-start;align-items:baseline;gap:7px;margin-bottom:5px}
.hs-rank-top .hs-rank-next{margin-top:0;font-size:10.5px}
.hs-rank-top .hs-rank-next::before{content:"·";margin-right:6px;color:var(--faint,#aeb6c0)}
/* DNA: arketyp + form + insikt(inline, klipps med …) på rad 1, taggar på rad 2 */
.hs-dnatext{display:flex;flex-direction:column;gap:6px}
.hs-dt-top{flex-wrap:nowrap;gap:9px;margin-bottom:0;min-width:0}
.hs-dt-top .hs-dt-arch{flex:0 0 auto;white-space:nowrap}
.hs-dt-top .hs-dt-form{flex:0 0 auto}
.hs-dt-ins{flex:1 1 auto;min-width:0;max-width:none;margin-bottom:0;font-size:12px;cursor:help;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.hs-dt-sw{flex-wrap:wrap;gap:6px}
.hs-dt-sw .dtag{padding:3px 8px}
.hs-dt-sw .dtag-sep{margin:0 1px}
@media(max-width:560px){
  .pcov-strip{flex-wrap:wrap}
  .hs-dnatext{flex:1 1 100%;border-left:0;padding-left:0}
  .hs-dt-top{flex-wrap:wrap}
  .hs-dt-ins{white-space:normal;flex:1 1 100%}
}

/* ============================================================
   FORRE-BOTEN i Pulse — token-bro + rund launcher (nedre vänster)
   Botens CSS (themes/FORRE_DARK/css/components/forre-helper-bot.css)
   är byggd på FORRE_DARK-tokens (--primary, --surface-1..5, --border,
   --text-*) som inte finns i pulse → FAB/panel blir osynlig/trasig.
   Här mappas de mot pulse-tokens och launchern görs om till en kompakt
   rund knapp som matchar pulse. Scope: html[data-pulse] .tw-bot* har
   högre specificitet än botens egna 1-klass-regler och vinner oavsett
   laddningsordning. data-pulse finns bara i pulse-skalet → rör ej FORRE_DARK.
   ============================================================ */
html[data-pulse] .tw-bot{
  --primary: var(--accent);
  --primary-hover: var(--accent-ink);
  --surface-1: var(--inset);
  --surface-2: var(--card);
  --surface-3: var(--inset);
  --surface-4: var(--card);
  --surface-5: var(--zebra);
  --border: var(--line);
  --border-dark: var(--line2);
  --text-primary: var(--ink);
  --text-secondary: var(--ink2);
  --text-tertiary: var(--dim);
  --text-muted: var(--faint);
  --tint-blue: var(--accent-wash);
  --success: var(--live);
  --shadow-button: 0 4px 14px rgba(16,24,40,.16);
  --shadow-dropdown: 0 8px 28px rgba(16,24,40,.14);
  --shadow-hover: 0 12px 40px rgba(16,24,40,.18);
  --transition-speed: .12s;
  --ring-focus: 0 0 0 3px var(--accent-wash);
  --font-family: 'Roboto', sans-serif;
}

/* Rund launcher nere i vänstra hörnet (pulse-look, inte pill) */
html[data-pulse] .tw-bot-fab{
  width:52px; height:52px; padding:0; gap:0;
  border-radius:50%;
  justify-content:center;
  box-shadow:var(--shadow-button);
}
html[data-pulse] .tw-bot-fab-label{ display:none; }
html[data-pulse] .tw-bot-fab-ic{ font-size:20px; }
/* Röd oläst-prick ("!") — tydlig ring mot ljus bakgrund */
html[data-pulse] .tw-bot-fab-dot{
  top:-3px; right:-3px; width:15px; height:15px;
  border:2px solid var(--card);
}

/* Mjuka hörn passar pulse (botens FORRE_DARK-panel har 0 radius) */
html[data-pulse] .tw-bot-panel,
html[data-pulse] .tw-bot-nudge{ border-radius:var(--r); }

/* Placeholder är hårdkodad vit i botens CSS → osynlig på ljus bakgrund */
html[data-pulse] .tw-bot-input-field::placeholder{ color:var(--dim); }

/* Mobil: inga flytande knappar i hörnen. Boten når man via drawer-raden ("Fråga FORRE-boten"),
   messenger via ✉-ikonen i toppen. Rensar underkanten helt (inget skymmer innehåll/bottennav). */
@media(max-width:820px){
  html[data-pulse] .tw-bot-fab,
  html[data-pulse] .tw-bot-nudge{ display:none!important; }
  /* Messenger-FAB (nere till höger) tas bort på mobil — ersatt av ✉ i topbaren. */
  html[data-pulse] .pm-fab{ display:none!important; }
}

/* ============================================================
   STAFF-BAREN i Pulse — token-bro + pulse-look
   Staff-baren (themes/FORRE_DARK/views/partials/staff-bar.php) är en delad
   partial byggd på FORRE_DARK-tokens (--surface-5, --border-active, --text-*,
   --primary, --danger, --divider ...) som inte finns i pulse → de mörka
   fallbacks:arna (#101010, #454545) slår in och pillen blir svart mot pulses
   ljusa yta. Här mappas tokens mot pulse-tokens och formen mjukas upp för att
   matcha pulse (rundade hörn, lätt skugga, ljus hover). Scope: html[data-pulse]
   vinner på specificitet och finns bara i pulse-skalet → rör ej FORRE_DARK.
   Mobil-döljning (#forreStaffBar) sker redan i @media(max-width:820px) ovan.
   ============================================================ */
html[data-pulse] .tw-staff,
html[data-pulse] .tw-staffpop{
  --surface-5: var(--card);
  --surface-4: var(--inset);
  --border-active: var(--line2);
  --border: var(--line);
  --divider: var(--line);
  --primary: var(--accent);
  --danger: var(--danger);
  --success: var(--live);
  --text-primary: var(--ink);
  --text-secondary: var(--ink2);
  --text-tertiary: var(--dim);
  --text-muted: var(--faint);
  --font-family: 'Roboto', sans-serif;
}

/* Mjuka hörn + lätt skugga i stället för FORRE_DARK:s platta 0-radius/tunga skugga */
html[data-pulse] .tw-staff-pill,
html[data-pulse] .tw-staff-panel,
html[data-pulse] .tw-staffpop{
  border-radius:var(--r);
  box-shadow:0 8px 28px rgba(16,24,40,.14);
}
html[data-pulse] .tw-staffpop select,
html[data-pulse] .tw-staffpop input,
html[data-pulse] .tw-staffpop .btn{ border-radius:var(--r-sm); }

/* Hover-lager i den delade partialen är hårdkodat vitt (rgba(255,255,255,.04))
   → osynligt mot pulses ljusa yta. Byt mot pulse-inset. */
html[data-pulse] .tw-staff-act:hover{ background:var(--inset); }

/* floating-dock.js (delad FORRE_DARK-koordinator) positionerar STAFF-pillen som om
   messenger-FAB:en vore FORRE_DARK:s smala .messenger-fab-btn (footprint 54 → pillen på
   right:64). Pulses egna .pm-fab är bredare och sitter på right:18 (+52 = upptar högra 70px)
   → pillen hamnade ~6px OVANPÅ FAB:en. Putta pillen till vänster om FAB:en med luft emellan.
   !important slår JS:ens inline `right` (icke-important) i cascaden. */
html[data-pulse] #forreStaffBar{ right:84px !important; }

/* ============================================================
   v40: SPRITES-CHECKLISTA (pulse-port)
   Platt · hårfina kanter · tabulära siffror · inga gradienter.
   Fyrkantiga celler (--r-sm) = data/tävling. Rarity → pulse-tokens.
   ============================================================ */
.pulse-sprites{--rare:var(--accent);--epic:var(--champ);--legendary:var(--gold);--mythic:var(--danger);display:flex;flex-direction:column;gap:14px}

/* header-kort */
.spr-head{padding:16px 18px}
.spr-head-top{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;flex-wrap:wrap}
.spr-head-main{min-width:0}
.spr-kicker{display:inline-flex;align-items:center;gap:7px;color:var(--accent)}
.spr-kicker .bi{font-size:13px}
.spr-title{font-family:'Roboto';font-weight:900;font-size:22px;letter-spacing:-.01em;margin:7px 0 3px;color:var(--ink)}
.spr-sub{font-size:13px;color:var(--dim)}

/* progress (platt bar, ingen gradient) */
.spr-progress{flex:0 0 auto;min-width:200px;text-align:right}
.spr-prog-nums{display:flex;align-items:baseline;justify-content:flex-end;gap:9px}
.spr-prog-nums strong{font-family:'Roboto';font-weight:900;font-size:27px;color:var(--ink);line-height:1}
.spr-prog-nums strong small{font-size:14px;font-weight:700;color:var(--dim)}
.spr-prog-pct{font-family:'Roboto';font-weight:900;font-size:14px;color:var(--accent)}
.spr-bar{margin-top:9px}
.spr-bar i{background:var(--accent);transition:width .18s ease-out}

/* rarity-chips */
.spr-rarity{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px}
.spr-rchip{display:inline-flex;align-items:center;gap:6px;font-size:11.5px;font-weight:500;color:var(--dim);background:var(--inset);border:1px solid var(--line);border-radius:var(--r-sm);padding:5px 10px}
.spr-rchip i{width:8px;height:8px;border-radius:2px;display:block}
.spr-rchip b{color:var(--ink2);font-weight:600;letter-spacing:.01em}
.spr-rchip em{font-style:normal;font-variant-numeric:tabular-nums;font-feature-settings:"tnum" 1;font-weight:600;color:var(--ink)}
.spr-rchip[data-rarity=rare] i{background:var(--rare)}
.spr-rchip[data-rarity=epic] i{background:var(--epic)}
.spr-rchip[data-rarity=legendary] i{background:var(--legendary)}
.spr-rchip[data-rarity=mythic] i{background:var(--mythic)}

/* actions */
.spr-actions{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap;margin-top:15px;padding-top:14px;border-top:1px solid var(--line)}
.spr-actions-title{display:inline-flex;align-items:center;gap:7px;font-family:'Roboto';font-weight:800;font-size:12px;letter-spacing:.1em;text-transform:uppercase;color:var(--dim)}
.spr-actions-btns{display:flex;gap:9px}
/* Spara = tydlig primär (accent), Dela = tydlig sekundär (accent-outline) */
.spr-btn-save{background:var(--accent);color:#fff;border-color:var(--accent);font-weight:800}
.spr-btn-save:hover{background:var(--accent-ink);border-color:var(--accent-ink)}
.spr-btn-share{background:var(--card);color:var(--accent);border-color:color-mix(in srgb,var(--accent) 42%,var(--line));font-weight:800}
.spr-btn-share:hover{background:var(--accent-wash);border-color:var(--accent)}
.spr-viewnote{display:flex;align-items:center;gap:8px;margin-top:13px;padding:10px 13px;background:var(--accent-wash);border:1px solid var(--line);border-radius:var(--r);font-size:12.5px;color:var(--ink2)}
.spr-viewnote .bi{color:var(--accent)}

/* matris */
.spr-matrix-card{overflow:hidden}
.spr-scroll{overflow-x:auto}
.spr-matrix{--cols:var(--spr-cols,4);min-width:calc(200px + var(--cols) * 92px)} /* --spr-cols: satt inline av vyn = antal slappta variantfamiljer */
.spr-matrix.show-unreleased{--cols:8}
.spr-mhead,.spr-row{display:grid;grid-template-columns:minmax(200px,1.4fr) repeat(var(--cols),1fr);gap:10px;align-items:center;padding:10px 14px}
/* unreleased-kolumner & rader: dolda tills "Visa unreleased" */
.spr-mh-variant.is-col-unrel,.spr-cell.is-col-unrel{display:none}
.spr-matrix.show-unreleased .spr-mh-variant.is-col-unrel{display:block}
.spr-matrix.show-unreleased .spr-cell.is-col-unrel{display:grid}
.spr-row.is-row-unrel{display:none}
.spr-matrix.show-unreleased .spr-row.is-row-unrel:not(.is-filtered-out){display:grid}
.spr-row.is-filtered-out{display:none}
.spr-mhead{border-bottom:1px solid var(--line);position:sticky;top:0;background:var(--card);z-index:1;margin-bottom:9px}
.spr-mh-label{font-family:'Roboto';font-weight:800;font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--dim)}
.spr-mh-variant{text-align:center;font-family:'Roboto';font-weight:900;font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:var(--ink2)}
/* rader = egna kort med luft emellan + rarity-tonad gradient (starkast upptill, tonar ned mot kortfärgen). Ingen vänsterlinje. */
.spr-row{border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--shadow);margin-bottom:9px}
.spr-row:last-child{margin-bottom:0}
.pulse-sprites .spr-row[data-rarity=rare]{background:linear-gradient(180deg,color-mix(in srgb,var(--rare) 15%,var(--card)) 0%,color-mix(in srgb,var(--rare) 6%,var(--card)) 82%,var(--card) 100%)}
.pulse-sprites .spr-row[data-rarity=epic]{background:linear-gradient(180deg,color-mix(in srgb,var(--epic) 15%,var(--card)) 0%,color-mix(in srgb,var(--epic) 6%,var(--card)) 82%,var(--card) 100%)}
.pulse-sprites .spr-row[data-rarity=legendary]{background:linear-gradient(180deg,color-mix(in srgb,var(--legendary) 16%,var(--card)) 0%,color-mix(in srgb,var(--legendary) 6%,var(--card)) 82%,var(--card) 100%)}
.pulse-sprites .spr-row[data-rarity=mythic]{background:linear-gradient(180deg,color-mix(in srgb,var(--mythic) 15%,var(--card)) 0%,color-mix(in srgb,var(--mythic) 6%,var(--card)) 82%,var(--card) 100%)}

/* label-cell */
.spr-label{min-width:0}
.spr-label-top{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.spr-label-top strong{font-family:'Roboto';font-weight:900;font-size:15px;color:var(--ink)}
.spr-rbadge{font-family:'Roboto';font-weight:800;font-size:10px;letter-spacing:.03em;text-transform:uppercase;padding:2px 7px;border-radius:var(--r-sm);border:1px solid transparent}
.spr-rbadge[data-rarity=rare]{color:var(--rare);background:color-mix(in srgb,var(--rare) 12%,transparent);border-color:color-mix(in srgb,var(--rare) 40%,transparent)}
.spr-rbadge[data-rarity=epic]{color:var(--epic);background:color-mix(in srgb,var(--epic) 12%,transparent);border-color:color-mix(in srgb,var(--epic) 40%,transparent)}
.spr-rbadge[data-rarity=legendary]{color:var(--legendary);background:color-mix(in srgb,var(--legendary) 14%,transparent);border-color:color-mix(in srgb,var(--legendary) 42%,transparent)}
.spr-rbadge[data-rarity=mythic]{color:var(--mythic);background:color-mix(in srgb,var(--mythic) 12%,transparent);border-color:color-mix(in srgb,var(--mythic) 40%,transparent)}
.spr-ability{display:flex;align-items:flex-start;gap:6px;margin-top:5px;font-size:12px;color:var(--dim);line-height:1.4}
.spr-ability .bi{color:var(--accent);font-size:11px;margin-top:2px;flex:0 0 auto}
.spr-ability span{min-width:0}

/* celler (fyrkantiga) */
.spr-cell{position:relative;aspect-ratio:1/1;display:grid;place-items:center;background:var(--inset);border:1px solid var(--line);border-radius:var(--r-sm);transition:border-color .12s,background .12s,transform .1s ease-out;cursor:pointer}
.spr-cell:not(.spr-cell--empty):not(:disabled):hover{border-color:var(--accent);transform:translateY(-1px)}
.spr-cell img{width:72%;height:72%;object-fit:contain;opacity:.42;transition:opacity .12s}
.spr-cell.is-owned{background:var(--accent-wash);border-color:var(--accent)}
.spr-cell.is-owned img{opacity:1}
.spr-cell:disabled{cursor:default}
.spr-cell:disabled:not(.is-owned){opacity:.9}

/* check-badge (ägd) */
.spr-check{position:absolute;top:5px;right:5px;width:19px;height:19px;border-radius:50%;background:var(--live);color:#fff;display:none;place-items:center;font-size:11px;box-shadow:0 1px 3px rgba(16,24,40,.25)}
.spr-cell.is-owned .spr-check{display:grid}

/* lås (icke-ägare, ej ägd) */
.spr-lock{position:absolute;top:5px;right:5px;width:19px;height:19px;border-radius:50%;background:var(--card);border:1px solid var(--line);color:var(--faint);display:none;place-items:center;font-size:9px}
.pulse-sprites .spr-cell:disabled:not(.is-owned) .spr-lock{display:grid}

/* saknad variant */
.spr-cell--empty{cursor:default;border-style:dashed;background:transparent;color:var(--faint)}
.spr-cell--empty .bi{font-size:16px}

/* footer */
.spr-foot{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;padding:12px 16px;border-top:1px solid var(--line);font-size:12px;color:var(--dim)}
.spr-foot .bi{color:var(--live)}
#twSpritesSaveStatus{color:var(--ink2);font-weight:600}

/* responsivt */
@media(max-width:820px){
  .spr-head{padding:14px}
  .spr-head-top{flex-direction:column}
  .spr-progress{text-align:left;min-width:0;width:100%}
  .spr-prog-nums{justify-content:flex-start}
}

/* mobil-reflow: stapla varje grupp (rubrik överst + 4 varianter i rad) — ingen sidoscroll */
@media(max-width:720px){
  /* dela/ladda ned: fullbredd, lätta att trycka med tummen */
  .spr-actions{flex-direction:column;align-items:stretch;gap:10px}
  .spr-actions-btns{width:100%;gap:10px}
  .spr-actions-btns .btn{flex:1;justify-content:center;padding:12px 14px;font-size:14px}

  /* ingen horisontell scroll — matrisen fyller skärmen */
  .spr-matrix-card{overflow:visible}
  .spr-scroll{overflow-x:visible}
  .spr-matrix{min-width:0}
  .spr-mhead{display:none}                 /* variantrubrik ersätts av etikett per cell */
  .spr-row{grid-template-columns:repeat(4,1fr);gap:8px;padding:13px 12px}
  .spr-label{grid-column:1/-1;margin-bottom:3px}
  .spr-label-top strong{font-size:14.5px}

  /* celler: kvadratiska, plats för variant-etikett under bilden */
  .spr-cell{padding-bottom:14px}
  .spr-cell img{width:66%;height:66%}
  .spr-cell::after{content:attr(data-variant);position:absolute;left:0;right:0;bottom:3px;text-align:center;font-size:9px;font-weight:800;letter-spacing:.02em;text-transform:capitalize;color:var(--dim);pointer-events:none}
  .spr-cell.is-owned::after{color:var(--accent-ink)}
  .spr-check,.spr-lock{width:17px;height:17px;font-size:10px}
}

/* mycket små skärmar: fortfarande 4 i rad men tightare */
@media(max-width:380px){
  .spr-row{gap:6px;padding:12px 10px}
  .spr-cell img{width:62%;height:62%}
}

/* ---- progress: ägd + mastrad ---- */
.spr-prog-sub{display:flex;gap:12px;justify-content:flex-end;margin-top:8px;font-size:11.5px;font-weight:700}
.spr-prog-owned{color:var(--live)}
.spr-prog-mast{color:var(--gold)}
.spr-prog-sub .bi{font-size:11px;margin-right:2px}
.spr-prog-sub .mono,.spr-prog-owned span,.spr-prog-mast span{font-variant-numeric:tabular-nums}

/* ---- MASTERED-cell (två-stegs, guld) ---- */
.spr-star{position:absolute;top:5px;right:5px;width:19px;height:19px;border-radius:50%;background:var(--gold);color:#fff;display:none;place-items:center;font-size:10px;box-shadow:0 1px 3px rgba(16,24,40,.28)}
.spr-cell.is-mastered{background:color-mix(in srgb,var(--gold) 16%,transparent);border-color:var(--gold)}
.spr-cell.is-mastered img{opacity:1;filter:drop-shadow(0 0 4px color-mix(in srgb,var(--gold) 55%,transparent))}
.spr-cell.is-mastered .spr-check{display:none}
.spr-cell.is-mastered .spr-star{display:grid}

/* ---- COMING-cell (unreleased variant) ---- */
.spr-cell--coming{cursor:default;border-style:dashed;border-color:color-mix(in srgb,var(--line) 80%,var(--accent))}
.spr-cell--coming img{opacity:.28;filter:grayscale(.35)}
.spr-cell--coming .spr-check,.spr-cell--coming .spr-lock{display:none!important}
.spr-coming{position:absolute;inset:auto 4px 4px 4px;display:flex;align-items:center;justify-content:center;gap:4px;font-size:9px;font-weight:800;color:var(--accent);background:color-mix(in srgb,var(--card) 82%,transparent);border-radius:var(--r-sm);padding:2px 3px;line-height:1;pointer-events:none}
.spr-coming .bi{font-size:9px}
.spr-coming em{font-style:normal;font-variant-numeric:tabular-nums}
.spr-comingbadge{display:inline-flex;align-items:center;gap:4px;font-family:'Roboto';font-weight:800;font-size:9.5px;letter-spacing:.03em;text-transform:uppercase;padding:2px 7px;border-radius:var(--r-sm);color:var(--accent);background:color-mix(in srgb,var(--accent) 12%,transparent);border:1px solid color-mix(in srgb,var(--accent) 38%,transparent)}
.spr-comingbadge .bi{font-size:9px}
.spr-row.is-row-unrel .spr-label-top strong{color:var(--ink2)}

/* ---- highlight-filter (dimma icke-matchande) ---- */
.spr-matrix.hl-owned .spr-cell[data-released="1"]:not(.is-owned),
.spr-matrix.hl-mastered .spr-cell[data-released="1"]:not(.is-mastered){opacity:.24;filter:grayscale(.4)}
/* "Saknade": ägda celler blurras HELT ut (visas ej) — fokus 100% på det du saknar */
.spr-matrix.hl-missing .spr-cell[data-released="1"].is-owned{opacity:.12;filter:blur(6px) grayscale(.6);pointer-events:none;border-color:transparent;background:transparent}
.spr-matrix.hl-missing .spr-cell[data-released="1"].is-owned .spr-check,
.spr-matrix.hl-missing .spr-cell[data-released="1"].is-owned .spr-star{display:none}
/* Saknade = smart: sortera närmast-klart först (flex order = antal luckor) + "N kvar"-pill (grön vid 1 kvar) */
.spr-matrix.hl-missing{display:flex;flex-direction:column}
.spr-missing-badge{display:none}
.spr-matrix.hl-missing .spr-missing-badge{display:inline-flex;align-items:center;font-family:'Roboto';font-weight:800;font-size:9.5px;letter-spacing:.03em;text-transform:uppercase;padding:2px 7px;border-radius:var(--r-sm);color:var(--accent);background:color-mix(in srgb,var(--accent) 12%,transparent);border:1px solid color-mix(in srgb,var(--accent) 38%,transparent)}
.spr-matrix.hl-missing .spr-missing-badge.is-one{color:var(--live);background:color-mix(in srgb,var(--live) 13%,transparent);border-color:color-mix(in srgb,var(--live) 40%,transparent)}

/* ---- FILTER-kort (en rad) ---- */
.spr-filters{padding:11px 16px;display:flex;align-items:center;flex-wrap:wrap;gap:8px 10px}
.spr-filters-label{display:inline-flex;align-items:center;gap:7px;font-family:'Roboto';font-weight:700;font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--dim);flex:0 0 auto}
.spr-filters-label .bi{color:var(--accent)}
.spr-fchips{display:flex;gap:7px;flex-wrap:wrap}
.spr-fdiv{width:1px;align-self:stretch;min-height:22px;background:var(--line);margin:0 3px}
.spr-fchip{display:inline-flex;align-items:center;gap:5px;font-family:'Roboto';font-weight:800;font-size:12px;color:var(--ink2);background:var(--inset);border:1px solid var(--line);border-radius:var(--r-sm);padding:6px 11px;cursor:pointer;transition:border-color .12s,background .12s,color .12s}
.spr-fchip:hover{border-color:var(--accent);color:var(--ink)}
.spr-fchip .bi{font-size:12px}
.spr-fchip.is-active{background:var(--accent);border-color:var(--accent);color:#fff}
.spr-fchip.is-active .bi{color:#fff}
.spr-fchip--toggle.is-active{background:var(--champ);border-color:var(--champ)}

/* ---- LIVE-banner: generisk event-banner overst pa sprites-sidan ---- */
.spr-live-banner{display:flex;align-items:center;gap:11px;padding:12px 16px;background:color-mix(in srgb,var(--live) 10%,var(--card));border:1px solid color-mix(in srgb,var(--live) 45%,var(--line));border-left:3px solid var(--live);border-radius:var(--r-sm);text-decoration:none;color:var(--ink)}
.spr-live-banner[hidden]{display:none}
.spr-live-banner[data-mode=today]{background:color-mix(in srgb,var(--gold) 10%,var(--card));border-color:color-mix(in srgb,var(--gold) 45%,var(--line));border-left-color:var(--gold)}
.spr-lb-dot{flex:0 0 auto;width:10px;height:10px;border-radius:50%;background:var(--live);animation:sprLbPulse 1.6s ease-in-out infinite}
.spr-live-banner[data-mode=today] .spr-lb-dot{background:var(--gold);animation:none}
.spr-lb-title{font-family:'Roboto';font-weight:900;font-size:14px;letter-spacing:.02em;white-space:nowrap}
.spr-live-banner[data-mode=live] .spr-lb-title{color:var(--live)}
.spr-live-banner[data-mode=today] .spr-lb-title{color:var(--gold)}
.spr-lb-sub{flex:1;min-width:0;font-size:12.5px;color:var(--ink2);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.spr-lb-cta{flex:0 0 auto;display:inline-flex;align-items:center;gap:2px;font-family:'Roboto';font-weight:800;font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:var(--ink2);border:1px solid var(--line);border-radius:var(--r-sm);padding:5px 9px;background:var(--card)}
.spr-live-banner:hover .spr-lb-cta{color:var(--accent);border-color:color-mix(in srgb,var(--accent) 42%,var(--line))}
@keyframes sprLbPulse{0%,100%{box-shadow:0 0 0 0 color-mix(in srgb,var(--live) 55%,transparent)}50%{box-shadow:0 0 0 6px transparent}}
@media (max-width:640px){.spr-live-banner{flex-wrap:wrap;gap:8px}.spr-lb-sub{flex-basis:100%;white-space:normal}}
/* Holofoil-infokortet i live-lage */
.spr-holo-info.is-holo-live{border-color:color-mix(in srgb,var(--live) 40%,var(--line))}
.spr-holo-info.is-holo-live .spr-holo-badge{color:var(--live)}
.spr-holo-info.is-holo-live .slabel{color:var(--live)}
/* event-kort som ankar-mal: highlight vid hopp fran bannern */
.spr-event:target{outline:2px solid color-mix(in srgb,var(--accent) 60%,transparent);outline-offset:2px}

/* ---- EVENT-countdown ---- */
.spr-events{padding:14px 16px}
.spr-events-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:11px}
.spr-events-head .slabel{display:inline-flex;align-items:center;gap:7px}
.spr-events-head .bi{color:var(--accent)}
.spr-events-tz{font-family:'Roboto';font-weight:800;font-size:10px;letter-spacing:.1em;color:var(--dim);border:1px solid var(--line);border-radius:var(--r-sm);padding:2px 7px}
.spr-events-list{display:flex;flex-direction:column;gap:8px}
.spr-event{display:flex;align-items:flex-start;gap:11px;padding:11px 12px;background:var(--inset);border:1px solid var(--line);border-radius:var(--r-sm)}
.spr-event-icon{flex:0 0 auto;width:32px;height:32px;display:grid;place-items:center;border-radius:var(--r-sm);background:var(--card);border:1px solid var(--line);color:var(--accent);font-size:15px}
.spr-event[data-tone=legendary] .spr-event-icon{color:var(--gold)}
.spr-event[data-tone=champ] .spr-event-icon{color:var(--champ)}
.spr-event-body{min-width:0;flex:1}
.spr-event-top{display:flex;align-items:baseline;justify-content:space-between;gap:10px;flex-wrap:wrap}
.spr-event-top strong{font-family:'Roboto';font-weight:900;font-size:14px;color:var(--ink)}
.spr-event-when{font-family:'Roboto';font-weight:800;font-size:12.5px;color:var(--accent);white-space:nowrap}
.spr-event-note{margin-top:3px;font-size:12px;color:var(--dim);line-height:1.4}
.spr-event.is-soon .spr-event-when{color:var(--gold)}
.spr-event.is-live{border-color:color-mix(in srgb,var(--live) 45%,var(--line));background:color-mix(in srgb,var(--live) 8%,var(--inset))}
.spr-event.is-live .spr-event-when{color:var(--live)}
.spr-event.is-done{opacity:.6}
.spr-event.is-done .spr-event-when{color:var(--dim)}

/* ---- HOLOFOIL-infopanel ---- */
.spr-holo-info{display:flex;gap:14px;align-items:flex-start;padding:15px 16px}
.spr-holo-badge{flex:0 0 auto;width:44px;height:44px;display:grid;place-items:center;border-radius:var(--r-sm);background:color-mix(in srgb,var(--champ) 14%,transparent);border:1px solid color-mix(in srgb,var(--champ) 38%,transparent);color:var(--champ);font-size:20px}
.spr-holo-body{min-width:0}
.spr-holo-body .slabel{color:var(--champ)}
.spr-holo-title{font-family:'Roboto';font-weight:900;font-size:17px;color:var(--ink);margin:5px 0 5px}
.spr-holo-text{font-size:12.5px;color:var(--ink2);line-height:1.5}
.spr-holo-text strong{color:var(--ink);font-weight:800}

/* ---- responsivt: events/filter/holo ---- */
@media(max-width:720px){
  .spr-filters-row{gap:8px}
  .spr-event-top{gap:6px}
  /* varje sprite = 2 rader (etikett + varianter i 4-kolumnersrutnät som wrappar) */
  .spr-matrix.show-unreleased .spr-row,.spr-matrix .spr-row{grid-template-columns:repeat(4,1fr)}
  .spr-prog-sub{justify-content:flex-start}
}

/* ============================================================
   GÄST-LÄGE (body.pulse-guest): medlemsinnehåll blurras, CTA visas.
   Rena pulse-tokens → funkar i ljust + mörkt. Endast additivt.
   ============================================================ */
/* Blurrat, icke-interaktivt medlemsinnehåll (vägg/flöde) */
.pguest-blur{filter:blur(5px);pointer-events:none;user-select:none;position:relative}
.pguest-blur::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 0%,var(--bg) 96%);opacity:.55}

/* Medlems-CTA-kort (composer-ersättning, profil-CTA m.fl.) */
.pguest-gate-card{padding:20px 18px;text-align:center;display:flex;flex-direction:column;align-items:center;gap:8px;border:1px solid color-mix(in srgb,var(--accent) 26%,var(--line));background:linear-gradient(180deg,var(--accent-wash),var(--card))}
.pgg-ic{width:44px;height:44px;border-radius:50%;display:grid;place-items:center;background:var(--card);border:1px solid color-mix(in srgb,var(--accent) 32%,transparent);color:var(--accent);margin-bottom:2px}
.pgg-ic .bi{font-size:20px}
.pgg-t{font-family:'Roboto';font-weight:900;font-size:16px;color:var(--ink);letter-spacing:-.01em}
.pgg-s{font-size:13px;color:var(--ink2);max-width:420px;line-height:1.5}
.pgg-cta{display:flex;gap:8px;margin-top:6px;flex-wrap:wrap;justify-content:center}
.pgg-btn{padding:9px 18px;border-radius:var(--r);font-size:13.5px;font-weight:800;background:var(--inset);color:var(--ink);border:1px solid var(--line);transition:filter .12s,background .12s}
.pgg-btn:hover{background:var(--line)}
.pgg-btn.primary{background:var(--accent);color:#fff;border-color:transparent}
.pgg-btn.primary:hover{filter:brightness(1.06);background:var(--accent)}

/* Topbar: gäst login/register-knappar (ersätter konto-menyn) */
.tb-guest{display:flex;align-items:center;gap:8px}
.tb-login{padding:8px 14px;border-radius:var(--r);font-size:13px;font-weight:800;color:var(--ink);background:var(--inset);border:1px solid var(--line)}
.tb-login:hover{background:var(--line)}
.tb-register{padding:8px 15px;border-radius:var(--r);font-size:13px;font-weight:800;color:#fff;background:var(--accent)}
.tb-register:hover{filter:brightness(1.06)}
@media(max-width:560px){.tb-login{display:none}.tb-register{padding:8px 13px}}

/* Shoutbox: gäst-prompt istället för skrivfält */
.sbox-login{display:flex;align-items:center;gap:7px;padding:12px 14px;font-size:12.5px;color:var(--ink2);border-top:1px solid var(--line)}
.sbox-login .bi{color:var(--dim)}
.sbox-login button{font-weight:800;color:var(--accent)}
.sbox-login button:hover{color:var(--accent-ink)}

/* Mobil drawer: gäst-header + CTA */
.pd-head-guest{display:flex;align-items:center;gap:12px;padding:16px 16px 12px}
.pd-guest-cta{display:flex;gap:8px;padding:0 16px 14px;border-bottom:1px solid var(--line)}
.pd-guest-cta .pgg-btn{flex:1;padding:10px}

/* ============================================================================
   EVENTS (PULSE) — enad tidslinje: community · squad · competitive
   Platt, hårfina kanter, tabulära siffror. Fyrkantiga datablock (tävling),
   runda avatarer (socialt). Inga gradienter. Tokens: --card/--line/--accent…
   ============================================================================ */
.evpage .ev-live-dot{display:inline-block;width:7px;height:7px;border-radius:50%;background:var(--live);margin-right:5px;vertical-align:middle;box-shadow:0 0 0 0 rgba(26,166,75,.5);animation:evPulse 1.8s ease-out infinite}
@keyframes evPulse{0%{box-shadow:0 0 0 0 rgba(26,166,75,.45)}70%{box-shadow:0 0 0 6px rgba(26,166,75,0)}100%{box-shadow:0 0 0 0 rgba(26,166,75,0)}}
@media (prefers-reduced-motion:reduce){.evpage .ev-live-dot{animation:none}}

/* Källbadge — färgkodad per källa */
.ev-src{font-size:9.5px;font-weight:800;letter-spacing:.09em;text-transform:uppercase;padding:2px 7px;border-radius:var(--r-sm);white-space:nowrap;line-height:1.5}
.ev-src.community{color:var(--accent);background:var(--accent-wash)}
.ev-src.squad{color:var(--champ);background:var(--champ-w)}
.ev-src.competitive,.ev-src.epic{color:var(--gold);background:color-mix(in srgb,var(--gold) 14%,transparent)}

/* -------- Spotlight -------- */
.ev-spot{display:flex;align-items:center;gap:16px;padding:16px 18px;margin-bottom:16px;border-left:3px solid var(--accent)}
.ev-spot.ev-spot-squad{border-left-color:var(--champ)}
.ev-spot.ev-spot-competitive{border-left-color:var(--gold)}
.ev-spot-l{flex:1;min-width:0}
.ev-spot-eyebrow{display:flex;align-items:center;gap:8px;margin-bottom:7px}
.ev-spot-next{font-size:10px;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:var(--dim)}
.ev-spot-livetag{display:inline-flex;align-items:center;gap:5px;font-size:10px;font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:var(--live)}
.ev-spot-livetag i{width:7px;height:7px;border-radius:50%;background:var(--live);animation:evPulse 1.8s ease-out infinite}
.ev-spot-title{display:block;font-family:'Roboto';font-weight:900;font-size:21px;line-height:1.15;letter-spacing:-.01em;color:var(--ink);margin-bottom:6px}
.ev-spot-title:hover{color:var(--accent)}
.ev-spot-sub{display:flex;flex-wrap:wrap;gap:14px;font-size:12.5px;color:var(--dim)}
.ev-spot-sub .bi{color:var(--faint)}
.ev-spot-r{flex:0 0 auto}
.ev-cd{display:flex;gap:8px}
.ev-cd-b{display:flex;flex-direction:column;align-items:center;min-width:46px;padding:8px 4px;background:var(--inset);border:1px solid var(--line);border-radius:var(--r)}
.ev-cd-b b{font-family:'Roboto';font-weight:900;font-size:20px;line-height:1;color:var(--accent)}
.ev-cd-b small{font-size:9px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--dim);margin-top:4px}

/* -------- Tidslinje / dag-grupper -------- */
.ev-timeline{display:flex;flex-direction:column;gap:18px}
.ev-daygroup{display:flex;flex-direction:column;gap:9px}
.ev-dayhead{display:flex;align-items:center;gap:8px}
.ev-dayhead .bi{color:var(--accent);font-size:14px}
.ev-dayhead-c{margin-left:2px;font-size:11px;color:var(--dim);background:var(--inset);border:1px solid var(--line);padding:1px 7px;border-radius:10px}
.ev-list{display:flex;flex-direction:column;gap:8px}
.ev-noresults{padding:22px;text-align:center;color:var(--dim);font-size:13.5px}

/* -------- Event-kort -------- */
.ev-card{display:flex;gap:14px;align-items:stretch;background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:12px 14px;transition:border-color .12s ease-out}
.ev-card:hover{border-color:var(--line2)}
.ev-card.is-live{border-left:3px solid var(--live)}
.ev-when{flex:0 0 58px;display:flex;flex-direction:column;align-items:center;justify-content:center;background:var(--inset);border:1px solid var(--line);border-radius:var(--r-sm);padding:8px 4px;text-align:center}
.ev-when.live{background:var(--live-wash);border-color:color-mix(in srgb,var(--live) 30%,transparent)}
.ev-when-wd{font-size:9.5px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:var(--dim)}
.ev-when-d{font-family:'Roboto';font-weight:900;font-size:22px;line-height:1;color:var(--ink)}
.ev-when-mo{font-size:10px;font-weight:800;letter-spacing:.05em;text-transform:uppercase;color:var(--ink2)}
.ev-when-t{font-size:11px;font-weight:700;color:var(--accent);margin-top:3px}
.ev-when-live{display:flex;flex-direction:column;align-items:center;gap:4px;font-size:10px;font-weight:800;letter-spacing:.08em;color:var(--live)}
.ev-when-live i{width:8px;height:8px;border-radius:50%;background:var(--live);animation:evPulse 1.8s ease-out infinite}
.ev-body{flex:1;min-width:0;display:flex;flex-direction:column;gap:6px}
.ev-top{display:flex;align-items:center;gap:7px;flex-wrap:wrap}
.ev-tag{font-size:10.5px;font-weight:700;color:var(--ink2);background:var(--inset);border:1px solid var(--line);padding:1px 7px;border-radius:var(--r-sm)}
.ev-tag.ghost{background:transparent;color:var(--dim)}
.ev-host{font-size:11.5px;color:var(--dim)}
.ev-title{font-family:'Roboto';font-weight:800;font-size:15.5px;line-height:1.2;color:var(--ink)}
.ev-title:hover{color:var(--accent)}
.ev-meta{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.ev-prog{flex:0 0 96px;height:6px;background:var(--inset);border-radius:3px;overflow:hidden}
.ev-prog-fill{height:100%;background:var(--accent);border-radius:3px}
.ev-prog-fill.full{background:var(--live)}
.ev-part{font-size:11.5px;color:var(--dim)}
.ev-lfg{display:inline-flex;align-items:center;gap:5px;font-size:11.5px;font-weight:600;color:var(--live);background:var(--live-wash);padding:2px 9px;border-radius:20px}
.ev-lfg:hover{filter:brightness(.97)}
.ev-friends{display:flex;align-items:center;gap:4px}
.ev-fav{width:22px;height:22px;border-radius:50%;overflow:hidden;background:var(--inset);border:1.5px solid var(--card);margin-left:-6px;display:grid;place-items:center;font-size:9.5px;font-weight:800;color:var(--dim);box-shadow:0 0 0 1px var(--line)}
.ev-fav:first-child{margin-left:0}
.ev-fav img{width:100%;height:100%;object-fit:cover}
.ev-fav-lbl{font-size:11px;color:var(--dim);margin-left:6px}
.ev-actions{flex:0 0 auto;display:flex;flex-direction:column;gap:6px;align-items:flex-end;justify-content:center}
.btn.sm{padding:6px 12px;font-size:12px}
.btn.full{width:100%;justify-content:center}
.btn.is-seeking{border-color:var(--live);color:var(--live)}
.ev-badge-on{display:inline-flex;align-items:center;gap:5px;font-size:12px;font-weight:700;color:var(--live);background:var(--live-wash);padding:6px 11px;border-radius:var(--r)}
.ev-badge-full{font-size:11.5px;font-weight:700;color:var(--dim);padding:6px 10px}

/* Squad-event RSVP (kompakt, samma språk som squad-sidan) */
.ev-srsvp{display:flex;gap:5px;flex-wrap:wrap;justify-content:flex-end}
.ev-srsvp-b{min-height:30px;padding:0 10px;border:1px solid var(--line2);border-radius:var(--r-sm);background:var(--card);color:var(--ink2);font-size:11px;font-weight:700;cursor:pointer;font-family:inherit;display:inline-flex;align-items:center;gap:6px}
.ev-srsvp-b:hover{border-color:var(--accent);color:var(--accent)}
.ev-srsvp-b .mono{background:var(--inset);color:var(--dim);font-size:9.5px;padding:1px 5px;border-radius:var(--r-sm)}
.ev-srsvp-b.on-going{border-color:var(--live);color:var(--live);background:var(--live-wash)}
.ev-srsvp-b.on-maybe{border-color:var(--gold);color:var(--gold)}
.ev-srsvp-b.on-cant{border-color:var(--danger);color:var(--danger)}

/* -------- Tomt läge -------- */
.ev-empty{padding:40px 24px;text-align:center}
.ev-empty .bi{font-size:34px;color:var(--faint)}
.ev-empty h3{font-family:'Roboto';font-weight:900;font-size:18px;margin:12px 0 6px;color:var(--ink)}
.ev-empty p{font-size:13.5px;color:var(--dim);max-width:360px;margin:0 auto 16px;line-height:1.5}

/* -------- Höger rail -------- */
.ev-squad-body{padding:12px 14px;display:flex;flex-direction:column;gap:11px}
.ev-squad-id{display:flex;align-items:center;gap:11px;min-width:0}
.ev-squad-logo{width:40px;height:40px;flex:0 0 auto;border-radius:var(--r-sm);overflow:hidden;background:var(--champ-w);color:var(--champ);display:grid;place-items:center;font-size:18px}
.ev-squad-logo img{width:100%;height:100%;object-fit:cover}
.ev-squad-name{font-family:'Roboto';font-weight:800;font-size:14.5px;color:var(--ink);line-height:1.15}
.ev-squad-tag{color:var(--champ);font-weight:700}
.ev-squad-sub{font-size:11.5px;color:var(--dim);margin-top:2px}
.ev-liverow,.ev-minerow,.ev-comprow{display:flex;align-items:center;gap:9px;padding:9px 14px;border-top:1px solid var(--line)}
.ev-liverow:hover,.ev-minerow:hover{background:var(--inset)}
.ev-liverow-t,.ev-minerow-t,.ev-comprow-t{flex:1;min-width:0;font-size:12.5px;font-weight:600;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ev-minerow-when,.ev-comprow-when{flex:0 0 auto;font-size:11px;color:var(--dim);min-width:34px}
.ev-minerow-tag{flex:0 0 auto;font-size:9.5px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:var(--dim)}
.ev-comprow-live{flex:0 0 auto;font-size:9.5px;font-weight:800;color:var(--live);letter-spacing:.06em}
.ev-comp-body{max-height:320px;overflow-y:auto}
.ev-compcard summary{cursor:pointer;list-style:none}
.ev-compcard summary::-webkit-details-marker{display:none}
.ev-compcard .ev-chev{transition:transform .15s ease-out;color:var(--dim)}
.ev-compcard[open] .ev-chev{transform:rotate(180deg)}

/* -------- Responsivt -------- */
@media (max-width:900px){
  .ev-spot{flex-direction:column;align-items:flex-start}
  .ev-spot-r{width:100%}
  .ev-cd{width:100%;justify-content:space-between}
}
@media (max-width:560px){
  .ev-card{flex-wrap:wrap}
  .ev-when{flex-direction:row;gap:8px;flex:0 0 auto;width:100%;justify-content:flex-start;padding:6px 10px}
  .ev-when-d{font-size:16px}
  .ev-when-t{margin-top:0;margin-left:auto}
  .ev-actions{width:100%;flex-direction:row;align-items:center;justify-content:flex-start}
  .ev-srsvp{justify-content:flex-start}
}

/* ============================================================
   Veckans VR — permanenta troféer (krona #1, medaljer 2-4)
   ============================================================ */
.pcov-crown{display:inline-flex;align-items:center;gap:3px;margin-left:9px;color:var(--gold);font-size:.72em;vertical-align:middle}
.pcov-crown b{font-size:.82em;font-weight:800;color:var(--ink2)}
.pcov-vrtro{display:flex;flex-wrap:wrap;align-items:center;gap:7px;margin-top:9px}
.vrtro-lead{display:inline-flex;align-items:center;gap:5px;font-size:11px;font-weight:800;letter-spacing:.03em;text-transform:uppercase;color:var(--dim)}
.vrtro-lead i{color:var(--gold)}
.vrtro-chip{display:inline-flex;align-items:center;gap:5px;padding:3px 9px;border:1px solid var(--line);border-radius:var(--r-sm);background:var(--inset);font-size:11.5px;font-weight:700;color:var(--ink2);line-height:1.5}
.vrtro-chip i{color:var(--vc,#8a94a1);font-size:11px}
.vrtro-chip.vrtro-more{color:var(--dim);font-weight:800}
.vrtro-chip.vrtro-win{color:var(--gold);border-color:color-mix(in srgb,var(--gold) 40%,var(--line));background:color-mix(in srgb,var(--gold) 12%,var(--inset));font-weight:800}
.vrtro-since{font-size:11.5px;font-weight:600;color:var(--dim)}
/* hub-widget: regerande mästare (förra veckans #1) */
.vr-reign{display:flex;align-items:center;gap:7px;padding:8px 14px;border-bottom:1px solid var(--line)}
.vr-reign>i{color:var(--gold);font-size:12px}
.vr-reign-lbl{font-size:10px;font-weight:800;letter-spacing:.04em;text-transform:uppercase;color:var(--dim)}
.vr-reign .pl-name{font-weight:700;font-size:13px;color:var(--ink);margin-left:auto}
.vr-inline-crown{color:var(--gold);font-size:10.5px;margin-right:5px}

/* --- Sprites: season strip + live event emphasis --- */
.spr-season { padding: 10px 0 2px; border-bottom: 1px solid var(--line); margin-bottom: 10px; }
.spr-season-top { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; margin-bottom: 6px; }
.spr-season-name { font-weight: 700; color: var(--ink); font-size: 13px; }
.spr-season-name i { color: var(--accent); }
.spr-season-left { color: var(--ink2); font-size: 12px; }
.spr-season-bar { height: 4px; background: var(--inset); overflow: hidden; }
.spr-season-bar > i { display: block; height: 100%; background: var(--accent); }

/* --- Hub right-rail: sprite events widget (2026-07-10: ingen accent-linje,
   countdown i chip; LIVE = grön wash-chip med pulserande dot; snart = guld) --- */
.sph-events .sph-list{display:flex;flex-direction:column}
.sph-event{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:9px 14px;border-top:1px solid var(--line)}
.sph-event:first-child{border-top:0}
.sph-ev-name{display:inline-flex;align-items:center;gap:8px;min-width:0;font-size:12.5px;color:var(--ink);font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sph-ev-name i{flex:0 0 auto;width:24px;height:24px;display:grid;place-items:center;border-radius:var(--r-sm);background:var(--inset);border:1px solid var(--line);color:var(--dim);font-size:12px;margin-right:0}
.sph-ev-when{flex:0 0 auto;display:inline-flex;align-items:center;gap:6px;font-size:11px;font-weight:700;color:var(--ink2);background:var(--inset);border:1px solid var(--line);border-radius:999px;padding:3px 10px;white-space:nowrap;font-variant-numeric:tabular-nums}
.sph-ev-when .sph-dot{display:inline-block;width:7px;height:7px;border-radius:50%;background:var(--live);flex:0 0 auto;animation:pp 1.8s infinite}
.sph-event.is-live .sph-ev-when{color:var(--live);background:var(--live-wash);border-color:color-mix(in srgb,var(--live) 32%,transparent);font-weight:800;animation:sphLivePulse 2.2s ease-in-out infinite}
.sph-event.is-live .sph-ev-name i{color:var(--live);background:var(--live-wash);border-color:color-mix(in srgb,var(--live) 32%,transparent)}
.sph-event.is-soon .sph-ev-when{color:var(--gold);background:color-mix(in srgb,var(--gold) 10%,transparent);border-color:color-mix(in srgb,var(--gold) 30%,transparent)}
.sph-event.is-done{opacity:.5}
@keyframes sphLivePulse{0%,100%{box-shadow:0 0 0 0 color-mix(in srgb,var(--live) 0%,transparent)}50%{box-shadow:0 0 0 4px color-mix(in srgb,var(--live) 14%,transparent)}}
@media (prefers-reduced-motion:reduce){.sph-event.is-live .sph-ev-when,.sph-ev-when .sph-dot{animation:none}}

/* ============================================================
   HS-DNA personlig text (2026-07-07): "du"-text på egen rad (max
   2 rader, klipps med …) + peer-chip i topraden. Scopat för att
   vinna oavsett laddordning (se lesson: delade CSS-prefix).
   ============================================================ */
html[data-pulse] .pcov-strip .hs-dt-ins{white-space:normal;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;text-overflow:ellipsis}
html[data-pulse] .pcov-strip .hs-dt-peer{flex:0 0 auto;display:inline-flex;align-items:center;gap:4px;font-size:10.5px;font-weight:700;color:var(--accent);white-space:nowrap;cursor:help}
html[data-pulse] .pcov-strip .hs-dt-peer .bi{font-size:11px}
@media(max-width:560px){html[data-pulse] .pcov-strip .hs-dt-peer{display:none}}

/* -------------------- EPIC PROFILMETA-CHIPS (fnmeta) --------------------
   Fortnite säsongslevel / Battle Pass / Crew — delad markup från
   EpicProfileMetaService::renderChips(). Används på profil-hero,
   leaderboard-rader, LFG-toppmatchningar och squad-medlemslistan. */
html[data-pulse] .fnmeta{display:inline-flex;align-items:center;gap:4px;vertical-align:middle}
html[data-pulse] .fnmeta-chip{display:inline-flex;align-items:center;gap:3px;padding:1px 6px;font-size:9px;font-weight:700;letter-spacing:.5px;text-transform:uppercase;line-height:15px;border:1px solid var(--line);border-radius:var(--r-sm);color:var(--dim);background:var(--inset);white-space:nowrap}
html[data-pulse] .fnmeta-chip b{font-weight:800;color:var(--ink);font-size:10px}
html[data-pulse] .fnmeta-bp{color:var(--accent-ink);border-color:var(--accent);background:var(--accent-wash)}
html[data-pulse] .fnmeta-crew{color:var(--gold);border-color:var(--gold);background:transparent}
html[data-pulse] .fnmeta-lg .fnmeta-chip{font-size:10px;line-height:18px;padding:2px 8px}

/* ============================================================
   HS-LEFT v115 (2026-07-07): rank + DNA-minibars i vänsterkluster
   med faint hexagon-kontur bakom (DNA-motivet). Ersätter
   ▲/▼-taggarna (.hs-dt-sw renderas inte längre i strippen).
   Scopat html[data-pulse] för att vinna oavsett laddordning.
   ============================================================ */
html[data-pulse] .pcov-strip{align-items:stretch}
html[data-pulse] .pcov-strip .hs-left{position:relative;flex:0 0 320px;min-width:0;padding:4px 18px 4px 0;overflow:hidden}
html[data-pulse] .pcov-strip .hs-left .hs-hexbg{position:absolute;right:-18px;top:50%;transform:translateY(-50%) rotate(14deg);width:132px;height:auto;fill:color-mix(in srgb,var(--accent) 4%,transparent);stroke:var(--accent);stroke-width:2.5;opacity:.14;pointer-events:none}
html[data-pulse] .pcov-strip .hs-left .hs-rank{flex:0 0 auto;margin-bottom:10px;position:relative}
html[data-pulse] .hs-minibars{position:relative;display:flex;flex-direction:column;gap:4px}
html[data-pulse] .hs-mb{display:flex;align-items:center;gap:8px;min-width:0}
html[data-pulse] .hs-mb b{flex:0 0 30px;font-size:9px;font-weight:800;letter-spacing:.7px;color:var(--dim);line-height:1}
html[data-pulse] .hs-mb em{flex:0 0 22px;font-style:normal;font-size:10px;font-weight:800;color:var(--dim);text-align:right;line-height:1;font-variant-numeric:tabular-nums}
html[data-pulse] .hs-mb-t{flex:1 1 auto;display:flex;gap:2px;min-width:0}
html[data-pulse] .hs-mb-t i{flex:1 1 0;height:5px;border-radius:2px;background:color-mix(in srgb,var(--ink) 9%,transparent)}
html[data-pulse] .hs-mb-t i.f{background:color-mix(in srgb,var(--accent) 62%,transparent)}
html[data-pulse] .hs-mb.is-top b{color:var(--ink)}
html[data-pulse] .hs-mb.is-top em{color:var(--accent)}
html[data-pulse] .hs-mb.is-top .hs-mb-t i.f{background:var(--accent)}
html[data-pulse] .hs-mb.is-low .hs-mb-t i.f{background:color-mix(in srgb,var(--accent) 30%,transparent)}
html[data-pulse] .pcov-strip .hs-dnatext{align-self:center}
@media(max-width:760px){
  html[data-pulse] .pcov-strip .hs-left{flex:1 1 100%;padding-right:0}
}

/* Flikraden: PERMANENT en rad — inga radbryt, ingen scroll.
   Etiketter i .ptab-tx krymper med ellipsis; under 640px ikonläge. */
html[data-pulse] .pcov-tabs{flex-wrap:nowrap;min-width:0}
html[data-pulse] .pcov-tabs .ptab{flex:0 1 auto;min-width:0;padding:11px 8px;gap:5px}
html[data-pulse] .pcov-tabs .ptab-tx{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
html[data-pulse] .pcov-tabs .ptab-trophy{white-space:nowrap;flex:0 0 auto}
@media(max-width:640px){
  html[data-pulse] .pcov-tabs .ptab-tx{display:none}
  html[data-pulse] .pcov-tabs .ptab{padding:11px 10px}
  html[data-pulse] .pcov-tabs .ptab .bi{font-size:15px;opacity:.8}
  html[data-pulse] .pcov-tabs .ptab-ct{margin-left:0}
}

/* ============================================================
   STRIP v116 (2026-07-07): rank flyttad till HÖGER, bars kvar
   vänster med hexagon, kompaktare strip. Kenta: "sätt ranken på
   högra sidan istället så det blir mer kompakt".
   ============================================================ */
html[data-pulse] .pcov-strip.pcov-strip--v3{align-items:center;padding:10px 20px;gap:0}
html[data-pulse] .pcov-strip--v3 .hs-left{flex:0 0 292px;padding:2px 20px 2px 0}
html[data-pulse] .pcov-strip--v3 .hs-hexbg{right:6px;width:104px;opacity:.12}
html[data-pulse] .pcov-strip--v3 .hs-minibars{gap:3px}
html[data-pulse] .pcov-strip--v3 .hs-mb-t i{height:4px}
html[data-pulse] .pcov-strip--v3 .hs-dnatext{flex:1 1 auto;border-left:1px solid var(--line);padding:2px 22px;align-self:stretch;display:flex;flex-direction:column;justify-content:center;gap:6px}
html[data-pulse] .pcov-strip--v3 .hs-rank--right{flex:0 0 auto;min-width:196px;max-width:236px;border-left:1px solid var(--line);padding:2px 0 2px 22px;align-self:stretch;display:flex;align-items:center;gap:12px}
html[data-pulse] .pcov-strip--v3 .hs-rank--right .hs-rankinfo{min-width:0;flex:1 1 auto}
html[data-pulse] .pcov-strip--v3 .hs-rank--right .hs-rank-top{display:flex;align-items:baseline;gap:8px;margin-bottom:5px;white-space:nowrap}
html[data-pulse] .pcov-strip--v3 .hs-rank--right .hs-rank-next{margin-top:5px;font-size:10.5px;color:var(--dim);display:flex;align-items:center;gap:4px;white-space:nowrap}
html[data-pulse] .pcov-strip--v3 .hs-rank--right .hs-rank-next b{color:var(--ink2);font-weight:800}
@media(max-width:760px){
  html[data-pulse] .pcov-strip--v3{flex-wrap:wrap;gap:12px}
  html[data-pulse] .pcov-strip--v3 .hs-left{flex:1 1 100%;padding-right:0}
  html[data-pulse] .pcov-strip--v3 .hs-dnatext{flex:1 1 100%;border-left:0;padding:0}
  html[data-pulse] .pcov-strip--v3 .hs-rank--right{flex:1 1 100%;border-left:0;padding-left:0}
}

/* -------------------- TURNERINGS-TOPPLISTA (evlb) --------------------
   ?page=events/leaderboard — Epic competitive leaderboard med FORRE-highlight. */
html[data-pulse] .evlb main{max-width:860px;margin:0 auto;padding:18px 14px 40px}
html[data-pulse] .evlb-back{display:inline-flex;align-items:center;gap:6px;font-size:12.5px;font-weight:700;color:var(--dim);margin-bottom:14px}
html[data-pulse] .evlb-back:hover{color:var(--accent)}
html[data-pulse] .evlb-hero{margin-bottom:16px}
html[data-pulse] .evlb-hero-top{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
html[data-pulse] .evlb-hero-top h1{font-size:24px;font-weight:900;color:var(--ink);line-height:1.15}
html[data-pulse] .evlb-live{display:inline-flex;align-items:center;gap:6px;padding:3px 10px;font-size:10.5px;font-weight:800;letter-spacing:.8px;color:var(--live);background:var(--live-wash);border-radius:var(--r-sm)}
html[data-pulse] .evlb-live i{width:7px;height:7px;border-radius:50%;background:var(--live);animation:evlbPulse 2s infinite}
@keyframes evlbPulse{0%,100%{opacity:1}50%{opacity:.35}}
html[data-pulse] .evlb-done{padding:3px 10px;font-size:10.5px;font-weight:800;letter-spacing:.8px;color:var(--dim);background:var(--inset);border-radius:var(--r-sm)}

/* ------------------------------------------------------------
   v34 (2026-07-10, rev v33-flat 2026-07-17): Battle Pass-bar i
   mini-profilens header (pm2-bpbar, tonal ink-fyllning som flippar
   ljust/mörkt, MAXED = rod bar + badge som glimmar)
   samt VR-pokalikoner pa profilens hero (vrtro-cups).
   ------------------------------------------------------------ */
.pm2-bpbar i{background:var(--ink)}
.pm2-bpbar.maxed i{background:var(--danger)}
.pm2-bpmax{display:inline-flex;align-items:center;gap:4px;font-size:10px;font-weight:900;letter-spacing:.06em;color:var(--danger);animation:pm2BpGlim 2.4s ease-in-out infinite}
.pm2-bpmax .bi{font-size:10px;line-height:1}
@keyframes pm2BpGlim{0%,100%{opacity:1}50%{opacity:.55}}

/* ------------------------------------------------------------
   v35 (2026-07-10): Turnerings-topplista v2 (evlbpage) — full
   styling for aktuell markup: crumb, taggar, board-tabell med
   FORRE-highlight, pre-start-tomlage med start-chip, hogerrailens
   fakta, kommande turneringar och Sa funkar det. Aldre evlb-block
   ovan galler legacy-markup och lamnas orort.
   ------------------------------------------------------------ */
html[data-pulse] .evlbpage .center{min-width:0}
html[data-pulse] .evlb-crumb{display:inline-flex;align-items:center;gap:5px;font-weight:600;color:var(--dim)}
html[data-pulse] .evlb-crumb:hover{color:var(--accent)}
html[data-pulse] .evlb-meta{display:flex;gap:6px;flex-wrap:wrap;padding-bottom:4px}
html[data-pulse] .evlb-tag{font-size:11px;font-weight:700;letter-spacing:.02em;color:var(--ink2);background:var(--inset);border:1px solid var(--line);padding:3px 9px;border-radius:var(--r-sm);white-space:nowrap}

/* FORRE-spelare i topplistan */
html[data-pulse] .evlb-forre{margin-bottom:14px}
html[data-pulse] .evlb-forre-count{font-size:11.5px;font-weight:800;color:var(--accent);background:var(--accent-wash);padding:2px 9px;border-radius:10px}
html[data-pulse] .evlb-forre-row{display:grid;grid-template-columns:52px minmax(0,1fr) auto;gap:10px;align-items:center;padding:8px 14px;border-bottom:1px solid var(--line);font-size:13px}
html[data-pulse] .evlb-forre-row:last-child{border-bottom:0}
html[data-pulse] .evlb-fr-rank{font-weight:800;color:var(--accent)}
html[data-pulse] .evlb-fr-name{font-weight:700;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
html[data-pulse] .evlb-fr-name:hover{color:var(--accent)}
html[data-pulse] .evlb-fr-pts{color:var(--dim);font-size:12px}
html[data-pulse] .evlb-fr-pts b{color:var(--ink);font-weight:800}

/* Board-tabellen */
html[data-pulse] .evlb-board{overflow:hidden}
html[data-pulse] .evlb-thead{display:grid;grid-template-columns:52px minmax(0,1fr) auto;gap:10px;padding:10px 14px;border-bottom:1px solid var(--line);font-size:10.5px;font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:var(--dim)}
html[data-pulse] .evlb-thead .r{text-align:right}
html[data-pulse] .evlb-row{display:grid;grid-template-columns:52px minmax(0,1fr) auto;gap:10px;align-items:center;padding:9px 14px;border-bottom:1px solid var(--line);font-size:13.5px}
html[data-pulse] .evlb-row:last-child{border-bottom:0}
html[data-pulse] .evlb-row:nth-child(even){background:var(--zebra)}
html[data-pulse] .evlb-rank{font-weight:800;color:var(--dim)}
html[data-pulse] .evlb-row.t1 .evlb-rank{color:var(--gold)}
html[data-pulse] .evlb-row.t2 .evlb-rank{color:#8b96a3}
html[data-pulse] .evlb-row.t3 .evlb-rank{color:#b3763e}
html[data-pulse] .evlb-row.forre{box-shadow:inset 3px 0 0 var(--accent)}
html[data-pulse] .evlb-row.me{background:var(--accent-wash)}
html[data-pulse] .evlb-team{min-width:0;display:flex;align-items:center;gap:6px;flex-wrap:wrap}
html[data-pulse] .evlb-member{color:var(--ink2);font-weight:600;max-width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
html[data-pulse] .evlb-member.is-forre{color:var(--accent);font-weight:700}
html[data-pulse] .evlb-member.is-forre:hover{text-decoration:underline}
html[data-pulse] .evlb-member.muted{color:var(--faint)}
html[data-pulse] .evlb-sep{color:var(--faint)}
html[data-pulse] .evlb-pts{font-weight:800;color:var(--ink);text-align:right}

/* Pre-start och tomlage */
html[data-pulse] .evlb-empty{display:flex;flex-direction:column;align-items:center;text-align:center;padding:46px 20px 50px}
html[data-pulse] .evlb-empty>i.bi{font-size:30px;color:var(--faint);line-height:1;margin-bottom:12px}
html[data-pulse] .evlb-empty-title{font-size:15px;font-weight:700;color:var(--ink)}
html[data-pulse] .evlb-empty-start{display:inline-flex;align-items:center;gap:8px;margin-top:12px;padding:8px 16px;font-size:14px;font-weight:800;color:var(--accent);background:var(--accent-wash);border-radius:var(--r)}
html[data-pulse] .evlb-empty-start i.bi{font-size:13px}
html[data-pulse] .evlb-empty-sub{margin-top:10px;font-size:12.5px;color:var(--dim)}

/* Pager + kalla */
html[data-pulse] .evlb-pager{display:flex;align-items:center;justify-content:center;gap:14px;margin-top:14px}
html[data-pulse] .evlb-page{font-size:12px;font-weight:600;color:var(--dim)}
html[data-pulse] .evlb-src{margin-top:10px;font-size:11.5px;color:var(--faint);text-align:center}

/* Hogerrail: Din placering */
html[data-pulse] .evlb-me-body{display:flex;align-items:baseline;gap:12px;padding:14px}
html[data-pulse] .evlb-me-rank{font-weight:900;font-size:30px;line-height:1;color:var(--accent)}
html[data-pulse] .evlb-me-pts{font-size:13px;color:var(--ink2)}
html[data-pulse] .evlb-me-pts b{color:var(--ink);font-weight:800}

/* Hogerrail: Om turneringen */
html[data-pulse] .evlb-facts{padding:5px 14px 9px}
html[data-pulse] .evlb-fact{display:flex;align-items:baseline;justify-content:space-between;gap:12px;padding:7px 0;border-bottom:1px solid var(--line);font-size:12.5px}
html[data-pulse] .evlb-fact:last-child{border-bottom:0}
html[data-pulse] .evlb-fact span{color:var(--dim);font-weight:600;flex:0 0 auto}
html[data-pulse] .evlb-fact b{color:var(--ink);font-weight:700;text-align:right;min-width:0}
html[data-pulse] .evlb-fact-req b{color:var(--elite)}
html[data-pulse] .evlb-fact-req b i.bi{font-size:12px;margin-right:2px}
html[data-pulse] .evlb-fact-dim{color:var(--faint);font-weight:400}

/* Hogerrail: Fler turneringar */
html[data-pulse] .evlb-next{padding:6px}
html[data-pulse] .evlb-next-row{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:8px 9px;border-radius:var(--r)}
html[data-pulse] .evlb-next-row:hover{background:var(--inset)}
html[data-pulse] .evlb-next-name{min-width:0;font-size:13px;font-weight:600;color:var(--ink2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
html[data-pulse] .evlb-next-row:hover .evlb-next-name{color:var(--accent)}
html[data-pulse] .evlb-next-when{flex:0 0 auto;font-size:11px;color:var(--dim)}

/* Hogerrail: Sa funkar det */
html[data-pulse] .evlb-how{display:flex;flex-direction:column;gap:9px;padding:12px 14px}
html[data-pulse] .evlb-how p{font-size:12.5px;line-height:1.55;color:var(--ink2)}
html[data-pulse] .evlb-how-dot{display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--accent);margin-right:7px}

@media(max-width:560px){
  html[data-pulse] .evlbpage .phead h1{font-size:22px}
  html[data-pulse] .evlb-thead,
  html[data-pulse] .evlb-row,
  html[data-pulse] .evlb-forre-row{grid-template-columns:40px minmax(0,1fr) auto;padding-left:10px;padding-right:10px}
}

/* ------------------------------------------------------------
   v36 (2026-07-10): "Butiken idag" i hub-högerrailen (hubshop) —
   shoppen pratar med hubben: countdown, nytt/försvinner, 4 item-
   miniatyrer (enhetlig mörk skifferbas som shop-korten) samt
   guld-alert när viewerns ⭐-favoriter finns i dagens shop.
   Partial: views/partials/pulse-hub-shop.php
   ------------------------------------------------------------ */
.hubshop-total{font-size:10.5px;font-weight:700;color:var(--dim)}
.hubshop-fav{display:flex;align-items:flex-start;gap:9px;margin:10px 12px 0;padding:9px 11px;background:color-mix(in srgb,var(--gold) 10%,transparent);border:1px solid color-mix(in srgb,var(--gold) 32%,transparent);border-radius:var(--r);font-size:12.5px;line-height:1.4;color:var(--ink2)}
.hubshop-fav i{color:var(--gold);font-size:12px;margin-top:2px;flex-shrink:0}
.hubshop-fav b{color:var(--ink);font-weight:800}
.hubshop-fav:hover{background:color-mix(in srgb,var(--gold) 16%,transparent)}
.hubshop-meta{display:flex;align-items:baseline;gap:6px;flex-wrap:wrap;padding:10px 14px 4px}
.hubshop-cd{font-size:17px;font-weight:900;letter-spacing:-.01em;color:var(--ink)}
.hubshop-cd-lbl{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--dim)}
.hubshop-stats{margin-left:auto;font-size:11px;color:var(--dim)}
.hubshop-stats b{color:var(--accent-ink);font-weight:800}
.hubshop-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:7px;padding:9px 12px 4px}
.hubshop-item{position:relative;display:flex;flex-direction:column;min-width:0;border:1px solid var(--line);border-radius:var(--r-sm);overflow:hidden;background:var(--card);transition:border-color .12s ease-out,transform .12s ease-out}
.hubshop-item:hover{border-color:var(--accent);transform:translateY(-1px)}
.hubshop-img{display:block;aspect-ratio:1/1;width:100%;overflow:hidden}
.