[hidden]{display:none!important}
/* Desk 4 · Apple-like minimal, aurora glow, glass cards. System font only (no external fonts/CDNs).
   Animations touch only transform/opacity. html.nomo (setting or prefers-reduced-motion) turns them off. */
:root{
  --bg:#f5f5f7;--text:#0b0b10;--sec:rgba(28,28,40,.70);--ter:rgba(28,28,40,.50);
  --sep:rgba(20,20,40,.09);--line:rgba(20,20,40,.08);
  --glass:rgba(255,255,255,.62);--glass2:rgba(255,255,255,.82);--glass-b:rgba(20,20,40,.07);
  --fill:rgba(118,118,140,.12);--fill2:rgba(118,118,140,.2);
  --shadow:0 1px 1px rgba(10,10,30,.03),0 12px 32px rgba(40,30,90,.07);
  --green:#0f8a4a;--red:#d52b22;--orange:#b86e00;--blue:#2563eb;--cyan:#0b7f99;--yellow:#9a7400;--pink:#c4245f;
  --violet:#6d3df5;--accent:#5b3fe0;--on-accent:#fff;
  --green-bg:rgba(15,138,74,.11);--red-bg:rgba(213,43,34,.10);--orange-bg:rgba(184,110,0,.12);--violet-bg:rgba(109,61,245,.10);
  --glow:rgba(109,61,245,.28);--glow-up:rgba(16,185,129,.30);--glow-down:rgba(244,63,94,.22);
  --a1:rgba(139,92,246,.40);--a2:rgba(59,130,246,.30);--a3:rgba(34,211,238,.28);--aup:rgba(52,211,153,.30);--adown:rgba(251,113,133,.24);
  --grad:linear-gradient(135deg,#6d3df5 0%,#3b6cf6 55%,#0e9fc0 100%);
  --display:-apple-system,BlinkMacSystemFont,"SF Pro Display","Helvetica Neue",system-ui,sans-serif;
  --textf:-apple-system,BlinkMacSystemFont,"SF Pro Text","Helvetica Neue",system-ui,sans-serif;
  --mono:ui-monospace,"SF Mono",Menlo,monospace;
  --g:20px;--r:24px;--ease:cubic-bezier(.2,.8,.2,1);--spring:cubic-bezier(.34,1.4,.5,1);
  color-scheme:light;
}
:root[data-theme=dark]{
  --bg:#05050a;--text:#f5f5f7;--sec:rgba(235,235,245,.70);--ter:rgba(235,235,245,.48);
  --sep:rgba(255,255,255,.08);--line:rgba(255,255,255,.08);
  --glass:rgba(20,20,30,.50);--glass2:rgba(28,28,40,.78);--glass-b:rgba(255,255,255,.09);
  --fill:rgba(140,140,170,.16);--fill2:rgba(140,140,170,.26);
  --shadow:0 1px 0 rgba(255,255,255,.05) inset,0 18px 40px rgba(0,0,0,.35);
  --green:#34d399;--red:#ff5c64;--orange:#ffb340;--blue:#60a5fa;--cyan:#67e8f9;--yellow:#fde047;--pink:#f9a8d4;
  --violet:#a78bfa;--accent:#a78bfa;--on-accent:#fff;
  --green-bg:rgba(52,211,153,.14);--red-bg:rgba(255,92,100,.15);--orange-bg:rgba(255,179,64,.15);--violet-bg:rgba(167,139,250,.15);
  --glow:rgba(139,92,246,.55);--glow-up:rgba(52,211,153,.45);--glow-down:rgba(251,113,133,.35);
  --a1:rgba(124,58,237,.55);--a2:rgba(37,99,235,.45);--a3:rgba(6,182,212,.38);--aup:rgba(16,185,129,.34);--adown:rgba(244,63,94,.28);
  --grad:linear-gradient(135deg,#7c4dff 0%,#3b6cf6 55%,#0891b2 100%);
  color-scheme:dark;
}
@media (prefers-color-scheme:dark){
  :root:not([data-theme=light]){
    --bg:#05050a;--text:#f5f5f7;--sec:rgba(235,235,245,.70);--ter:rgba(235,235,245,.48);
    --sep:rgba(255,255,255,.08);--line:rgba(255,255,255,.08);
    --glass:rgba(20,20,30,.50);--glass2:rgba(28,28,40,.78);--glass-b:rgba(255,255,255,.09);
    --fill:rgba(140,140,170,.16);--fill2:rgba(140,140,170,.26);
    --shadow:0 1px 0 rgba(255,255,255,.05) inset,0 18px 40px rgba(0,0,0,.35);
    --green:#34d399;--red:#ff5c64;--orange:#ffb340;--blue:#60a5fa;--cyan:#67e8f9;--yellow:#fde047;--pink:#f9a8d4;
    --violet:#a78bfa;--accent:#a78bfa;--on-accent:#fff;
    --green-bg:rgba(52,211,153,.14);--red-bg:rgba(255,92,100,.15);--orange-bg:rgba(255,179,64,.15);--violet-bg:rgba(167,139,250,.15);
    --glow:rgba(139,92,246,.55);--glow-up:rgba(52,211,153,.45);--glow-down:rgba(251,113,133,.35);
    --a1:rgba(124,58,237,.55);--a2:rgba(37,99,235,.45);--a3:rgba(6,182,212,.38);--aup:rgba(16,185,129,.34);--adown:rgba(244,63,94,.28);
    --grad:linear-gradient(135deg,#7c4dff 0%,#3b6cf6 55%,#0891b2 100%);
    color-scheme:dark;
  }
}
*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}
html{background:var(--bg)}
html,body{margin:0;color:var(--text);font-family:var(--textf);font-size:17px;line-height:1.35;
  font-variant-numeric:tabular-nums;-webkit-font-smoothing:antialiased;-webkit-text-size-adjust:100%}
body{min-height:100vh;overscroll-behavior-y:none;background:transparent}
.num{font-variant-numeric:tabular-nums}
a{color:inherit;text-decoration:none}
button{font:inherit;color:inherit;background:none;border:0;padding:0;cursor:pointer;-webkit-user-select:none;user-select:none}
button:focus-visible,input:focus-visible,select:focus-visible{outline:2px solid var(--accent);outline-offset:2px}

/* aurora: big soft radial blobs, only transform animates (GPU) */
#aurora{position:fixed;inset:0;z-index:0;overflow:hidden;pointer-events:none;background:var(--bg)}
#aurora i{position:absolute;display:block;border-radius:50%;will-change:transform}
#aurora .b1{width:115vmax;height:115vmax;left:-55vmax;top:-70vmax;background:radial-gradient(closest-side,var(--a1),transparent 72%);animation:drift1 26s ease-in-out infinite alternate}
#aurora .b2{width:100vmax;height:100vmax;right:-60vmax;top:-55vmax;background:radial-gradient(closest-side,var(--a2),transparent 72%);animation:drift2 31s ease-in-out infinite alternate}
#aurora .b3{width:90vmax;height:90vmax;left:-20vmax;top:-30vmax;background:radial-gradient(closest-side,var(--a3),transparent 70%);animation:drift3 37s ease-in-out infinite alternate;opacity:.8}
#aurora .up,#aurora .down{width:110vmax;height:80vmax;left:-25vmax;top:-45vmax;opacity:0;transition:opacity 1.6s var(--ease)}
#aurora .up{background:radial-gradient(closest-side,var(--aup),transparent 72%)}
#aurora .down{background:radial-gradient(closest-side,var(--adown),transparent 72%)}
:root[data-mood=up] #aurora .up{opacity:1}
:root[data-mood=down] #aurora .down{opacity:1}
#aurora .fade{left:0;right:0;bottom:0;top:46vh;border-radius:0;background:linear-gradient(to bottom,transparent,var(--bg) 70%);will-change:auto}
@keyframes drift1{from{transform:translate3d(0,0,0) rotate(0)}to{transform:translate3d(18vmax,10vmax,0) rotate(25deg)}}
@keyframes drift2{from{transform:translate3d(0,0,0)}to{transform:translate3d(-16vmax,14vmax,0)}}
@keyframes drift3{from{transform:translate3d(0,0,0) scale(1)}to{transform:translate3d(22vmax,-6vmax,0) scale(1.15)}}

#screens{position:relative;z-index:1}
.screen{display:none;padding:calc(env(safe-area-inset-top) + 10px) calc(var(--g) + env(safe-area-inset-right)) calc(env(safe-area-inset-bottom) + 118px) calc(var(--g) + env(safe-area-inset-left));min-height:100vh;max-width:640px;margin:0 auto}
.screen.active{display:block;animation:screenIn .5s var(--ease)}
@keyframes screenIn{from{opacity:0;transform:translate3d(0,14px,0) scale(.992)}to{opacity:1;transform:none}}
@keyframes rise{from{opacity:0;transform:translate3d(0,12px,0)}to{opacity:1;transform:none}}
@keyframes fadeIn{from{opacity:0}to{opacity:1}}

/* scroll reveal */
.rv{opacity:0;transform:translate3d(0,22px,0) scale(.985)}
.rv.in{opacity:1;transform:none;transition:opacity .7s var(--ease),transform .8s var(--ease);transition-delay:calc(var(--i,0) * 70ms)}
.rv.now{opacity:1;transform:none;transition:none}

/* glass surfaces with 1px lines */
.glass,.card,.rows,.tile,.acard,.big-card,.state-box,.stats div{background:var(--glass);border:1px solid var(--glass-b);
  -webkit-backdrop-filter:blur(24px) saturate(160%);backdrop-filter:blur(24px) saturate(160%);box-shadow:var(--shadow)}

/* intro */
#intro{position:fixed;inset:0;z-index:60;display:none;flex-direction:column;align-items:center;justify-content:center;gap:14px;background:var(--bg);
  padding:env(safe-area-inset-top) 24px env(safe-area-inset-bottom);transition:opacity .45s var(--ease);overflow:hidden}
html.intro #intro{display:flex}
#intro.out{opacity:0;pointer-events:none}
#intro .ia{position:absolute;inset:0;pointer-events:none}
#intro .ia i{position:absolute;left:50%;top:42%;width:120vmin;height:120vmin;margin:-60vmin 0 0 -60vmin;border-radius:50%;
  background:radial-gradient(closest-side,var(--a1),transparent 70%);opacity:0;transform:scale(.4);animation:introOrb 1.6s var(--ease) forwards}
