/* mesos.watch terminal */
*{box-sizing:border-box;margin:0;padding:0}
:root{
  --ui:Manrope,system-ui,sans-serif; /* the UI typeface (numbers use --mono) */
  --bg:#0a0d13;--p:#0e1219;--p2:#131823;--p3:#1a2030;--ln:#1c2230;--ln2:#262e40;
  --t1:#e8ecf3;--t2:#8b95a8;--t3:#5a6378;--up:#26c281;--dn:#f0525e;--acc:#f5a524;--acc2:#ffc65c;
  --r:8px;--mono:"JetBrains Mono",ui-monospace,monospace;
}
html,body{height:100%;background:var(--bg);color:var(--t1);font:500 12.5px/1.35 var(--ui);-webkit-font-smoothing:antialiased;overflow:hidden}
button{font:inherit;color:inherit;background:none;border:0;cursor:pointer}
input,select{font:inherit;color:inherit}
.mono{font-family:var(--mono);font-feature-settings:"tnum"}
.up{color:var(--up)}.dn{color:var(--dn)}.dim{color:var(--t3);font-weight:500;text-transform:none;letter-spacing:0}
kbd{display:inline-grid;place-items:center;min-width:18px;height:18px;padding:0 5px;border-radius:4px;border:1px solid var(--ln2);font:600 10px var(--ui);color:var(--t2);background:var(--p)}
.live{display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--up);box-shadow:0 0 0 0 rgba(38,194,129,.5);animation:ping 2s infinite;margin-right:6px;vertical-align:1px}
@keyframes ping{70%{box-shadow:0 0 0 6px rgba(38,194,129,0)}}
.cr{display:inline-flex;align-items:center;gap:3px;height:16px;padding:0 5px 0 3px;border-radius:8px;background:rgba(245,165,36,.14);color:var(--acc2);font:700 9.5px var(--ui)}
.cr::before{content:"";width:7px;height:7px;border-radius:50%;background:radial-gradient(circle at 35% 35%,#fff0c2,var(--acc))}
.chip{display:inline-flex;align-items:center;gap:6px;height:26px;padding:0 10px;border-radius:6px;border:1px solid var(--ln2);background:var(--p2);color:var(--t2);font-weight:600;font-size:11.5px;white-space:nowrap}
.chip:hover{color:var(--t1)}.chip.on{color:var(--acc2);border-color:rgba(245,165,36,.4);background:rgba(245,165,36,.08)}
.chip.dark{background:rgba(9,12,18,.8);backdrop-filter:blur(10px);border-color:rgba(255,255,255,.09);color:var(--t2)}.chip.dark b{color:var(--t1)}
.btn{height:30px;padding:0 12px;border-radius:7px;border:1px solid var(--ln2);background:var(--p2);display:inline-flex;align-items:center;gap:7px;font-weight:600;color:var(--t1);white-space:nowrap}
.btn:hover{background:var(--p3)}.btn b{font-weight:700}
.btn.acc{background:var(--acc);border-color:var(--acc);color:#1a1000}.btn.acc:hover{background:var(--acc2)}
.btn.ghost{background:transparent}
.coin{width:14px;height:14px;border-radius:50%;background:radial-gradient(circle at 35% 30%,#fff3c4,#f5a524 60%,#c97a0c)}
.seg{display:inline-flex;gap:2px}.seg button{height:22px;padding:0 8px;border-radius:5px;color:var(--t3);font-weight:600;font-size:11px}.seg button.on{background:var(--p3);color:var(--t1)}
.ico{image-rendering:pixelated;object-fit:contain;display:block}
.slot{display:grid;place-items:center;flex:none;border-radius:6px;background:#e8ecf2;position:relative}
.slot.none{background:var(--p3);border:1px dashed var(--ln2)} /* no item picked */
.slot .q{position:absolute;right:1px;bottom:-1px;font:700 9px var(--mono);color:#fff;text-shadow:0 0 2px #000,0 0 2px #000}
::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-thumb{background:var(--ln2);border-radius:3px}::-webkit-scrollbar-track{background:transparent}

/* layout */
.app{display:grid;grid-template-rows:48px 30px minmax(0,1fr) 26px;height:100vh}
.hdr{display:flex;align-items:center;gap:20px;padding:0 14px;background:var(--p);border-bottom:1px solid var(--ln);position:relative;z-index:30}
.logo{display:flex;align-items:center;gap:9px;font:700 15px var(--ui);letter-spacing:-.2px;color:var(--t1);text-decoration:none}
.logo i{width:24px;height:24px;border-radius:7px;background:var(--acc);display:grid;place-items:center}
.logo .tld{color:var(--acc2)}
/* ticker wordmark: the name with a pulsing "live" dot, no icon tile */
.logo.tick{gap:8px;font:800 15px var(--ui);letter-spacing:-.4px}
.logo.tick .dot{width:8px;height:8px;border-radius:50%;background:var(--up);box-shadow:0 0 0 3px rgba(38,194,129,.18);animation:tickdot 1.8s infinite}
.logo.tick.big{font-size:21px;gap:10px}.logo.tick.big .dot{width:10px;height:10px}
@keyframes tickdot{50%{box-shadow:0 0 0 6px rgba(38,194,129,0)}}
.tabs{display:flex;gap:2px}.tabs button{height:30px;padding:0 11px;border-radius:7px;color:var(--t2);font-weight:600;display:flex;align-items:center;gap:6px}
.tabs button:hover{color:var(--t1)}.tabs button.on{color:var(--t1);background:var(--p2)}
.hr{margin-left:auto;display:flex;gap:8px;align-items:center}
.search{flex:1;max-width:480px;position:relative}
.search .field{height:32px;border-radius:8px;border:1px solid var(--ln2);background:var(--bg);display:flex;align-items:center;gap:8px;padding:0 8px 0 10px;color:var(--t3);transition:border-color .15s,box-shadow .15s}
.search .field:focus-within{border-color:rgba(245,165,36,.55);box-shadow:0 0 0 3px rgba(245,165,36,.12);color:var(--acc2)}
.search input{flex:1;min-width:0;background:none;border:0;outline:0;color:var(--t1);font-size:12.5px}.search input::placeholder{color:var(--t3)}
.pal{position:absolute;left:-60px;right:-60px;top:40px;border-radius:12px;background:var(--p);border:1px solid var(--ln2);box-shadow:0 24px 60px rgba(0,0,0,.55);display:none;overflow:hidden}
.pal.on{display:block;animation:in .14s ease-out}
@keyframes in{from{opacity:0;transform:translateY(-4px)}}
.pal-opts{display:flex;align-items:center;gap:6px;padding:10px 12px;border-bottom:1px solid var(--ln)}.pal-count{margin-left:auto;color:var(--t3);font-size:11px}
.statf{display:none;gap:6px;padding:8px 12px;border-bottom:1px solid var(--ln);flex-wrap:wrap}.statf.on{display:flex}
.statf label{display:flex;align-items:center;gap:6px;height:26px;padding:0 4px 0 9px;border-radius:6px;border:1px solid var(--ln2);font-weight:600;font-size:11px;color:var(--t2)}
.statf input{width:38px;height:18px;border-radius:4px;border:0;outline:0;background:var(--bg);padding:0 5px;font:500 11px var(--mono);color:var(--t1)}
.pal-list{max-height:min(420px,56vh);overflow:auto;padding:6px}
.pal-h{padding:8px 8px 4px;font:600 10.5px var(--ui);letter-spacing:.06em;text-transform:uppercase;color:var(--t3)}
.pal-foot{display:flex;gap:16px;padding:8px 12px;border-top:1px solid var(--ln);color:var(--t3);font-size:11px}.pal-foot kbd{margin-right:2px}
.row{display:grid;grid-template-columns:34px minmax(0,1fr) auto;gap:11px;align-items:center;padding:7px 8px;border-radius:7px;cursor:pointer}
.row:hover,.row.kb{background:var(--p2)}.row.kb{box-shadow:inset 2px 0 0 var(--acc)}
.row .nm{font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.row .sub{font-size:11px;color:var(--t3);margin-top:1px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.row .pr{text-align:right}.row .p{font:500 12.5px var(--mono);color:var(--t1)}.row .d{font:500 11px var(--mono)}
.tag{display:inline-block;margin-left:6px;padding:1px 5px;border-radius:4px;font:700 9px var(--ui);letter-spacing:.04em;background:rgba(38,194,129,.16);color:var(--up);vertical-align:1px}

.tape{border-bottom:1px solid var(--ln);overflow:hidden;position:relative;background:var(--bg)}
.tape-in{display:flex;gap:28px;align-items:center;height:100%;white-space:nowrap;padding-left:14px;font-size:11.5px;color:var(--t2);animation:tape 90s linear infinite;width:max-content}
.tape-in b{color:var(--t1);font:600 11.5px var(--ui);margin-right:6px}
.tape:hover .tape-in{animation-play-state:paused}
.tape-in.idle{animation:none;font-family:var(--ui);color:var(--t3)}
@keyframes tape{to{transform:translateX(-50%)}}

.main{display:grid;grid-template-columns:300px minmax(0,1fr) 340px;min-height:0}
.col{display:flex;flex-direction:column;min-height:0;border-right:1px solid var(--ln);background:var(--bg)}
.col.right{border-right:0;border-left:1px solid var(--ln)}
.ph{height:36px;flex:none;white-space:nowrap;display:flex;align-items:center;justify-content:space-between;padding:0 12px;border-bottom:1px solid var(--ln);font:600 10.5px var(--ui);letter-spacing:.07em;text-transform:uppercase;color:var(--t2)}
.ph2{border-top:1px solid var(--ln)}
/* watchlist */
.wl{flex:1 1 auto;overflow-x:hidden;overflow-y:auto;min-height:0}
.w{display:grid;grid-template-columns:32px minmax(0,1fr) 44px 62px;gap:8px;align-items:center;padding:7px 12px;border-bottom:1px solid #121722;cursor:pointer}
.w:hover{background:var(--p)}.w.sel{background:var(--p2);box-shadow:inset 2px 0 0 var(--acc)}
.w .slot{width:32px;height:32px}
.w .n{font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.w .s{font-size:11px;color:var(--t3)}
.w svg{width:44px;height:20px}
.w .pr{text-align:right}.w .pr b{display:block;font:500 12.5px var(--mono)}.w .pr i{font:500 11px var(--mono);font-style:normal}
.deals{flex:0 0 auto;max-height:34%;overflow-x:hidden;overflow-y:auto}
.dl{display:grid;grid-template-columns:28px minmax(0,1fr) auto;gap:9px;align-items:center;padding:6px 12px;cursor:pointer}
.dl:hover{background:var(--p)}.dl .slot{width:28px;height:28px}
.dl .n{font-weight:600;font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.dl .s{font-size:10.5px;color:var(--t3)}
.dl .pr{text-align:right;font:500 12px var(--mono)}.dl .pr i{display:block;font-style:normal;font-size:10.5px;color:var(--up)}

/* centre */
.center{display:grid;grid-template-rows:minmax(0,1fr) 300px;min-height:0;min-width:0}
.view{position:relative;margin:10px 10px 0;border-radius:10px;overflow:hidden;background:#7fb6e6;box-shadow:0 0 0 1px var(--ln);contain:paint;isolation:isolate}
.view .sky{position:absolute;inset:0}
#gl{position:absolute;inset:0;z-index:1}#gl canvas{display:block;width:100%;height:100%}
#lbl3d{position:absolute;inset:0;z-index:3;pointer-events:none;overflow:hidden;transition:opacity .4s}
#lbl3d>*{position:absolute;left:0;top:0;will-change:transform}
body.moving #lbl3d{opacity:0;transition:opacity .12s}
.vbar{position:absolute;z-index:5;display:flex;gap:6px;pointer-events:none}.vbar>*{pointer-events:auto}
.vtl{left:10px;top:10px}.vtr{right:10px;top:10px}
.vback{position:absolute;left:10px;top:44px;z-index:5;color:var(--t1)}
.heat{display:inline-block;width:64px;height:5px;border-radius:3px;background:linear-gradient(90deg,#4fb6ff,#9a7bff,#ffb13b,#ff5a3c)}
.sw{display:inline-block;width:8px;height:8px;border-radius:2px;margin-left:4px}.sw.h{background:#7ed36a}.sw.p{background:#e8854a}
.vbr{position:absolute;right:10px;bottom:10px;z-index:5;display:flex;gap:4px}
.vb{width:30px;height:30px;border-radius:7px;display:grid;place-items:center;background:rgba(9,12,18,.8);border:1px solid rgba(255,255,255,.09);color:var(--t1)}
.vb:hover{background:rgba(20,26,38,.95)}
body.fs .main{grid-template-columns:minmax(0,1fr)}body.fs .col{display:none} /* the side columns leave the grid: one column, all map */body.fs .center{grid-template-rows:minmax(0,1fr) 0}body.fs .chartp{display:none}
.peek{position:absolute;z-index:8;width:270px;pointer-events:none;opacity:0;transform:translateY(4px);transition:opacity .12s,transform .12s;border-radius:10px;background:rgba(10,13,19,.94);border:1px solid var(--ln2);box-shadow:0 16px 40px rgba(0,0,0,.5)}
.peek.on{opacity:1;transform:none}
.peek .pk-h{display:flex;align-items:baseline;justify-content:space-between;padding:10px 12px 8px;border-bottom:1px solid var(--ln)}
.peek .pk-h b{font:700 13px var(--ui)}.peek .pk-h span{font-size:11px;color:var(--t3)}
.peek .pk-r{display:grid;grid-template-columns:26px minmax(0,1fr) auto auto;gap:8px;align-items:center;padding:6px 12px;font-size:12px}
.peek .pk-r .slot{width:26px;height:26px}.peek .pk-r .n{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-weight:600}
.peek .pk-f{padding:8px 12px 10px;font-size:11px;color:var(--t3)}
.mapname{position:absolute;left:50%;top:14px;z-index:6;transform:translate(-50%,-8px);opacity:0;pointer-events:none;transition:all .5s cubic-bezier(.2,1.2,.3,1);text-align:center}
.mapname.on{transform:translate(-50%,0);opacity:1}
.mapname .a{font:600 10px var(--ui);letter-spacing:.14em;text-transform:uppercase;color:#fff;text-shadow:0 1px 4px rgba(0,0,0,.6)}
.mapname .b{font:800 26px/1.15 Outfit;color:#fff;text-shadow:0 2px 0 rgba(20,35,70,.5),0 0 18px rgba(20,40,80,.45)}
#warp{position:absolute;inset:0;z-index:7;pointer-events:none;opacity:0;transition:opacity .34s cubic-bezier(.4,0,.2,1);background:radial-gradient(circle at 50% 48%,#fff 0%,#e9f6ff 22%,#9fd2ff 52%,#4c86d8 82%,#22427f 100%)}
#warp.on{opacity:1}
#loading{position:absolute;inset:0;z-index:9;display:grid;place-items:center;background:var(--p);transition:opacity .6s .1s}
#loading.done{opacity:0;pointer-events:none}
#loading .ld{display:flex;flex-direction:column;align-items:center;gap:12px;color:var(--t2);font-weight:600}
#loading .ld i{width:40px;height:40px;border-radius:11px;background:var(--acc);display:grid;place-items:center}
#loading .bar{width:220px;height:3px;border-radius:2px;background:var(--ln2);overflow:hidden}#loading .bar b{display:block;height:100%;width:0;background:var(--acc);transition:width .3s}

/* 3D labels */
.hutlbl,.dealpin{pointer-events:none}
.dealpin{translate:-50% -50%;min-width:calc(19px*var(--k));height:calc(19px*var(--k));padding:0 calc(5px*var(--k));border-radius:calc(10px*var(--k));display:grid;place-items:center;font:700 calc(10.5px*var(--k)) var(--ui);color:#05331b;background:#3fe08f;box-shadow:0 0 0 2px #fff,0 3px 8px rgba(0,0,0,.3)}
/* NPC name tags: white like the shop titles, a pointer down to the head; sized by --k (never zoom: zoom also scales the position) */
.npcl{translate:-50% calc(-100% - 9px*var(--k));pointer-events:auto;cursor:pointer;display:flex;align-items:center;gap:calc(7px*var(--k));padding:calc(7px*var(--k)) calc(13px*var(--k));border-radius:calc(8px*var(--k));font:700 calc(14px*var(--k)) var(--ui);color:#161b26;background:#fff;box-shadow:0 0 0 1px rgba(16,20,30,.85),0 6px 16px rgba(0,0,0,.35);white-space:nowrap;transition:box-shadow .15s}
.npcl::before{content:"";width:calc(10px*var(--k));height:calc(10px*var(--k));border-radius:50%;background:var(--c);box-shadow:0 0 0 1.5px rgba(0,0,0,.25) inset}
.npcl::after{content:"";position:absolute;left:50%;top:100%;translate:-50% 0;border:calc(7px*var(--k)) solid transparent;border-top-color:#fff;border-bottom:0}
.npcl:hover{box-shadow:0 0 0 2px var(--acc),0 8px 20px rgba(0,0,0,.4)}
.exitl{translate:-50% -100%;opacity:0;transition:opacity .2s;pointer-events:auto;cursor:pointer;padding:6px 11px;border-radius:7px;font:600 11.5px var(--ui);color:#fff;background:rgba(9,12,18,.9);box-shadow:0 0 0 1px rgba(245,165,36,.6),0 6px 16px rgba(0,0,0,.35);white-space:nowrap}
.exitl.on{opacity:1}
#lbl3d .shop{translate:-50% -100%;display:flex;flex-direction:column;align-items:center;pointer-events:auto;cursor:pointer}
#lbl3d .shop .bal{display:flex;align-items:center;gap:7px;max-width:200px;min-width:90px;height:26px;padding:0 10px 0 7px;border-radius:6px;background:#fff;color:#161b26;font:600 12px var(--ui);box-shadow:0 0 0 1px rgba(16,20,30,.85),0 4px 12px rgba(0,0,0,.28);white-space:nowrap}
#lbl3d .shop .bal .tt{overflow:hidden;text-overflow:ellipsis;min-width:0}
#lbl3d .shop .bal .bi{width:15px;height:15px;border-radius:4px;flex:none}.bi.m{background:linear-gradient(#ffd27a,#e6951e)}.bi.p{background:linear-gradient(#7fc4ff,#2d6fc0)}
#lbl3d .shop .bal .tagd{flex:none;padding:2px 5px;border-radius:4px;font:700 9px var(--ui);background:#3fe08f;color:#05331b}
#lbl3d .shop[data-par="1"] .bal{margin-bottom:32px}
#lbl3d .shop[data-par="1"]::after{content:"";position:absolute;left:50%;bottom:0;width:1px;height:32px;background:linear-gradient(rgba(255,255,255,.9),rgba(255,255,255,.2))}
#lbl3d .shop:hover .bal,#lbl3d .shop.sel .bal{box-shadow:0 0 0 2px var(--acc),0 6px 16px rgba(0,0,0,.3)}
.ntag3{translate:-50% 0;pointer-events:none;font:600 10.5px var(--ui);padding:2px 6px 3px;border-radius:4px;background:rgba(8,11,18,.78);color:#fff;white-space:nowrap}

/* chart panel */
.chartp{display:flex;flex-direction:column;min-height:0;padding:0 10px 8px}
.ci{display:flex;align-items:center;gap:12px;padding:10px 4px 6px}
.ci-ico .slot{width:36px;height:36px}
.ci-name{min-width:0}.ci-name .t{font:700 15px var(--ui);white-space:nowrap}.ci-name .m{font-size:11px;color:var(--t3);white-space:nowrap}
.big{font:600 20px var(--mono);white-space:nowrap}.big small{font-size:12.5px;margin-left:6px}
.kv{display:flex;gap:18px;margin-left:auto}.kv div{font-size:10.5px;color:var(--t3);white-space:nowrap}.kv b{display:block;font:500 12.5px var(--mono);color:var(--t1)}
.tf{display:flex;align-items:center;gap:2px;padding:0 4px 6px}.tf>button:not(.chip){height:24px;padding:0 9px;border-radius:5px;color:var(--t3);font-weight:600;font-size:11px}
.tf>button.on:not(.chip){background:var(--p3);color:var(--t1)}.tf .sp{flex:1}.tf .chip{height:24px;margin-left:6px}
.chartbox{position:relative;flex:1;min-height:0;border-radius:8px;background:var(--p);border:1px solid var(--ln)}
.chartbox canvas{position:absolute;inset:0;width:100%;height:100%}
.xh{position:absolute;pointer-events:none;display:none;padding:7px 9px;border-radius:7px;background:rgba(8,11,17,.95);border:1px solid var(--ln2);font:500 11px var(--mono);line-height:1.6;white-space:nowrap}

/* listings */
.obh{display:grid;grid-template-columns:minmax(0,1fr) 64px 78px;padding:6px 12px;font:600 10px var(--ui);letter-spacing:.06em;text-transform:uppercase;color:var(--t3)}
.obh span:not(:first-child){text-align:right}
.ob{flex:1 1 auto;overflow-x:hidden;overflow-y:auto;min-height:0}
.o{position:relative;display:grid;grid-template-columns:minmax(0,1fr) 64px 78px;padding:5px 12px;font:500 12px var(--mono);cursor:pointer}
.o:hover{background:var(--p2)}
.o .d{position:absolute;right:0;top:1px;bottom:1px;background:rgba(240,82,94,.1);pointer-events:none}
.o span{position:relative;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.o .r{text-align:right}
.o .who{font-family:var(--ui);font-weight:600}.o .who i{font-style:normal;color:var(--t3);font-weight:500}
.o.best{background:rgba(38,194,129,.07)}.o.best .d{background:rgba(38,194,129,.15)}
.o.empty{color:var(--t3);font-family:var(--ui);cursor:default;display:block;line-height:1.5;padding:9px 12px}
.mid{flex:none;display:flex;justify-content:space-between;padding:8px 12px;border-top:1px solid var(--ln);font-weight:600}.mid .mono{font-size:13px}
.ts-h{grid-template-columns:52px minmax(0,1fr) 78px}
.ts{flex:0 0 230px;overflow:hidden;-webkit-mask-image:linear-gradient(#000 78%,transparent)}
.ts .o{grid-template-columns:52px minmax(0,1fr) 78px;font-size:11.5px;animation:in .3s ease-out}
.ts .o .it{font-family:var(--ui);font-weight:500}

.ftr{display:flex;align-items:center;gap:20px;padding:0 14px;border-top:1px solid var(--ln);background:var(--p);font-size:11px;color:var(--t3)}
.ftr b{color:var(--t2);font-weight:600}.ftr .sp{flex:1}

/* windows */
#wins{position:fixed;inset:0;z-index:40;pointer-events:none}
.win{position:absolute;pointer-events:auto;border-radius:12px;background:var(--p);border:1px solid var(--ln2);box-shadow:0 30px 80px rgba(0,0,0,.6);animation:pop .18s ease-out}
@keyframes pop{from{opacity:0;transform:translateY(6px) scale(.985)}}
.win .wh{height:42px;display:flex;align-items:center;gap:10px;padding:0 8px 0 14px;border-bottom:1px solid var(--ln);cursor:grab;user-select:none}
.win .wh h3{font:600 13px var(--ui)}.win .wh .x{margin-left:auto;width:26px;height:26px;border-radius:6px;color:var(--t3);display:grid;place-items:center}.win .wh .x:hover{background:var(--p3);color:var(--t1)}
.store{width:400px}
.st-h{display:flex;gap:12px;padding:12px 14px;border-bottom:1px solid var(--ln)}
.st-h .av{width:52px;height:60px;border-radius:8px;background:linear-gradient(#cfe6f8,#9ccbe9);display:grid;place-items:end center;overflow:hidden;flex:none}
.st-h .av img{height:56px;image-rendering:pixelated}
.st-h .t{font:700 14px var(--ui)}.st-h .m{font-size:11.5px;color:var(--t3);margin-top:3px;line-height:1.55}.st-h .m b{color:var(--t2);font-weight:600}
.kind{display:inline-block;margin-left:6px;padding:1px 6px;border-radius:10px;background:var(--p3);font-size:10px;font-weight:600;color:var(--t2)}
.st-rows{max-height:340px;overflow:auto;padding:6px}
.st-f{display:flex;align-items:center;gap:8px;padding:10px 14px;border-top:1px solid var(--ln);font-size:11px;color:var(--t3)}
.chwin{width:380px}
.chgrid{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;padding:10px}
.chb{padding:8px 9px;border-radius:7px;border:1px solid var(--ln2);background:var(--p2);text-align:left}
.chb:hover{border-color:rgba(245,165,36,.5)}.chb.on{border-color:var(--acc);background:rgba(245,165,36,.1)}
.chb .n{font-weight:700}.chb .g{height:3px;border-radius:2px;background:var(--ln2);margin:6px 0 4px;overflow:hidden}.chb .g i{display:block;height:100%;background:linear-gradient(90deg,var(--up),var(--acc),var(--dn))}
.chb .s{font-size:10px;color:var(--t3)}
.acct{width:500px}.acc-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;padding:12px}
.card{padding:12px;border-radius:9px;background:var(--p2);border:1px solid var(--ln)}
.card .lbl{font:600 10px var(--ui);letter-spacing:.07em;text-transform:uppercase;color:var(--t3)}.card .big2{font:700 24px var(--ui);margin:4px 0 8px}
.tog{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:8px 0;border-bottom:1px solid var(--ln)}.tog:last-child{border-bottom:0}
.tog .d{font-size:11px;color:var(--t3)}
.sw2{width:32px;height:18px;border-radius:9px;background:var(--ln2);position:relative;flex:none;cursor:pointer;transition:background .15s}.sw2::after{content:"";position:absolute;left:2px;top:2px;width:14px;height:14px;border-radius:50%;background:#cfd6e3;transition:transform .15s}
.sw2.on{background:var(--acc)}.sw2.on::after{transform:translateX(14px);background:#fff}
.f2{display:flex;flex-direction:column;gap:5px;margin-top:10px}.f2 span{font:600 10px var(--ui);letter-spacing:.06em;text-transform:uppercase;color:var(--t3)}
.f2 input,.f2 select{height:34px;border-radius:7px;border:1px solid var(--ln2);background:var(--bg);padding:0 10px;outline:0;color:var(--t1)}
.f2 input:focus{border-color:rgba(245,165,36,.55);box-shadow:0 0 0 3px rgba(245,165,36,.12)}
.modal-bg{position:fixed;inset:0;z-index:80;background:rgba(3,5,10,.6);backdrop-filter:blur(2px);display:none;place-items:center}.modal-bg.on{display:grid}
.modal{position:relative;width:420px}.modal .bd{padding:16px;color:var(--t2);line-height:1.55}
.modal .row3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:8px}
.modal .act{display:flex;align-items:center;gap:8px;margin-top:16px}
.tip{position:fixed;z-index:90;width:260px;pointer-events:none;opacity:0;padding:10px 12px 12px;border-radius:9px;background:rgba(7,9,14,.96);border:1px solid #c9cfda;box-shadow:0 14px 34px rgba(0,0,0,.55);transition:opacity .08s;font-size:11.5px}
.tip.on{opacity:1}
.tip .tn{text-align:center;font:700 13px var(--ui);color:#fff}.tip .tn.e{color:#c99bff}.tip .tn.r{color:#ffbf52}.tip .tn.u{color:#88d4ff}
.tip .tc{text-align:center;font-size:10.5px;color:#9aa3b5;margin:2px 0 8px}
.tip .tb2{display:flex;gap:10px;border-top:1px solid rgba(255,255,255,.12);padding-top:8px}
.tip .tb2 .slot{width:52px;height:52px}
.tip .req{font-size:10.5px;color:#d0d6e2;line-height:1.6}
.tip .st{margin-top:8px;border-top:1px solid rgba(255,255,255,.12);padding-top:6px;line-height:1.65;color:#fff}.tip .bo{color:#7cd3ff}
.tip .ow{margin-top:8px;padding:6px 8px;border-radius:5px;background:rgba(38,194,129,.1);border:1px solid rgba(38,194,129,.35);color:#c4f3da;font-size:10.5px;line-height:1.5}
#toasts{position:fixed;left:50%;bottom:40px;transform:translateX(-50%);z-index:95;display:flex;flex-direction:column;gap:6px;align-items:center}
.toast{padding:9px 14px;border-radius:9px;background:var(--p2);border:1px solid var(--ln2);box-shadow:0 12px 30px rgba(0,0,0,.5);font-weight:600;animation:in .2s ease-out}
@media (max-width:1360px){.main{grid-template-columns:260px minmax(0,1fr) 300px}.kv div:nth-child(n+3){display:none}.tabs button:nth-child(n+3){display:none}}
[hidden]{display:none!important}
.ts-h span:nth-child(2){text-align:left}

/* labels scale with the viewport (--k set by app.js from the panel height) */
#lbl3d{--k:1}
#lbl3d .shop .bal{height:calc(26px*var(--k));min-width:calc(80px*var(--k));max-width:calc(190px*var(--k));padding:0 calc(9px*var(--k)) 0 calc(6px*var(--k));gap:calc(6px*var(--k));font-size:calc(12px*var(--k));border-radius:calc(6px*var(--k))}
#lbl3d .shop .bal .bi{width:calc(14px*var(--k));height:calc(14px*var(--k))}
#lbl3d .shop .bal .tagd{font-size:calc(9px*var(--k));padding:calc(2px*var(--k)) calc(4px*var(--k))}
#lbl3d .shop[data-par="1"] .bal{margin-bottom:calc(30px*var(--k))}
#lbl3d .shop[data-par="1"]::after{height:calc(30px*var(--k))}
.ntag3{font-size:calc(10.5px*var(--k))}

/* cookie consent (consent.js; only when Google Analytics is configured) */
#consent{position:fixed;left:50%;bottom:44px;z-index:300;width:min(520px,calc(100vw - 32px));transform:translate(-50%,12px);opacity:0;transition:opacity .25s,transform .25s;
  background:var(--p2);border:1px solid var(--ln2);border-radius:12px;padding:16px 18px 14px;box-shadow:0 18px 50px rgba(0,0,0,.55);color:var(--t2);font-size:12.5px;line-height:1.55}
#consent.on{opacity:1;transform:translate(-50%,0)}
#consent .cs-t{color:var(--t1);font-weight:700;font-size:14px;margin-bottom:6px}
#consent p{margin:0 0 12px}#consent .cs-now{color:var(--t3);font-size:12px}#consent .cs-now b{color:var(--t2)}
#consent .cs-b{display:flex;gap:8px;justify-content:flex-end}#consent .cs-b .btn{min-width:96px;justify-content:center}
.ftr .cs-link{background:none;border:0;padding:0;color:var(--t3);font:inherit;cursor:pointer;text-decoration:underline;text-underline-offset:2px}.ftr .cs-link:hover{color:var(--t1)}
@media (max-width:560px){#consent{bottom:16px}#consent .cs-b .btn{flex:1}}

/* empty states (nothing scanned yet, or the API unreachable) */
.empty-note{padding:14px 12px;color:var(--t3);font-size:12px;line-height:1.5}
.btn[disabled]{opacity:.55;cursor:not-allowed}

/* paid features (credits, alerts, stat filter, all channels) are hidden until payments exist: add class "paid" to <body> to show them */
body:not(.paid) .paid-only{display:none!important}

/* live market stats in the header (were in the footer) */
.hstats{display:flex;align-items:center;margin-right:8px}
.hs{display:flex;flex-direction:column;gap:3px;padding:0 16px;border-left:1px solid var(--ln2)}
.hs:first-child{border-left:0}
.hs .l{font:600 9.5px var(--ui);letter-spacing:.07em;text-transform:uppercase;color:var(--t3);white-space:nowrap}
.hs b{display:flex;align-items:center;gap:7px;font:600 14px var(--mono);color:var(--t1);white-space:nowrap;font-feature-settings:"tnum"}
.hs.scan b{font:600 12.5px var(--ui)}
@media (max-width:1360px){.hs{padding:0 11px}.hs b{font-size:13px}}
