/* ============================================================================
   FORRE.NU — NOTISPANELEN, A2.
   Reglerna är hämtade RAKT UR design-proposals/notiser-A2-2026-08-01.html
   (rad 98-190) — inte omtolkade. Första försöket uttryckte dem som
   Tailwind-utilities och tappade hälften på vägen; det var därför live inte
   liknade mockupen. Mockupens CSS ÄR designen.

   Egen namnrymd `fnx-` så ingenting krockar med .ddh/.ddrow/.dd-foot som
   sajtens övriga dropdowns använder. React renderar dessa klasser.

   Tätheten ligger i variabler precis som i mockupen — byt --np/--nav/--nt
   på #dd-notifs så flyttar hela panelen med. "Kompakt" är default.
   ========================================================================== */
#dd-notifs{
  /* Mockupen: .dd{width:340px}. Live låg på 320 och rader med citat blev
     två rader där mockupen har en. */
  /* ★ 340 → 240 px (2026-08-22, D · Spegeln).
     Alla fyra menyerna delar nu bredd med flikpanelerna, och typskalan är
     navbarens: 10,5 / 9,5 / 9. Uppmätt före: titel 12px mot flikens 10,5,
     avatar 28px mot flikikonens 15. Se .fnx-fp-blocket längre ned för
     härledningen och för sidorna i pulse-topdeck.css där talen bor. */
  width:240px!important;
  border-radius:var(--r)!important;
  --np:5px 8px; --nav:20px; --nbg:12px; --nt:10.5px; --nq:9.5px; --nm:9px; --ngap:7px; --nlh:1.3;
}

/* ── HUVUD ───────────────────────────────────────────────────────────────── */
.tb-dd .fnx-list{max-height:420px;overflow-y:auto}
.tb-dd .fnx-h{display:flex;align-items:center;gap:6px;height:26px;padding:0 10px;
  border-bottom:1px solid color-mix(in srgb,var(--line) 70%,transparent)}
.tb-dd .fnx-h .t{font-size:9px;font-weight:800;text-transform:uppercase;letter-spacing:.13em;color:var(--faint)}
.tb-dd .fnx-h .n{font-size:9px;font-weight:800;color:var(--accent);font-variant-numeric:tabular-nums}
.tb-dd .fnx-h .acts{margin-left:auto;display:flex;gap:2px}
.tb-dd .fnx-h .acts button,.tb-dd .fnx-h .acts a{width:24px;height:24px;border-radius:var(--r);
  display:grid;place-items:center;font-size:12.5px;color:var(--faint);background:none;border:0;padding:0;
  cursor:pointer;text-decoration:none}
.tb-dd .fnx-h .acts button:hover,.tb-dd .fnx-h .acts a:hover{background:var(--inset);color:var(--ink)}

/* ── FILTERCHIPS ─────────────────────────────────────────────────────────── */
.tb-dd .fnx-f{display:flex;gap:4px;padding:7px 11px;border-bottom:1px solid var(--line);overflow-x:auto}
.tb-dd .fnx-f button{height:21px;padding:0 9px;border-radius:999px;border:1px solid var(--line);
  background:var(--inset);font-size:9.5px;font-weight:900;letter-spacing:.4px;text-transform:uppercase;
  color:var(--dim);white-space:nowrap;cursor:pointer;flex:0 0 auto}
.tb-dd .fnx-f button.on{background:var(--accent);border-color:var(--accent);color:#fff}

/* ── BRIEFING ────────────────────────────────────────────────────────────── */
.tb-dd .fnx-brief{padding:8px 11px;border-bottom:1px solid var(--line);
  background:color-mix(in srgb,var(--accent) 5%,transparent);
  font-size:var(--nt);color:var(--ink);line-height:var(--nlh)}
.tb-dd .fnx-brief b{font-weight:900}

/* ── RAD ─────────────────────────────────────────────────────────────────── */
.tb-dd .fnx-row{display:grid;grid-template-columns:auto 1fr auto;gap:var(--ngap);align-items:start;
  padding:var(--np);border-bottom:1px solid var(--line);--ntc:var(--accent);position:relative;
  color:inherit;text-decoration:none}
.tb-dd .fnx-row:hover{background:var(--zebra)}
/* ★ §0.5 (2026-08-22). Här stod:
     .tb-dd .fnx-row.unread::before{...left:0;top:0;bottom:0;width:2px;background:var(--ntc)}
   — en lodrät färgad stapel per oläst rad. Exakt det 02-ui-facit §0.5 förbjuder,
   och den överlevde städpasset 2026-08-19. Kentas ord: "vill INTE ha dessa linjer
   HATAR DEM". Ersatt av en ton på HELA raden, enligt facit-blocket i §0.5:
   4-6 % i ljust, 8-9 % i mörkt — under 6 % går tonen inte att skilja från raden
   bredvid i mörkt läge, över 10 % ser den ut som ett felmeddelande. */
.tb-dd .fnx-row.unread{background:color-mix(in srgb,var(--ntc) 6%,transparent)}
[data-theme="dark"] .tb-dd .fnx-row.unread{background:color-mix(in srgb,var(--ntc) 9%,transparent)}

.tb-dd .fnx-av{position:relative;width:var(--nav);height:var(--nav);flex:0 0 auto}
.tb-dd .fnx-im{width:var(--nav);height:var(--nav);border-radius:50%;background:var(--inset);
  border:1px solid var(--line);display:grid;place-items:center;font-size:calc(var(--nav)*.4);
  font-weight:900;color:var(--ink2);overflow:hidden;background-size:cover;background-position:center}
.tb-dd .fnx-im.sq{border-radius:var(--r)}
.tb-dd .fnx-bg{position:absolute;right:-2px;bottom:-2px;width:var(--nbg);height:var(--nbg);
  border-radius:50%;display:grid;place-items:center;font-size:calc(var(--nbg)*.55);color:#fff;
  background:var(--ntc);border:2px solid var(--card)}
.tb-dd .fnx-ic{width:var(--nav);height:var(--nav);border-radius:var(--r);display:grid;place-items:center;
  font-size:calc(var(--nav)*.44);color:var(--ntc);background:color-mix(in srgb,var(--ntc) 14%,transparent)}

.tb-dd .fnx-body{min-width:0}
/* font-weight:400 uttryckligen — .tb-dd ärver 600 från sajten, och då blev
   hela meningen halvfet i stället för bara namnet. Uppmätt mot mockupen. */
.tb-dd .fnx-title{font-size:var(--nt);color:var(--ink2);line-height:var(--nlh);display:block;font-weight:400}
.tb-dd .fnx-title b{font-weight:800;color:var(--ink)}
.tb-dd .fnx-row.unread .fnx-title{color:var(--ink)}
.tb-dd .fnx-stars{color:var(--gold);font-size:calc(var(--nt) - 1px);letter-spacing:-.5px;white-space:nowrap}
.tb-dd .fnx-quote{font-size:var(--nq);color:var(--dim);font-style:italic;margin-top:2px;
  display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical;overflow:hidden}
.tb-dd .fnx-meta{display:flex;align-items:center;gap:5px;font-size:var(--nm);font-weight:700;
  color:var(--faint);margin-top:2px;flex-wrap:wrap}
.tb-dd .fnx-meta .ok{color:var(--live);display:inline-flex;align-items:center;gap:3px}
.tb-dd .fnx-faces{display:inline-flex;vertical-align:middle;margin-left:4px}
.tb-dd .fnx-faces span{width:14px;height:14px;border-radius:50%;background:var(--inset);
  border:1.5px solid var(--card);margin-left:-4px;display:grid;place-items:center;font-size:7px;
  font-weight:900;color:var(--ink2);background-size:cover;background-position:center}
.tb-dd .fnx-faces span:first-child{margin-left:0}

.tb-dd .fnx-right{display:flex;flex-direction:column;align-items:flex-end;gap:4px}
.tb-dd .fnx-time{font-size:var(--nm);font-weight:700;color:var(--faint);white-space:nowrap;
  font-variant-numeric:tabular-nums}
.tb-dd .fnx-dot{width:6px;height:6px;border-radius:50%;background:var(--ntc)}

/* ── INLINE-ÅTGÄRDER (vänförfrågan) ──────────────────────────────────────── */
.tb-dd .fnx-act{display:flex;gap:4px;margin-top:6px}
.tb-dd .fnx-btn{height:23px;padding:0 10px;border-radius:var(--r);border:1px solid var(--line2);
  background:var(--card);font-size:10.5px;font-weight:800;color:var(--ink2);display:inline-flex;
  align-items:center;gap:4px;cursor:pointer}
.tb-dd .fnx-btn:hover{border-color:var(--accent);color:var(--accent)}
.tb-dd .fnx-btn.primary{background:var(--accent);border-color:var(--accent);color:#fff}
.tb-dd .fnx-btn[disabled]{opacity:.5;cursor:default}
.tb-dd .fnx-done{font-size:var(--nm);font-weight:800;color:var(--live);margin-top:6px;display:block}

/* ── CO-PLAY-STJÄRNOR ("Kräver svar", B 2.0 2026-08-02) ───────────────────
   Stjärnan ÄR bekräftelsen — ingen Ja-knapp, ingen Skicka-knapp. Reglerna är
   kopierade ur design-proposals/omdome-B2-2026-08-02.html (§0C R5: mockupens CSS
   tas rakt av, inte omtolkad), namnrymdade fnx- och scopade till .tb-dd — ALDRIG
   till #dd-notifs, det bröt de tre andra menyerna samma dag den gången.

   FÄRGREGELN: osatta stjärnor är GRÅ (--faint), guld tänds först när ett betyg
   finns. Guld betyder därmed "här finns ett omdöme" i stället för att vara
   dekoration (§0B punkt 5). Blek guld på tre osatta rader blev femton bruna
   klumpar som inte betydde något. --live/--danger används INTE här: de betyder
   närvaro respektive fara på resten av sajten, inte ja/nej. */
.tb-dd .fnx-stars{display:inline-flex;gap:1px;align-items:center;flex:0 0 auto}
.tb-dd .fnx-star{width:22px;height:28px;display:grid;place-items:center;
  border:0;background:none;padding:0;cursor:pointer;font-size:15px;line-height:1}
.tb-dd .fnx-star > i{color:var(--faint);opacity:.5;transition:color .12s ease-out,opacity .12s ease-out}
.tb-dd .fnx-star.on > i{color:var(--gold);opacity:1}
.tb-dd .fnx-star:hover > i{color:var(--gold);opacity:.7}
.tb-dd .fnx-star[disabled]{cursor:default}
.tb-dd .fnx-nope{width:24px;height:28px;display:grid;place-items:center;border:0;background:none;
  padding:0;margin-left:5px;cursor:pointer;color:var(--faint);font-size:12px}
.tb-dd .fnx-nope:hover{color:var(--ink2)}
.tb-dd .fnx-saved{color:var(--gold);font-weight:700}
.tb-dd .fnx-err{color:var(--danger);font-weight:700}
/* Kommentaren finns bara vid <= 3 stjärnor. 56px = 11px radpadding + 28px avatar
   + 9px gap + 8px — meningen linjerar med titeln ovanför (§0B "symmetri och lod"). */
.tb-dd .fnx-why{padding:0 11px 8px 56px}
.tb-dd .fnx-why input{width:100%;height:28px;padding:0 9px;border-radius:var(--r-sm);
  background:var(--inset);border:1px solid var(--line2);color:var(--ink);
  font:inherit;font-size:var(--nq)}
.tb-dd .fnx-why input::placeholder{color:var(--faint)}
.tb-dd .fnx-why input:focus{outline:none;border-color:var(--accent)}
/* PHP-fallbacken göms först när React FAKTISKT monterat, och flaggan sitter på
   ELEMENTET — aldrig på <html> (§0D P3, FÖR DIG-fällan gav en tom låda). */
.tdk-ask[data-fnx-coplay="1"] .ask-row--star{display:none!important}
/* Mobil: 22px stjärna är under 44px touch-mål, så raden bryts och stjärnorna
   växer. Enda stället designen blir högre — uppmätt +38px. */
@media (max-width:820px){
  .tb-dd .fnx-row:has(.fnx-stars){flex-wrap:wrap}
  .tb-dd .fnx-stars{flex-basis:100%;margin-top:6px;padding-left:37px}
  .tb-dd .fnx-star{width:42px;height:38px;font-size:17px}
  .tb-dd .fnx-nope{width:42px;height:38px;font-size:14px}
  .tb-dd .fnx-why{padding-left:11px}
}

/* ── HOPVIKT GRUPP ───────────────────────────────────────────────────────── */
.tb-dd .fnx-fold{display:grid;grid-template-columns:auto 1fr auto;gap:var(--ngap);align-items:center;
  padding:var(--np);border-bottom:1px solid var(--line);--ntc:var(--plat);width:100%;text-align:left;
  background:none;border-left:0;border-right:0;border-top:0;cursor:pointer;position:relative}
.tb-dd .fnx-fold:hover{background:var(--zebra)}
.tb-dd .fnx-fold .ch{font-size:11px;color:var(--faint);transition:transform .15s}
.tb-dd .fnx-fold[aria-expanded="true"] .ch{transform:rotate(180deg)}
.tb-dd .fnx-sub{background:color-mix(in srgb,var(--dim) 4%,transparent);border-bottom:1px solid var(--line)}
.tb-dd .fnx-sub a{display:flex;align-items:center;gap:8px;padding:5px 11px 5px 30px;font-size:11px;
  color:var(--ink2);text-decoration:none}
.tb-dd .fnx-sub a:hover{background:var(--zebra)}
.tb-dd .fnx-sub a b{font-weight:800;color:var(--ink)}
.tb-dd .fnx-sub a .tm{margin-left:auto;font-size:10px;color:var(--faint);font-weight:700;
  font-variant-numeric:tabular-nums}

/* ── TOMT + FOT ──────────────────────────────────────────────────────────── */
.tb-dd .fnx-empty{display:flex;flex-direction:column;align-items:center;gap:6px;padding:32px 20px;text-align:center}
.tb-dd .fnx-empty i{font-size:20px;color:var(--faint)}
.tb-dd .fnx-empty b{font-size:12.5px;font-weight:900;color:var(--ink)}
.tb-dd .fnx-empty span{font-size:11.5px;color:var(--dim);max-width:30ch}
.tb-dd .fnx-foot{display:flex;align-items:center;justify-content:center;gap:6px;padding:8px;
  border-top:1px solid var(--line);font-size:11px;font-weight:800;color:var(--accent);text-decoration:none}
.tb-dd .fnx-foot:hover{background:var(--zebra)}

/* Kategorifärger SIST — de förlorade mot .fnx-fold när de stod först.
   Samma anteckning finns i mockupen; det var en riktig bugg där. */
/* ★ ELVA HÅRDKODADE HEX → SEX TOKENS (2026-08-22).
   Här stod --nt-friend:#2796f2 … --nt-system:#64748b, deklarerade ORDAGRANT
   TRE gånger i den här filen (#dd-notifs, #dd-msgs/friends/me, .fnx-fp).
   De var hex, inte tokens, så INGEN av dem bytte i mörkt läge — och
   --nt-friend:#2796f2 ÄR var(--accent), medan --nt-lfg:#10b981 stod bredvid
   var(--live) och gav två gröna för samma sak.

   Kartan följer nu skalets färgvokabulär (BRAIN.md §0B:5):
     BLÅTT = människor pratar    RÖTT = trasigt/kräver beslut
     GRÖNT = live/närvaro        LILA = din stab / ditt lag
     GULD  = varning/väntar      DIM  = system, ingen betydelse
   Flera typer delar färg med flit. Det är poängen: färg = betydelse, och det
   finns färre betydelser än det fanns typer. */
.tb-dd [data-nt="friend"]{--ntc:var(--accent)}
.tb-dd [data-nt="comment"]{--ntc:var(--accent)}
.tb-dd [data-nt="like"]{--ntc:var(--danger)}
.tb-dd [data-nt="mention"]{--ntc:var(--champ)}
.tb-dd [data-nt="squad"]{--ntc:var(--champ)}
.tb-dd [data-nt="post"]{--ntc:var(--live)}
.tb-dd [data-nt="lfg"]{--ntc:var(--live)}
.tb-dd [data-nt="reward"]{--ntc:var(--gold)}
/* Ingen orange token finns i pulse, och skalet ska inte få en accent till för
   att butiken råkar vara orange hos Epic. Butiken brådskar = guld. */
.tb-dd [data-nt="fortnite"]{--ntc:var(--gold)}
.tb-dd [data-nt="news"]{--ntc:var(--plat)}
.tb-dd [data-nt="system"]{--ntc:var(--dim)}
.tb-dd [data-nt="danger"]{--ntc:var(--danger)}
.tb-dd [data-nt="live"]{--ntc:var(--live)}

/* ============================================================================
   MENY-KÄRNAN — samma delar i meddelanden, vänförfrågningar och kontot.
   Scopet utökat från #dd-notifs till alla fyra panelerna (2026-08-01).
   ========================================================================== */
#dd-msgs,#dd-friends,#dd-me{
  width:240px!important;border-radius:var(--r)!important;
  --np:5px 8px; --nav:20px; --nbg:12px; --nt:10.5px; --nq:9.5px; --nm:9px; --ngap:7px; --nlh:1.3;
}



/* Närvaroprick — RUND avatar = människa, pricken sitter på personen. */
.tb-dd .fnx-pres{
  position:absolute;right:-1px;bottom:-1px;width:9px;height:9px;border-radius:50%;
  border:2px solid var(--card);background:var(--faint)}
.tb-dd .fnx-pres.on{background:var(--live)}
.tb-dd .fnx-pres.play{background:var(--gold)}
.tb-dd .fnx-pres:empty{display:block}

/* Oläst-räknaren till höger på en tråd. */
.tb-dd .fnx-ct{
  min-width:16px;height:16px;padding:0 5px;border-radius:999px;background:var(--ntc);color:#fff;
  font-size:9px;font-weight:900;display:grid;place-items:center;font-variant-numeric:tabular-nums}
.tb-dd .fnx-onl{display:inline-flex;align-items:center;gap:3px;font-size:9px;font-weight:900;
  color:var(--live);background:color-mix(in srgb,var(--live) 14%,transparent);border-radius:999px;
  padding:1px 5px;font-variant-numeric:tabular-nums}
.tb-dd .fnx-onl::before{content:"";width:5px;height:5px;border-radius:50%;background:var(--live)}
.tb-dd .fnx-pin{font-size:9px;color:var(--faint);margin-left:4px}
.tb-dd .fnx-go{font-size:11px;color:var(--faint)}

/* Sektionsrad ("Förfrågningar", "Senaste"). */
.tb-dd .fnx-sec{
  display:flex;align-items:center;gap:6px;padding:5px 11px;background:var(--inset);font-size:8.5px;
  font-weight:900;text-transform:uppercase;letter-spacing:1px;color:var(--faint);
  border-bottom:1px solid var(--line);border-top:1px solid var(--line)}
.tb-dd .fnx-sec .ct{margin-left:auto;letter-spacing:0}

/* ── KONTOMENYN ──────────────────────────────────────────────────────────── */
#dd-me{padding:0}
#dd-me .fnx-mehead{display:flex;align-items:center;gap:10px;padding:11px;
  border-bottom:1px solid var(--line);text-decoration:none;color:inherit}