#intro .ia i+i{background:radial-gradient(closest-side,var(--a3),transparent 70%);animation-delay:.12s;margin-left:-40vmin}
@keyframes introOrb{to{opacity:1;transform:scale(1)}}
.in-logo{position:relative;display:flex;align-items:center;gap:12px;font-family:var(--display);font-size:44px;font-weight:700;letter-spacing:-.03em;
  opacity:0;transform:translate3d(0,10px,0) scale(.96);animation:logoIn .7s var(--ease) .05s forwards}
.in-logo .mark{width:40px;height:40px;border-radius:12px;background:var(--grad);box-shadow:0 8px 30px var(--glow)}
@keyframes logoIn{to{opacity:1;transform:none}}
.in-tag{position:relative;font-size:15px;color:var(--sec);opacity:0;animation:fadeIn .6s var(--ease) .35s forwards}
.in-bal{position:relative;font-family:var(--display);font-size:58px;font-weight:700;letter-spacing:-.04em;margin-top:18px;min-height:64px;
  text-shadow:0 0 44px var(--glow);opacity:0;transition:opacity .4s var(--ease)}
.in-bal.on{opacity:1}
.in-pl{position:relative;min-height:32px;opacity:0;transform:translate3d(0,8px,0);transition:opacity .4s var(--ease),transform .5s var(--spring)}
.in-pl.on{opacity:1;transform:none}
.in-skip{position:absolute;bottom:calc(env(safe-area-inset-bottom) + 34px);left:0;right:0;text-align:center;color:var(--ter);font-size:13px;opacity:0;animation:fadeIn .5s ease .6s forwards}

