/* Shop directory: one stock surface, one transaction ticket. */
#general-store{margin-bottom:22px;overflow:hidden}
.shop-shell{display:grid;grid-template-columns:154px minmax(0,1fr) 252px;min-height:580px}
.shop-tabs{display:flex;flex-direction:column;padding:8px 0;background:var(--head);border-right:1px solid var(--edge);gap:2px}
.shop-tab{display:flex;align-items:center;gap:10px;width:100%;min-height:44px;padding:9px 12px;border:0;border-left:3px solid transparent;background:transparent;color:var(--muted,#a9aa99);font:inherit;font-size:11px;text-align:left;cursor:pointer;white-space:nowrap}
.shop-tab .ic{width:23px;height:23px;object-fit:contain;flex:none;filter:saturate(.7)}
.shop-tab:hover{background:#ffffff06;color:var(--text)}
.shop-tab.on{border-left-color:var(--accent);color:var(--accent);background:linear-gradient(90deg,#d9a13c18,transparent)}
.shop-tab.on .ic{filter:none}
.shop-stock-panel{min-width:0;padding:20px;background:linear-gradient(145deg,#ffffff03,transparent 45%)}
.shop-heading{display:flex;align-items:baseline;justify-content:space-between;gap:12px;min-height:35px;border-bottom:1px solid var(--edge);padding-bottom:12px;margin-bottom:12px}
.shop-heading h2{margin:0;color:var(--accent);font-size:16px;line-height:1.4;font-weight:600;letter-spacing:.01em}
#shop-count{font-size:9px;white-space:nowrap;color:var(--dim);letter-spacing:.08em}
.shop-mode{display:flex;gap:6px;margin-bottom:10px}.shop-mode .hb{font-size:10px;padding:8px 13px}
#store-stock-search,#store-search{width:100%;margin:0 0 12px;padding:10px 12px;background:var(--head);color:var(--text);border:1px solid var(--cell);font:inherit;font-size:11px;box-sizing:border-box}
#general-store .store-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(105px,1fr));gap:7px;height:450px;min-height:0;max-height:56dvh;overflow-y:auto;align-content:start;grid-auto-rows:123px;scrollbar-gutter:stable;overscroll-behavior:contain;padding:2px 7px 10px 2px}
#general-store .store-item{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;min-width:0;min-height:0;height:123px;padding:10px 5px 7px;background:linear-gradient(145deg,#ffffff04,transparent),var(--head);border:1px solid var(--cell);color:var(--text);cursor:pointer;box-shadow:inset 0 1px #ffffff04;font:inherit;text-align:center}
#general-store .store-item:hover{border-color:var(--accent);background:#bc943d0e}
#general-store .store-item.selected{border-color:var(--accent);box-shadow:inset 0 -2px var(--accent)}
#general-store .store-item .ic{width:32px;height:32px;object-fit:contain;flex:none;image-rendering:pixelated;filter:drop-shadow(0 3px 2px #0006)}
#general-store .store-item b{font-size:10px;line-height:1.25;min-height:25px;display:flex;align-items:center;font-weight:500}
.shop-price{font-size:12px;color:var(--accent);font-variant-numeric:tabular-nums}.shop-price small{font-size:9px;color:var(--dim)}
.shop-owned{font-size:8px;color:var(--dim);font-variant-numeric:tabular-nums}
#general-store .store-ticket{position:relative;top:auto;align-self:stretch;grid-row:auto;min-width:0;border:0;border-left:1px solid var(--edge);background:var(--head);padding:23px 18px}
.shop-ticket-empty{height:100%;min-height:240px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:20px;color:var(--dim);font-size:11px;text-align:center}
.shop-ticket-empty .ic{width:54px;height:54px;object-fit:contain;opacity:.22;filter:grayscale(1)}
.shop-ticket-item{display:flex;align-items:center;gap:13px;padding:22px 0 12px;min-height:70px}.shop-ticket-item .ic{width:48px!important;height:48px!important;object-fit:contain}.shop-ticket-item h3{font-size:14px;line-height:1.5;margin:0;color:var(--text)}
.shop-quote{display:flex;align-items:baseline;gap:8px}.shop-quote b{font-size:24px;font-variant-numeric:tabular-nums;color:var(--accent)}.shop-quote span,.shop-ticket-owned{color:var(--dim);font-size:10px}.shop-ticket-owned{margin:5px 0 18px}
.shop-ticket-close{position:absolute;right:10px;top:12px;font-size:9px}
.shop-requirement,.shop-pack-contents{font-size:10px;line-height:1.5;color:var(--teal);padding:9px 0;border-top:1px solid var(--cell)}
.store-ticket label{display:block;font-size:9px;letter-spacing:.12em;margin:18px 0 7px;color:var(--dim)}
#store-qty{width:100%;box-sizing:border-box;font-variant-numeric:tabular-nums;font-size:18px!important;text-align:right}
.store-ticket .qk{display:flex;gap:5px;justify-content:space-between;margin:8px 0 14px}.store-ticket .qk .hb{flex:1;margin:0;padding:7px 4px;font-size:10px}
#store-total{display:flex;justify-content:space-between;align-items:baseline;gap:8px;border-top:1px solid var(--cell);padding:16px 0}#store-total>span{font-size:9px;color:var(--dim)}#store-total b{color:var(--accent);font-size:18px;font-variant-numeric:tabular-nums}#store-total small{font-size:10px;font-weight:normal}
#store-confirm,.shop-open-pack{width:100%;margin-bottom:8px;min-height:42px}#store-msg{font-size:11px;color:var(--teal);line-height:1.5;margin-top:6px}.store-scrim{display:none}
[hidden]{display:none!important}
@media(min-width:1001px){body[data-v=stage][data-stage-combat=true] .adv{grid-template-rows:max-content max-content minmax(0,1fr);align-content:start}body[data-v=stage][data-stage-combat=true] .adv .loadout-panel{grid-row:1/span 3;align-self:start}body[data-v=stage] .stage,body[data-v=stage] #loot-panel{align-self:start}}
@media(max-width:1100px){.shop-shell{grid-template-columns:128px minmax(0,1fr) 225px}.shop-tab{padding-left:8px;gap:7px}.shop-stock-panel{padding:15px}.shop-heading h2{font-size:14px}}
@media(max-width:760px){
 body[data-v=store]:has(#store-ticket.has-selection){overflow:hidden}
 .shop-shell{display:block;min-height:0}.shop-tabs{flex-direction:row;overflow-x:auto;scrollbar-width:thin;padding:0;border-right:0;border-bottom:1px solid var(--edge);scroll-snap-type:x proximity;gap:0}
 .shop-tab{width:auto;flex:none;min-height:53px;border-left:0;border-bottom:2px solid transparent;padding:10px 13px;font-size:10px;scroll-snap-align:start}.shop-tab.on{border-bottom-color:var(--accent);background:#d9a13c13}.shop-tab .ic{width:22px;height:22px}
 .shop-stock-panel{padding:14px 12px}.shop-heading{margin-bottom:10px;gap:8px}.shop-heading h2{font-size:14px}#shop-count{font-size:8px}
 #general-store .store-grid{grid-template-columns:repeat(3,minmax(0,1fr));height:435px;max-height:54dvh;gap:6px;padding-right:3px;grid-auto-rows:119px}#general-store .store-item{height:119px}
 #general-store .store-ticket{display:none}
 body[data-v=store] #general-store .store-ticket.has-selection{display:block;position:fixed;inset:auto 0 0;z-index:1201;max-height:85dvh;overflow-y:auto;overscroll-behavior:contain;border:1px solid var(--accent);border-bottom:0;padding:18px 20px max(20px,env(safe-area-inset-bottom));box-shadow:0 -12px 40px #0008}
 body[data-v=store] .store-scrim:not([hidden]){display:block;position:fixed;inset:0;z-index:1200;background:#0009;border:0}
 .shop-ticket-item{padding-top:12px;min-height:50px}.shop-ticket-owned{margin-bottom:8px}.store-ticket label{margin-top:10px}.shop-requirement,.shop-pack-contents{margin:7px 0;padding:6px 0}
}

/* Keep the desktop order ticket in its own row instead of following page scroll. */
@media(min-width:1001px){body[data-mode=gex][data-v=market] #tk-panel,body[data-mode=gex][data-v=offers] #tk-panel{position:static;align-self:start;top:auto}}

/* Retain the familiar OSRS columns on phones as well as desktop. */
@media(max-width:600px){
 #skgrid{grid-template-columns:repeat(3,minmax(0,1fr));gap:4px}
 #skgrid .skt{padding:7px 5px;min-width:0}
 #skgrid .skn{font-size:9px;letter-spacing:0;gap:3px}
 #skgrid .skn img{width:17px;height:17px}
 #skgrid .skl{font-size:12px}
 #skgrid .sub2{font-size:8px}
}

.agility-scene{padding:24px 16px;background:radial-gradient(ellipse at top,#6aaab718,transparent 70%),var(--head);border:1px solid var(--edge)}
.agility-route{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin-bottom:24px}
.agility-route>div{padding:12px 6px;border:1px solid var(--edge);color:var(--dim);font-size:10px;text-align:center;transition:background .2s,border-color .2s}
.agility-route i{display:block;font-style:normal;font-size:18px;margin-bottom:6px}.agility-route .active{color:var(--text);border-color:#6aaab7;background:#6aaab718;box-shadow:inset 0 -2px #6aaab7}.agility-route .complete{color:var(--up);border-color:#718b55}
#agility-current{text-align:center;min-height:32px;color:#8bd2de}#agility-reward{height:24px;margin-top:12px;text-align:center;color:var(--accent);font-size:11px}.lap-flash{animation:agility-flash .7s ease-out}
.splat.dodged{background:transparent!important;width:auto!important;min-width:70px;color:#8ee9f2!important;font-size:14px!important;font-weight:bold;letter-spacing:1px;text-shadow:2px 2px #112228,0 0 12px #67d5e9;white-space:nowrap}
@keyframes agility-flash{from{transform:scale(1.08);filter:brightness(2)}to{transform:scale(1);filter:brightness(1)}}
@media(max-width:600px){.agility-route{grid-template-columns:repeat(2,minmax(0,1fr));gap:5px}.agility-scene{padding:12px}}
@media(prefers-reduced-motion:reduce){.lap-flash{animation:none}}

.agility-scene>.bar3.big{width:100%;max-width:none;margin:12px auto}.agility-route{grid-template-columns:repeat(auto-fit,minmax(130px,1fr))}@media(max-width:600px){.agility-route{grid-template-columns:repeat(2,minmax(0,1fr))}}
:root{--locked-opacity:.48;--locked-saturation:0;--locked-border:#454941}
:is(.recipe-card,.recipe-row,.farm-seed,.encounter-card,.guide-row,.con-tiers .hb).locked{opacity:var(--locked-opacity);border-color:var(--locked-border);box-shadow:none}
:is(.recipe-card,.recipe-row,.farm-seed,.encounter-card,.guide-row).locked :is(img,.ic){filter:grayscale(1)}
:is(.recipe-card,.recipe-row,.farm-seed).locked .recipe-heading b{color:#a2a69c}
.con-tabs,.con-tiers,.con-resume{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:12px 0}.con-tabs>span{margin-left:auto;color:var(--muted,#9c9b85)}
.con-board{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.con-card{height:100%;box-sizing:border-box}.con-rewards{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:20px 0;color:#e7b765}.con-rewards span{grid-column:1/-1;color:#83bdc5;font-size:11px}
.con-materials{display:grid;gap:8px;margin:15px 0}.con-material{display:flex;align-items:center;gap:7px}.con-material small{margin-left:auto;color:#999d90}.con-benefit{display:flex;flex-wrap:wrap;align-items:center;gap:10px;padding:16px 8px;border-top:2px solid #80b6bb}.con-benefit>span{flex-basis:100%;color:#a3ca87}.con-building{min-width:0}.con-building .con-card{height:auto}.con-building>.sub2{padding:14px 8px;line-height:1.8}.con-upgrade,.con-max{padding:12px;color:#a3ca87;background:#7aa16c12}.con-resume{border:1px solid #b28d47;padding:12px}.con-resume span{color:#adb1a0}.con-scene{padding:24px;background:radial-gradient(ellipse at center,#8a69351b,transparent 75%),#10140f;border:1px solid #494d3d}.con-work-icon{text-align:center;margin:12px}.con-steps{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin:20px 0}.con-steps span{text-align:center;padding:12px 4px;border-bottom:2px solid #373e33;color:#929888}.con-steps .active{color:#edb967;border-color:#edb967;background:#b9892d12}.con-scene>.bar3.big{width:100%;max-width:none}.con-clock{text-align:center;font-variant-numeric:tabular-nums;font-size:22px;margin:12px;color:#8bbdc6}.con-receipt{text-align:center;color:#acd288;min-height:22px}.con-card .recipe-actions{margin-top:16px}
@media(max-width:950px){.con-board{grid-template-columns:1fr}.con-tabs>span{margin-left:0;width:100%}.con-materials{grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}.con-steps{gap:4px}.con-scene{padding:14px}}
.con-repeat{display:flex;align-items:center;gap:8px;margin:12px 0;color:#b2b9a8;font-size:11px}.con-repeat input{accent-color:#d2a84d}.con-last{padding:10px 12px;background:#729b5310;border-left:2px solid #8fb46b;color:#b0cb91;font-size:11px;margin:10px 0}.con-work-icon img{animation:con-hammer 2s ease-in-out infinite;transform-origin:40% 80%}@keyframes con-hammer{0%,60%,100%{transform:rotate(-12deg)}75%{transform:rotate(12deg)}80%{transform:rotate(-20deg)}}@media(prefers-reduced-motion:reduce){.con-work-icon img{animation:none}}
.con-head{display:flex;justify-content:space-between;align-items:center;gap:15px}.con-head .title{min-width:0}.con-head button{flex-shrink:0}.con-scene~.hud{grid-template-columns:repeat(3,minmax(0,1fr))}.agility-scene~.hud{grid-template-columns:repeat(3,minmax(0,1fr))}
/* Slayer: amber rewards, ember Heat, teal control surfaces. */
.slayer-banner{display:grid;grid-template-columns:1.3fr 2fr 1fr 1fr;align-items:center;gap:18px;padding:20px;background:linear-gradient(110deg,#27271b,#131c19);border-block:1px solid #8e7845;margin-bottom:14px}.slayer-banner>div{display:flex;align-items:center;gap:10px;font-size:10px;letter-spacing:.1em;color:#b4b5a1}.slayer-banner b{display:block;font-size:24px;color:#edbd68;letter-spacing:0;font-variant-numeric:tabular-nums}.slayer-banner .slayer-heat{display:block}.slayer-heat>div{display:flex;gap:4px;margin-top:7px}.slayer-heat i{height:8px;flex:1;background:#33342a;border:1px solid #4a4835}.slayer-heat i.lit{background:#d6913f;box-shadow:0 0 7px #d57c3833}.slayer-tabs,.slayer-presets,.slayer-automation,.slayer-tags,.slayer-set{display:flex;gap:10px;flex-wrap:wrap;margin:14px 0;align-items:center}.slayer-masters{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}.slayer-masters .hb{padding:14px;font-size:14px}.slayer-masters small{display:block;font-size:10px;margin-top:8px}.slayer-favour{display:flex;justify-content:space-between;padding:12px 0;color:#b4ad8e;font-size:11px}.slayer-board{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:16px}.slayer-hunt{position:relative;padding:18px;background:radial-gradient(ellipse at 50% 22%,#9663261c,transparent 55%),#151c18;border:1px solid #55513a;border-top:3px solid #b18b43;display:flex;flex-direction:column;gap:12px;min-width:0}.slayer-hunt.nightmare{border-top-color:#b2544f;background:radial-gradient(ellipse at 50% 22%,#82313225,transparent 55%),#191715}.slayer-card-top{display:flex;justify-content:space-between;gap:10px;color:#8dbbc0;font-size:10px;letter-spacing:.06em}.slayer-portrait{height:105px;display:grid;place-items:center;margin-top:4px}.slayer-portrait img{max-height:95px;max-width:105px;image-rendering:pixelated;filter:drop-shadow(0 5px 9px #0008)}.slayer-hunt h3{margin:0;text-align:center;font-size:17px;color:#e8c17b}.slayer-count{text-align:center;font-size:12px}.slayer-count>b{font-size:28px;color:#e9e5d1}.slayer-count small{display:block;color:#929d91;margin-top:5px}.slayer-tags{gap:5px;margin:0;justify-content:center}.slayer-tags span{border:1px solid #3b4b41;color:#9cae9d;padding:4px 6px;font-size:9px}.slayer-payout{display:grid;gap:8px;border-block:1px solid #3b4535;padding:12px 0;font-size:10px;color:#9aab98}.slayer-payout b{font-size:14px;color:#e5b965}.slayer-hunt details{font-size:10px;line-height:1.6;color:#a5ad99}.slayer-hunt details p{margin:8px 0}.slayer-start{width:100%;margin-top:auto!important;min-height:38px}.slayer-current{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:14px;margin:10px 0;background:#91b1a310;border-left:3px solid #83b5bd}.slayer-current>div:first-child{display:grid;gap:5px;flex:1}.slayer-current>.bar3{width:100%;order:5}.slayer-current small{color:#c19b78}.slayer-automation{padding:14px;border:1px solid #414b3a;font-size:11px}.slayer-automation label{display:flex;align-items:center;gap:8px}.slayer-automation input{accent-color:#c19a4f}.slayer-receipt{border-left:3px solid #92b26c;background:#76985210;padding:14px;margin:12px 0;display:grid;gap:9px}.slayer-receipt>span{font-size:9px;color:#a0bf86;letter-spacing:.12em}.slayer-receipt>b{color:#e1c47a}.slayer-receipt>div{display:flex;flex-wrap:wrap;gap:12px;align-items:center;font-size:11px}.slayer-receipt>div>span{display:flex;align-items:center;gap:5px}.slayer-slots{display:grid;grid-template-columns:repeat(6,1fr);gap:8px}.slayer-slots>div{border:1px solid #6a613e;background:#1b2118;padding:12px;display:grid;gap:9px}.slayer-slots small{font-size:9px;color:#aaa58c}.slayer-slots b{font-size:11px;color:#e2c27c}.slayer-slots .locked{opacity:var(--locked-opacity)}.slayer-presets{justify-content:space-between;font-size:10px}.slayer-set{font-size:11px;border-block:1px solid #424b38;padding:10px 0}.slayer-set details{flex-basis:100%;line-height:1.6}.slayer-perks{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.slayer-perks article{padding:16px;border:1px solid #4e543d;background:#192019}.slayer-perks h3{font-size:14px;color:#d6bb7d}.slayer-perks p{font-size:11px;line-height:1.6;min-height:36px;color:#b0b4a2}.slayer-ranks{display:flex;gap:8px;flex-wrap:wrap;font-size:10px}.slayer-ranks span{border-bottom:2px solid #3e4737;padding:6px;color:#8d9484}.slayer-ranks .owned{color:#accb8c;border-color:#9eae68}.slayer-blocks{padding:18px;border:1px solid #4e543d;margin:16px 0;display:flex;flex-wrap:wrap;gap:10px}.slayer-blocks h3{width:100%}.slayer-blocks label{display:flex;gap:8px;align-items:center}.slayer-favour-rewards{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}.slayer-favour-rewards article{padding:14px;border:1px solid #424b38}.slayer-favour-rewards article>div{display:flex;gap:8px;align-items:center;justify-content:space-between;margin-top:10px;font-size:10px}.slayer-log>div{display:grid;grid-template-columns:32px 1.5fr 1fr 1fr;align-items:center;padding:10px;border-bottom:1px solid #414734;gap:10px;font-size:11px}.slayer-log small{display:block;color:#929f8d;font-size:10px;margin-top:5px}.slayer-stage-line{display:flex;gap:18px;align-items:center;flex-wrap:wrap;padding:12px 0;color:#dfb96e;font-size:11px}.slayer-stage-line button{margin-left:auto}#slayer-stage-hud{margin-bottom:16px}.slayer-masters .locked{opacity:var(--locked-opacity)}
@media(max-width:700px){.slayer-banner{grid-template-columns:1fr 1fr;padding:14px;gap:14px}.slayer-masters{grid-template-columns:repeat(2,1fr)}.slayer-board,.slayer-perks,.slayer-favour-rewards{grid-template-columns:1fr}.slayer-slots{grid-template-columns:repeat(3,minmax(0,1fr))}.slayer-log>div{grid-template-columns:28px 1fr}.slayer-log>div>span{grid-column:2}.slayer-automation{align-items:flex-start}.slayer-automation select{max-width:190px}.slayer-blocks select{max-width:210px}.slayer-presets>span{width:100%;display:flex;gap:8px;align-items:center}.slayer-current .hb{font-size:10px}.slayer-banner b{font-size:20px}}

.farm-groups{display:flex;gap:8px;margin:0 0 14px;flex-wrap:wrap}.farm-groups .hb{flex:1;min-height:40px}.farm-groups .on{color:var(--amber,#e2ac50);border-color:currentColor;background:#c9952517}