#dd-me .fnx-mehead:hover{background:var(--zebra)}
#dd-me .fnx-meav{width:38px;height:38px;border-radius:50%;background:var(--inset);
  border:1px solid var(--line);display:grid;place-items:center;font-size:15px;font-weight:900;
  flex:0 0 auto;background-size:cover;background-position:center;overflow:hidden}
#dd-me .fnx-mei{flex:1;min-width:0;display:block}
#dd-me .fnx-menm{font-size:13px;font-weight:900;letter-spacing:-.2px;display:flex;
  align-items:center;gap:5px;color:var(--ink)}
#dd-me .fnx-metag{font-size:9px;font-weight:900;color:#fff;background:var(--champ,#8b3df0);
  border-radius:3px;padding:1px 5px;letter-spacing:.4px}
#dd-me .fnx-mesub{font-size:10px;font-weight:700;color:var(--faint);margin-top:1px;
  display:flex;align-items:center;gap:4px}
#dd-me .fnx-melvl{height:4px;border-radius:2px;background:var(--inset);overflow:hidden;
  margin-top:5px;display:block}
#dd-me .fnx-melvl i{display:block;height:100%;background:var(--accent)}
#dd-me .fnx-mexp{font-size:9.5px;font-weight:700;color:var(--faint);margin-top:3px;display:block}
#dd-me .fnx-mexp b{color:var(--gold);font-weight:900}
#dd-me .fnx-megrid{display:grid;grid-template-columns:1fr 1fr 1fr;border-bottom:1px solid var(--line)}
#dd-me .fnx-megrid a{padding:9px 4px;text-align:center;border-right:1px solid var(--line);
  text-decoration:none}
#dd-me .fnx-megrid a:last-child{border-right:0}
#dd-me .fnx-megrid a:hover{background:var(--zebra)}
#dd-me .fnx-megrid i{font-size:14px;color:var(--dim);display:block;margin-bottom:3px}
#dd-me .fnx-megrid span{font-size:9px;font-weight:900;text-transform:uppercase;
  letter-spacing:.5px;color:var(--dim)}
#dd-me .fnx-melinks{padding:5px 0}
#dd-me .fnx-melinks a,#dd-me .fnx-melinks button{display:flex;align-items:center;gap:9px;
  padding:7px 11px;font-size:12px;color:var(--ink2);width:100%;text-align:left;
  background:none;border:0;cursor:pointer;text-decoration:none}
#dd-me .fnx-melinks a:hover,#dd-me .fnx-melinks button:hover{background:var(--zebra);color:var(--ink)}
#dd-me .fnx-melinks i{font-size:13px;color:var(--faint);width:15px;text-align:center}
#dd-me .fnx-melinks .ct{margin-left:auto;min-width:16px;height:16px;padding:0 5px;
  border-radius:999px;background:var(--danger);color:#fff;font-size:9px;font-weight:900;
  display:grid;place-items:center}
#dd-me .fnx-melinks .kbd{margin-left:auto;font-size:9px;font-weight:800;color:var(--faint);
  border:1px solid var(--line);border-radius:3px;padding:1px 4px;white-space:nowrap}
#dd-me .fnx-mesep{height:1px;background:var(--line);margin:5px 0}
#dd-me .fnx-mdanger{color:var(--danger)!important}
#dd-me .fnx-mdanger i{color:var(--danger)!important}
#dd-me .fnx-champ{color:var(--champ,#8b3df0)!important}
#dd-me .fnx-champ i{color:var(--champ,#8b3df0)!important}
#dd-me .fnx-row{grid-template-columns:auto 1fr auto}

/* PHP-fallbacken göms först när React monterat — laddar inte React ser man
   exakt dagens menyer. */
html.forre-msgs-react #dd-msgs > .ddh,
html.forre-msgs-react #dd-msgs > .ddlist{display:none!important}
html.forre-van-react  #dd-friends > .ddh,
html.forre-van-react  #dd-friends > .ddlist{display:none!important}
html.forre-me-react   #dd-me > .me-head,
html.forre-me-react   #dd-me > .me-links{display:none!important}