/* boot + state boxes (never a blank page) */
.boot{min-height:70vh;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:18px}
.boot-logo{font-family:var(--display);font-size:34px;font-weight:700;letter-spacing:-.5px}
.boot-spin{width:22px;height:22px;border-radius:50%;border:2.5px solid var(--fill2);border-top-color:var(--accent);animation:spin .9s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}
.state-box{margin:28px 0;padding:34px 22px;text-align:center;border-radius:var(--r);animation:rise .5s var(--ease)}
.state-ic{width:60px;height:60px;margin:0 auto 14px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:26px;font-weight:700;background:var(--fill);color:var(--sec)}
.state-ic.red{background:var(--red-bg);color:var(--red)}
.state-t{font-family:var(--display);font-size:22px;font-weight:700;letter-spacing:-.3px}
.state-s{color:var(--sec);font-size:15px;margin-top:6px}
.state-d{color:var(--ter);font-size:12px;margin-top:10px;font-family:var(--mono);word-break:break-word}
.state-box .btn{margin-top:20px}
.state-box .btn+.btn{margin-top:10px}

/* setup */
.setup{min-height:78vh;display:flex;flex-direction:column;justify-content:center}
.setup .mark{width:52px;height:52px;border-radius:16px;background:var(--grad);box-shadow:0 10px 34px var(--glow);margin-bottom:22px}
.setup h1{font-family:var(--display);font-size:38px;font-weight:700;letter-spacing:-.03em;margin:0 0 8px}
.setup p{color:var(--sec);margin:0 0 22px;font-size:16px}
.field{width:100%;height:54px;border-radius:16px;border:1px solid var(--glass-b);background:var(--glass2);color:var(--text);padding:0 16px;font:inherit;font-size:17px;
  -webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px)}
