:root{
  --bg:#0b0b14; --bg2:#0e0e1a;
  --card:rgba(255,255,255,.025); --card2:rgba(255,255,255,.045);
  --line:rgba(139,92,246,.18); --line2:rgba(139,92,246,.10);
  --text:#ecebf6; --dim:#9a98b5; --mut:#6b6a85;
  --violet:#8b5cf6; --violet2:#a78bfa; --indigo:#6366f1; --cyan:#22d3ee;
  --gold:#f5b301; --gold2:#ffcf4d;
  --green:#34d399; --amber:#f59e0b; --pink:#f43f5e; --accent:#8b5cf6;
  --radius:16px;
}
*{box-sizing:border-box}
html,body{margin:0;height:100%}
body{
  font-family:"Inter","Segoe UI",Roboto,system-ui,sans-serif;
  font-size:14px; color:var(--text); overflow:hidden;
  background:
    radial-gradient(900px 500px at 82% -6%, rgba(139,92,246,.18) 0%, rgba(11,11,20,0) 55%),
    radial-gradient(800px 500px at 6% 4%, rgba(99,102,241,.16) 0%, rgba(11,11,20,0) 50%),
    radial-gradient(700px 600px at 60% 110%, rgba(34,211,238,.10) 0%, rgba(11,11,20,0) 55%),
    var(--bg);
  padding:12px;
}
.hidden{display:none !important}
a{color:var(--violet2);text-decoration:none}
button{font-family:inherit}

/* ---------- App shell (svavande rundat kort) ---------- */
#app{display:flex;flex-direction:column;height:calc(100vh - 24px);
  background:linear-gradient(180deg, rgba(22,22,34,.75), rgba(13,13,22,.85));
  border:1px solid var(--line);border-radius:22px;overflow:hidden;
  box-shadow:0 30px 80px rgba(0,0,0,.55), 0 0 0 1px rgba(255,255,255,.02), inset 0 1px 0 rgba(255,255,255,.04);
}

/* ---------- Topbar ---------- */
#topbar{display:flex;align-items:center;justify-content:space-between;
  padding:8px 20px;border-bottom:1px solid var(--line2);position:relative;
  background:linear-gradient(90deg, rgba(11,12,20,.80) 0%, rgba(11,12,20,.34) 26%, rgba(11,12,20,.30) 62%, rgba(11,12,20,.55) 100%), url("/topbar-hero.jpg");
  background-size:cover;background-position:center 34%;
  box-shadow:inset 0 -12px 20px rgba(11,12,20,.5)}
.brand{display:flex;align-items:center;gap:13px}
.logo{width:64px;height:64px;flex:0 0 auto;
  background:url("/logo.png") center/contain no-repeat;
  filter:drop-shadow(0 4px 12px rgba(99,102,241,.55));}
.title{font-weight:700;font-size:16px;line-height:1.2;letter-spacing:.2px;color:var(--gold);text-shadow:0 1px 4px rgba(0,0,0,.7)}
.subtitle{font-size:12.5px;line-height:1.2;color:var(--dim);margin-top:2px;display:none}
.topbar-right{display:flex;align-items:center;gap:8px}
.whoami{color:var(--dim);font-size:12px}
/* Titel + namn nudge:as upp nagot; battletag som liten rad under namnet. */
.brand-text{margin-top:-3px}
.battletag-line{font-size:9.5px;line-height:1.2;margin-top:5px;
  color:rgba(255,255,255,.55);letter-spacing:.2px;text-shadow:0 1px 2px rgba(0,0,0,.7)}
#charSelect,#foreverCharSelect{max-width:170px}
.last-updated{font-size:11px;color:#ffffff;white-space:nowrap;text-shadow:0 1px 3px rgba(0,0,0,.8);display:none}
#addonBtn{padding:7px 13px;font-size:13px;font-weight:700;line-height:1;text-decoration:none;
  display:inline-flex;align-items:center;gap:6px;white-space:nowrap;
  background:linear-gradient(180deg,rgba(139,92,246,.30),rgba(139,92,246,.15));
  border-color:var(--violet);color:#ece2ff;box-shadow:inset 0 0 0 1px rgba(139,92,246,.25)}
#addonBtn:hover{background:linear-gradient(180deg,rgba(139,92,246,.44),rgba(139,92,246,.24));
  border-color:var(--violet);box-shadow:0 4px 14px rgba(139,92,246,.32)}

/* ---------- Buttons / inputs ---------- */
.btn{border:1px solid var(--line);background:var(--card);color:var(--text);
  padding:8px 13px;border-radius:11px;cursor:pointer;font-size:13px;transition:.13s;display:inline-block;}