/* SMART: vänikonen försvinner ur navbaren när ingen har frågat något.
   Tystnad är signalen. ?ikoner=alla stänger av regeln så den går att testa. */
html.fnx-inga-vanner:not(.fnx-tvinga-van) body .top .in .right .tb-item:has([data-dd="friends"]){display:none!important}

/* "Visa alla ikoner": radar, ärenden och crew ligger normalt bakom ••• */
/* Radarn och ärendeknappen är gömda med FLIT i pulse-shoutbox.php:536 och
   pulse-topdeck.css — radarns siffror bor på pulsraden, ärendena i kontomenyn.
   De reglerna har hög specificitet, så den här måste ha högre. Klassen sätts
   av pulse-topbar.php och är en rad att ta bort den dagen du vill tillbaka. */
html.fnx-alla-ikoner body .top .in .right .tb-item.tb-sec{display:inline-flex!important}
html.fnx-alla-ikoner body .top .in .right .tb-item:has(> [data-dd="radar"]){display:inline-flex!important}
html.fnx-alla-ikoner body .top .in .right .tb-item:has([data-dd="tickets"]){display:inline-flex!important}
html.fnx-alla-ikoner .top .right .more-btn{display:none!important}

/* ============================================================================
   FLIKPANELERNA — D · "SPEGELN"  (2026-08-22, Kentas val).
   Förlaga: design-proposals/dropdowns-v2-2026-08-22.html, vy D.
   §0C R3: CSS:en är tagen RAKT ur mockupen, inte omtolkad.

   ★ VARFÖR MÅTTEN SER UT SOM DE GÖR.
   Panelen är navbaren nedvikt. Inget värde här är påhittat — de är LÅNADE ur
   topbaren, för det var hela felet med den gamla panelen:

     etikett  10,5px   pulse-topdeck.css:34 + forre_pulse.css:88
     ikon     15px     pulse-topdeck.css:35
     gap       5px     pulse-topdeck.css:33
     padding   8px     pulse-topdeck.css:33
     flik     38px     pulse-topdeck.css:33   → raden är 30

   Uppmätt före: titel 12px (+14 % mot fliken), rad 45px (+18 %), avatar 28px
   (+87 % mot flikikonen), butikspanelen 252px = 4,3× topbarens 58px.
   Kentas ord: "tycker dropdown är för stora mot vad själva navbar texten är".

   ★ EN RAD TEXT PER RAD. Den gamla raden bar titel OCH meta i två våningar —
   fyra rader gav åtta textrader. Metan lever nu vidare som dämpad text på
   SAMMA rad (.fnx-fpm är inline, inte block). Det är det som tar panelen från
   252 till 174px utan att en enda uppgift försvinner.

   ★ §0.5: NOLL lodräta färgade linjer. Ingen border-left, ingen border-right,
   ingen box-shadow:inset som ritar samma stapel med en annan penna.
   Betydelsefärg bärs av talet till höger (.fnx-fpx.hot/.liv) och av
   avatarens fyllning. Vågräta avdelare är temats språk och är kvar.
   ========================================================================== */
.fnx-fpwrap{position:fixed;z-index:1200;width:240px}

/* Glaset. Solid som grund så en webbläsare utan backdrop-filter aldrig får en
   genomskinlig panel utan oskärpa — då lyser sidan igenom siffrorna.
   86 % är mätt: under ~80 % går text bakom att läsa genom talen. */
.fnx-fp{width:240px;background:var(--card);border:1px solid var(--line2);
  border-radius:var(--r);overflow:hidden;box-shadow:0 10px 30px rgba(0,0,0,.30)}
@supports ((backdrop-filter:blur(1px)) or (-webkit-backdrop-filter:blur(1px))){
  .fnx-fp{background:color-mix(in srgb,var(--card) 86%,transparent);
    -webkit-backdrop-filter:blur(16px) saturate(1.35);
    backdrop-filter:blur(16px) saturate(1.35)}
}

/* Huvud och fot: 26px. Lägre än raden, för de är ramen och inte innehållet. */
.fnx-fph{display:flex;align-items:center;gap:6px;height:26px;padding:0 10px;
  border-bottom:1px solid color-mix(in srgb,var(--line) 70%,transparent);
  font-size:9px;font-weight:800;letter-spacing:.13em;text-transform:uppercase;
  color:var(--faint);white-space:nowrap;overflow:hidden}
.fnx-fph > i{font-size:11px;color:var(--faint);letter-spacing:0}
.fnx-fph .r{margin-left:auto;letter-spacing:.02em;text-transform:none;
  font-size:9px;font-weight:700;color:var(--faint);flex:0 0 auto}

/* Raden. 30px, en textrad, inget mer. */
.fnx-fprow{display:flex;align-items:center;gap:5px;height:30px;padding:0 8px;
  border-top:1px solid color-mix(in srgb,var(--line) 55%,transparent);
  --c:var(--accent);text-decoration:none;color:inherit}
.fnx-fph + .fnx-fprow{border-top:0}
.fnx-fprow:hover{background:var(--zebra)}

/* Ikonen är flikens ikon i flikens storlek. Ingen bricka, ingen tonad platta —
   den gamla 28px-brickan var det som bar de elva hårdkodade typfärgerna. */
.fnx-fpico{font-size:15px;line-height:1;color:var(--dim);width:15px;
  text-align:center;flex:0 0 auto}

/* Runda avatarer = människa. Fyrkantiga = lag/data/tävling (§0B:7). */
.fnx-fpav{width:20px;height:20px;border-radius:50%;flex:0 0 auto;display:grid;
  place-items:center;font-size:8.5px;font-weight:800;color:#fff;
  background-color:var(--c);background-size:cover;background-position:center;
  position:relative}
/* Fyrkanten bär ofta en 4-teckens squad-tag ("4FUN"). 7,5 px gav 18 px text i
   en 18 px inre ruta och taggen nuddade kanten — uppmätt i Chromium 2026-08-22.
   7 px med negativ spärr ger 16,4 px och ryms med marginal. */
/* Fyrkanten bär ofta en 4-teckens squad-tag ("4FUN"). Uppmätt i Chromium
   2026-08-22: 7,5 px gav 20 px text i en 18 px inre ruta — taggen klipptes.
   TVÅ ändringar, båda ur facit: ringen ritas med box-shadow i stället för
   border (02-ui-facit §0.5: "ringar via box-shadow/outline, aldrig border —
   det ändrar elementets storlek"), vilket ger tillbaka 2 px inre bredd, och
   graden går till 6,5 px med negativ spärr. En inset-ring på ALLA fyra sidor
   är ingen lodrät stapel; förbudet gäller `inset Npx 0 0`. */
.fnx-fpav.fyrkant{border-radius:var(--r-sm);background-color:var(--inset);
  box-shadow:inset 0 0 0 1px var(--line);color:var(--ink2);
  font-size:6.5px;font-weight:900;letter-spacing:-.03em;overflow:hidden}
.fnx-fppres{position:absolute;right:-1px;bottom:-1px;width:7px;height:7px;
  border-radius:50%;background:var(--live);border:1.5px solid var(--card)}