.field::placeholder{color:var(--ter)}
.setup .hint{color:var(--sec);font-size:13px;text-align:center;margin-top:14px}
.lang-inline{display:flex;flex-wrap:wrap;gap:8px;justify-content:center;margin-top:26px}
.lang-inline button{min-height:44px;padding:0 15px;border-radius:22px;background:var(--fill);font-size:15px;transition:transform .15s var(--ease)}
.lang-inline button:active{transform:scale(.94)}
.lang-inline button.on{background:var(--text);color:var(--bg)}

/* header */
.top{display:flex;align-items:center;gap:8px;min-height:48px}
.top .title{font-family:var(--display);font-weight:700;font-size:22px;letter-spacing:-.02em;flex:1;text-align:left;min-height:44px;display:flex;align-items:center;gap:10px}
.top .title .mark{width:26px;height:26px;border-radius:8px;background:var(--grad);box-shadow:0 4px 16px var(--glow)}
.icon-btn{width:44px;height:44px;border-radius:22px;display:flex;align-items:center;justify-content:center;position:relative;background:var(--glass);border:1px solid var(--glass-b);
  -webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);transition:transform .2s var(--spring)}
.icon-btn:active{transform:scale(.88)}
.icon-btn svg{width:20px;height:20px;stroke:var(--text);fill:none;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}
.icon-btn .lang-code{font-size:13px;font-weight:700;letter-spacing:.3px}
.dot{position:absolute;top:9px;right:9px;width:9px;height:9px;border-radius:5px;background:var(--red);box-shadow:0 0 0 2px var(--bg)}
.search-wrap{overflow:hidden;max-height:0;transition:max-height .3s var(--ease),margin .3s var(--ease)}
.search-wrap.open{max-height:64px;margin-top:8px}
.search{width:100%;height:46px;border-radius:14px;background:var(--glass2);border:1px solid var(--glass-b);color:var(--text);padding:0 14px;font:inherit;font-size:17px}
.search::placeholder{color:var(--ter)}

/* status chips */
.chips{display:flex;flex-wrap:wrap;gap:8px;margin-top:8px}
.chip{display:inline-flex;align-items:center;gap:7px;height:28px;padding:0 12px;border-radius:14px;background:var(--glass);border:1px solid var(--glass-b);font-size:13px;font-weight:600;color:var(--sec);white-space:nowrap;
  -webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px)}
.chip .sd{position:relative;width:7px;height:7px;border-radius:4px;background:var(--green)}
.chip.on .sd::after{content:"";position:absolute;inset:-4px;border-radius:50%;border:1.5px solid var(--green);opacity:0;animation:livePulse 1.8s ease-out infinite}
@keyframes livePulse{0%{transform:scale(.5);opacity:.9}100%{transform:scale(2.2);opacity:0}}
.chip.on{color:var(--text)}
.chip.paused .sd{background:var(--orange)}
.chip.stale{color:var(--orange);background:var(--orange-bg)}
.chip.stale .sd{background:var(--orange)}
.pill{display:inline-flex;align-items:center;height:24px;padding:0 10px;border-radius:12px;font-size:12px;font-weight:700;letter-spacing:.4px}
.paper{background:var(--orange-bg);color:var(--orange)}
.live{background:var(--red-bg);color:var(--red)}
.mult{background:var(--fill);color:var(--sec)}
.chip.paper{color:var(--orange);background:var(--orange-bg);letter-spacing:.4px}

/* hero */
.hero{margin-top:26px;padding:6px 2px 4px;position:relative;isolation:isolate}
.hero .lbl{font-size:13px;color:var(--sec);font-weight:600;letter-spacing:.08em;text-transform:uppercase}
.balance{font-family:var(--display);font-size:68px;font-weight:700;letter-spacing:-.045em;line-height:1.04;display:flex;margin-top:6px;white-space:nowrap;
  }
.hero::before{content:"";position:absolute;left:-10%;top:8px;width:85%;height:120px;border-radius:50%;background:radial-gradient(closest-side,var(--glow),transparent);opacity:.55;pointer-events:none;z-index:-1;transition:opacity .8s}
:root[data-mood=up] .hero::before{background:radial-gradient(closest-side,var(--glow-up),transparent)}
:root[data-mood=down] .hero::before{background:radial-gradient(closest-side,var(--glow-down),transparent)}
.hero.win .balance{animation:winGlow 2.2s var(--ease)}
@keyframes winGlow{0%,100%{transform:none}30%{transform:scale(1.03)}}
.odo-d{display:inline-block;height:1.05em;overflow:hidden;position:relative}
.odo-s{display:block;transition:transform .8s var(--ease)}
.odo-s span{display:block;height:1.05em}
.sub-row{display:flex;gap:10px;align-items:center;margin-top:10px;font-size:16px;font-weight:600;flex-wrap:wrap}
.sub-row .sec{font-weight:400}
.plpill{display:inline-flex;align-items:center;gap:6px;height:32px;padding:0 13px;border-radius:16px;background:var(--fill);font-weight:650}
.plpill.up{background:var(--green-bg)}.plpill.down{background:var(--red-bg)}
.up{color:var(--green)}.down{color:var(--red)}.sec{color:var(--sec)}.ter{color:var(--ter)}
.mono{font-family:var(--mono);font-size:13px}

