/* ===== TCG//SCAN: neon HUD + holo foil ===== */
@font-face{font-family:Mono;src:url(fonts/jetbrains-mono-latin-400-normal.woff2) format("woff2");font-weight:400;font-display:swap}
@font-face{font-family:Mono;src:url(fonts/jetbrains-mono-latin-700-normal.woff2) format("woff2");font-weight:700;font-display:swap}
@font-face{font-family:Disp;src:url(fonts/chakra-petch-latin-500-normal.woff2) format("woff2");font-weight:500;font-display:swap}
@font-face{font-family:Disp;src:url(fonts/chakra-petch-latin-700-normal.woff2) format("woff2");font-weight:700;font-display:swap}
@font-face{font-family:Body;src:url(fonts/space-grotesk-latin-400-normal.woff2) format("woff2");font-weight:400;font-display:swap}
@font-face{font-family:Body;src:url(fonts/space-grotesk-latin-500-normal.woff2) format("woff2");font-weight:500 700;font-display:swap}
:root{
 --void:#05050a;--deep:#0b0a14;--plate:#0f0e1b;--line:rgba(160,150,255,.14);--txt:#ecebff;--mut:#8a87a8;--dim:#5b5878;
 /* energy types */
 --grass:#b6ff1a;   /* fair price */
 --psychic:#ff2bd6; /* overpriced */
 --water:#19e3ff;   /* info / links / active */
 --electric:#ffe600;/* stock / buy */
 --fire:#ff5a1f;    /* hot / blocked */
 --holo:linear-gradient(115deg,#ff2bd6 0%,#7a5cff 18%,#19e3ff 36%,#b6ff1a 54%,#ffe600 70%,#ff5a1f 86%,#ff2bd6 100%);
 --cut:10px;--top:env(safe-area-inset-top,0px);--bot:env(safe-area-inset-bottom,0px);--navh:62px;
 --mono:Mono,ui-monospace,"SF Mono",Menlo,monospace;--disp:Disp,"Arial Narrow",system-ui,sans-serif;--body:Body,system-ui,-apple-system,sans-serif}
*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--void);color:var(--txt);font:400 13.5px/1.5 var(--body);overflow-x:hidden;min-height:100dvh;
 padding-bottom:calc(var(--navh) + var(--bot) + 80px);
 background-image:radial-gradient(60% 40% at 110% -5%,rgba(255,43,214,.20),transparent 70%),radial-gradient(55% 35% at -15% 10%,rgba(25,227,255,.16),transparent 70%),radial-gradient(50% 30% at 50% 115%,rgba(182,255,26,.10),transparent 70%),linear-gradient(var(--void),var(--deep));background-attachment:fixed}