.btn:hover{border-color:var(--violet);background:var(--card2);box-shadow:0 0 0 3px rgba(139,92,246,.08)}
.btn.gold{background:linear-gradient(180deg,#ffd76a,#f5b301);color:#231a02;border-color:transparent;font-weight:700;
  box-shadow:0 6px 18px rgba(245,179,1,.28)}
.btn.gold:hover{filter:brightness(1.05)}
.btn.ghost{background:transparent}
.btn.big{font-size:15px;padding:13px 24px}
select,input[type=text],input[type=password]{
  background:rgba(10,10,18,.75);border:1px solid var(--line);color:var(--text);
  padding:9px 12px;border-radius:11px;font-size:13px;outline:none;transition:.13s}
select:focus,input:focus{border-color:var(--violet);box-shadow:0 0 0 3px rgba(139,92,246,.12)}
#refreshBtn{padding:7px 11px;font-size:15px;line-height:1}
#refreshBtn.spin{animation:apspin .8s linear infinite;pointer-events:none;opacity:.7}
@keyframes apspin{to{transform:rotate(360deg)}}
#themeBtn{padding:7px 11px;font-size:14px;line-height:1}
.chk{display:flex;align-items:center;gap:7px;color:var(--dim);font-size:12.5px;cursor:pointer;user-select:none}
.chk input{accent-color:var(--violet)}

/* ---------- Points badge ---------- */
.points-badge{display:inline-flex;align-items:center;gap:5px;
  background:rgba(10,10,18,.75);border:1px solid var(--line);
  color:var(--gold2);font-weight:800;font-size:12.5px;padding:5px 10px;border-radius:16px;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.06)}
.points-badge .pts-shield{font-size:11px;filter:drop-shadow(0 0 4px rgba(245,179,1,.6))}
.count-badge{background:rgba(10,10,18,.75);border:1px solid var(--line);color:var(--violet2)}
.count-badge .pts-shield{filter:none}
/* Landing footer med support-email */
.landing-footer{max-width:760px;margin:44px auto 30px;padding:22px 20px 0;
  border-top:1px solid var(--line2);text-align:center;color:var(--dim)}
.landing-footer p{margin:6px 0;font-size:14px}
.landing-footer a{color:var(--gold2);text-decoration:none}
.landing-footer a:hover{text-decoration:underline}
.landing-footer .tiny{font-size:11.5px;color:#6f6a86;line-height:1.6}
/* Points + achievements staplade i topbar utan att oka topbar-hojden */
.stat-stack{display:flex;flex-direction:column;gap:3px}
.stat-stack .points-badge{padding:2px 9px;border-radius:10px;gap:5px;line-height:1;
  min-width:62px;box-sizing:border-box;justify-content:flex-start}
/* Uppdatera-knappen far samma yta som dropdowns */
#refreshBtn{background:rgba(10,10,18,.75);border:1px solid var(--line);border-radius:11px}

/* ---------- Nearest completion ---------- */
.nearest-btn{background:rgba(10,10,18,.75);border:1px solid var(--line);border-radius:11px;
  color:var(--gold2);font-weight:700;font-size:12.5px;padding:6px 12px;width:100%}
.nearest-btn:hover{border-color:var(--accent)}
.nearest-btn.active{background:linear-gradient(180deg,rgba(139,92,246,.35),rgba(139,92,246,.15));
  border-color:var(--accent);color:#fff;box-shadow:0 0 10px rgba(139,92,246,.35)}
.near-info{font-size:11.5px;color:var(--dim);padding:2px 6px 8px;line-height:1.4}
#foreverBtn.active{background:linear-gradient(180deg,rgba(212,175,55,.35),rgba(212,175,55,.12));
  border-color:var(--gold2);color:#fff;box-shadow:0 0 10px rgba(212,175,55,.3)}
/* Forever-knappen = bara loggan, hog som var egen brand-logga (top-till-botten). */
.forever-logo-btn{padding:0;border-color:transparent;background:transparent;line-height:0}
.forever-logo-btn img{height:64px;width:auto;display:block;filter:drop-shadow(0 1px 3px rgba(0,0,0,.6));transition:transform .12s, filter .12s}
.forever-logo-btn:hover{background:transparent;box-shadow:none}
.forever-logo-btn:hover img{transform:scale(1.06);filter:drop-shadow(0 2px 6px rgba(90,160,255,.6))}
.forever-logo-btn.active{background:transparent;border-color:transparent;box-shadow:none}
.forever-logo-btn.active img{filter:drop-shadow(0 0 8px rgba(90,160,255,.85))}
/* Forever-lage: byt TOPPBARENS hjaltebild (behall samma mork gradient-overlay). */
body.forever-mode #topbar{
  background:linear-gradient(90deg, rgba(11,12,20,.80) 0%, rgba(11,12,20,.34) 26%, rgba(11,12,20,.30) 62%, rgba(11,12,20,.55) 100%), url("/forever-bg.jpg?v=2");
  background-size:cover;background-position:center 40%;
}
body.forever-mode #left{box-shadow:inset 0 2px 0 rgba(212,175,55,.4)}
.near-name.done{color:var(--dim);text-decoration:line-through;opacity:.7}
.near-hint{font-size:11px;color:var(--dim);padding:3px 6px 6px;font-style:italic;opacity:.85}
.ach.near .an{display:flex;flex-direction:column;gap:1px;line-height:1.25}
.near-name{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.near-cat{font-size:10.5px;color:var(--accent);opacity:.9;font-weight:600;letter-spacing:.2px}
.cat-chips{display:flex;flex-wrap:wrap;gap:5px;padding:2px 6px 8px}
.cat-chip{display:inline-flex;align-items:center;gap:5px;background:rgba(139,92,246,.14);
  border:1px solid rgba(139,92,246,.35);border-radius:12px;padding:2px 8px;font-size:10.5px;
  cursor:pointer;user-select:none;transition:opacity .12s,filter .12s}
.cat-chip:hover{border-color:var(--accent)}
.cat-chip.off{opacity:.4;filter:grayscale(1);background:rgba(120,120,130,.12);border-color:rgba(120,120,130,.3)}
.cat-chip .cc-name{color:#cdbef7}
.cat-chip .cc-num{color:#fff;font-weight:800;background:rgba(139,92,246,.4);border-radius:8px;padding:0 5px;min-width:14px;text-align:center}

/* ---------- Main split ---------- */
#main{flex:1;display:flex;min-height:0;position:relative}
#left{width:392px;min-width:320px;display:flex;flex-direction:column;
  border-right:1px solid var(--line2);background:linear-gradient(180deg, rgba(255,255,255,.015), rgba(0,0,0,.06));}
#right{flex:1;display:flex;flex-direction:column;min-width:0;position:relative;
  background:radial-gradient(760px 520px at 72% -4%, rgba(139,92,246,.10), rgba(11,11,20,0) 60%);}
/* Svag svartvit logo-vattenstampel som tacker hela hogerpanelen, responsiv,
   bakom texten (pointer-events:none, laga opacity, grayscale). */
#right::before{content:"";position:absolute;inset:0;z-index:0;pointer-events:none;
  background:url("/logo.png") center center/min(78%,78vh) no-repeat;
  filter:grayscale(1) brightness(1.6);opacity:.05;}
#right>*{position:relative;z-index:1}

.left-tools{display:flex;align-items:center;gap:10px;padding:12px 14px}
.left-tools.row2{padding-bottom:2px}
#searchBox{flex:1}
.search-count{font-size:12px;color:var(--violet2);white-space:nowrap;font-weight:600}

#listWrap{flex:1;overflow-y:auto;padding:6px 8px 22px}
#list{display:flex;flex-direction:column}

/* category header */
.cat{display:flex;align-items:center;gap:10px;cursor:pointer;position:relative;overflow:hidden;
  padding:7px 13px;margin:3px 6px;border-radius:11px;
  background:linear-gradient(180deg, rgba(255,255,255,.03), rgba(255,255,255,.012));
  border:1px solid var(--line2);transition:.12s}
.cat::before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;border-radius:3px;
  background:linear-gradient(180deg,var(--violet2),var(--violet));opacity:0;transition:.12s}