/* cards */
.card{border-radius:var(--r)}
.chart-card{margin-top:22px;padding:8px 0 6px;overflow:hidden}
.chart-wrap{position:relative;height:210px}
.chart-wrap canvas{width:100%;height:100%;display:block}
.ranges{display:flex;gap:2px;margin:4px 10px 6px;padding:3px;border-radius:14px;background:var(--fill)}
.ranges button{flex:1;min-height:36px;font-size:13px;font-weight:600;color:var(--sec);border-radius:11px;transition:background .25s,color .25s,transform .15s var(--ease)}
.ranges button:active{transform:scale(.94)}
.ranges button.on{color:var(--text);background:var(--glass2);box-shadow:0 1px 3px rgba(0,0,0,.14)}
h2{font-family:var(--display);font-size:22px;font-weight:700;letter-spacing:-.02em;margin:34px 0 12px;display:flex;justify-content:space-between;align-items:center;gap:8px}
h2 .cnt{font-size:15px;color:var(--sec);font-weight:500;margin-left:6px;letter-spacing:0}
h2>span:first-child{min-width:0}
h1.page{font-family:var(--display);font-size:38px;font-weight:700;letter-spacing:-.03em;margin:10px 0 16px}
h2 .link,.link{font-size:17px;font-weight:500;color:var(--accent);min-height:44px;min-width:44px;display:inline-flex;align-items:center;justify-content:flex-end;letter-spacing:0;flex:0 0 auto}