/* scanlines + grain */
body::before{content:"";position:fixed;inset:0;pointer-events:none;z-index:100;opacity:.55;mix-blend-mode:overlay;
 background:repeating-linear-gradient(0deg,rgba(255,255,255,.035) 0 1px,transparent 1px 3px),url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 .5 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.35'/%3E%3C/svg%3E")}
/* perspective grid floor */
body::after{content:"";position:fixed;left:-20%;right:-20%;bottom:-10vh;height:45vh;pointer-events:none;z-index:-1;opacity:.35;
 background:linear-gradient(transparent 0,var(--void) 95%),repeating-linear-gradient(90deg,rgba(122,92,255,.35) 0 1px,transparent 1px 48px),repeating-linear-gradient(0deg,rgba(122,92,255,.35) 0 1px,transparent 1px 48px);
 transform:perspective(300px) rotateX(62deg);transform-origin:bottom}
svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:square;stroke-linejoin:miter;flex:none}
button{font:inherit;color:inherit}a{color:var(--water);text-decoration:none}
::selection{background:var(--psychic);color:#000}
.cut{clip-path:polygon(var(--cut) 0,100% 0,100% calc(100% - var(--cut)),calc(100% - var(--cut)) 100%,0 100%,0 var(--cut))}

/* ---------- header ---------- */
.top{position:sticky;top:0;z-index:20;display:flex;align-items:center;justify-content:space-between;gap:12px;
 padding:calc(8px + var(--top)) max(14px,env(safe-area-inset-right)) 8px max(14px,env(safe-area-inset-left));
 background:linear-gradient(rgba(5,5,10,.92),rgba(5,5,10,.78));backdrop-filter:blur(14px) saturate(1.5);-webkit-backdrop-filter:blur(14px) saturate(1.5)}
.top::after{content:"";position:absolute;left:0;right:0;bottom:0;height:1px;background:var(--holo);opacity:.7;background-size:200% 100%;animation:slide 8s linear infinite}
.brand{display:flex;align-items:center;gap:10px;min-width:0}.brand img{width:30px;height:30px;filter:drop-shadow(0 0 8px rgba(255,43,214,.6))}
h1{margin:0;font:700 18px/1 var(--disp);letter-spacing:.08em;text-transform:uppercase;background:var(--holo);background-size:250% 100%;-webkit-background-clip:text;background-clip:text;color:transparent;animation:slide 10s linear infinite}
.sub{margin:3px 0 0;font:400 10px/1 var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--mut);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sub::before{content:"● ";color:var(--grass);text-shadow:0 0 6px var(--grass);animation:blink 2.4s steps(2) infinite}
.iconbtn{position:relative;width:44px;height:44px;border:1px solid var(--line);background:rgba(15,14,27,.7);display:grid;place-items:center;cursor:pointer;clip-path:polygon(8px 0,100% 0,100% calc(100% - 8px),calc(100% - 8px) 100%,0 100%,0 8px);color:var(--water)}
#badge{position:absolute;top:3px;right:3px;min-width:16px;height:16px;padding:0 4px;background:var(--psychic);color:#000;font:700 10px/16px var(--mono);text-align:center;box-shadow:0 0 10px var(--psychic)}#badge[hidden]{display:none}

main{width:100%;max-width:620px;margin:0 auto;padding:0 max(12px,env(safe-area-inset-left)) 0 max(12px,env(safe-area-inset-right));transition:transform .2s}
.tab{display:none}.tab.active{display:block;animation:boot .35s cubic-bezier(.2,.8,.2,1)}
@keyframes boot{0%{opacity:0;transform:translateY(8px);filter:blur(3px)}60%{opacity:1;filter:blur(0)}100%{transform:none}}
@keyframes slide{to{background-position:250% 0}}@keyframes blink{50%{opacity:.25}}

/* ---------- chips: angular segmented HUD ---------- */
.sticky{position:sticky;top:calc(58px + var(--top));z-index:10;margin:0 -12px;padding:10px 12px;background:linear-gradient(var(--void) 70%,transparent)}
.chips{display:flex;gap:6px;overflow-x:auto;scrollbar-width:none}.chips::-webkit-scrollbar{display:none}
.chip{flex:none;min-height:44px;padding:0 14px;border:1px solid var(--line);background:rgba(15,14,27,.75);color:var(--mut);cursor:pointer;
 font:700 10.5px/1 var(--mono);letter-spacing:.14em;text-transform:uppercase;clip-path:polygon(8px 0,100% 0,calc(100% - 8px) 100%,0 100%);padding-inline:18px;transition:color .15s,background .15s,transform .1s}
.chip[aria-pressed=true]{color:#000;background:var(--water);border-color:var(--water);box-shadow:0 0 18px rgba(25,227,255,.5)}
.chip:active{transform:translateY(1px)}

/* ---------- summary HUD ---------- */
.summary{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;margin:4px 0 14px}
.stat{position:relative;padding:10px 10px 9px;background:rgba(15,14,27,.6);border:1px solid var(--line);clip-path:polygon(0 0,calc(100% - 9px) 0,100% 9px,100% 100%,0 100%)}
.stat b{display:block;font:700 20px/1.1 var(--mono);color:var(--grass);text-shadow:0 0 12px rgba(182,255,26,.55)}
.stat:nth-child(2) b{color:var(--water);text-shadow:0 0 12px rgba(25,227,255,.55)}.stat:nth-child(3) b{color:var(--electric);text-shadow:0 0 12px rgba(255,230,0,.45)}
.stat span{font:400 9.5px/1.2 var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--mut)}
.stat::after{content:"";position:absolute;left:0;top:0;width:18px;height:1px;background:currentColor;color:var(--water)}

/* ---------- deal cards ---------- */
.grid{display:grid;gap:10px}
.deal{--c:var(--grass);position:relative;display:grid;gap:9px;padding:13px 13px 12px 15px;
 background:linear-gradient(135deg,rgba(255,255,255,.035),transparent 40%) ,linear-gradient(var(--plate),var(--deep));
 clip-path:polygon(0 0,calc(100% - 16px) 0,100% 16px,100% 100%,16px 100%,0 calc(100% - 16px));
 border-left:2px solid var(--c);box-shadow:inset 0 0 0 1px var(--line),inset 30px 0 40px -30px color-mix(in srgb,var(--c) 40%,transparent)}
.deal.over{--c:var(--psychic);opacity:.86}
.deal.over .t{color:#cfc9e6}
.deal::after{content:"";position:absolute;right:0;top:0;width:23px;height:1.5px;background:var(--c);transform-origin:right;transform:rotate(45deg) translate(1px,7px);box-shadow:0 0 8px var(--c)}
.deal .t{font:500 13.5px/1.35 var(--body);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;padding-right:10px}
.meta{display:flex;flex-wrap:wrap;gap:6px;align-items:center;font:400 10.5px/1.2 var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--mut)}
.badge{display:inline-flex;align-items:center;gap:5px;height:20px;padding:0 7px;font:700 9.5px/1 var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--mut);border:1px solid var(--line);background:rgba(255,255,255,.02)}
.badge.ok{color:var(--grass);border-color:rgba(182,255,26,.4);background:rgba(182,255,26,.07);text-shadow:0 0 8px rgba(182,255,26,.6)}
.badge.bad{color:var(--psychic);border-color:rgba(255,43,214,.45);background:rgba(255,43,214,.08);text-shadow:0 0 8px rgba(255,43,214,.6)}
.badge.warn{color:var(--electric);border-color:rgba(255,230,0,.35);background:rgba(255,230,0,.06)}
.badge.ok::before,.badge.bad::before,.badge.warn::before{content:"";width:5px;height:5px;background:currentColor;box-shadow:0 0 6px currentColor}
.prow{display:flex;align-items:flex-end;justify-content:space-between;gap:10px}
.price{font:700 22px/1 var(--mono);letter-spacing:-.02em;color:#fff}
.pct{margin-top:4px;font:700 10.5px/1 var(--mono);letter-spacing:.08em}.pct.ok{color:var(--grass);text-shadow:0 0 8px rgba(182,255,26,.7)}.pct.bad{color:var(--psychic);text-shadow:0 0 8px rgba(255,43,214,.7)}
.capline{font:400 10.5px/1.6 var(--mono);letter-spacing:.06em;color:var(--mut);text-align:right;text-transform:uppercase}.capline b{color:var(--txt)}
.buy{position:relative;display:flex;align-items:center;justify-content:center;gap:8px;min-height:44px;font:700 11px/1 var(--mono);letter-spacing:.18em;text-transform:uppercase;
 color:#000;background:var(--grass);clip-path:polygon(10px 0,100% 0,100% calc(100% - 10px),calc(100% - 10px) 100%,0 100%,0 10px);box-shadow:0 0 22px rgba(182,255,26,.45);transition:transform .1s,filter .2s}
.buy::before{content:"";position:absolute;inset:0;background:linear-gradient(100deg,transparent 30%,rgba(255,255,255,.55) 50%,transparent 70%);background-size:250% 100%;animation:slide 2.6s linear infinite;mix-blend-mode:overlay}
.buy.ghost{color:var(--water);background:rgba(25,227,255,.06);box-shadow:inset 0 0 0 1px rgba(25,227,255,.35)}.buy.ghost::before{display:none}
.buy svg{width:15px;height:15px}.buy:active{transform:scale(.985);filter:brightness(1.2)}
/* holo foil on the top deal */
#dealList .deal:first-child{background:linear-gradient(var(--plate),var(--deep))}
#dealList .deal:first-child::before{content:"";position:absolute;inset:0;pointer-events:none;background:var(--holo);background-size:300% 300%;opacity:.16;mix-blend-mode:screen;animation:foil 7s ease-in-out infinite alternate}
#dealList .deal:first-child .t::before{content:"TOP PICK ";font:700 9.5px var(--mono);letter-spacing:.2em;background:var(--holo);background-size:200% 100%;-webkit-background-clip:text;background-clip:text;color:transparent;animation:slide 4s linear infinite}
@keyframes foil{0%{background-position:0% 30%;opacity:.12}50%{opacity:.24}100%{background-position:100% 70%;opacity:.14}}
#dealList .deal:first-child>*{position:relative}

/* ---------- panels ---------- */
.panel{position:relative;margin:12px 0;padding:12px 14px;background:rgba(15,14,27,.65);box-shadow:inset 0 0 0 1px var(--line);clip-path:polygon(0 0,calc(100% - 12px) 0,100% 12px,100% 100%,12px 100%,0 calc(100% - 12px))}
summary{min-height:44px;display:flex;align-items:center;gap:8px;cursor:pointer;list-style:none;font:700 11px/1 var(--mono);letter-spacing:.16em;text-transform:uppercase}summary::-webkit-details-marker{display:none}
summary::after{content:"+";margin-left:auto;color:var(--water);font-size:16px;transition:transform .2s}details[open] summary::after{transform:rotate(45deg)}
.rrow{display:grid;grid-template-columns:1fr auto;gap:4px 10px;padding:10px 0;border-top:1px dashed var(--line)}.rrow b{font:500 13px var(--disp);letter-spacing:.06em;text-transform:uppercase}.rrow .muted{grid-column:1/-1;font-size:11.5px}
.muted{color:var(--mut);font:400 11.5px/1.5 var(--body);letter-spacing:0;text-transform:none}
.h2{margin:18px 0 9px;font:700 10.5px/1 var(--mono);letter-spacing:.2em;text-transform:uppercase;color:var(--water);display:flex;align-items:center;gap:8px}
.h2::before{content:"";width:6px;height:6px;background:var(--water);box-shadow:0 0 8px var(--water);transform:rotate(45deg)}
.panel .h2{margin-top:4px}
.empty{padding:26px 16px;text-align:center;color:var(--mut);font:400 11px/1.7 var(--mono);letter-spacing:.08em;text-transform:uppercase;border:1px dashed rgba(25,227,255,.25);background:rgba(25,227,255,.03)}

/* ---------- calendar ---------- */
.months{display:flex;gap:6px;overflow-x:auto;scroll-snap-type:x mandatory;margin:0 0 4px;scrollbar-width:none}.months::-webkit-scrollbar{display:none}
.months a{scroll-snap-align:start;flex:none;min-height:44px;display:flex;align-items:center;padding:0 14px;color:var(--txt);font:700 10.5px/1 var(--mono);letter-spacing:.14em;text-transform:uppercase;border:1px solid var(--line);background:rgba(15,14,27,.6);clip-path:polygon(0 0,calc(100% - 8px) 0,100% 8px,100% 100%,0 100%)}
.mhead{margin:20px 0 10px;font:700 15px/1 var(--disp);letter-spacing:.14em;text-transform:uppercase;display:flex;align-items:center;gap:10px;scroll-margin-top:130px}
.mhead::after{content:"";flex:1;height:1px;background:linear-gradient(90deg,var(--line),transparent)}
.ev{position:relative;display:grid;grid-template-columns:54px 1fr;gap:12px;padding:11px 12px 11px 0;margin-bottom:8px;background:rgba(15,14,27,.55);box-shadow:inset 0 0 0 1px var(--line);clip-path:polygon(0 0,calc(100% - 12px) 0,100% 12px,100% 100%,0 100%)}
.dt{align-self:stretch;text-align:center;padding:6px 0;border-right:1px solid var(--line)}.dt b{display:block;font:700 22px/1.05 var(--mono);color:var(--water);text-shadow:0 0 12px rgba(25,227,255,.5)}.dt span{font:400 9.5px var(--mono);letter-spacing:.16em;text-transform:uppercase;color:var(--mut)}
.ev.release{box-shadow:inset 0 0 0 1px rgba(255,230,0,.3),inset 3px 0 0 var(--electric)}.ev.release .dt b{color:var(--electric);text-shadow:0 0 12px rgba(255,230,0,.55)}
.ev.release::after{content:"";position:absolute;inset:0;background:var(--holo);background-size:300% 100%;opacity:.07;animation:slide 12s linear infinite;pointer-events:none}
.ev.speculative{opacity:.65;box-shadow:inset 0 0 0 1px rgba(255,43,214,.3)}.ev.speculative .dt b{color:var(--psychic)}
.ev .t{font:500 13px/1.35 var(--body)}.ev small{display:block;margin-top:4px;font:400 10.5px/1.45 var(--mono);color:var(--mut);overflow-wrap:anywhere}

/* ---------- feed ---------- */
.srcs{display:flex;gap:5px;flex-wrap:wrap;margin-bottom:10px}
.fi{position:relative;display:grid;grid-template-columns:34px 1fr;gap:11px;padding:11px 12px;color:var(--txt);background:rgba(15,14,27,.55);box-shadow:inset 0 0 0 1px var(--line);clip-path:polygon(0 0,100% 0,100% calc(100% - 10px),calc(100% - 10px) 100%,0 100%);transition:background .15s}
.fi:active{background:rgba(25,227,255,.07)}
.fi .ic{width:34px;height:34px;display:grid;place-items:center;clip-path:polygon(50% 0,100% 25%,100% 75%,50% 100%,0 75%,0 25%);background:rgba(255,255,255,.04)}
.ic.reddit{color:var(--fire);background:rgba(255,90,31,.12)}.ic.youtube{color:var(--psychic);background:rgba(255,43,214,.12)}.ic.social{color:var(--water);background:rgba(25,227,255,.12)}
.fi .ic svg{width:17px;height:17px}.fi .t{font:500 13px/1.38 var(--body);overflow-wrap:anywhere}.fi .meta{margin-top:5px}

/* ---------- watchlist ---------- */
.searchwrap{padding-top:10px}
.cat{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:8px 8px 8px 12px;background:rgba(15,14,27,.55);box-shadow:inset 0 0 0 1px var(--line);clip-path:polygon(0 0,calc(100% - 10px) 0,100% 10px,100% 100%,0 100%)}
.cat .t{font:500 13px/1.3 var(--body)}.cat .muted{font:400 10.5px/1.5 var(--mono);letter-spacing:.04em}
.starbtn{flex:none;width:44px;height:44px;display:grid;place-items:center;cursor:pointer;color:var(--dim);border:0;background:rgba(255,255,255,.03);clip-path:polygon(50% 0,100% 50%,50% 100%,0 50%);transition:.2s}
.starbtn svg{width:17px;height:17px}.starbtn.on{color:var(--electric);background:rgba(255,230,0,.12);filter:drop-shadow(0 0 6px rgba(255,230,0,.6))}.starbtn.on svg{fill:currentColor}

/* ---------- forms / settings ---------- */
.search,input,textarea{width:100%;min-height:44px;padding:11px 12px;color:var(--txt);background:rgba(5,5,10,.7);border:1px solid var(--line);border-radius:0;font:400 13px/1.4 var(--mono);outline:none;transition:border-color .2s,box-shadow .2s}
.search:focus,input:focus,textarea:focus{border-color:var(--water);box-shadow:0 0 0 1px var(--water),0 0 16px rgba(25,227,255,.25)}
input::placeholder,textarea::placeholder{color:var(--dim)}
.form{display:grid;gap:8px;margin-top:6px}
.big{font:700 30px/1 var(--mono);color:var(--grass);text-shadow:0 0 18px rgba(182,255,26,.55)}.big #thVal{font-size:40px}
input[type=range]{-webkit-appearance:none;appearance:none;min-height:44px;padding:0;border:0;background:transparent;box-shadow:none}
input[type=range]::-webkit-slider-runnable-track{height:3px;background:linear-gradient(90deg,var(--grass),var(--electric) 50%,var(--psychic))}
input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;width:22px;height:22px;margin-top:-9.5px;background:#fff;clip-path:polygon(50% 0,100% 50%,50% 100%,0 50%);box-shadow:0 0 12px #fff}
input[type=range]::-moz-range-track{height:3px;background:linear-gradient(90deg,var(--grass),var(--electric) 50%,var(--psychic))}
input[type=range]::-moz-range-thumb{width:18px;height:18px;border:0;background:#fff;border-radius:0;transform:rotate(45deg)}
.tog{display:flex;align-items:center;justify-content:space-between;gap:10px;min-height:46px;border-top:1px dashed var(--line);font:500 12.5px var(--body)}.tog:first-child{border-top:0}
.tog input{appearance:none;-webkit-appearance:none;flex:none;width:46px;height:22px;min-height:0;padding:0;position:relative;cursor:pointer;background:rgba(255,255,255,.05);border:1px solid var(--line);clip-path:polygon(6px 0,100% 0,calc(100% - 6px) 100%,0 100%)}
.tog input::after{content:"";position:absolute;top:3px;left:5px;width:14px;height:14px;background:var(--dim);transition:.2s}
.tog input:checked{border-color:var(--grass);background:rgba(182,255,26,.12)}.tog input:checked::after{left:25px;background:var(--grass);box-shadow:0 0 10px var(--grass)}
/* tog label needs 44px target: whole row is the label */
.btn{width:100%;min-height:44px;margin-top:10px;padding:0 16px;cursor:pointer;border:0;color:var(--water);background:rgba(25,227,255,.07);box-shadow:inset 0 0 0 1px rgba(25,227,255,.4);font:700 10.5px/1 var(--mono);letter-spacing:.18em;text-transform:uppercase;clip-path:polygon(10px 0,100% 0,100% calc(100% - 10px),calc(100% - 10px) 100%,0 100%,0 10px)}
.btn.primary{color:#000;background:var(--holo);background-size:250% 100%;box-shadow:none;animation:slide 6s linear infinite}
.savebar{position:sticky;bottom:calc(var(--navh) + var(--bot) + 10px);z-index:5}
.al{display:flex;justify-content:space-between;gap:10px;padding:9px 0;border-top:1px dashed var(--line);font-size:12.5px}.al:first-child{border-top:0}.al b{font-family:var(--mono);color:var(--grass)}

/* ---------- FAB, PTR, toast ---------- */
.fab{position:fixed;z-index:25;right:max(14px,env(safe-area-inset-right));bottom:calc(var(--navh) + var(--bot) + 14px);height:48px;padding:0 18px 0 14px;border:0;cursor:pointer;display:flex;align-items:center;gap:8px;
 color:#000;background:var(--holo);background-size:250% 100%;animation:slide 5s linear infinite;font:700 10.5px/1 var(--mono);letter-spacing:.18em;text-transform:uppercase;
 clip-path:polygon(12px 0,100% 0,100% calc(100% - 12px),calc(100% - 12px) 100%,0 100%,0 12px);filter:drop-shadow(0 0 14px rgba(255,43,214,.55));transition:transform .25s}
.fab svg{width:17px;height:17px;stroke-width:2.2}.fab.hide{transform:translateY(160px)}.fab:active{transform:scale(.96)}
.fab.busy svg,.ptr.busy svg{animation:spin .9s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}
.ptr{position:fixed;left:0;right:0;top:calc(62px + var(--top));z-index:15;display:flex;justify-content:center;align-items:center;gap:8px;opacity:0;transform:translateY(-30px);pointer-events:none;color:var(--water);font:700 10px var(--mono);letter-spacing:.18em;text-transform:uppercase;text-shadow:0 0 8px var(--water)}
.ptr.show{opacity:1}.ptr svg{width:16px;height:16px}
.toast{position:fixed;left:50%;bottom:calc(var(--navh) + var(--bot) + 76px);z-index:40;max-width:calc(100% - 28px);transform:translate(-50%,16px);opacity:0;pointer-events:none;transition:.25s;
 padding:10px 14px;color:var(--grass);background:rgba(5,5,10,.94);box-shadow:inset 0 0 0 1px rgba(182,255,26,.45),0 0 24px rgba(182,255,26,.2);font:400 11px/1.4 var(--mono);letter-spacing:.06em}
.toast::before{content:"> "}.toast.show{opacity:1;transform:translate(-50%,0)}

/* ---------- bottom nav ---------- */
.tabs{position:fixed;z-index:30;left:0;right:0;bottom:0;display:grid;grid-template-columns:repeat(5,1fr);height:calc(var(--navh) + var(--bot));
 padding:0 max(4px,env(safe-area-inset-right)) var(--bot) max(4px,env(safe-area-inset-left));background:linear-gradient(rgba(8,7,16,.86),rgba(5,5,10,.97));backdrop-filter:blur(18px) saturate(1.6);-webkit-backdrop-filter:blur(18px) saturate(1.6)}
.tabs::before{content:"";position:absolute;left:0;right:0;top:0;height:1px;background:var(--holo);background-size:200% 100%;animation:slide 8s linear infinite;opacity:.8}
.tabs button{position:relative;min-height:54px;border:0;background:none;cursor:pointer;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;color:var(--dim);font:700 9px/1 var(--mono);letter-spacing:.16em;text-transform:uppercase;transition:color .2s}
.tabs button svg{width:20px;height:20px;transition:transform .2s,filter .2s}
.tabs button.active{color:var(--water)}.tabs button.active svg{transform:translateY(-1px);filter:drop-shadow(0 0 6px var(--water))}
.tabs button.active::before{content:"";position:absolute;top:0;left:22%;right:22%;height:2px;background:var(--water);box-shadow:0 0 12px 1px var(--water),0 0 30px 2px rgba(25,227,255,.5)}
.tabs button.active::after{content:"";position:absolute;top:2px;left:15%;right:15%;height:26px;background:radial-gradient(50% 100% at 50% 0,rgba(25,227,255,.22),transparent);pointer-events:none}

@media (min-width:900px){
 body{font-size:14px}main{max-width:1060px}.grid{grid-template-columns:1fr 1fr}
 .tabs{left:50%;right:auto;bottom:14px;width:520px;height:var(--navh);transform:translateX(-50%);clip-path:polygon(16px 0,100% 0,100% calc(100% - 16px),calc(100% - 16px) 100%,0 100%,0 16px)}
 .fab{right:calc(50% - 510px)}#settings{max-width:620px;margin:0 auto}}
@media (prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important}}

/* Jev verification badge: holo outline */
.badge.jev{position:relative;color:#fff;border:0;background:linear-gradient(var(--deep),var(--deep)) padding-box,var(--holo) border-box;border:1px solid transparent;background-size:100% 100%,250% 100%;animation:slide 6s linear infinite;text-shadow:0 0 6px rgba(25,227,255,.6)}
.badge.jev::before{content:"";width:5px;height:5px;background:var(--grass);box-shadow:0 0 6px var(--grass);clip-path:polygon(50% 0,100% 50%,50% 100%,0 50%)}
.badge.jev.low{color:var(--mut);background:rgba(255,255,255,.02);border:1px dashed var(--line);animation:none;text-shadow:none}.badge.jev.low::before{background:var(--electric);box-shadow:none}

.badge.local{color:#000;background:var(--electric);border-color:var(--electric);box-shadow:0 0 10px rgba(255,230,0,.45);text-shadow:none}
.badge.local::before{content:"";width:5px;height:5px;background:#000;clip-path:polygon(50% 0,100% 50%,50% 100%,0 50%)}
.orig{margin-top:3px;font:400 9.5px/1.3 var(--mono);letter-spacing:.06em;color:var(--electric);text-transform:uppercase}

.badge.pre{color:#c9a7ff;border-color:rgba(176,124,255,.6);box-shadow:0 0 8px rgba(176,124,255,.35)}
.dlv{font:500 10px/1.3 var(--mono);letter-spacing:.04em;color:var(--muted,#8a8fa8);margin-top:3px;text-transform:uppercase}

.steps{margin:0 0 10px 16px;padding:0;font-size:12px;line-height:1.6}
.topic{display:flex;gap:8px;align-items:center;margin:6px 0}
.topic code{flex:1;min-width:0;overflow-wrap:anywhere;font:500 12px var(--mono);color:#7df9ff;padding:10px;border:1px solid rgba(125,249,255,.35);background:rgba(125,249,255,.05)}
.btn.sm{min-height:44px;padding:0 14px}
.row2{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:8px}
#ntfyLink{display:block;font-size:11px;overflow-wrap:anywhere;margin-bottom:6px}
.topic .btn{flex:0 0 auto;width:auto}.topic code{flex:1 1 auto}