/* Titeln bär allt: fet del + dämpad fortsättning på samma rad. */
.fnx-fpt{font-size:10.5px;font-weight:600;letter-spacing:.01em;color:var(--ink);
  line-height:1.25;min-width:0;flex:1 1 auto;
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.fnx-fpt b{font-weight:800}
.fnx-fpm{color:var(--dim);font-weight:500}

/* Talet till höger. Här — och bara här — bor betydelsefärgen. */
.fnx-fpx{margin-left:auto;flex:0 0 auto;font-size:9px;font-weight:700;
  color:var(--faint);font-variant-numeric:tabular-nums;white-space:nowrap}
.fnx-fpx.hot{color:var(--danger);font-weight:800}
.fnx-fpx.liv{color:var(--live);font-weight:700}

/* Lista mig — samma rytm som raderna, ingen egen låda. */
.fnx-fpseek{display:flex;align-items:center;gap:6px;width:100%;height:30px;
  padding:0 8px;border:0;
  border-top:1px solid color-mix(in srgb,var(--line) 55%,transparent);
  background:none;cursor:pointer;text-align:left;font-family:inherit}
.fnx-fpseek:hover{background:var(--zebra)}
.fnx-fpseek[disabled]{opacity:.6;cursor:progress}
.fnx-fpseek .pt{width:6px;height:6px;border-radius:50%;background:var(--faint);flex:0 0 auto}
.fnx-fpseek.pa .pt{background:var(--live)}
.fnx-fpseek .tx{font-size:10.5px;font-weight:600;color:var(--ink);
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.fnx-fpseek .kn{margin-left:auto;flex:0 0 auto;font-size:9px;font-weight:800;
  letter-spacing:.05em;text-transform:uppercase;color:var(--accent-ink)}
.fnx-fpseek.pa .kn{color:var(--faint);font-weight:700}

/* Primärknapp och fot: 26px, samma som huvudet. En hero per panel. */
.fnx-fpcta{display:block;text-align:center;height:26px;line-height:26px;
  font-size:9px;font-weight:900;letter-spacing:.11em;text-transform:uppercase;
  color:#fff;background:var(--accent);text-decoration:none}
.fnx-fpcta:hover{background:color-mix(in srgb,var(--accent) 86%,#000)}
.fnx-fp .fnx-foot{display:flex;align-items:center;gap:6px;height:26px;padding:0 10px;
  border-top:1px solid color-mix(in srgb,var(--line) 70%,transparent);
  font-size:9px;font-weight:800;letter-spacing:.09em;text-transform:uppercase;
  color:var(--accent-ink);text-decoration:none}
.fnx-fp .fnx-foot i{margin-left:auto;font-size:10px}
.fnx-fp .fnx-foot:hover{background:var(--zebra)}
.fnx-fptom{padding:10px;font-size:10px;color:var(--dim);text-align:center}

/* De gamla PHP-flyouterna för LFG och Forum stängs av när React monterat —
   annars öppnas två paneler samtidigt. Squad-flyouten rörs INTE. */
html.forre-flikar-react #tdkLfgFly,
html.forre-flikar-react #tdkForumFly{display:none!important}

@media(prefers-reduced-motion:reduce){.fnx-fp{transition:none}}
/* Hover-paneler finns inte på pekskärm. Kvar sedan 2026-08-01, avsiktligt. */
@media(max-width:820px){.fnx-fpwrap{display:none}}

/* ============================================================================
   LFG-SIDANS SKAL — Kentas val 2026-08-01 (mockup B "Rummet")
   ============================================================================
   Före: .lfg6 .shell = 1fr 292px  →  main 864, högerrail 292.
   Uppmätt på live: railen var 612 px hög bredvid 587 px innehåll — längre än
   sidan den stod bredvid. Huvudkolumnens rader slutade vid ~640 px av 864.

   Efter: 250px 1fr → main 938 px, alltså BREDARE än före trots att en hel
   kolumn tillkommit. Vänsterrailen kostar 250, högerrailen ger 292.

   HANS MARKUP ÄR ORÖRD. Högerrailen flyttas inte i DOM och raderas inte —
   den placeras i rad 2 av kolumn 1, direkt under vänsterrailen, medan main
   spänner båda raderna i kolumn 2.

   SJÄLVGUARDANDE: hela blocket hänger på :has(> .rail.left). Renderas inte
   vänsterrailen (include borta, utloggad, fel tema) gäller ingenting av det
   här och sidan är exakt dagens sida.
--------------------------------------------------------------------------- */
/* ─── TRE KOLUMNER IGEN (Kentas beslut 2026-08-05) ────────────────────────
   "vill ha högerspalten med och vänster spalten och mitten."

   Före: 250px + 1fr, med högerrailen i rad 2 av kolumn 1 (under vänsterrailen)
   och main spännande båda raderna. Det gav en bredare mittkolumn, men med bara
   två listrader lämnade det ~700 px dödyta till höger under listan — och etapp 1
   fyller högerspalten med sådant som MÅSTE synas bredvid innehållet: inkorgen
   ("N vill spela med dig") och väntrummet.

   Efter: 250px · minmax(0,1fr) · 320px. Exakt måtten i .shell.c3 i
   forre_pulse.css — ingen egen siffra. Varje rail ligger i sin egen kolumn på
   rad 1, så ingen behöver spänna två rader.

   SJÄLVGUARDANDE, som förut: hela blocket hänger på :has(> .rail.left).
   Renderas inte vänsterrailen gäller ingenting av det här. */
.lfgp.lfg6 .shell:has(> .rail.left){
  grid-template-columns:250px minmax(0,1fr) 320px;
  align-items:start;
}
.lfgp.lfg6 .shell:has(> .rail.left) > .rail.left{ grid-column:1; grid-row:1; min-width:0; }
.lfgp.lfg6 .shell:has(> .rail.left) > main.main{ grid-column:2; grid-row:1; min-width:0; }
.lfgp.lfg6 .shell:has(> .rail.left) > .rail:not(.left){ grid-column:3; grid-row:1; min-width:0; }

/* Mittkolumnen är ~574 px i trekolumnsläget — smalare än de 906 px som
   listraderna ritades för. Sekundär meta viker undan FÖRST (plattform, "Utan
   mic"), så namn, spelläge, rank och knappen behåller sin plats. .hidesm är
   sidans egen klass för precis det här och fanns redan. */
@media (min-width:1181px){
  .lfgp.lfg6 .shell:has(> .rail.left) > main.main .hidesm{ display:none; }

  /* Uppmätt på live 2026-08-05: raden gav .l1 bara 154 px, och eftersom .nm
     står på flex:0 0 auto var det spelläget och ranken som krympte — till 22
     respektive 17 px, alltså "Z" och "S". Fel sak gav vika.

     Prioritet i en smal rad: åldern går först (den finns kvar i expansionen),
     sedan får NAMNET krympa — ett avhugget namn känner man igen. Spelläge och
     rank får aldrig krympa: en bokstav säger ingenting. */
  /* Radens grid är FAST i temat: 34px 154px 52px 118px 108px 22px — ritat för
     en ~900 px bred rad. Att gömma .age gav därför ingenting: spåret ligger kvar.
     Här görs .id till det flexibla spåret och resten till auto, så det som göms
     faktiskt lämnar tillbaka sin plats. Uppmätt: .id 154 px -> ~330 px. */
  .lfgp.lfg6 .shell:has(> .rail.left) > main.main .rl{
    grid-template-columns:34px minmax(0,1fr) auto auto auto 22px;
  }
  .lfgp.lfg6 .shell:has(> .rail.left) > main.main .rl > .age{ display:none; }
  /* "Scout-val"-brickan är dekor — raden är redan visuellt lyft ur listan, och
     38 px av ett namn är dyrare än en etikett som upprepar det man ser. Samma
     bricka göms redan på mobil (pulse-lfg.css @media 820px). */
  .lfgp.lfg6 .shell:has(> .rail.left) > main.main .scout .kick{ display:none; }
  .lfgp.lfg6 .shell:has(> .rail.left) > main.main .rl .l1 > .nm{ flex:0 1 auto; min-width:0; }
  .lfgp.lfg6 .shell:has(> .rail.left) > main.main .rl .l1 > .md,
  .lfgp.lfg6 .shell:has(> .rail.left) > main.main .rl .l1 > .rkd{ flex:0 0 auto; }
}

/* Mellanläge: under 1180 px får högerrailen inte plats som egen kolumn utan att
   klämma mitten. Då faller den tillbaka på det gamla beteendet — rad 2 i
   kolumn 1 — i stället för att stapla under hela sidan. */
@media (max-width:1180px){
  .lfgp.lfg6 .shell:has(> .rail.left){ grid-template-columns:250px minmax(0,1fr); }
  .lfgp.lfg6 .shell:has(> .rail.left) > main.main{ grid-column:2; grid-row:1 / span 2; }
  .lfgp.lfg6 .shell:has(> .rail.left) > .rail:not(.left){ grid-column:1; grid-row:2; }
}

/* Railen ritades för 292 px. På 250 måste statuspanelens nyckel/värde-rader få
   brytas i stället för att spilla — mätt: "1 spelar nu · 1 söker lag" är den
   längsta strängen och går i 214 px vid 11 px text. */
.lfgp.lfg6 .shell:has(> .rail.left) > .rail:not(.left) .statp .kv{ flex-wrap:wrap; }
.lfgp.lfg6 .shell:has(> .rail.left) > .rail:not(.left) .statp .kv .v{ flex:1 0 100%; }

/* Mobil: pulse-skalets brytpunkt är 820 px överallt. Under den staplas allt,
   och vänsterrailen ska ligga SIST — på telefon vill man se grupperna först. */
@media (max-width:820px){
  .lfgp.lfg6 .shell:has(> .rail.left){ grid-template-columns:minmax(0,1fr); }
  .lfgp.lfg6 .shell:has(> .rail.left) > main.main{ grid-column:1; grid-row:1; }
  .lfgp.lfg6 .shell:has(> .rail.left) > .rail:not(.left){ grid-column:1; grid-row:2; }
  .lfgp.lfg6 .shell:has(> .rail.left) > .rail.left{ grid-column:1; grid-row:3; }
}

/* ============================================================================
   VÄGGEN — LFG-KORTET OCH SVARSRADEN   (2026-08-01, Kentas bild 1 + bild 2)
   ============================================================================
   Bild 1 är hur kortet SKA se ut, bild 2 är svarsraden han underkände:
   "när man svarar på inlägg ser det inte bra ut! ingen spaceing osv".

   Uppmätt på live före: kortet pad 9px 12px, gap 1px 10px, titel 13/800,
   meta 11px med margin-top 1px. Svarsraden: .cm gap 8, .cm-bub pad 7px 11px,
   .cm-meta margin-top 2px, .cpreview pad 0 12px 8px.

   Basreglerna bor kvar i wall-post-card.php — hans fil är orörd. Det här är
   ett lager ovanpå, i React-motorns egen CSS (BRAIN §0C R5), så det kan tas
   bort i ett stycke utan att röra väggen.
--------------------------------------------------------------------------- */

/* ── SPECIFICITET (uppmätt 2026-08-01) ─────────────────────────────────────
   Första försöket skrevs som `.wlfg{...}` och `.card.post .cpreview{...}`.
   Uppmätt på live efteråt: border-top och gap slog igenom, men padding och
   margin gjorde det INTE. Orsaken är att hans regler ligger i ett <style>-block
   INUTI wall-post-card.php (rad 422-439), alltså senare i dokumentet än
   forre-ui.css. Samma specificitet + senare i kaskaden = hans vinner, men bara
   på de egenskaper han faktiskt sätter. Därför dubblerad klass här
   (`.wlfg.wlfg`, 0-2-0 mot hans 0-1-0). Inga !important: de vinner allt för
   alltid och gör nästa ändring i HANS fil verkningslös.
--------------------------------------------------------------------------- */

/* ── LFG-KORTET ─────────────────────────────────────────────────────────────
   1px mellan titel och meta är för tätt när titeln är 13px/800 — de läses som
   ETT stycke. Bild 1 har luft där, och kortet andas i höjd. */
.wlfg.wlfg{ padding:11px 13px; gap:5px 12px; }
.wlfg.wlfg .wl-h{ font-size:9px; letter-spacing:1.1px; opacity:.85; }
.wlfg.wlfg .wl-t{ font-size:13.5px; line-height:1.35; }
.wlfg.wlfg .wl-m{ margin-top:0; font-size:11px; }

/* Knappen ska inte vara lika tung som postens egna handlingar — kortet är
   redan klickbart i sin helhet. Färg = betydelse: EN accent, inte två. */
.wlfg.wlfg .wl-go{ height:28px; padding:0 12px; align-self:center; }

/* Hela kortet är en länk. Utan detta får bara knappen fokusring och
   tangentbordsanvändaren ser aldrig var hen är. */
.wlfg.wlfg:focus-visible{ outline:2px solid var(--accent); outline-offset:2px; }

/* ── SVARSRADEN ─────────────────────────────────────────────────────────────
   Felet var inte en enskild siffra utan att svarsblocket saknade GRÄNS mot
   inlägget ovanför: 8 px margin och inget mer, så kommentaren såg ut att
   tillhöra handlingsraden. En hårfin linje + luft gör den till ett eget stycke
   utan att lägga till en enda ny yta. */
.card.post .cpreview.cpreview{
  margin-top:0;
  padding:11px 12px 12px;
  border-top:1px solid var(--line);
  display:flex;
  flex-direction:column;
  gap:10px;
}
.card.post .cpreview.cpreview .cm{ gap:9px; align-items:flex-start; }

/* Bubblan: 7px höjd mot 11px sida gjorde texten hoptryckt vertikalt.
   8/12 ger samma optiska luft runt om. */
.card.post .cpreview.cpreview .cm-bub{ padding:8px 12px; border-radius:12px; }
.card.post .cpreview.cpreview .cm-nm{ line-height:1.4; }
.card.post .cpreview.cpreview .cm-tx{ margin-top:3px; line-height:1.5; }

/* Metaraden låg 2 px under bubblan med 4px vänsterpadding som inte linjerade
   med bubblans 12. Nu linjerar "2 min sedan" med namnet ovanför — Kentas
   symmetriregel: kanterna ska följa containerns synliga kant. */
.card.post .cpreview.cpreview .cm-meta{
  margin-top:5px;
  padding:0 0 0 12px;
  gap:12px;
  align-items:center;
}
.card.post .cpreview.cpreview .cm-meta .cm-a{ line-height:1.2; }

/* Flera kommentarer efter varandra separeras av luft, inte av linjer —
   linjer mellan svar gör en tråd till en tabell. */
.card.post .cpreview.cpreview .cm + .cm{ margin-top:2px; }

/* ── DOLD FÖRHANDSVISNING MÅSTE FÖRBLI DOLD (2026-08-08) ───────────────────
   ROTORSAK till "när någon gillar min kommentar blir det en ny rad".
   Blocket ovan sätter om `display:flex` med dubblerad klass (0-4-0). Det slår
   ut `.cpreview[hidden]{display:none}` i forre_pulse.css:1095 (0-2-0), som är
   det ENDA sättet pulse.js har att gömma förhandsvisningen. Uppmätt på live
   2026-08-08: hidden=true men getComputedStyle → display:flex, höjd 94px.
   Följden: så fort listan fälls ut (Gilla/Svara på previewen, "X kommentarer",
   Kommentera) ligger previewraden kvar OVANFÖR listan och SAMMA kommentar
   syns två gånger — en attrapprad med "♡ Gilla · Svara" och en riktig med
   "♥ Gilla 2 · Svara · Redigera · Ta bort · Flagga".
   Bieffekt som också försvinner: ett tomt .cpreview på ett inlägg UTAN
   kommentarer ritade ändå sin border-top + padding = 24 px falsk skiljelinje
   under varje kommentarslöst inlägg.
   Inget !important — samma regel som resten av filen: högre specificitet,
   så nästa ändring i hans egen fil fortfarande biter. */
.card.post .cpreview.cpreview[hidden]{ display:none; }

/* ── SÖKER LAG (2026-08-01) ────────────────────────────────────────────────
   Opt-in-kontrollen för "Spelare söker lag". Samma kontroll på fyra ytor —
   topbarens meny, LFG-railen, "För dig" och egen profil.
   §10b: grönt = närvaro (och bara då), max en färg i viloläge, kompakt.
   Vilande knapp är helt neutral; grönt vaknar först när du FAKTISKT syns. */
.fnx-seek{display:flex;flex-direction:column;gap:6px}
.fnx-seek-lage{display:flex;align-items:center;gap:6px;min-height:18px}
.fnx-seek-dot{width:7px;height:7px;border-radius:50%;background:var(--faint);flex:0 0 auto}
.fnx-seek.pa .fnx-seek-dot,.fnx-seek-btn.pa .fnx-seek-dot{background:var(--ok,#2f9e44)}
.fnx-seek-lbl{font-size:11.5px;color:var(--dim);font-weight:500}
.fnx-seek.pa .fnx-seek-lbl{color:var(--ink)}
.fnx-seek-n{margin-left:auto;font-size:10.5px;color:var(--dim);font-variant-numeric:tabular-nums}

.fnx-seek-btn{display:inline-flex;align-items:center;gap:6px;min-height:30px;
  padding:6px 10px;border:1px solid color-mix(in srgb,var(--dim) 30%,transparent);
  border-radius:var(--r,6px);
  background:var(--card);color:var(--ink);font:inherit;font-size:12px;font-weight:600;
  cursor:pointer;text-align:left;width:100%;transition:border-color .12s,background .12s}
.fnx-seek-btn:hover{border-color:var(--accent);background:var(--hover,rgba(0,0,0,.03))}
.fnx-seek-btn:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.fnx-seek-btn.pa{border-color:color-mix(in srgb,var(--ok,#2f9e44) 55%,transparent)}
.fnx-seek-btn.jobbar{opacity:.6;cursor:progress}
.fnx-seek-btn .fnx-seek-txt{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
/* Knappen ensam (topbaren) bär sin egen prick — raden har redan en. */
.fnx-seek .fnx-seek-btn .fnx-seek-dot{display:none}

.fnx-seek-fel{font-size:11px;color:var(--danger,#c92a2a)}

/* R2: PHP-fallbacken göms FÖRST när React monterat. */
html.forre-seek-react .fnx-seek-php{display:none!important}

/* Fastet i topbarens kontomeny. Kontrollen ar en NARVAROVALJARE och hor hemma
   bredvid niva och XP - inte begravd pa en undersida. Kompakt per §10b:2. */
.tb-dd .me-seek{padding:6px 10px 2px}
.tb-dd .me-seek .fnx-seek{gap:4px}
.tb-dd .me-seek-a{display:flex;align-items:center;gap:7px;min-height:30px;
  font-size:12px;color:var(--ink);text-decoration:none}
.tb-dd .me-seek-a:hover{color:var(--accent)}
.tb-dd .fnx-meseek{padding:2px 12px 8px}
.tb-dd .fnx-meseek .fnx-seek{gap:5px}

/* ══════════════════════════════════════════════════════════════════════════
   AUTO-REMSAN — "C · Marginalen med A:s dragspel" (Kentas val 2026-08-01)
   Ersätter wall-post-card.php som digestens komponent. Väggen behåller kortet.
   Fyra typsteg: 12.5 rad · 12.5 kommentar · 11.5 antal/tid · 9.5 dagrubrik.
   ══════════════════════════════════════════════════════════════════════════ */
.fnx-am{--am-mar:76px}

/* Avatar-primitiven är scopad till .tb-dd i kärnan — remsan behöver egen scope,
   annars renderas <Avatar> helt ostylad här. (R5: scopa, skriv inte om.) */
.fnx-am .fnx-av{position:relative;width:18px;height:18px;flex:0 0 auto}
.fnx-am .fnx-im{width:18px;height:18px;border-radius:50%;background:var(--inset);
  border:1px solid var(--line);display:grid;place-items:center;font-size:8px;
  font-weight:900;color:var(--ink2);overflow:hidden;background-size:cover;background-position:center}
.fnx-am-tr .fnx-av,.fnx-am-tr .fnx-im{width:22px;height:22px;font-size:9.5px}

.fnx-am-dag{display:flex;align-items:center;gap:8px;padding:9px 14px 3px}
.fnx-am-dag .d{font-size:9.5px;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:var(--faint)}
.fnx-am-dag .hr{flex:1;height:1px;background:var(--line)}

.fnx-am-row{display:flex;align-items:center;gap:10px;min-height:30px;padding:0 14px;
  width:100%;text-align:left;background:none;border:0;font:inherit;color:inherit;cursor:pointer}
.fnx-am-row:hover{background:var(--zebra)}
.fnx-am-item.open .fnx-am-row{background:var(--zebra)}
.fnx-am-tx{flex:1;min-width:0;font-size:12.5px;color:var(--dim);
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.fnx-am-tx b{font-weight:700;color:var(--ink)}
.fnx-am-tx a{color:inherit}
.fnx-am-tx a:hover{text-decoration:underline}
/* Guld = duell/coins (etablerad betydelse). Siffran står i meningen, inte i en
   egen kolumn med enhetsetikett — "Dagar · Kills" under ett tal var två enheter. */
.fnx-am-tal{font-style:normal;font-weight:800;color:var(--gold);margin-left:6px;
  font-variant-numeric:tabular-nums}

/* Marginalen: ALLTID lika bred, tom eller ej. Det är den som gör att varje rad
   linjerar i lod oavsett om någon kommenterat. */
.fnx-am-mar{width:var(--am-mar);flex:0 0 auto;display:flex;align-items:center;
  justify-content:flex-end;gap:5px}
.fnx-am-stack{display:flex}
.fnx-am-stack .fnx-av{margin-left:-6px;box-shadow:0 0 0 2px var(--card);border-radius:50%}
.fnx-am-stack .fnx-av:first-child{margin-left:0}
.fnx-am-n{font-size:11.5px;font-weight:800;color:var(--accent-ink);font-variant-numeric:tabular-nums}
.fnx-am-add{font-size:11px;font-weight:700;color:var(--faint);opacity:0;transition:opacity .12s}
.fnx-am-row:hover .fnx-am-add,.fnx-am-row:focus-visible .fnx-am-add{opacity:1}

.fnx-am-tr{padding:3px 14px 10px;background:var(--zebra);border-top:1px solid var(--line)}
.fnx-am-cm{display:flex;gap:8px;align-items:flex-start;padding:4px 0}
.fnx-am-cb{min-width:0}
.fnx-am-cn{font-size:11.5px;font-weight:800;color:var(--ink)}
.fnx-am-ct{font-size:12.5px;color:var(--ink2)}
.fnx-am-cw{font-size:10.5px;color:var(--faint);margin-left:6px}
.fnx-am-fler{display:inline-block;font-size:11.5px;font-weight:700;color:var(--accent-ink);margin:3px 0 0 30px}
.fnx-am-skriv{display:flex;gap:8px;margin-top:7px}
.fnx-am-in{flex:1;min-width:0;height:30px;border:1px solid var(--line2);border-radius:var(--r);
  background:var(--card);color:var(--ink);font-size:12.5px;padding:0 10px;font-family:inherit}
.fnx-am-in::placeholder{color:var(--faint)}
.fnx-am-in:disabled{opacity:.6}
.fnx-am-send{height:30px;padding:0 12px;border-radius:var(--r);background:var(--accent);
  color:#fff;font-size:12px;font-weight:700;border:0;cursor:pointer;font-family:inherit;flex:0 0 auto}
.fnx-am-fel{font-size:11px;color:var(--danger);margin-top:5px}

/* Mobil: hover finns inte — CTA:n måste synas. */
@media (max-width:820px){
  .fnx-am{--am-mar:64px}
  .fnx-am-add{opacity:1}
}

/* ── Ansiktskolumnen ("B · Ansiktet", Kentas val 2026-08-02) ─────────────
   Fast bredd så texten linjerar i lod oavsett ett eller två ansikten.
   Raden växte från 30 till 34 px — hela kostnaden för att kolumnen finns. */
.fnx-am-row{min-height:34px}
/* 32 px OAVSETT ett eller tva ansikten - annars borjar duellradernas mening
   6 px langre in an milstolparnas och kolumnen slutar vara en kolumn. */
.fnx-am-fc{position:relative;flex:0 0 32px;display:flex;align-items:center;height:22px}
.fnx-am .fnx-am-fc .fnx-av,.fnx-am .fnx-am-fc .fnx-im{width:22px;height:22px;font-size:9.5px}
.fnx-am .fnx-am-fc.duo .fnx-av,.fnx-am .fnx-am-fc.duo .fnx-im{width:20px;height:20px;font-size:9px}
.fnx-am-fc.duo .fnx-av + .fnx-av{margin-left:-8px;box-shadow:0 0 0 1.5px var(--card);border-radius:50%}
.fnx-am-item.open .fnx-am-fc.duo .fnx-av + .fnx-av,
.fnx-am-row:hover .fnx-am-fc.duo .fnx-av + .fnx-av{box-shadow:0 0 0 1.5px var(--zebra)}

/* Märket: typen, nere till höger. Ringen är kortets egen färg — den lyfter
   brickan från ansiktet utan att lägga till en ram i en ny kulör. */
.fnx-am-mk{position:absolute;right:-3px;bottom:-2px;width:14px;height:14px;border-radius:50%;
  display:grid;place-items:center;font-size:9px;line-height:1;color:var(--dim);
  background:var(--card);box-shadow:0 0 0 1.5px var(--card)}
.fnx-am-mk img{width:14px;height:14px;display:block;object-fit:contain}
.fnx-am-item.open .fnx-am-mk,.fnx-am-row:hover .fnx-am-mk{background:var(--zebra);box-shadow:0 0 0 1.5px var(--zebra)}
.fnx-am-mk.t-guld{color:var(--gold)}
.fnx-am-mk.t-lila{color:var(--champ)}
.fnx-am-mk.t-bla{color:var(--accent-ink)}
.fnx-am-mk.t-rod{color:var(--danger)}
.fnx-am-mk.t-gron{color:var(--live)}
.fnx-am-mk.t-gra{color:var(--dim)}

/* Traden linjerar under meningen: 14 padding + 32 ansikte + 10 gap. */
.fnx-am-tr{padding-left:56px}

/* R2: PHP-fallbacken göms FÖRST när ön monterat. */
html.forre-am-react .fnx-am-php{display:none!important}

/* Remsans rubrikrad. Låg som inline-<style> i hub/feed.php rad 1244-1251 —
   flyttad hit med markupen (§0C R5: aldrig inline-CSS i PHP). */
.amdig{display:flex;align-items:center;gap:10px;padding:9px 14px;font-size:12.5px;color:var(--ink2)}
.amdig .amic{width:22px;height:22px;border-radius:var(--r-sm);background:var(--inset);color:var(--dim);
  display:grid;place-items:center;font-size:12px;flex:0 0 auto}
.amdig .amtx{flex:1;min-width:0}
.amdig .amtx b{color:var(--ink);font-weight:800}
.amdig .amgo{font-size:11.5px;font-weight:700;color:var(--accent-ink);background:none;border:0;
  cursor:pointer;padding:0;font-family:inherit}
.amdig .amgo:hover{text-decoration:underline}
.ambody{border-top:1px solid var(--line)}

/* ============================================================================
   TOPPLISTAN 5.0 — React-ön (2026-08-02)
   ============================================================================
   Reglerna är hämtade RAKT UR design-proposals/topplistan-5.0-final-2026-08-02.html
   — inte omtolkade till utilities (BRAIN §0C R5: "mockupens CSS ÄR designen";
   vi tappade halva A2-mockupen genom att översätta den).

   Namnrymd: allt är scopat till `.fnx-lb`, samma teknik som `.tb-dd .fnx-*`.
   Inga hårdkodade hex — bara sajtens tokens, så ljust/mörkt följer med gratis.

   Uppmätta mål (live 2026-08-02): radhöjd 45 px (16 px namnrad + 14 px metarad
   + 2×7 px luft = 30 px innehåll som matchar avatarens 30 px), spalt 250/562/320,
   typvikter enligt live (namn 13,5/600 · meta 11/400 · rubrik 12,5/600 ·
   tabellhuvud 10/500 · poäng 13,5/700) — INTE en vikt tyngre, det var felet
   som fick mockupen att kännas större än navbaren.
   ========================================================================== */
.fnx-lb{display:contents}

/* ── Kort & rubriker ─────────────────────────────────────────────────── */
.fnx-lb .lbc{background:var(--card);border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--shadow)}
.fnx-lb .lbhd{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:8px 12px;border-bottom:1px solid var(--line)}
.fnx-lb .lbt{display:inline-flex;align-items:center;gap:8px;font-size:12.5px;font-weight:600;color:var(--ink);min-width:0}
.fnx-lb .lbic{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}
.fnx-lb .lbic i{line-height:1}
.fnx-lb .lbic.gold{background:var(--inset);color:var(--gold)}
.fnx-lb .lbic.live{background:var(--live-wash);color:var(--live)}
.fnx-lb .lbic.comp{background:var(--accent-wash);color:var(--accent-ink)}
.fnx-lb .lbic.champ{background:var(--inset);color:var(--champ)}

/* Klockchipet — railens viktigaste tillägg. Fyra kort, fyra tidshorisonter. */
.fnx-lb .lbclock{flex:0 0 auto;font-size:8.5px;font-weight:800;letter-spacing:.1em;text-transform:uppercase;padding:2px 6px;border-radius:var(--r-sm);background:var(--inset);color:var(--dim);white-space:nowrap}
.fnx-lb .lbclock.nu{background:var(--live-wash);color:var(--live)}
.fnx-lb .lbclock.vecka{background:var(--accent-wash);color:var(--accent-ink)}
.fnx-lb .lbclock.sasong{background:color-mix(in srgb,var(--gold) 16%,transparent);color:var(--gold)}
.fnx-lb .lbclock.evig{background:var(--champ-w);color:var(--champ)}
.fnx-lb .lbnote{padding:6px 12px 8px;font-size:10.5px;line-height:1.4;color:var(--dim)}
.fnx-lb .lbnote b{color:var(--ink2);font-weight:700}
.fnx-lb .lbfoot{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:6px 12px;font-size:11px;color:var(--dim);border-top:1px solid var(--line)}
.fnx-lb .lbfoot b{color:var(--ink2);font-weight:700}
.fnx-lb .lbfoot a{color:var(--accent-ink);font-weight:600}
.fnx-lb .lbempty{padding:15px 12px;text-align:center}
.fnx-lb .lbempty .ic{width:30px;height:30px;border-radius:50%;background:var(--inset);color:var(--dim);display:grid;place-items:center;margin:0 auto 7px;font-size:13px}
.fnx-lb .lbempty .t{font-size:12px;font-weight:600;color:var(--ink)}
.fnx-lb .lbempty .s{font-size:10.5px;color:var(--dim);margin-top:2px;line-height:1.45}

/* ── Knappar, brickor, avatarer ──────────────────────────────────────── */
.fnx-lb .lbbtn{display:inline-flex;align-items:center;justify-content:center;gap:7px;font-weight:700;font-size:13px;padding:8px 14px;border-radius:var(--r);border:1px solid transparent;color:var(--ink);white-space:nowrap;cursor:pointer;transition:background .12s ease-out,border-color .12s ease-out,color .12s ease-out}
.fnx-lb .lbbtn.p{background:var(--accent);color:#fff}
.fnx-lb .lbbtn.p:hover{background:var(--accent-ink)}
.fnx-lb .lbbtn.g{background:var(--card);border-color:var(--line2)}
.fnx-lb .lbbtn.g:hover{border-color:var(--accent);color:var(--accent)}
.fnx-lb .lbbtn.q{background:transparent;color:var(--dim);padding:8px 10px}
.fnx-lb .lbbtn.q:hover{color:var(--ink);background:var(--inset)}
.fnx-lb .lbbtn.sm{font-size:12px;padding:6px 11px}
.fnx-lb .lbdgb{font-weight:700;font-size:11px;padding:2px 7px;border-radius:var(--r-sm);letter-spacing:.02em;white-space:nowrap;display:inline-block}
.fnx-lb .lbdgb.champ,.fnx-lb .lbdgb.unreal{color:var(--champ);background:var(--champ-w)}
.fnx-lb .lbdgb.elite{color:var(--elite);background:var(--elite-w)}
.fnx-lb .lbdgb.dia{color:var(--dia);background:var(--dia-w)}
.fnx-lb .lbdgb.plat{color:var(--plat);background:var(--plat-w)}
.fnx-lb .lbdgb.gold{color:var(--gold-r);background:color-mix(in srgb,var(--gold-r) 15%,transparent)}
.fnx-lb .lbdgb.silver{color:var(--dim);background:color-mix(in srgb,var(--dim) 16%,transparent)}
.fnx-lb .lbav{width:30px;height:30px;flex:0 0 auto;border-radius:var(--r-sm);background:var(--inset);border:1px solid var(--line);display:grid;place-items:center;position:relative;font-size:10.5px;font-weight:700;color:var(--ink2);overflow:visible}
.fnx-lb .lbav img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;border-radius:inherit}
.fnx-lb .lbav.sm{width:22px;height:22px;font-size:9px}
.fnx-lb .lbav.on::after{content:"";position:absolute;right:-2px;bottom:-2px;width:9px;height:9px;border-radius:50%;background:var(--live);border:2px solid var(--card)}
.fnx-lb .lbav.sm.on::after{right:-3px;bottom:-3px;width:7px;height:7px}
.fnx-lb .lbnm2{font-size:12.5px;font-weight:500;color:var(--ink2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;min-width:0}
.fnx-lb .lbmeta{font-size:10.5px;color:var(--dim);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;min-width:0}

/* ── Raden: 45 px, hub-väggens typskala ──────────────────────────────── */
.fnx-lb .lbr{display:grid;align-items:center;gap:9px;padding:7px 12px;min-height:45px;box-sizing:border-box;border-bottom:1px solid var(--line);position:relative}
.fnx-lb .lbr:last-of-type{border-bottom:0}
.fnx-lb .lbr:nth-of-type(even){background:var(--zebra)}
.fnx-lb .lbr:hover{background:var(--inset)}
/* Egen modifierare, INTE `me` (2026-08-02). Sajten har tva globala, klasslosa
   `.me`-regler (border-radius:30px och 50%) — sannolikt for meddelandebubblor.
   Min rad arvde dem och ritades som ett agg i stallet for en radmarkering. */
.fnx-lb .lbr.lbjag,.fnx-lb .lbr.lbjag:hover{background:var(--accent-wash);border-radius:0}
/* Rank-cellen: siffran högerställd i 20 px, Δ bredvid i resten. Δ låg förut
   absolutpositionerad ovanpå siffran och "▲107" spillde utanför kolumnen. */
.fnx-lb .lbrk{display:grid;grid-template-columns:20px minmax(0,1fr);gap:4px;align-items:center;font-variant-numeric:tabular-nums}
.fnx-lb .lbrk .n{font-size:13px;font-weight:400;color:var(--dim);text-align:right}
.fnx-lb .lbr.p1 .lbrk .n{font-weight:800;color:var(--gold)}
.fnx-lb .lbr.p2 .lbrk .n,.fnx-lb .lbr.p3 .lbrk .n{font-weight:800;color:var(--ink2)}
.fnx-lb .lbr.lbjag .lbrk .n{color:var(--accent-ink);font-weight:800}
.fnx-lb .lbdl{font-size:9px;font-weight:800;line-height:1;text-align:left;font-variant-numeric:tabular-nums;white-space:nowrap}
.fnx-lb .lbdl.up{color:var(--live)}
.fnx-lb .lbdl.dn{color:var(--danger)}
.fnx-lb .lbwho{display:grid;grid-template-columns:30px minmax(0,1fr);gap:9px;align-items:center;min-width:0}
.fnx-lb .lbn1{display:flex;align-items:center;gap:5px;min-width:0;height:16px}
.fnx-lb .lbnm{font-size:13.5px;font-weight:600;line-height:16px;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}
.fnx-lb a.lbnm:hover{color:var(--accent-ink)}
.fnx-lb .lbn2{display:flex;align-items:center;gap:5px;min-width:0;height:14px;font-size:11px;line-height:14px;font-weight:400;color:var(--dim);white-space:nowrap;overflow:hidden}
.fnx-lb .lbn2 .sep{color:var(--faint)}
/* Alla chip i en rad med låst höjd måste tvingas till radhöjden — annars
   växer raden tyst (rankbrickan är 19 px med sin normala padding). */
.fnx-lb .lbn2 .lbdgb{font-size:9.5px;line-height:14px;padding:0 5px;height:14px}
.fnx-lb .lbn2 .lbarch{font-size:9.5px;font-weight:700;color:var(--dim);line-height:14px;letter-spacing:.03em}
.fnx-lb .lbnum{font-size:13px;font-weight:400;color:var(--ink2);text-align:right;font-variant-numeric:tabular-nums}
.fnx-lb .lbpts{font-size:13.5px;font-weight:700;color:var(--accent-ink);text-align:right;font-variant-numeric:tabular-nums}
.fnx-lb .lbtag{flex:0 0 auto;font-size:8.5px;font-weight:800;letter-spacing:.07em;text-transform:uppercase;color:var(--accent-ink);background:color-mix(in srgb,var(--accent) 15%,transparent);border-radius:var(--r-sm);padding:1px 5px}
.fnx-lb .lbtag.live{color:var(--live);background:var(--live-wash)}
.fnx-lb .lbstrm{flex:0 0 auto;font-size:8.5px;font-weight:800;letter-spacing:.06em;color:#fff;background:var(--danger);border-radius:var(--r-sm);padding:1px 5px}
.fnx-lb .lbbadge{flex:0 0 auto;width:13px;height:13px;border-radius:3px;background:var(--champ-w);color:var(--champ);display:inline-grid;place-items:center;font-size:8px}
.fnx-lb .lbtitle{flex:0 0 auto;font-size:9px;font-weight:700;padding:0 5px;height:14px;line-height:14px;border-radius:var(--r-sm);background:var(--inset);color:var(--ink2);max-width:96px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
/* Formpilen renderas BARA när formen säger något — platt form = tom cell,
   annars konkurrerar den med Δ-markören till vänster. Tystnad är signalen. */
.fnx-lb .lbform{font-size:11px;line-height:1;text-align:center}
.fnx-lb .lbform.up{color:var(--live)}
.fnx-lb .lbform.dn{color:var(--danger)}
.fnx-lb .lbrkico{width:13px;height:13px;object-fit:contain;flex:0 0 auto;vertical-align:middle}

/* Kolumnrutnät */
.fnx-lb .lbh{display:grid;align-items:center;gap:9px;padding:6px 12px;border-bottom:1px solid var(--line);font-size:10px;font-weight:500;letter-spacing:.07em;text-transform:uppercase;color:var(--faint)}
.fnx-lb .lbh .ar{text-align:right}
.fnx-lb .lbh .ac{text-align:center}
.fnx-lb .lbh.gL>span:first-child{text-align:right;padding-right:30px}
.fnx-lb .gL{grid-template-columns:50px minmax(0,1fr) 22px 46px 62px}
/* Relationskolumnen bär TRE saker: avstånd (~40px) + duellbricka (~28px) +
   Utmana (26px) + 2×6px gap ≈ 106px. Mockupens 74px var mätt på en rad utan
   bricka — vid 74 kröp brickan in över namnet. Namnet tappar 34px och har
   ändå ~289px; det trunkerar redan med ellips. */
.fnx-lb .gR{grid-template-columns:50px minmax(0,1fr) 108px 62px}

/* ── Sorterings-/filterrad ───────────────────────────────────────────── */
.fnx-lb .lbbar{display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding:8px 12px;border-bottom:1px solid var(--line)}
.fnx-lb .lbseg{display:flex;gap:2px;background:var(--inset);border-radius:var(--r);padding:2px}
.fnx-lb .lbseg a,.fnx-lb .lbseg button{height:26px;padding:0 10px;border-radius:var(--r-sm);font-size:11.5px;font-weight:600;color:var(--dim);display:inline-flex;align-items:center;cursor:pointer;transition:background .12s ease-out,color .12s ease-out}
.fnx-lb .lbseg a:hover,.fnx-lb .lbseg button:hover{color:var(--ink)}
.fnx-lb .lbseg .on{background:var(--card);color:var(--ink);box-shadow:var(--shadow)}
.fnx-lb .lbseg .on.pri{color:var(--accent-ink)}
.fnx-lb .lbfl{display:inline-flex;align-items:center;gap:5px;height:26px;padding:0 9px;border:1px solid var(--line2);border-radius:var(--r);font-size:11.5px;font-weight:600;color:var(--ink2);cursor:pointer;transition:border-color .12s ease-out,color .12s ease-out}
.fnx-lb .lbfl:hover{border-color:var(--accent);color:var(--accent)}
.fnx-lb .lbfl.on{border-color:var(--accent);color:var(--accent-ink);background:var(--accent-wash)}
.fnx-lb .lbfl i{font-size:10px;color:var(--faint)}

/* ── Ditt band ───────────────────────────────────────────────────────── */
/* Bandet är DIN RAD, inte en scoreboard — därför --accent-wash, samma token
   som .lbt-me använder. Board-tonen var fel lån och blev en svart list. */
.fnx-lb .lbband{border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--shadow);overflow:hidden;background:var(--card)}
.fnx-lb .lbband-t{background:var(--accent-wash);color:var(--ink);padding:10px 13px;border-bottom:1px solid var(--line)}
.fnx-lb .lbband-g{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:14px;align-items:center}
.fnx-lb .lbme{display:flex;align-items:center;gap:9px;white-space:nowrap}
.fnx-lb .lbme .p{font-size:24px;font-weight:900;line-height:1;letter-spacing:-.03em;font-variant-numeric:tabular-nums;color:var(--accent-ink)}
.fnx-lb .lbme .st{display:flex;flex-direction:column;gap:1px}
.fnx-lb .lbme .of{font-size:9px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--dim)}
.fnx-lb .lbmv{display:inline-flex;align-items:center;gap:3px;font-size:10px;font-weight:800;color:var(--live);font-variant-numeric:tabular-nums}
.fnx-lb .lbmv.dn{color:var(--danger)}
.fnx-lb .lbgap{min-width:0;display:flex;align-items:center;gap:9px}
.fnx-lb .lbgap .tx{font-size:11.5px;color:var(--ink2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.fnx-lb .lbgap .tx b{color:var(--ink);font-weight:700}
.fnx-lb .lbgap .tr{flex:1 1 auto;min-width:36px;height:4px;border-radius:999px;background:color-mix(in srgb,var(--ink) 12%,transparent);overflow:hidden}
.fnx-lb .lbgap .tr i{display:block;height:100%;background:var(--live);border-radius:999px}
.fnx-lb .lbacts{display:flex;gap:6px;align-items:center}
.fnx-lb .lbstats{display:flex;background:var(--card)}
.fnx-lb .lbst{flex:1 1 0;min-width:0;text-align:center;padding:8px 4px}
.fnx-lb .lbst .v{font-size:14px;font-weight:800;color:var(--ink);font-variant-numeric:tabular-nums;line-height:1.15}
.fnx-lb .lbst .l{font-size:8.5px;font-weight:700;letter-spacing:.09em;text-transform:uppercase;color:var(--dim);margin-top:2px}

/* ── Rivalgruppen ────────────────────────────────────────────────────── */
.fnx-lb .lbrel{display:flex;align-items:center;gap:6px;justify-content:flex-end;white-space:nowrap}
/* Avståndet är INTE färgkodat: rött = trasigt och grönt = live på den här
   sajten, och den som ligger 111 p före dig är varken. Tecken + vikt bär det. */
.fnx-lb .lbgapn{font-size:11px;font-weight:700;font-variant-numeric:tabular-nums;color:var(--dim)}
.fnx-lb .lbgapn.up{color:var(--ink2)}
.fnx-lb .lbgapn.dn{color:var(--dim);font-weight:500}
.fnx-lb .lbduel{font-size:9px;font-weight:800;letter-spacing:.05em;padding:1px 5px;border-radius:var(--r-sm);background:var(--inset);color:var(--dim);font-variant-numeric:tabular-nums}
.fnx-lb .lbduel.w{background:var(--live-wash);color:var(--live)}
.fnx-lb .lbduel.l{background:color-mix(in srgb,var(--danger) 12%,transparent);color:var(--danger)}
.fnx-lb .lbib{width:26px;height:26px;border-radius:var(--r-sm);display:grid;place-items:center;color:var(--dim);font-size:12px;cursor:pointer;border:0;background:transparent;transition:background .12s ease-out,color .12s ease-out}
.fnx-lb .lbib:hover{background:var(--inset);color:var(--accent)}

/* ── Railrader (32 px) ───────────────────────────────────────────────── */
.fnx-lb .lbmrow{display:grid;grid-template-columns:18px 22px minmax(0,1fr) auto;gap:8px;align-items:center;padding:5px 12px;min-height:32px;box-sizing:border-box;border-bottom:1px solid var(--line)}
.fnx-lb .lbmrow:last-of-type{border-bottom:0}
.fnx-lb .lbmrow.norank{grid-template-columns:22px minmax(0,1fr) auto}
.fnx-lb .lbmrow .rk{font-size:11px;font-weight:500;color:var(--dim);font-variant-numeric:tabular-nums;text-align:center}
.fnx-lb .lbmrow .v{font-size:12.5px;font-weight:600;color:var(--ink2);font-variant-numeric:tabular-nums}

/* Aktiva nu efter en poll-tick. pulse-leaderboard.js skriver sin egen .trow-
   markup i [data-role="aktiva-list"]; de har reglerna ger den EXAKT samma
   geometri som .lbmrow.norank sa kortet inte hoppar nar listan uppdateras.
   Namn och meta laggs pa SAMMA rad (som .lbone) — pollarens markup staplar dem,
   vilket gav 39 px rader i ett 32 px-kort.
   ID-selektor, inte .fnx-lb: sidans egna `.rail.right .trow`-regler har samma
   specificitet som `.fnx-lb .trow` och ligger SENARE i kaskaden (inline
   <style> i vyn), sa de vann. #pulseAktivaNu finns bara pa det har kortet. */
.fnx-lb #pulseAktivaNu .trow{display:grid;grid-template-columns:22px minmax(0,1fr) auto;gap:8px;align-items:center;padding:5px 12px;min-height:32px;box-sizing:border-box;border-bottom:1px solid var(--line);cursor:pointer}
.fnx-lb #pulseAktivaNu .trow:last-of-type{border-bottom:0}
.fnx-lb #pulseAktivaNu .trow:hover{background:var(--inset)}
.fnx-lb #pulseAktivaNu .trow>div{display:flex;align-items:baseline;gap:5px;min-width:0}
.fnx-lb #pulseAktivaNu .trow .av{position:relative;width:22px;height:22px;border-radius:var(--r-sm);overflow:hidden;display:grid;place-items:center;background:var(--inset);font-size:8.5px;font-weight:800;color:var(--dim)}
.fnx-lb #pulseAktivaNu .trow .av img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.fnx-lb #pulseAktivaNu .trow .av i{display:none}
.fnx-lb #pulseAktivaNu .trow .nm{flex:0 1 auto;min-width:0;font-size:12.5px;font-weight:500;color:var(--ink2);line-height:15px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.fnx-lb #pulseAktivaNu .trow .nm a{color:inherit;text-decoration:none}
.fnx-lb #pulseAktivaNu .trow .nm a:hover{color:var(--accent-ink)}
.fnx-lb #pulseAktivaNu .trow .md{flex:1 1 auto;min-width:0;font-size:10.5px;color:var(--dim);line-height:15px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
/* Kills-cellen delas av BADA tillstanden: React-raden (.lbmrow) fore forsta
   poll-ticken och pollarens .trow efter. Samma markup + samma regler => kortet
   ser exakt likadant ut fore och efter en uppdatering. */
.fnx-lb #pulseAktivaNu .kx{display:inline-flex;align-items:baseline;gap:3px}
.fnx-lb #pulseAktivaNu .kn{font-size:12.5px;font-weight:600;color:var(--live);font-variant-numeric:tabular-nums}
.fnx-lb #pulseAktivaNu .kl{display:inline;font-size:9px;font-weight:500;color:var(--dim)}
.fnx-lb .lbone{display:flex;align-items:baseline;gap:5px;min-width:0}
.fnx-lb .lbone>.lbnm2{flex:0 1 auto;min-width:0;line-height:15px}
.fnx-lb .lbone>.lbmeta{flex:1 1 auto;min-width:0;line-height:15px}
.fnx-lb .lbmerow{display:grid;grid-template-columns:18px 22px minmax(0,1fr) auto;gap:8px;align-items:center;padding:5px 12px;background:var(--accent-wash);border-top:1px solid var(--line)}
.fnx-lb .lbmerow .rk{font-size:11px;font-weight:800;color:var(--accent-ink);text-align:center;font-variant-numeric:tabular-nums}
.fnx-lb .lbmerow .v{font-size:12.5px;font-weight:800;color:var(--accent-ink);font-variant-numeric:tabular-nums}

/* ── Hall of fame ────────────────────────────────────────────────────── */
.fnx-lb .lbhof.snart{border-color:color-mix(in srgb,var(--gold) 50%,var(--line))}
.fnx-lb .lbhof.last{border-color:color-mix(in srgb,var(--gold) 32%,var(--line))}
.fnx-lb .lbdrama{padding:9px 12px;background:color-mix(in srgb,var(--gold) 11%,transparent);border-bottom:1px solid var(--line)}
.fnx-lb .lbdrama .h{font-size:11px;font-weight:800;color:var(--gold);letter-spacing:.03em}
.fnx-lb .lbdrama .s{font-size:10.5px;color:var(--ink2);margin-top:2px;line-height:1.45}
.fnx-lb .lbhero{display:grid;grid-template-columns:38px minmax(0,1fr);gap:11px;align-items:center;padding:12px;border-bottom:1px solid var(--line)}
.fnx-lb .lbcr{width:38px;height:38px;border-radius:var(--r);display:grid;place-items:center;background:color-mix(in srgb,var(--gold) 15%,transparent);color:var(--gold);font-size:18px}
.fnx-lb .lbhof.preview .lbcr{background:var(--inset);color:var(--dim)}
.fnx-lb .lbhlb{display:block;font-size:8.5px;font-weight:800;letter-spacing:.11em;text-transform:uppercase;color:var(--gold);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.fnx-lb .lbhof.preview .lbhlb{color:var(--dim)}
.fnx-lb .lbhnm{display:block;font-size:15px;font-weight:700;line-height:1.2;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.fnx-lb .lbhof.preview .lbhnm{color:var(--ink2)}
.fnx-lb .lbhst{display:block;font-size:10.5px;color:var(--dim);margin-top:1px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.fnx-lb .lbhst b{color:var(--ink2);font-weight:700}
.fnx-lb .lbarc{padding:11px 12px 5px;font-size:8.5px;font-weight:800;letter-spacing:.11em;text-transform:uppercase;color:var(--faint);border-top:1px solid var(--line)}
.fnx-lb .lbshelf{display:grid;grid-template-columns:26px minmax(0,1fr) auto;gap:9px;align-items:center;padding:7px 12px;border-bottom:1px solid var(--line)}
.fnx-lb .lbshelf:last-of-type{border-bottom:0}
.fnx-lb .lbshelf .ic{width:26px;height:26px;border-radius:var(--r-sm);display:grid;place-items:center;font-size:12px}
.fnx-lb .lbshelf .ic.g{background:color-mix(in srgb,var(--gold) 15%,transparent);color:var(--gold)}
.fnx-lb .lbshelf .ic.v{background:var(--accent-wash);color:var(--accent-ink)}
.fnx-lb .lbshelf .w{display:block;line-height:15px;font-size:12.5px;font-weight:500;color:var(--ink2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.fnx-lb .lbshelf .m{display:block;font-size:10px;line-height:13px;color:var(--dim);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.fnx-lb .lbshelf .tag{font-size:9px;font-weight:800;letter-spacing:.06em;color:var(--dim);white-space:nowrap}

/* ── Grafikpanelen ───────────────────────────────────────────────────── */
.fnx-lb .lbg{padding:12px}
.fnx-lb .lbgrid{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(0,1fr);gap:12px}
.fnx-lb .lbbox{background:var(--inset);border:1px solid var(--line);border-radius:var(--r);padding:10px}
.fnx-lb .lbbh{display:flex;align-items:baseline;justify-content:space-between;gap:8px;margin-bottom:8px}
.fnx-lb .lbbh .t{font-size:10.5px;font-weight:700;color:var(--ink2)}
.fnx-lb .lbbh .v{font-size:10.5px;font-weight:700;color:var(--dim);font-variant-numeric:tabular-nums}
.fnx-lb .lbchart{width:100%;height:auto;display:block;overflow:visible}
.fnx-lb .lbchart .ln{fill:none;stroke:var(--accent);stroke-width:2;stroke-linejoin:round;stroke-linecap:round}
.fnx-lb .lbchart .ar{fill:var(--accent);opacity:.10}
.fnx-lb .lbchart .gd{stroke:var(--line);stroke-width:1}
.fnx-lb .lbchart .dt{fill:var(--accent)}
/* Placeringskurvan färgas av RIKTNINGEN, inte av att den är en placeringskurva.
   Mockupen ritade den grön för att dess data klättrade (#45→#42); med en kurva
   som sjunker (#30→#42) påstod samma gröna att det gick bra. Grönt = du har
   klättrat. Sjunker den blir den neutral — inte röd: rött betyder trasigt här,
   och att tappa placeringar är inte ett fel. */
.fnx-lb .lbchart.rank .ln{stroke:var(--live)}
.fnx-lb .lbchart.rank .ar{fill:var(--live)}
.fnx-lb .lbchart.rank .dt{fill:var(--live)}
.fnx-lb .lbchart.rank.ner .ln{stroke:var(--ink2)}
.fnx-lb .lbchart.rank.ner .ar{fill:var(--ink2)}
.fnx-lb .lbchart.rank.ner .dt{fill:var(--ink2)}
.fnx-lb .lbstack{height:9px;border-radius:999px;background:color-mix(in srgb,var(--ink) 7%,transparent);display:flex;overflow:hidden}
.fnx-lb .lbstack i{display:block;height:100%}
.fnx-lb .lbleg{display:flex;gap:12px;flex-wrap:wrap;font-size:10px;color:var(--dim);margin-top:7px}
.fnx-lb .lbleg i{width:7px;height:7px;border-radius:2px;display:inline-block;margin-right:4px}
.fnx-lb .lbleg b{color:var(--ink2);font-weight:700;font-variant-numeric:tabular-nums}
.fnx-lb .lbmodes{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1px;background:var(--line);border-radius:var(--r);overflow:hidden;margin-top:10px}
.fnx-lb .lbmode{background:var(--card);padding:8px 7px;min-width:0;text-align:center}
.fnx-lb .lbmode .m{font-size:9.5px;font-weight:800;letter-spacing:.05em;text-transform:uppercase;color:var(--dim);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.fnx-lb .lbmode .r{margin-top:4px}
.fnx-lb .lbmode.best{background:var(--accent-wash)}

/* ── Paginering ──────────────────────────────────────────────────────── */
.fnx-lb .lbpager{display:flex;align-items:center;justify-content:center;gap:5px;padding:9px 0 10px;border-top:1px solid var(--line);flex-wrap:wrap}
.fnx-lb .lbpager span,.fnx-lb .lbpager a{min-width:30px;height:30px;padding:0 9px;border-radius:var(--r);display:inline-flex;align-items:center;justify-content:center;font-size:12.5px;font-weight:500;color:var(--dim);border:1px solid var(--line)}
.fnx-lb .lbpager a:hover{border-color:var(--accent);color:var(--accent)}
.fnx-lb .lbpager .on{background:var(--accent);color:#fff;border-color:var(--accent);font-weight:700}
.fnx-lb .lbpager .gapdot{border-color:transparent}
/* "Min #NN" — genvagen till din egen rad, fanns i PHP-pagern. Skiljs fran
   siffrorna med marginal sa den last som en handling, inte som en sida till. */
.fnx-lb .lbpager .lbjump{margin-left:9px;gap:5px;color:var(--accent-ink);border-color:color-mix(in srgb,var(--accent) 35%,transparent);font-weight:600}
.fnx-lb .lbpager .lbjump:hover{background:var(--accent-wash);border-color:var(--accent);color:var(--accent-ink)}

/* ── Rad-fot (CTA under en lista) ────────────────────────────────────── */
.fnx-lb .lbcta{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:8px 12px;flex-wrap:wrap;border-top:1px solid var(--line);font-size:11.5px;color:var(--ink2)}
.fnx-lb .lbcta b{color:var(--ink);font-weight:700}

/* ── Mobil: samma brytpunkt som pulse-skalet ─────────────────────────── */
@media(max-width:820px){
  .fnx-lb .gL{grid-template-columns:44px minmax(0,1fr) 22px 44px 56px}
  .fnx-lb .gR{grid-template-columns:44px minmax(0,1fr) 62px 54px}
  .fnx-lb .lbh.gL>span:nth-child(3){display:none}
  .fnx-lb .lbband-g{grid-template-columns:minmax(0,1fr);gap:10px}
  .fnx-lb .lbstats{overflow-x:auto}
  .fnx-lb .lbst{min-width:62px}
  .fnx-lb .lbacts .lbbtn{flex:1 1 auto}
  .fnx-lb .lbgrid{grid-template-columns:minmax(0,1fr)}
  .fnx-lb .lbmodes{grid-template-columns:repeat(2,minmax(0,1fr))}
  .fnx-lb .lbduel{display:none}
  .fnx-lb .lbbar{flex-wrap:nowrap;overflow-x:auto}
  .fnx-lb .lbseg,.fnx-lb .lbfl{flex:0 0 auto}
}
@media(prefers-reduced-motion:reduce){.fnx-lb *{transition:none!important;animation:none!important}}

/* PHP-fallbacken göms FÖRST när React monterat (BRAIN §0C R2). */
html.forre-lb-react .fnx-lb-php{display:none!important}

/* ── SPARARADEN I KLOCKANS CO-PLAY-Ö (2026-08-09, Kentas beslut "A + kvitto") ─
   Stjärnan var submit: ett tryck skrev ett publikt betyg på en namngiven person,
   utan bekräftelse och utan ångra. Nu sätter stjärnan bara state och den här
   raden är enda vägen till en skrivning. Måtten följer PHP-fallbackens
   .ask-spara/.ask-mini i pulse-topdeck.css — samma yta oavsett om bundlen
   laddade (§0C R2). Raden renderas villkorligt i JSX:en, så ingen [hidden]-guard
   behövs här. */
.tb-dd .fnx-spara{display:flex;align-items:center;gap:6px;padding:0 11px 8px 56px}
.tb-dd .fnx-mini{font:inherit;font-size:11.5px;font-weight:700;height:28px;padding:0 11px;
  border-radius:var(--r-sm);cursor:pointer;display:inline-flex;align-items:center;gap:5px;
  white-space:nowrap;border:1px solid var(--line2);background:var(--inset);color:var(--ink);
  transition:filter .12s ease-out}
.tb-dd .fnx-mini:hover{filter:brightness(1.08)}
.tb-dd .fnx-mini[disabled]{opacity:.55;cursor:wait}
.tb-dd .fnx-mini.p{background:var(--accent);border-color:transparent;color:#fff}
.tb-dd .fnx-mini.tyst{background:none;border-color:transparent;color:var(--dim)}
.tb-dd .fnx-mini.tyst:hover{color:var(--ink)}
@media (max-width:820px){
  .tb-dd .fnx-spara{padding-left:11px}
  .tb-dd .fnx-mini{height:34px;font-size:12px;padding:0 13px}
}

/* ── KONTOMENYNS RUBRIK (2026-08-22) ───────────────────────────────────────
   forre_pulse.css:697 ger .tb-dd .ddh h4 fjorton px i GEMENER. Det var den
   femte rubriktypen i en familj som nu har en: 8,5 / 9,5 / 9,5 / 10,5 / 14.
   Basen rörs inte (forre_pulse.css har trunkerats vid samtidig sync, §8) —
   den skrivs över här, scopat till de fyra menyerna. */
#dd-notifs .ddh,#dd-msgs .ddh,#dd-friends .ddh,#dd-me .ddh{height:26px;padding:0 10px;
  border-bottom:1px solid color-mix(in srgb,var(--line) 70%,transparent)}
#dd-notifs .ddh h4,#dd-msgs .ddh h4,#dd-friends .ddh h4,#dd-me .ddh h4{
  font-size:9px;font-weight:800;letter-spacing:.13em;text-transform:uppercase;color:var(--faint)}
#dd-notifs .ddh a,#dd-msgs .ddh a,#dd-friends .ddh a,#dd-me .ddh a{font-size:9px;font-weight:800;
  letter-spacing:.06em;text-transform:uppercase;color:var(--accent-ink)}
/* Kontomenyns länkrader i navbarens grad i stället för 12 px. */
#dd-me .fnx-melinks a,#dd-me .fnx-melinks button{font-size:10.5px;padding:0 10px;height:30px}

/* ── SQUAD-FLYOUTEN, NU EN REACT-Ö (2026-08-22) ────────────────────────────
   #tdkSquadFly är kvar som POSITIONERAD nod — pulse-topdeck.js:677 läser
   `fly.offsetWidth` och sätter `fly.style.left/top` på exakt det id:t, och
   binder hover mot `.top .tab.t-sq`. Byter man nod slutar menyn öppnas.
   React renderar .fnx-fp INUTI den, så flyoutens egen kram måste nollas —
   annars blir det en låda i en låda med dubbel ram och dubbel radie.

   Klassen sätts först när monteraRot() faktiskt returnerat true. Laddar inte
   bundeln ligger PHP-markupen kvar MED sin ram, som förr. */
html.forre-squad-react #tdkSquadFly{padding:0;background:none;border:0;
  border-radius:0;box-shadow:none;width:auto;animation:none;
  -webkit-backdrop-filter:none;backdrop-filter:none}
html.forre-squad-react #tdkSquadFly[hidden]{display:none!important}
