:root{
  --bg:#14110c; --bg2:#1d1812; --panel:#241e15; --panel2:#2c251a;
  --border:#4a3d28; --border2:#6b5836;
  --gold:#e8c46a; --gold-dim:#b89548; --text:#e8dfc8; --muted:#9c8f72;
  --accent:#7fb069; --red:#d06a5a; --blue:#6fa8c9;
  --melee:#d06a5a; --ranged:#7fb069; --magic:#6fa8c9;
  --d1:#7fb069; --d2:#a8c46a; --d3:#e8c46a; --d4:#e09050; --d5:#d06a5a;
}
*{box-sizing:border-box;margin:0;padding:0}
body{background:var(--bg);color:var(--text);font-family:"Segoe UI",system-ui,sans-serif;font-size:15px;line-height:1.45;
  background-image:radial-gradient(ellipse at top,#1e1910 0%,#14110c 60%)}
.wrap{max-width:1180px;margin:0 auto;padding:18px 20px 60px}
header{display:flex;align-items:baseline;gap:14px;flex-wrap:wrap;padding:10px 0 14px;border-bottom:2px solid var(--border)}
header h1{font-size:24px;color:var(--gold);letter-spacing:.5px;font-weight:700}
header .sub{color:var(--muted);font-size:13px}
.status{margin-left:auto;font-size:12px;color:var(--muted)}
.status .ok{color:var(--accent)} .status .bad{color:var(--red)}

.tabs{display:flex;gap:6px;margin:16px 0 0;flex-wrap:wrap}
.tab{padding:9px 18px;background:var(--panel);border:1px solid var(--border);border-bottom:none;
  border-radius:8px 8px 0 0;cursor:pointer;color:var(--muted);font-weight:600;font-size:14px;user-select:none}
.tab:hover{color:var(--text)}
.tab.active{background:var(--panel2);color:var(--gold);border-color:var(--border2)}
.panel{background:var(--panel2);border:1px solid var(--border2);border-radius:0 10px 10px 10px;padding:18px}

.controls{display:flex;gap:18px;flex-wrap:wrap;align-items:center;padding:12px 14px;background:var(--panel);
  border:1px solid var(--border);border-radius:8px;margin-bottom:16px}
.controls label{font-size:13px;color:var(--muted);display:flex;align-items:center;gap:7px}
select,input[type=number]{background:var(--bg2);color:var(--text);border:1px solid var(--border2);
  border-radius:6px;padding:6px 9px;font-size:14px;font-family:inherit}
select:focus,input:focus{outline:1px solid var(--gold-dim)}
input[type=checkbox]{accent-color:var(--gold-dim);width:15px;height:15px}

.stylebtns{display:flex;gap:0;border:1px solid var(--border2);border-radius:7px;overflow:hidden}
.stylebtn{padding:7px 16px;background:var(--bg2);cursor:pointer;font-weight:600;font-size:14px;color:var(--muted);border:none;font-family:inherit}
.stylebtn.active[data-style=melee]{background:#4a2620;color:#f0a898}
.stylebtn.active[data-style=ranged]{background:#2b3d22;color:#aed69a}
.stylebtn.active[data-style=magic]{background:#1f3340;color:#9ecbe8}
.subbtns{display:flex;gap:5px}
.subbtn{padding:5px 12px;background:var(--bg2);border:1px solid var(--border);border-radius:6px;cursor:pointer;font-size:13px;color:var(--muted);font-family:inherit}
.subbtn.active{border-color:var(--gold-dim);color:var(--gold)}

.controls{align-items:flex-start}
.controls-primary{display:flex;flex-wrap:wrap;gap:18px;align-items:center;flex:1;min-width:260px}
.controls-filters{display:flex;flex-wrap:wrap;gap:18px;align-items:center}

/* ── OSRS stat icon panel (equipment bonus style) ── */
.stat-panel{
  background:linear-gradient(180deg,#d4bc9a 0%,#c6ad8f 50%,#b89d7f 100%);
  border:2px solid;
  border-color:#8a7358 #5c4a32 #4a3a28 #7a6348;
  border-radius:3px;
  padding:8px 10px 6px;
  flex-shrink:0;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.25),0 2px 6px rgba(0,0,0,.25);
}
.stat-row{display:flex;align-items:center;gap:8px;margin:3px 0}
.stat-row-lbl{
  font-size:11px;font-weight:800;letter-spacing:.04em;text-transform:uppercase;
  color:#2a2018;width:68px;flex-shrink:0;line-height:1.1;
}
.stat-btns{display:flex;gap:4px;flex-wrap:wrap}
.stat-btn{
  width:34px;height:34px;padding:3px;cursor:pointer;
  background:linear-gradient(180deg,#5a5a5a 0%,#3a3a3a 45%,#2a2a2a 100%);
  border:2px solid;border-color:#777 #222 #111 #666;border-radius:2px;
  display:flex;align-items:center;justify-content:center;
  font-family:inherit;line-height:1;
}
.stat-btn img{width:26px;height:26px;object-fit:contain;image-rendering:pixelated;pointer-events:none}
.stat-btn:hover{filter:brightness(1.12)}
.stat-btn.active{
  border-color:#e8c46a #8a7030 #5a4818 #d4b050;
  box-shadow:0 0 0 1px #e8c46a,inset 0 0 6px rgba(232,196,106,.35);
}
.stat-btn-meta .stat-meta-glyph{font-size:18px;color:#e8c46a;text-shadow:0 1px 0 #000}
.stat-btn-style.active.stat-style-melee{border-color:#d08070 #6a3028 #4a2018 #c07060;box-shadow:0 0 0 1px #e8a090,inset 0 0 6px rgba(208,106,90,.35)}
.stat-btn-style.active.stat-style-ranged{border-color:#a8d080 #406028 #284018 #98c070;box-shadow:0 0 0 1px #aed69a,inset 0 0 6px rgba(127,176,105,.35)}
.stat-btn-style.active.stat-style-magic{border-color:#80b8d8 #284858 #182830 #70a8c8;box-shadow:0 0 0 1px #9ecbe8,inset 0 0 6px rgba(111,168,201,.35)}
.stat-row-mode{margin-top:5px;padding-top:5px;border-top:1px solid rgba(42,32,24,.2)}

@media(max-width:900px){
  .controls{flex-direction:column}
  .stat-panel{width:100%}
}

/* ── OSRS equipment screen (BIS tab) ── */
.eq-screen{margin-top:4px}
.eq-frame{
  display:grid;
  grid-template-columns:1fr 1fr;
  grid-template-areas:
    "head   neck"
    "cape   ammo"
    "weapon shield"
    "body   legs"
    "hands  feet"
    "ring   .";
  gap:10px 14px;
  padding:18px 20px 20px;
  background:
    linear-gradient(180deg,#2e261a 0%,#241e15 8%,#1e1810 92%,#18140e 100%);
  border:3px solid;
  border-color:#6b5836 #3d3220 #2a2218 #5a4a30;
  border-radius:4px;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.04),0 4px 16px rgba(0,0,0,.35);
}
.eq-slot{
  background:linear-gradient(180deg,#2a2218 0%,#221c14 100%);
  border:2px solid;
  border-color:#5a4a30 #2a2218 #1a140e #4a3d28;
  border-radius:3px;
  padding:8px 10px 10px;
  min-width:0;
}
.eq-head{grid-area:head}
.eq-cape{grid-area:cape}
.eq-neck{grid-area:neck}
.eq-ammo{grid-area:ammo}
.eq-weapon{grid-area:weapon}
.eq-shield{grid-area:shield}
.eq-body{grid-area:body}
.eq-legs{grid-area:legs}
.eq-hands{grid-area:hands}
.eq-feet{grid-area:feet}
.eq-ring{grid-area:ring}
.eq-slotlbl{
  font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:1.2px;
  color:var(--gold-dim);margin-bottom:7px;padding-bottom:4px;
  border-bottom:1px solid var(--border);
}
.eq-sub{font-weight:400;text-transform:none;letter-spacing:0;color:var(--muted);font-size:10px}
.eq-note{font-size:11px;color:var(--muted);font-style:italic;margin-top:6px}
.eq-legend{
  display:flex;flex-wrap:wrap;gap:14px 20px;align-items:center;
  margin-top:12px;padding:10px 14px;
  background:var(--panel);border:1px solid var(--border);border-radius:6px;
  font-size:12px;color:var(--muted);
}
.eq-legend>span{display:inline-flex;align-items:center;gap:7px}
.eq-legend-hint{margin-left:auto;font-style:italic;font-size:11px}
.eq-legend .inv-slot.demo{width:22px;height:22px;pointer-events:none;cursor:default}
.eq-legend .inv-slot.demo::after{display:none}

/* Progression rails */
.prog-wrap{display:flex;flex-direction:column;gap:6px;min-width:0}
.prog-rail{
  display:flex;align-items:center;gap:3px;
  overflow-x:auto;padding:2px 0 4px;
  scrollbar-width:thin;scrollbar-color:var(--border2) transparent;
}
.prog-rail::-webkit-scrollbar{height:5px}
.prog-rail::-webkit-scrollbar-thumb{background:var(--border2);border-radius:3px}
.prog-arrow{
  flex:none;width:10px;height:10px;opacity:.45;
  background:linear-gradient(90deg,transparent 35%,var(--gold-dim) 35%,var(--gold-dim) 65%,transparent 65%);
  transform:scaleX(.8);
}
.alt-rail{display:flex;align-items:center;gap:5px;flex-wrap:wrap}
.alt-lbl{
  font-size:9px;font-weight:700;text-transform:uppercase;letter-spacing:1px;
  color:var(--muted);padding:2px 5px;border:1px dashed var(--border2);border-radius:3px;
  flex:none;
}

/* Inventory-style item slots */
.inv-slot{
  position:relative;flex:none;
  width:40px;height:40px;
  display:flex;align-items:center;justify-content:center;
  background:#14100c;
  border:2px solid;
  border-color:#080604 #3d3220 #4a3d28 #1a140e;
  border-radius:2px;
  cursor:pointer;
  transition:border-color .12s,box-shadow .12s;
}
.inv-slot:hover{
  border-color:var(--gold-dim) #2a2218 #3d3220 var(--gold-dim);
  box-shadow:0 0 8px rgba(232,196,106,.2);
  z-index:2;
}
.inv-icon{width:32px;height:32px;object-fit:contain;image-rendering:pixelated;
  filter:drop-shadow(0 1px 2px rgba(0,0,0,.6));pointer-events:none}
.diff-corner{
  position:absolute;bottom:1px;right:1px;width:7px;height:7px;border-radius:1px;
  border:1px solid rgba(0,0,0,.5);pointer-events:none;
}
.slot-badge{
  position:absolute;top:-4px;right:-4px;width:14px;height:14px;
  font-size:9px;font-weight:800;line-height:14px;text-align:center;
  border-radius:2px;pointer-events:none;
}
.slot-badge.bis{background:var(--gold);color:#14110c}
.slot-badge.pick{background:var(--accent);color:#14110c}
.inv-slot.bis{border-color:var(--gold) #8a7038 #8a7038 var(--gold);box-shadow:0 0 6px rgba(232,196,106,.35)}
.inv-slot.alt{border-style:dashed;opacity:.9}
.inv-slot.owned{border-color:var(--accent) #3d5a32 #3d5a32 var(--accent);background:#1a2214}
.inv-slot.pick{border-color:var(--accent) #4a6a3a #4a6a3a var(--accent);box-shadow:0 0 6px rgba(127,176,105,.35);background:#182014}
.inv-slot.path{border-color:var(--gold-dim)}
.inv-slot.filtered{opacity:.28;filter:grayscale(.4)}

/* Examine tooltip */
#itemtip{
  position:fixed;z-index:200;display:none;pointer-events:none;
  max-width:260px;padding:8px 11px;
  background:linear-gradient(180deg,#2a2418 0%,#1e1810 100%);
  border:2px solid;border-color:#8a7038 #3d3220 #2a2218 #6b5836;
  border-radius:3px;box-shadow:0 6px 20px rgba(0,0,0,.65);
  font-size:13px;line-height:1.4;
}
#itemtip .tip-nm{font-weight:700;color:var(--gold);margin-bottom:3px}
#itemtip .tip-meta{font-size:12px;color:var(--muted);margin-bottom:2px}
#itemtip .tip-stat{font-size:12px;color:var(--gold-dim);margin-bottom:2px}
#itemtip .tip-how{font-size:12px;color:var(--text);opacity:.9}
.budgetbar .muted{color:var(--muted);font-weight:400}

@media(max-width:720px){
  .eq-frame{grid-template-columns:1fr;grid-template-areas:"head""neck""cape""ammo""weapon""shield""body""legs""hands""feet""ring"}
  .eq-legend-hint{flex-basis:100%;margin-left:0}
}

.chip{display:inline-flex;align-items:center;gap:8px;padding:5px 10px;background:var(--bg2);
  border:1px solid var(--border2);border-radius:7px;cursor:pointer;font-size:13px;min-width:0}
.chip .icon{width:28px;height:28px;object-fit:contain;image-rendering:pixelated;flex:none;
  filter:drop-shadow(0 1px 2px rgba(0,0,0,.5))}
.chip .txt{display:flex;flex-direction:column;gap:1px;min-width:0}
.suggitem .icon{width:22px;height:22px;object-fit:contain;image-rendering:pixelated;align-self:center;flex:none}
#detail .icon{width:36px;height:36px;object-fit:contain;image-rendering:pixelated;float:right;margin:0 22px 6px 8px}
.chip:hover{border-color:var(--gold);background:#262017}
.chip .nm{font-weight:600;white-space:nowrap}
.chip .meta{font-size:11px;color:var(--muted);display:flex;gap:7px;white-space:nowrap}
.chip.bis{border-color:var(--gold);box-shadow:0 0 7px rgba(232,196,106,.25);background:#2a2212}
.chip.bis .nm{color:var(--gold)}
.chip.alt{border-style:dashed;opacity:.85}
.chip.owned{border-color:var(--accent);background:#202a1a}
.chip.pick{border-color:var(--accent);box-shadow:0 0 7px rgba(127,176,105,.35);background:#1e2817}
.picktag{font-size:10px;font-weight:700;color:#14110c;background:var(--accent);border-radius:4px;padding:0 5px;letter-spacing:.5px}
.budgetbar{background:#1e2817;border:1px solid #3d5a32;border-radius:8px;padding:11px 16px;margin-bottom:14px;font-size:14px}
.budgetbar b{color:var(--accent)}
.chip.filtered{opacity:.32;border-style:dotted}
.chip.path{border-color:var(--gold-dim)}
.dot{display:inline-block;width:8px;height:8px;border-radius:50%;vertical-align:middle}
.d1{background:var(--d1)}.d2{background:var(--d2)}.d3{background:var(--d3)}.d4{background:var(--d4)}.d5{background:var(--d5)}
.bistag{font-size:10px;font-weight:700;color:#14110c;background:var(--gold);border-radius:4px;padding:0 5px;letter-spacing:.5px}
.alttag{font-size:10px;color:var(--muted);border:1px solid var(--border2);border-radius:4px;padding:0 5px}
.twohtag{font-size:10px;color:var(--blue);border:1px solid var(--blue);border-radius:4px;padding:0 4px}

.advice{background:#1f2a33;border:1px solid #3a566b;border-radius:8px;padding:12px 16px;margin-bottom:16px;font-size:14px}
.advice b{color:var(--blue)}
.advice .ex{color:var(--muted);font-size:13px;margin-top:4px}

.setupgrid{display:grid;grid-template-columns:340px 1fr;gap:20px}
@media(max-width:900px){.setupgrid{grid-template-columns:1fr}}
.slotrows{display:flex;flex-direction:column;gap:7px}
.slotrow{display:grid;grid-template-columns:92px 1fr;gap:8px;align-items:center}
.slotrow .lbl{font-size:13px;color:var(--gold);font-weight:600;text-align:right}
.slotrow select{width:100%}
.sugg{display:flex;flex-direction:column;gap:10px}
.suggcard{background:var(--panel);border:1px solid var(--border);border-radius:8px;padding:11px 14px}
.suggcard.next{border-color:var(--accent)}
.suggcard h4{font-size:14px;color:var(--gold);margin-bottom:6px;display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.suggcard h4 .slotlbl{font-size:11px;text-transform:uppercase;letter-spacing:1px;color:var(--muted)}
.suggitem{display:flex;gap:9px;align-items:baseline;padding:4px 0;font-size:14px;flex-wrap:wrap}
.suggitem .nm{font-weight:600;cursor:pointer}
.suggitem .nm:hover{color:var(--gold)}
.suggitem .how{color:var(--muted);font-size:13px}
.diffb{font-size:11px;font-weight:700;border-radius:4px;padding:1px 7px;color:#14110c;white-space:nowrap}
.diffb.d1{background:var(--d1)}.diffb.d2{background:var(--d2)}.diffb.d3{background:var(--d3)}.diffb.d4{background:var(--d4)}.diffb.d5{background:var(--d5)}
.price{color:var(--gold-dim);font-variant-numeric:tabular-nums;font-size:13px}
.nexttag{font-size:10px;font-weight:700;color:#14110c;background:var(--accent);border-radius:4px;padding:1px 6px;letter-spacing:.5px}
.donetag{color:var(--accent);font-size:13px}
.empty{color:var(--muted);font-style:italic;font-size:14px;padding:8px 0}

/* ── Upgrade trees tab ── */
.tree-intro{font-size:13px;color:var(--muted);margin-bottom:14px}
.tree-layout{display:flex;flex-direction:column;gap:12px}
.tree-nav{display:flex;flex-wrap:wrap;gap:6px}
.tree-pill{
  padding:7px 14px;background:var(--panel);border:2px solid;border-color:#5a4a30 #2a2218 #1a140e #4a3d28;
  border-radius:3px;cursor:pointer;font-size:13px;font-weight:600;color:var(--muted);font-family:inherit;
  display:inline-flex;align-items:center;gap:6px;
}
.tree-pill:hover{color:var(--text);border-color:var(--border2)}
.tree-pill.active{color:var(--gold);border-color:var(--gold-dim) #3d3220 #2a2218 #6b5836;background:#2a2212}
.tree-pill-dot{width:7px;height:7px;border-radius:50%;background:var(--accent);flex:none}
.tree-stage{
  background:linear-gradient(180deg,#2e261a 0%,#241e15 8%,#1e1810 92%,#18140e 100%);
  border:3px solid;border-color:#6b5836 #3d3220 #2a2218 #5a4a30;border-radius:4px;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.04),0 4px 16px rgba(0,0,0,.35);
  padding:16px 20px 22px;
}
.tree-stage-hdr{display:flex;flex-wrap:wrap;align-items:baseline;gap:8px 16px;margin-bottom:16px;padding-bottom:10px;border-bottom:1px solid var(--border)}
.tree-stage-hdr h4{color:var(--gold);font-size:15px;text-transform:uppercase;letter-spacing:1.2px;margin:0}
.tree-owned{font-size:13px;color:var(--muted)}
.tree-owned b{color:var(--accent)}
.tree-owned.muted{font-style:italic}
.treeflow{
  position:relative;display:flex;align-items:center;justify-content:center;flex-wrap:nowrap;
  gap:20px 28px;padding:12px 8px 16px;overflow:visible;min-height:120px;
}
.treecol{display:flex;flex-direction:column;gap:10px;align-items:center}
.treecol .tierlbl{font-size:11px;color:var(--gold-dim);text-transform:uppercase;letter-spacing:1px;text-align:center;font-weight:700}
.tree-stage .inv-slot{width:52px;height:52px}
.tree-stage .inv-icon{width:42px;height:42px}
.tree-stage .diff-corner{width:8px;height:8px}
.tree-stage .slot-badge{width:16px;height:16px;font-size:10px;line-height:16px}
svg.edges{position:absolute;top:0;left:0;pointer-events:none;overflow:visible}
svg.edges path{stroke:var(--border2);stroke-width:2;fill:none}
svg.edges path.hot{stroke:var(--gold);stroke-width:2.5}

#detail{position:fixed;right:18px;top:70px;width:330px;max-height:78vh;overflow:auto;background:var(--panel);
  border:1px solid var(--gold-dim);border-radius:10px;padding:16px;z-index:50;box-shadow:0 8px 30px rgba(0,0,0,.6);display:none}
#detail h3{color:var(--gold);font-size:17px;margin-bottom:2px;padding-right:24px}
#detail .close{position:absolute;top:10px;right:13px;cursor:pointer;color:var(--muted);font-size:18px;line-height:1}
#detail .close:hover{color:var(--text)}
#detail .sec{margin-top:10px;font-size:13px}
#detail .sec b{color:var(--gold-dim)}
.statgrid{display:grid;grid-template-columns:1fr 1fr;gap:3px 14px;margin-top:6px;font-size:13px}
.statgrid div{display:flex;justify-content:space-between;border-bottom:1px dotted var(--border);padding:2px 0}
.statgrid .v{font-variant-numeric:tabular-nums}
.statgrid .pos{color:var(--accent)} .statgrid .neg{color:var(--red)}
#detail a{color:var(--blue)}
.loading{color:var(--muted);font-style:italic}
footer{margin-top:26px;color:var(--muted);font-size:12px;line-height:1.6}
footer a{color:var(--blue)}