/* scanner tiles */
.tiles{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.tile{padding:16px;border-radius:20px;position:relative;overflow:hidden}
.tile b{display:block;font-family:var(--display);font-size:32px;font-weight:700;letter-spacing:-.04em;line-height:1.1}
.tile span{font-size:13px;color:var(--sec)}
.tile:nth-child(1) b{color:var(--violet)}

/* positions */
.pos{padding:16px 16px 16px 18px;margin-bottom:12px;display:block;width:100%;text-align:left;border-radius:var(--r);position:relative;overflow:hidden;transition:transform .2s var(--spring)}
.pos:active{transform:scale(.975)}
.pos .hd{display:flex;align-items:center;gap:10px}
.pos .nm{font-size:19px;font-weight:600;flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.pos .pct{font-family:var(--display);font-size:24px;font-weight:700;letter-spacing:-.03em}
.pos .meta{display:flex;justify-content:space-between;color:var(--sec);font-size:14px;margin-top:4px;gap:8px}
.pring{position:relative;width:12px;height:12px;flex:0 0 auto;border-radius:50%;background:var(--green)}
.pring.down{background:var(--red)}
.pring::before,.pring::after{content:"";position:absolute;inset:0;border-radius:50%;border:2px solid currentColor;color:var(--green);opacity:0;animation:ring 2.4s ease-out infinite}
.pring.down::before,.pring.down::after{color:var(--red)}
.pring::after{animation-delay:1.2s}
@keyframes ring{0%{transform:scale(1);opacity:.7}100%{transform:scale(3.2);opacity:0}}
.hold{margin-top:12px}
.hold .bar{margin:6px 0 0}
.hold .t{font-size:13px;color:var(--sec)}

/* watch list (Beobachtung) */
.wrow{display:block;width:100%;text-align:left;padding:14px 16px;border-bottom:1px solid var(--sep);transition:background .15s}
.wrow:last-child{border-bottom:0}
button.wrow:active{background:var(--fill)}
.wrow .hd{display:flex;align-items:baseline;gap:8px}
.wrow .nm{font-size:16px;font-weight:600;flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.wrow .px{font-size:15px;font-weight:600;white-space:nowrap}
.wrow .meta{font-size:13px;color:var(--sec);margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.range{position:relative;height:6px;border-radius:3px;margin:12px 0 4px;background:linear-gradient(90deg,var(--red-bg),var(--fill2) 50%,var(--green-bg))}
.range i{position:absolute;top:50%;width:14px;height:14px;margin:-7px 0 0 -7px;border-radius:50%;background:var(--text);box-shadow:0 0 0 3px var(--bg),0 0 14px var(--glow)}
.range-l{display:flex;justify-content:space-between;font-size:11px;color:var(--sec);gap:8px}
.need{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}
.need .tp{white-space:normal}
.wlong{list-style:none;margin:10px 0 0;padding:0;font-size:14px;color:var(--sec)}
.wlong li{display:flex;gap:8px;padding:3px 0}
.wlong li::before{content:"";flex:0 0 auto;width:6px;height:6px;border-radius:3px;margin-top:7px;background:var(--orange)}
.wlong li.ok::before{background:var(--green)}

/* agents carousel */
.carousel{display:flex;gap:12px;overflow-x:auto;scroll-snap-type:x mandatory;margin:0 calc(-1 * var(--g));padding:4px var(--g) 18px;scrollbar-width:none;scroll-padding:0 var(--g)}
.carousel::-webkit-scrollbar{display:none}
.acard{flex:0 0 auto;width:min(78vw,340px);min-height:250px;border-radius:var(--r);scroll-snap-align:start;padding:18px;display:flex;flex-direction:column;overflow:hidden}
.acard .name{font-size:14px;color:var(--sec);display:flex;align-items:center;gap:8px;font-weight:600}
.acard .role{font-size:13px;color:var(--sec);margin-top:2px}
.acard .big{font-family:var(--display);font-size:28px;font-weight:700;letter-spacing:-.03em;margin:6px 0 10px}
.status-dot{width:8px;height:8px;border-radius:4px;background:var(--green);display:inline-block;flex:0 0 auto;box-shadow:0 0 10px var(--green)}
.status-dot.off{background:var(--orange);box-shadow:none}
.feed{list-style:none;margin:0;padding:0;font-size:14px;flex:1;overflow:hidden}
.feed li{display:flex;justify-content:space-between;gap:8px;padding:6px 0;border-bottom:1px solid var(--sep)}
.feed li:last-child{border-bottom:0}
.feed li span:first-child{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.feed li.kill{color:var(--ter)}
.feed li.kill .n{text-decoration:line-through;text-decoration-color:var(--ter)}
.feed li .r{color:var(--sec);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:55%}
.strips{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;margin:6px 0 12px}
.strip{height:30px;border-radius:9px;background:var(--fill);display:flex;align-items:center;justify-content:center;font-size:12px;color:var(--sec);font-weight:600}
.strip.ok{background:var(--green-bg);color:var(--green)}
.strip.bad{background:var(--red-bg);color:var(--red)}
.ring{width:128px;height:128px;align-self:center}
.bar{height:6px;border-radius:3px;background:var(--fill);overflow:hidden;margin:12px 0 6px}
.bar i{display:block;height:100%;background:var(--grad);width:0;border-radius:3px;transition:width .6s var(--ease)}
.bar.green i{background:var(--green)}
.pills{display:flex;gap:6px;flex-wrap:wrap;margin-top:auto;padding-top:10px}
.tp{font-size:12px;font-weight:600;padding:5px 10px;border-radius:10px;background:var(--fill);color:var(--sec);white-space:nowrap}
.tp.r{color:var(--red);background:var(--red-bg)}.tp.g{color:var(--green);background:var(--green-bg)}.tp.o{color:var(--orange);background:var(--orange-bg)}.tp.v{color:var(--violet);background:var(--violet-bg)}

/* list rows */
.rows{border-radius:20px;overflow:hidden}
.row{display:flex;align-items:center;gap:12px;min-height:60px;padding:10px 16px;border-bottom:1px solid var(--sep);width:100%;text-align:left;background:none;transition:background .15s}
button.row:active{background:var(--fill)}
.row:last-child{border-bottom:0}
.row .ic{width:36px;height:36px;border-radius:18px;flex:0 0 auto;display:flex;align-items:center;justify-content:center;font-size:15px;font-weight:700;background:var(--fill);color:var(--sec)}
.row .ic.buy{background:var(--violet-bg);color:var(--violet)}
.row .ic.win{background:var(--green-bg);color:var(--green)}
.row .ic.loss{background:var(--red-bg);color:var(--red)}
.row .main{flex:1;min-width:0}
.row .t{font-size:16px;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.row .s{font-size:14px;color:var(--sec);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.row .v{text-align:right;font-size:16px;font-weight:600;white-space:nowrap}
.row .v small{display:block;font-size:13px;color:var(--sec);font-weight:400}
.row select{appearance:none;-webkit-appearance:none;background:none;border:0;color:var(--sec);font:inherit;font-size:16px;text-align:right;min-height:44px;padding:0 4px}
.seg{display:flex;gap:2px;padding:3px;border-radius:12px;background:var(--fill);flex:0 0 auto}
.seg button{min-height:38px;min-width:44px;padding:0 10px;border-radius:9px;font-size:14px;font-weight:600;color:var(--sec);transition:background .2s,color .2s}
.seg button.on{background:var(--glass2);color:var(--text);box-shadow:0 1px 3px rgba(0,0,0,.14)}
.chev{color:var(--ter);font-size:20px}
.big-card{border-radius:var(--r);padding:16px;margin-bottom:14px}
.big-card .hd{display:flex;align-items:center;gap:10px;min-height:44px}
.big-card .hd .nm{font-size:20px;font-weight:600;flex:1}
.big-card .hd .nm small{display:block;font-size:13px;color:var(--sec);font-weight:400}
.switch{width:51px;height:31px;border-radius:16px;background:var(--fill2);position:relative;flex:0 0 auto;transition:background .25s}
.switch::after{content:"";position:absolute;top:2px;left:2px;width:27px;height:27px;border-radius:14px;background:#fff;box-shadow:0 2px 6px rgba(0,0,0,.2);transition:transform .3s var(--spring)}
.switch.on{background:var(--green)}.switch.on::after{transform:translateX(20px)}
.switch[aria-disabled=true]{opacity:.45}
.tapwrap{min-width:51px;min-height:44px;display:flex;align-items:center}
.dec .row{min-height:48px;padding:8px 0;border-bottom:1px solid var(--sep)}
.dec .row:last-child{border-bottom:0}
.oc{display:flex;flex-wrap:wrap;gap:4px;margin-top:4px}
.oc .tp{font-size:11px;padding:3px 8px}
.btn{display:flex;align-items:center;justify-content:center;width:100%;min-height:52px;border-radius:18px;background:var(--grad);color:var(--on-accent);font-weight:650;font-size:17px;margin-top:16px;
  box-shadow:0 10px 28px var(--glow);transition:transform .2s var(--spring),opacity .2s}
.btn:active{transform:scale(.96);opacity:.9}
.btn.red{background:var(--red);color:#fff;box-shadow:none}.btn.ghost{background:var(--fill);color:var(--text);box-shadow:none}
.btn.inline{width:auto;padding:0 26px;display:inline-flex}

/* sheets */
.sheet{position:fixed;inset:0;background:var(--bg);overflow-y:auto;-webkit-overflow-scrolling:touch;z-index:20;
  padding:calc(env(safe-area-inset-top) + 8px) calc(var(--g) + env(safe-area-inset-right)) calc(env(safe-area-inset-bottom) + 28px) calc(var(--g) + env(safe-area-inset-left));animation:sheetIn .4s var(--ease)}
@keyframes sheetIn{from{transform:translate3d(0,28px,0);opacity:0}to{transform:none;opacity:1}}
.sheet>*{max-width:640px;margin-left:auto;margin-right:auto}
.back{min-width:44px;min-height:44px;display:flex;align-items:center;color:var(--accent);font-size:17px;gap:2px}
.coin-h{display:flex;align-items:center;gap:8px;margin-top:6px}
.coin-h .nm{font-family:var(--display);font-size:30px;font-weight:700;letter-spacing:-.03em;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.shield{display:inline-flex;align-items:center;gap:4px;height:22px;padding:0 8px;border-radius:11px;background:var(--green-bg);color:var(--green);font-size:12px;font-weight:600}
.price{font-family:var(--display);font-size:46px;font-weight:700;letter-spacing:-.04em;margin-top:10px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.stats{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:16px}
.stats div{padding:14px 16px;border-radius:18px}
.stats span{font-size:13px}
.stats b{display:block;font-size:19px;font-weight:700;margin-top:2px}
.discs{position:relative;display:flex;flex-direction:column;align-items:center;gap:6px;margin:22px 0}
.disc{width:84%;height:36px;border-radius:18px;background:var(--fill);display:flex;align-items:center;justify-content:center;font-size:13px;color:var(--sec);font-weight:600;transition:background .2s,color .2s,box-shadow .2s;position:relative}
.disc.ok{background:var(--green-bg);color:var(--green)}
.disc.bad{background:var(--red-bg);color:var(--red)}
.disc.beam{box-shadow:inset 0 0 0 2px var(--accent);color:var(--accent)}
.verdict{font-family:var(--display);font-size:22px;font-weight:700;margin-top:18px}
.lang-list .row{min-height:52px}
.check{color:var(--accent);font-weight:700;font-size:18px}
.setting{display:flex;flex-direction:column;gap:6px;padding:12px 16px;border-bottom:1px solid var(--sep)}
.setting:last-child{border-bottom:0}
.setting .l{display:flex;justify-content:space-between;align-items:center;gap:10px;font-size:15px;min-height:32px}
.setting .l span:first-child{min-width:0;overflow:hidden;text-overflow:ellipsis}
.setting input[type=range]{width:100%;accent-color:var(--violet);min-height:44px}
.setting input[type=number],.setting input[type=text]{width:110px;background:var(--fill);border:0;border-radius:10px;color:var(--text);padding:8px 10px;font:inherit;text-align:right;min-height:36px}
.setting input:disabled{opacity:.8}
.note{font-size:13px;color:var(--sec);padding:10px 4px;line-height:1.45}
.skel{background:var(--glass);border:1px solid var(--glass-b);border-radius:20px;animation:pulse 1.1s ease-in-out infinite alternate}
@keyframes pulse{from{opacity:.45}to{opacity:.9}}
.empty{text-align:center;padding:30px 18px;color:var(--sec);font-size:15px}
.rows .empty{padding:24px 18px}
.empty .eic{display:block;font-size:26px;margin-bottom:8px}

/* floating glass tab bar with sliding indicator */
#tabbar{position:fixed;left:calc(12px + env(safe-area-inset-left));right:calc(12px + env(safe-area-inset-right));bottom:calc(env(safe-area-inset-bottom) + 10px);max-width:520px;margin:0 auto;
  display:flex;justify-content:space-around;padding:6px;border-radius:30px;background:var(--glass2);border:1px solid var(--glass-b);
  -webkit-backdrop-filter:saturate(180%) blur(26px);backdrop-filter:saturate(180%) blur(26px);box-shadow:0 12px 40px rgba(0,0,0,.25);z-index:10}
#tabbar[hidden]{display:none}
#tabind{position:absolute;left:0;top:6px;bottom:6px;width:60px;border-radius:24px;background:var(--violet-bg);transition:transform .45s var(--spring),width .3s var(--ease);pointer-events:none}
#tabbar button{position:relative;flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;min-width:44px;min-height:52px;font-size:10.5px;font-weight:600;color:var(--sec);transition:color .25s}
#tabbar button span{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;padding:0 2px}
#tabbar svg{width:24px;height:24px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linejoin:round;stroke-linecap:round;transition:transform .25s var(--spring)}
#tabbar button.on{color:var(--accent)}
#tabbar button:active svg{transform:scale(.82)}
#toast{position:fixed;left:50%;bottom:calc(env(safe-area-inset-bottom) + 96px);transform:translateX(-50%);background:var(--glass2);border:1px solid var(--glass-b);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);
  box-shadow:var(--shadow);padding:12px 18px;border-radius:18px;font-size:15px;font-weight:500;z-index:30;max-width:88vw;text-align:center;animation:toastIn .35s var(--spring)}
@keyframes toastIn{from{opacity:0;transform:translate(-50%,12px) scale(.96)}to{opacity:1;transform:translate(-50%,0)}}

/* pull to refresh */
#ptr{position:fixed;left:50%;top:calc(env(safe-area-inset-top) + 6px);width:40px;height:40px;margin-left:-20px;border-radius:50%;z-index:15;pointer-events:none;
  display:flex;align-items:center;justify-content:center;background:var(--glass2);border:1px solid var(--glass-b);box-shadow:var(--shadow);opacity:0;transform:translate3d(0,-60px,0)}
#ptr i{width:18px;height:18px;border-radius:50%;border:2.2px solid var(--fill2);border-top-color:var(--accent)}
#ptr.spin i{animation:spin .8s linear infinite}
#ptr.back{transition:transform .35s var(--ease),opacity .3s}

/* win moment: confetti, transform/opacity only */
#confetti{position:fixed;inset:0;pointer-events:none;z-index:50;overflow:hidden}
#confetti i{position:absolute;top:-16px;left:var(--x);width:8px;height:14px;border-radius:2px;background:var(--c);opacity:0;
  animation:fall var(--d) cubic-bezier(.2,.6,.4,1) var(--w) forwards}
@keyframes fall{0%{opacity:1;transform:translate3d(0,0,0) rotate(0)}85%{opacity:1}100%{opacity:0;transform:translate3d(var(--dx),105vh,0) rotate(var(--r))}}

@media (min-width:430px){.balance{font-size:74px}}
html.nomo *,html.nomo *::before,html.nomo *::after{animation:none!important;transition:none!important}
html.nomo .rv{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important}.rv{opacity:1;transform:none}#intro{display:none!important}}

.seg.full{width:100%}.seg.full button{flex:1}
.today{display:inline-flex;gap:5px;align-items:baseline;white-space:nowrap}