.cat:hover{border-color:var(--line);background:linear-gradient(180deg, rgba(139,92,246,.10), rgba(255,255,255,.02))}
.cat:hover::before{opacity:.7}
.cat .caret{color:var(--violet2);width:12px;text-align:center;font-size:11px}
.cat .cname{color:var(--gold);font-weight:600;flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;letter-spacing:.2px}
.cat .ccount{color:var(--violet2);font-size:11.5px;font-weight:700;
  background:rgba(139,92,246,.12);border:1px solid rgba(139,92,246,.28);border-radius:20px;padding:2px 10px}
.cat.sub{margin-left:14px;background:linear-gradient(180deg, rgba(255,255,255,.02), rgba(255,255,255,0));border-color:var(--line2)}
.cat.sub .cname{color:#d7d3ee;font-weight:500}
.cat-body{display:flex;flex-direction:column}

/* achievement row */
.ach{display:flex;align-items:center;gap:11px;cursor:pointer;padding:5px 12px;border-radius:9px;margin:1px 6px}
.ach:hover{background:rgba(139,92,246,.08)}
.ach.sel{background:linear-gradient(90deg, rgba(139,92,246,.16), rgba(139,92,246,.03));
  box-shadow:inset 3px 0 0 var(--violet), inset 0 0 0 1px rgba(139,92,246,.22)}
.dot{width:9px;height:9px;border-radius:50%;flex:0 0 auto}
.dot.g{background:var(--green);box-shadow:0 0 8px rgba(52,211,153,.55)}
.dot.r{background:var(--pink);box-shadow:0 0 8px rgba(244,63,94,.4)}
.dot.a{background:var(--amber);box-shadow:0 0 8px rgba(245,158,11,.5)}
.dot.d{background:var(--mut)}
.ach .an{flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:#e4e2f2}
.ach.done .an{color:var(--mut)}
.ach .ap{font-size:12px;white-space:nowrap;font-weight:600}
.ap.g{color:var(--green)} .ap.r{color:var(--mut)} .ap.a{color:var(--amber)} .ap.d{color:var(--mut)}
.loading,.empty{color:var(--dim);padding:14px;font-size:13px}

/* scrollbar (lila) */
#listWrap::-webkit-scrollbar,#detail::-webkit-scrollbar{width:10px}
::-webkit-scrollbar{width:10px}
::-webkit-scrollbar-thumb{background:linear-gradient(180deg,var(--violet),var(--indigo));border-radius:8px;border:2px solid transparent;background-clip:padding-box}
::-webkit-scrollbar-thumb:hover{background:var(--violet2);background-clip:padding-box}

/* ---------- Detail ---------- */
.detail-empty{display:flex;flex-direction:column;place-items:center;justify-content:center;height:100%;color:var(--mut)}
#detail{display:flex;flex-direction:column;height:100%;padding:22px 26px;overflow-y:auto}
.detail-head{display:flex;flex-direction:column;gap:6px;padding-bottom:15px;margin-bottom:16px;border-bottom:1px solid var(--line2)}
.detail-title{font-size:23px;font-weight:800;letter-spacing:.2px;color:#f4f2ff}
.detail-meta{font-size:12.5px;color:var(--dim)}
.detail-desc{color:#c8c5e0;line-height:1.5;margin-bottom:14px;white-space:pre-wrap}
.prog-wrap{margin-bottom:16px}
.prog-bar{position:relative;height:20px;background:rgba(10,10,18,.85);
  border:1px solid var(--line);border-radius:20px;overflow:hidden;box-shadow:inset 0 1px 4px rgba(0,0,0,.6)}
.prog-fill{height:100%;border-radius:20px;
  background:linear-gradient(90deg, var(--violet) 0%, var(--indigo) 45%, var(--cyan) 100%);
  box-shadow:0 0 16px rgba(139,92,246,.5), inset 0 1px 0 rgba(255,255,255,.3);width:0%}
.prog-text{position:absolute;inset:0;display:grid;place-items:center;font-size:11.5px;color:#fff;font-weight:700;text-shadow:0 1px 3px rgba(0,0,0,.8)}
.crit-list{display:flex;flex-direction:column;gap:6px}
.crit-sec{color:var(--dim);font-weight:700;margin:10px 0 3px;font-size:11.5px;letter-spacing:1.2px;text-transform:uppercase}
.crit{display:flex;align-items:center;gap:11px;padding:8px 13px;border-radius:11px;
  background:linear-gradient(180deg, rgba(255,255,255,.035), rgba(255,255,255,.012));
  border:1px solid var(--line2)}
.crit .cx{width:18px;text-align:center;font-weight:700}
.crit.done{opacity:.72}
.crit.done .ctext{color:var(--dim);text-decoration:line-through;text-decoration-color:rgba(154,152,181,.5)}
.crit.done .cx{color:var(--green)}
.crit.todo .cx{color:var(--pink)}
.detail-foot{margin-top:auto;padding-top:18px}

/* ---------- Sign-in hero ---------- */
.signin-hero{max-width:460px;width:100%;text-align:center;padding:24px}
.hero-logo{width:92px;height:92px;margin:0 auto 18px;
  background:url("/logo.png") center/contain no-repeat;
  filter:drop-shadow(0 10px 26px rgba(99,102,241,.55))}
.signin-hero h2{font-size:25px;margin:.2em 0;font-weight:800}
.signin-hero p{color:var(--dim);line-height:1.6}
.signin-hero .tiny{font-size:12px;color:var(--mut);margin-top:18px;min-height:16px}

/* ---------- Buy / plans ---------- */
.buy-plans{display:flex;gap:14px;justify-content:center;flex-wrap:wrap;margin:22px 0 6px}
.buy-howto{color:var(--dim);font-size:13.5px;line-height:1.6;margin:14px auto 4px;max-width:560px}
.signin-hero.wide{max-width:880px}

/* ---------- Conversion hero ---------- */
.hook{font-size:33px;font-weight:800;line-height:1.14;margin:.15em 0 .35em}
.hook-sub{color:var(--dim);font-size:15px;line-height:1.55;max-width:560px;margin:0 auto 18px}
.hook-sub strong{color:var(--text)}
.hero-shots{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:14px;margin:0 0 20px}
.hero-shot{margin:0;min-width:0;border:1px solid var(--line);border-radius:12px;overflow:hidden;background:rgba(10,10,18,.5);
  transition:transform .15s ease,border-color .15s ease}
.hero-shot:hover{transform:translateY(-3px);border-color:var(--violet)}
.hero-shot.star{border-color:var(--violet);box-shadow:0 0 0 3px rgba(139,92,246,.16)}
.hero-shot img{display:block;width:100%;max-width:100%;height:auto;border-bottom:1px solid var(--line)}
.hero-shot figcaption{padding:7px 10px;font-size:12px;color:var(--dim);text-align:center;font-weight:600}
.zoomable{cursor:zoom-in}
.offer{margin-top:2px}
.plans-mini{display:flex;gap:12px;justify-content:center;margin:0 0 16px}
.pm{position:relative;flex:1 1 0;min-width:0;max-width:210px;display:flex;flex-direction:column;align-items:center;gap:2px;
  padding:14px 16px;border-radius:14px;background:rgba(10,10,18,.55);border:1px solid var(--line)}
.pm.featured{border-color:var(--violet);box-shadow:0 0 0 3px rgba(139,92,246,.14)}
.pm-badge{position:absolute;top:-10px;left:50%;transform:translateX(-50%);white-space:nowrap;
  background:linear-gradient(180deg,#ffd76a,#f5b301);color:#231a02;font-size:10.5px;font-weight:800;padding:3px 9px;border-radius:999px}
.pm-name{font-size:13px;font-weight:700;color:var(--dim)}
.pm-price{font-size:26px;font-weight:800}
.value-row{display:flex;gap:10px;justify-content:center;flex-wrap:wrap;margin-top:16px}
.vp{font-size:12.5px;font-weight:600;color:var(--dim);background:rgba(10,10,18,.5);
  border:1px solid var(--line);border-radius:999px;padding:6px 12px}
@media(max-width:560px){
  .signin-hero{padding:16px}
  .hook{font-size:24px}
  .hook-sub{font-size:13px;line-height:1.5;margin-bottom:14px}
  .hero-shots{grid-template-columns:minmax(0,1fr);gap:10px;margin-bottom:16px}
  .plans-mini{gap:8px}
  .pm{padding:12px 10px}
  .pm-price{font-size:23px}
  .value-row{gap:7px;margin-top:12px}
  .vp{font-size:11.5px;padding:5px 10px}
}

/* ---------- Addon spotlight (wide: text left, mini image right) ---------- */
.spotlight.wide .spotlight-main{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,0.95fr);
  gap:20px;align-items:center;margin-bottom:6px}
.spotlight.wide .spotlight-txt{min-width:0}
.spotlight.wide .spotlight-lead{margin:0 0 12px}
.spotlight.wide .spotlight-feats{margin:0}
.spotlight-shot{margin:0;min-width:0;border:1px solid rgba(168,112,255,.4);border-radius:12px;overflow:hidden;
  background:rgba(10,10,18,.5);cursor:zoom-in;transition:transform .15s ease,border-color .15s ease}
.spotlight-shot:hover{transform:translateY(-2px);border-color:var(--violet)}
.spotlight-shot img{display:block;width:100%;max-width:100%;height:auto}
.spotlight-shot figcaption{padding:6px 8px;font-size:11px;color:var(--mut);text-align:center}
@media(max-width:600px){.spotlight.wide .spotlight-main{grid-template-columns:1fr}}

/* ---------- Web app "anywhere" band ---------- */
.webapp-band{display:flex;gap:14px;align-items:flex-start;text-align:left;margin:14px 0 6px;padding:16px 18px;
  border-radius:16px;background:linear-gradient(160deg,rgba(34,211,238,.12),rgba(20,15,31,.5));
  border:1px solid rgba(34,211,238,.30)}
.webapp-band .wb-ic{font-size:24px;flex:none;line-height:1.2}
.webapp-band .wb-tx{display:flex;flex-direction:column;gap:4px;min-width:0}
.webapp-band .wb-tx strong{font-size:18px;font-weight:800;line-height:1.2;
  background:linear-gradient(90deg,#ffe9a8,#ffd76a);-webkit-background-clip:text;background-clip:text;color:transparent}
.webapp-band .wb-tx span{font-size:13px;color:var(--dim);line-height:1.55}
.webapp-band .wb-tx em{color:#a8ecff;font-style:normal;font-weight:600}
.band-shot{flex:none;width:150px;margin:0;border:1px solid var(--line);border-radius:10px;overflow:hidden;
  background:rgba(10,10,18,.5);cursor:zoom-in;transition:transform .15s ease,border-color .15s ease}
.band-shot:hover{transform:translateY(-2px);border-color:var(--violet)}
.band-shot img{display:block;width:100%;height:auto}

/* ---------- Purchase section ---------- */
.buy-section{margin-top:22px}
/* Rad: web app-band (vanster) + kopalternativ (hoger). Full bredd = star-segmentet. */
.buy-row{display:grid;grid-template-columns:1fr auto;gap:16px;align-items:stretch;margin-bottom:6px}
.buy-row .webapp-band{margin:0;align-items:center}
.buy-right{display:flex;flex-direction:column;gap:12px;min-width:0}
.buy-right .buy-plans{margin:0}
@media(max-width:640px){ .buy-row{grid-template-columns:1fr} }
.buy-head{font-size:13px;letter-spacing:2px;text-transform:uppercase;color:var(--mut);font-weight:700;
  margin-bottom:12px;position:relative}
.buy-head::before,.buy-head::after{content:"";position:absolute;top:50%;width:26%;height:1px}
.buy-head::before{left:0;background:linear-gradient(90deg,var(--line),transparent)}
.buy-head::after{right:0;background:linear-gradient(90deg,transparent,var(--line))}
.plan-list{list-style:none;margin:12px 0 0;padding:0;text-align:left;display:flex;flex-direction:column;gap:7px}
.plan-list li{position:relative;padding-left:22px;font-size:12.5px;color:var(--dim);line-height:1.4}
.plan-list li::before{content:"✓";position:absolute;left:0;top:0;color:var(--green);font-weight:800}
.plan-list li strong{color:var(--text)}

/* ---------- Perks strip ---------- */
.perks{display:flex;gap:10px;justify-content:center;flex-wrap:wrap;margin:16px 0 4px}
.perk{display:inline-flex;align-items:center;gap:7px;background:rgba(10,10,18,.5);
  border:1px solid var(--line);border-radius:999px;padding:7px 13px;font-size:13px;font-weight:600;color:var(--dim)}
.perk-ic{font-size:15px}

/* ---------- Addon spotlight ---------- */
.spotlight{position:relative;text-align:left;margin:22px 0 14px;padding:20px 20px 18px;border-radius:18px;
  background:linear-gradient(160deg,rgba(139,92,246,.16),rgba(20,15,31,.6) 60%);
  border:1px solid var(--violet);box-shadow:0 12px 34px rgba(99,102,241,.22),inset 0 0 0 1px rgba(255,215,106,.05)}
.spotlight-tag{display:inline-block;background:linear-gradient(180deg,#ffd76a,#f5b301);color:#231a02;
  font-size:11px;font-weight:800;letter-spacing:.5px;padding:4px 11px;border-radius:999px;margin-bottom:10px}
.spotlight-title{font-size:22px;font-weight:800;margin-bottom:8px;
  background:linear-gradient(90deg,#ffe9a8,#ffd76a);-webkit-background-clip:text;background-clip:text;color:transparent}
.spotlight-lead{color:var(--dim);font-size:14px;line-height:1.65;margin:0 0 14px}
.spotlight-lead em{color:#ffe9a8;font-style:normal}
.spotlight-feats{display:flex;flex-direction:column;gap:8px;margin-bottom:14px}
.sf{display:flex;align-items:center;gap:10px;font-size:13.5px;font-weight:600;color:var(--text)}
.sf-ic{font-size:16px;width:22px;text-align:center;flex:none}
.spotlight-note{font-size:12.5px;font-weight:700;color:#ffd76a;text-align:center;
  border-top:1px solid rgba(255,215,106,.18);padding-top:12px}

/* ---------- Secondary web-app note ---------- */
.also-web{display:flex;gap:12px;align-items:flex-start;text-align:left;margin:0 0 18px;padding:14px 16px;
  background:rgba(10,10,18,.45);border:1px solid var(--line);border-radius:14px}
.also-web .also-ic{font-size:20px;flex:none;line-height:1.3}
.also-web div{color:var(--dim);font-size:13px;line-height:1.55}
.also-web strong{color:var(--text)}
.peek-fig.peek-star{border-color:var(--violet);box-shadow:0 0 0 3px rgba(139,92,246,.16)}

/* ---------- Tour / features page ---------- */
.tour-wrap{max-width:960px;margin:0 auto;padding:34px 22px 60px}
.tour-top{text-align:center;margin-bottom:38px}
.hero-logo.small{width:64px;height:64px;margin:0 auto 14px}
.tour-top h1{font-size:30px;font-weight:800;margin:.1em 0 .3em;line-height:1.2}
.tour-sub{color:var(--dim);font-size:15px;line-height:1.65;max-width:620px;margin:0 auto 20px}
.tour-sec{margin:0 0 46px;padding:26px 24px;border-radius:20px;text-align:left;
  background:rgba(10,10,18,.42);border:1px solid var(--line)}
.tour-eyebrow{display:inline-block;font-size:12px;font-weight:800;letter-spacing:1px;text-transform:uppercase;
  color:var(--violet2);background:rgba(139,92,246,.12);border:1px solid var(--line);
  padding:5px 12px;border-radius:999px;margin-bottom:12px}
.tour-eyebrow.gold{color:#231a02;background:linear-gradient(180deg,#ffd76a,#f5b301);border-color:transparent}
.tour-sec h2{font-size:23px;font-weight:800;margin:0 0 10px;line-height:1.25}
.tour-lead{color:var(--dim);font-size:14.5px;line-height:1.7;margin:0 0 20px;max-width:720px}
.tour-lead em{color:#ffe9a8;font-style:normal}
.feat-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:14px;margin-bottom:22px}
.feat{display:flex;gap:12px;align-items:flex-start;background:rgba(255,255,255,.02);
  border:1px solid var(--line);border-radius:13px;padding:14px 15px}
.feat-ic{font-size:20px;flex:none;line-height:1.2}
.feat-tx{display:flex;flex-direction:column;gap:3px}
.feat-tx strong{font-size:14px;color:var(--text)}
.feat-tx span{font-size:12.5px;color:var(--dim);line-height:1.5}
.shot-strip{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:16px;margin:4px 0 6px}
.shot{margin:0;border:1px solid var(--line);border-radius:14px;overflow:hidden;background:rgba(10,10,18,.5)}
.shot.star{border-color:var(--violet);box-shadow:0 0 0 3px rgba(139,92,246,.16)}
.shot img{display:block;width:100%;height:auto}
.shot-placeholder{border:1px dashed var(--line);border-radius:14px;padding:38px 20px;text-align:center;
  color:var(--mut);font-size:14px;background:rgba(255,255,255,.015)}
.shot-placeholder.star{border-color:var(--violet);color:var(--violet2)}
.tour-callout{margin-top:20px;padding:14px 18px;border-radius:13px;text-align:center;font-size:14px;
  color:var(--text);background:linear-gradient(160deg,rgba(34,211,238,.10),rgba(20,15,31,.5));
  border:1px solid rgba(34,211,238,.28)}
.tour-cta{text-align:center;padding:30px 24px;border-radius:20px;
  background:linear-gradient(160deg,rgba(139,92,246,.16),rgba(20,15,31,.6));border:1px solid var(--violet)}
.tour-cta h2{font-size:24px;font-weight:800;margin:0 0 8px}
.tour-cta p{color:var(--dim);margin:0 0 16px}
.tour-cta .tiny{margin-top:14px}
@media(max-width:560px){.tour-top h1{font-size:25px}.tour-sec h2{font-size:20px}}

/* ---------- Sneak peek ---------- */
.peek{margin-top:26px}
.peek-head{font-size:12px;letter-spacing:2px;text-transform:uppercase;color:var(--mut);
  font-weight:700;margin-bottom:12px;position:relative}
.peek-head::before,.peek-head::after{content:"";position:absolute;top:50%;width:22%;height:1px;
  background:linear-gradient(90deg,transparent,var(--line))}
.peek-head::before{left:0;background:linear-gradient(90deg,var(--line),transparent)}
.peek-head::after{right:0}
.peek-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:16px}
.peek-fig{margin:0;background:rgba(10,10,18,.5);border:1px solid var(--line);border-radius:14px;
  overflow:hidden;transition:transform .15s ease,border-color .15s ease}
.peek-fig:hover{transform:translateY(-3px);border-color:var(--violet)}
.peek-fig img{display:block;width:100%;height:auto;border-bottom:1px solid var(--line)}
.peek-fig figcaption{padding:10px 12px;font-size:12.5px;color:var(--dim);text-align:center;line-height:1.4}
.peek-fig img{cursor:zoom-in}

/* ---------- Lightbox (klicka bild -> forstora; klick utanfor -> stäng) ---------- */
.lightbox{position:fixed;inset:0;z-index:200;display:none;align-items:center;justify-content:center;
  padding:24px;background:rgba(6,6,12,.86);backdrop-filter:blur(4px);cursor:zoom-out;
  animation:lb-fade .14s ease}
.lightbox.open{display:flex}
.lightbox img{max-width:min(1150px,94vw);max-height:92vh;width:auto;height:auto;border-radius:12px;
  border:1px solid var(--violet);box-shadow:0 26px 80px rgba(0,0,0,.75);cursor:default}
@keyframes lb-fade{from{opacity:0}to{opacity:1}}
body.lb-open{overflow:hidden}
.buy-plans .plan{background:rgba(10,10,18,.55);border:1px solid var(--violet);border-radius:16px;
  box-shadow:0 0 0 3px rgba(139,92,246,.10);
  padding:20px 18px;min-width:190px;flex:1 1 190px;max-width:220px;position:relative;text-align:center}
.buy-plans .plan.featured{box-shadow:0 0 0 3px rgba(139,92,246,.22),0 10px 30px rgba(99,102,241,.25);
  background:linear-gradient(160deg,rgba(139,92,246,.22),rgba(20,15,31,.65) 65%)}
.plan.featured .plan-name{color:#ffe9a8}
.plan.featured .plan-price{background:linear-gradient(90deg,#ffe9a8,#ffd76a);
  -webkit-background-clip:text;background-clip:text;color:transparent}
.plan.featured .plan-sub{color:#c9b98a}
.plan-badge{position:absolute;top:-11px;left:50%;transform:translateX(-50%);
  background:linear-gradient(180deg,#ffd76a,#f5b301);color:#231a02;font-size:11px;font-weight:800;
  padding:3px 10px;border-radius:999px;white-space:nowrap}
.plan-name{font-weight:800;font-size:16px}
.plan-price{font-size:30px;font-weight:800;margin:6px 0 2px}
.plan-sub{color:var(--mut);font-size:12px;line-height:1.4;margin-bottom:14px;min-height:32px}

/* ---------- Redeem ---------- */
.redeem-box{background:rgba(10,10,18,.55);border:1px solid var(--violet);border-radius:14px;
  padding:16px 18px;margin:18px 0}
.redeem-code{font-family:ui-monospace,Menlo,Consolas,monospace;font-size:22px;font-weight:800;
  letter-spacing:2px;color:#ffd76a;margin:10px 0;user-select:all}
.redeem-form{display:flex;gap:10px;justify-content:center;flex-wrap:wrap;margin-top:16px}
.redeem-form input{background:rgba(10,10,18,.8);border:1px solid var(--line);color:var(--text);
  padding:13px 16px;border-radius:12px;font-size:16px;outline:none;min-width:230px;
  text-align:center;letter-spacing:2px;text-transform:uppercase}
.redeem-form input:focus{border-color:var(--violet);box-shadow:0 0 0 3px rgba(139,92,246,.15)}
.redeem-err{color:var(--pink);font-size:13px}

/* ---------- Addon install steps ---------- */
.install-steps{text-align:left;max-width:440px;margin:20px auto 6px;padding-left:22px;color:var(--dim);
  font-size:13.5px;line-height:1.6;display:flex;flex-direction:column;gap:10px}
.install-steps li{padding-left:4px}
.install-steps strong{color:var(--text)}
.ver-line{font-size:12px;color:var(--mut);margin:12px auto 0;max-width:440px;line-height:1.5}
.ver-line strong{color:#ffd76a}
.changelog{text-align:left;max-width:440px;margin:20px auto 0;padding:14px 16px;border-radius:12px;
  background:rgba(10,10,18,.5);border:1px solid var(--line)}
.cl-head{font-size:11px;letter-spacing:1.5px;text-transform:uppercase;color:var(--mut);font-weight:700;margin-bottom:10px}
.cl-item{display:grid;grid-template-columns:auto 1fr;gap:4px 10px;align-items:baseline}
.cl-ver{color:#ffd76a;font-weight:800;font-size:13px}
.cl-date{color:var(--mut);font-size:11px}
.cl-txt{grid-column:1/-1;color:var(--dim);font-size:12.5px;line-height:1.5;margin-top:2px}
/* ---------- Activation code box ---------- */
.activate{text-align:left;max-width:440px;margin:20px auto 0;padding:14px 16px;border-radius:12px;
  background:linear-gradient(160deg,rgba(139,92,246,.14),rgba(20,15,31,.5));border:1px solid var(--violet)}
.code-box{width:100%;box-sizing:border-box;margin:8px 0 10px;resize:vertical;min-height:64px;
  background:rgba(10,10,18,.85);border:1px solid var(--line);border-radius:10px;color:#bfe0ff;
  font-family:ui-monospace,Menlo,Consolas,monospace;font-size:11px;line-height:1.45;padding:10px 12px;
  word-break:break-all;white-space:pre-wrap}
.copy-msg{margin-left:10px;font-size:12px;color:var(--green);font-weight:700}
code{background:rgba(10,10,18,.7);border:1px solid var(--line);border-radius:6px;padding:1px 6px;
  font-family:ui-monospace,Menlo,Consolas,monospace;font-size:12px;color:#cfc9e6;word-break:break-all}

/* ---------- Gate ---------- */
.gate-wrap{min-height:calc(100vh - 24px);display:grid;grid-template-columns:minmax(0,1fr);place-items:center;padding:24px 0}
/* Landningssidan (gate/kop) kan bli hogre an fonstret -> lat body scrolla.
   Appvyn behaller overflow:hidden (egen intern scroll). */
body.landing{overflow-y:auto;overflow-x:hidden}
.gate-form{display:flex;gap:10px;justify-content:center;flex-wrap:wrap;margin-top:18px}
.gate-form input{background:rgba(10,10,18,.8);border:1px solid var(--line);color:var(--text);
  padding:13px 16px;border-radius:12px;font-size:15px;outline:none;min-width:230px}
.gate-form input:focus{border-color:var(--violet);box-shadow:0 0 0 3px rgba(139,92,246,.15)}
.gate-err{color:var(--pink);font-size:13px;margin-top:10px}

/* ---------- Toast ---------- */
.toast{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);
  background:rgba(30,28,48,.96);border:1px solid var(--violet);color:var(--text);
  padding:14px 22px;border-radius:12px;z-index:60;max-width:70vw;box-shadow:0 18px 50px rgba(0,0,0,.6);
  font-size:15px;text-align:center}
.toast.err{border-color:var(--pink)}
/* I app-vyn: centrera over innehallsytan till HOGER om vansterpanelen (392px),
   inte over hela fonstret. Landningssidan (body.landing) behaller fonster-center. */
body:not(.landing) .toast{left:calc(50% + 196px)}
@media(max-width:760px){ body:not(.landing) .toast{left:50%} }
