/* ═══════════════════════════════════════════════════════════════════════════
   HASHVAULT — Telegram Mini App
   Aesthetic: industrial mining-farm telemetry. Graphite + blueprint grid,
   amber (BTC) as the only warm light source, cyan for live data.
   ═══════════════════════════════════════════════════════════════════════════ */

/* ── tokens ───────────────────────────────────────────────────────────────── */
:root{
  /* surfaces */
  --void:      #06080B;
  --bg:        #07090C;
  --panel:     #0C1014;
  --panel-2:   #10151B;
  --raise:     #141A21;
  --line:      #1B222C;
  --line-2:    #252E3A;

  /* ink */
  --ink:       #E7EEF6;
  --ink-2:     #9AA9B9;
  --ink-3:     #647384;
  --mute:      #667585;
  --faint:     #46525F;

  /* signal */
  --btc:       #F7931A;
  --btc-hi:    #FFB13B;
  --amber:     #F7931A;
  --amber-lt:  #FFC46B;
  --amber-dk:  #8A5100;
  --cyan:      #2BD4C4;
  --cyan-dk:   #0E5D57;
  --red:       #FF5A52;
  --green:     #3FD98A;
  --star:      #FFD24A;

  /* type */
  --ff-display: "Chakra Petch", "Segoe UI Semibold", system-ui, sans-serif;
  --ff-mono:    "IBM Plex Mono", ui-monospace, "SFMono-Regular", Menlo, monospace;
  --ff-sym:     "Chakra Petch", "Segoe UI Symbol", "Noto Sans Symbols 2", "Apple Symbols", sans-serif;

  /* metrics */
  --r:   14px;
  --r-s: 10px;
  --pad: 16px;

  --ease:      cubic-bezier(.22, 1, .36, 1);
  --ease-io:   cubic-bezier(.65, 0, .35, 1);

  --safe-t: env(safe-area-inset-top, 0px);
  --safe-b: env(safe-area-inset-bottom, 0px);
  --hdr-h:  62px;
  --foot-h: 78px;
}

*, *::before, *::after{ box-sizing:border-box; }

/* `hidden` must win over any display rule a component sets on itself */
[hidden]{ display:none !important; }

html, body{
  margin:0; padding:0;
  height:100%;
  overscroll-behavior:none;
  background:var(--void);
}

body{
  font-family:var(--ff-mono);
  color:var(--ink);
  -webkit-font-smoothing:antialiased;
  -webkit-tap-highlight-color:transparent;
  user-select:none;
  overflow:hidden;
  font-size:14px;
  line-height:1.4;
}

button{ font:inherit; color:inherit; background:none; border:0; padding:0; cursor:pointer; }
ul{ margin:0; padding:0; list-style:none; }
h1,h2,h3,p{ margin:0; }

.num{ font-variant-numeric:tabular-nums; letter-spacing:-.01em; }

/* ── reduced motion ───────────────────────────────────────────────────────── */
@media (prefers-reduced-motion: reduce){
  *, *::before, *::after{
    animation-duration:.001ms !important;
    animation-iteration-count:1 !important;
    transition-duration:.001ms !important;
  }
}

/* ═══════════════════════════════════════════════════════════════════════════
   SPLASH
   ═══════════════════════════════════════════════════════════════════════════ */
.splash{
  position:fixed; inset:0; z-index:100;
  display:flex; flex-direction:column; align-items:center; justify-content:center;
  background:var(--void);
  overflow:hidden;
  transition:opacity .55s var(--ease), transform .55s var(--ease), filter .55s var(--ease);
}
.splash.is-out{
  opacity:0; pointer-events:none;
  transform:scale(1.06);
  filter:blur(6px);
}

.splash__grid{
  position:absolute; inset:-20%;
  background-image:
    linear-gradient(to right,  rgba(126,150,176,.055) 1px, transparent 1px),
    linear-gradient(to bottom, rgba(126,150,176,.055) 1px, transparent 1px);
  background-size:34px 34px;
  mask-image:radial-gradient(circle at 50% 42%, #000 0%, transparent 68%);
  -webkit-mask-image:radial-gradient(circle at 50% 42%, #000 0%, transparent 68%);
  animation:gridDrift 26s linear infinite;
}
@keyframes gridDrift{ to{ transform:translate3d(34px,34px,0);} }

.splash__glow{
  position:absolute; left:50%; top:38%;
  width:min(560px, 130vw); aspect-ratio:1;
  transform:translate(-50%,-50%);
  background:radial-gradient(circle, rgba(247,147,26,.20) 0%, rgba(247,147,26,.05) 38%, transparent 68%);
  filter:blur(6px);
  animation:breath 5.5s var(--ease-io) infinite;
}
@keyframes breath{ 0%,100%{opacity:.65; transform:translate(-50%,-50%) scale(1);} 50%{opacity:1; transform:translate(-50%,-50%) scale(1.08);} }

.splash__core{
  position:relative; z-index:2;
  display:flex; flex-direction:column; align-items:center;
  width:min(340px, 82vw);
}

.rig-mark{ width:104px; height:104px; overflow:visible; }
.rig-mark__ring{ transform-origin:60px 60px; animation:spin 3.4s linear infinite; }
@keyframes spin{ to{ transform:rotate(360deg);} }
.rig-mark__hex{
  transform-origin:60px 60px;
  animation:hexPulse 2.6s var(--ease-io) infinite;
  filter:drop-shadow(0 0 10px rgba(247,147,26,.4));
}
@keyframes hexPulse{ 0%,100%{ opacity:.55; transform:scale(.97);} 50%{ opacity:1; transform:scale(1.02);} }
.rig-mark__b{
  font-family:var(--ff-sym); font-size:34px; font-weight:700;
  fill:var(--amber-lt);
  filter:drop-shadow(0 0 12px rgba(247,147,26,.55));
}

.splash__sub{
  margin-top:8px;
  font-size:9.5px; letter-spacing:.34em; text-indent:.34em;
  color:var(--faint); text-transform:uppercase;
  animation:riseIn .7s var(--ease) .2s both;
}

@keyframes riseIn{ from{ opacity:0; transform:translateY(10px);} to{ opacity:1; transform:none;} }

.boot{ width:100%; margin-top:34px; animation:riseIn .7s var(--ease) .3s both; }
.boot__bar{
  height:2px; width:100%;
  background:var(--line);
  overflow:hidden;
  position:relative;
}
.boot__bar i{
  display:block; height:100%; width:0%;
  background:linear-gradient(90deg, var(--amber-dk), var(--amber), var(--amber-lt));
  box-shadow:0 0 12px rgba(247,147,26,.7);
  transition:width .28s var(--ease-io);
}
.boot__meta{
  display:flex; justify-content:space-between; align-items:center;
  margin-top:9px;
  font-size:9.5px; letter-spacing:.12em; text-transform:uppercase;
}
.boot__line{ color:var(--mute); }
.boot__line::before{ content:"> "; color:var(--amber); }
.boot__pct{ color:var(--amber); }

.splash__foot{
  position:absolute; bottom:calc(24px + var(--safe-b)); left:0; right:0;
  display:flex; align-items:center; justify-content:center; gap:8px;
  font-size:8.5px; letter-spacing:.24em; color:var(--faint); text-transform:uppercase;
  animation:riseIn .7s var(--ease) .45s both;
}
.splash__ver{ color:var(--line-2); }

/* ── live dot ─────────────────────────────────────────────────────────────── */
.dot{ width:5px; height:5px; border-radius:50%; display:inline-block; flex:none; }
.dot--live{
  background:var(--green);
  box-shadow:0 0 0 0 rgba(63,217,138,.55);
  animation:ping 2.2s var(--ease-io) infinite;
}
@keyframes ping{
  0%{ box-shadow:0 0 0 0 rgba(63,217,138,.5); }
  70%{ box-shadow:0 0 0 6px rgba(63,217,138,0); }
  100%{ box-shadow:0 0 0 0 rgba(63,217,138,0); }
}

/* ═══════════════════════════════════════════════════════════════════════════
   APP SHELL
   ═══════════════════════════════════════════════════════════════════════════ */
.app{
  position:fixed; inset:0;
  display:flex; flex-direction:column;
  background:var(--bg);
}
.app[hidden]{ display:none; }

.bg-grid{
  position:fixed; inset:0; z-index:0; pointer-events:none;
  background-image:
    linear-gradient(to right,  rgba(126,150,176,.038) 1px, transparent 1px),
    linear-gradient(to bottom, rgba(126,150,176,.038) 1px, transparent 1px);
  background-size:30px 30px;
  mask-image:linear-gradient(to bottom, #000 0%, rgba(0,0,0,.35) 55%, transparent 92%);
  -webkit-mask-image:linear-gradient(to bottom, #000 0%, rgba(0,0,0,.35) 55%, transparent 92%);
}
.bg-glow{
  position:fixed; z-index:0; pointer-events:none;
  left:50%; top:-16%;
  width:min(620px,150vw); aspect-ratio:1; transform:translateX(-50%);
  background:radial-gradient(circle, rgba(247,147,26,.13) 0%, rgba(247,147,26,.035) 40%, transparent 66%);
}
.bg-noise{
  position:fixed; inset:0; z-index:0; pointer-events:none; opacity:.035;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3'/%3E%3C/filter%3E%3Crect width='140' height='140' filter='url(%23n)'/%3E%3C/svg%3E");
  mix-blend-mode:overlay;
}

/* ═══════════════════════════════════════════════════════════════════════════
   HEADER
   ═══════════════════════════════════════════════════════════════════════════ */
.hdr{
  position:relative; z-index:20; flex:none;
  padding-top:var(--safe-t);
  background:linear-gradient(180deg, rgba(9,12,16,.96) 0%, rgba(9,12,16,.88) 100%);
  backdrop-filter:blur(18px) saturate(1.4);
  -webkit-backdrop-filter:blur(18px) saturate(1.4);
}
.hdr__bar{
  height:var(--hdr-h);
  display:flex; align-items:center; gap:12px;
  padding:0 14px;
  cursor:pointer;
}
.hdr__bar:active{ background:rgba(255,255,255,.02); }

.hdr__id{ display:flex; align-items:center; gap:9px; min-width:0; }

.avatar{
  width:34px; height:34px; flex:none;
  display:grid; place-items:center;
  font-family:var(--ff-display); font-weight:700; font-size:15px;
  color:var(--amber-lt);
  background:
    linear-gradient(145deg, rgba(247,147,26,.16), rgba(247,147,26,.03)),
    var(--panel-2);
  border:1px solid rgba(247,147,26,.28);
  clip-path:polygon(28% 0, 100% 0, 100% 72%, 72% 100%, 0 100%, 0 28%);
  position:relative;
}
.avatar::after{
  content:""; position:absolute; inset:0;
  background:linear-gradient(160deg, rgba(255,255,255,.10), transparent 55%);
}
.avatar--lg{ width:54px; height:54px; font-size:23px; }

.hdr__idtxt{ display:flex; flex-direction:column; min-width:0; gap:1px; }
.hdr__name{
  font-family:var(--ff-display); font-weight:600; font-size:12.5px;
  letter-spacing:.06em; text-transform:uppercase;
  white-space:nowrap; overflow:hidden; text-overflow:ellipsis; max-width:88px;
}
.hdr__rank{
  font-size:8.5px; letter-spacing:.16em; color:var(--faint); text-transform:uppercase;
  white-space:nowrap;
}

.hdr__bal{ margin-left:auto; margin-right:2px; display:flex; flex-direction:column; align-items:flex-end; gap:2px; }
.hdr__btc{ display:flex; align-items:baseline; gap:6px; }
.hdr__btc .glyph{
  font-family:var(--ff-sym); font-weight:700; font-size:14px;
  color:var(--amber);
  text-shadow:0 0 14px rgba(247,147,26,.6);
}
.hdr__btc .num{
  font-size:16px; font-weight:600; letter-spacing:-.02em;
  color:var(--ink);
  text-shadow:0 0 22px rgba(231,238,246,.16);
}
/* the balance is an odometer: characters slide, nothing scales or glows */
.od{ display:inline-flex; }
.od__c{ display:inline-block; will-change:transform; }
.od__c.is-roll{ animation:odRoll .3s var(--ease); }
@keyframes odRoll{
  0%{ transform:translateY(-62%); opacity:0; }
  55%{ opacity:1; }
  100%{ transform:none; opacity:1; }
}

.hdr__rate{ display:flex; align-items:center; gap:5px; font-size:9.5px; color:var(--cyan); }
.hdr__rate .unit{ color:var(--faint); }

.hdr__chev{
  width:26px; height:26px; flex:none;
  display:grid; place-items:center;
  color:var(--mute);
  border:1px solid var(--line); border-radius:7px;
  background:var(--panel);
  transition:transform .38s var(--ease), color .2s, border-color .2s;
}
.hdr__chev svg{ width:14px; height:14px; }
.hdr.is-open .hdr__chev{ transform:rotate(180deg); color:var(--amber); border-color:rgba(247,147,26,.35); }

/* expandable telemetry panel */
.hdr__panel{
  display:grid; grid-template-rows:0fr;
  transition:grid-template-rows .48s var(--ease);
}
.hdr.is-open .hdr__panel{ grid-template-rows:1fr; }
.hdr__panelin{
  overflow:hidden;
  opacity:0; transform:translateY(-6px);
  transition:opacity .3s var(--ease) .04s, transform .42s var(--ease) .04s;
}
.hdr.is-open .hdr__panelin{ opacity:1; transform:none; }

.tele{
  display:grid; grid-template-columns:repeat(3, 1fr);
  gap:1px;
  margin:2px 12px 0;
  background:var(--line);
  border:1px solid var(--line);
  border-radius:var(--r-s);
  overflow:hidden;
}
.tele__cell{
  background:var(--panel);
  padding:9px 10px 10px;
  display:flex; flex-direction:column; gap:3px;
  position:relative;
}
.tele__k{ font-size:7.5px; letter-spacing:.16em; color:var(--faint); text-transform:uppercase; }
.tele__v{ font-size:12.5px; font-weight:600; color:var(--ink); white-space:nowrap; }
.tele__v i{ font-style:normal; font-size:8.5px; color:var(--mute); font-weight:400; }
.tele__cell:nth-child(1) .tele__v{ color:var(--amber-lt); }
.tele__cell:nth-child(4) .tele__v{ color:var(--cyan); }
.tele__cell.is-hot .tele__v{ color:var(--red); }

.wave{
  position:relative;
  margin:8px 12px 0;
  height:44px;
  border:1px solid var(--line); border-radius:var(--r-s);
  background:
    linear-gradient(to right, rgba(126,150,176,.05) 1px, transparent 1px) 0 0/24px 24px,
    var(--panel);
  overflow:hidden;
}
.wave svg{ position:absolute; inset:0; width:100%; height:100%; }
.wave__lbl{
  position:absolute; left:8px; top:5px;
  font-size:7px; letter-spacing:.2em; color:var(--faint); text-transform:uppercase;
}
.wave::after{
  content:""; position:absolute; top:0; bottom:0; width:36px;
  background:linear-gradient(90deg, transparent, rgba(43,212,196,.10), transparent);
  animation:sweep 3.6s linear infinite;
}
@keyframes sweep{ from{ transform:translateX(-40px);} to{ transform:translateX(320px);} }

.thermo{ margin:10px 12px 0; }
.thermo__row{ display:flex; justify-content:space-between; align-items:baseline; margin-bottom:5px; }
.thermo__k{ font-size:7.5px; letter-spacing:.16em; color:var(--faint); text-transform:uppercase; }
.thermo__v{ font-size:10px; color:var(--ink-2); }

/* segmented bar (technical) */
.seg{
  position:relative;
  height:6px;
  background:var(--panel-2);
  border:1px solid var(--line);
  border-radius:3px;
  overflow:hidden;
}
.seg i{
  display:block; height:100%;
  background:linear-gradient(90deg, var(--amber-dk), var(--amber) 60%, var(--amber-lt));
  box-shadow:0 0 10px rgba(247,147,26,.45);
  transition:width .45s var(--ease);
}
.seg--cyan i{
  background:linear-gradient(90deg, var(--cyan-dk), var(--cyan) 65%, #7BF0E4);
  box-shadow:0 0 10px rgba(43,212,196,.4);
}
.seg::after{
  content:""; position:absolute; inset:0; pointer-events:none;
  background:repeating-linear-gradient(90deg, transparent 0 4px, rgba(7,9,12,.85) 4px 6px);
}

/* ═══════════════════════════════════════════════════════════════════════════
   MAIN / SCREENS
   ═══════════════════════════════════════════════════════════════════════════ */
.main{
  position:relative; z-index:5;
  flex:1; min-height:0;
  overflow-y:auto; overflow-x:hidden;
  -webkit-overflow-scrolling:touch;
  scrollbar-width:none;
}
.main::-webkit-scrollbar{ display:none; }

.screen{ display:block; }
.screen[hidden]{ display:none; }

.stack{
  display:flex; flex-direction:column; gap:12px;
  padding:14px 12px calc(var(--foot-h) + var(--safe-b) + 22px);
}

.screen.is-enter > .stack > *{
  animation:cardIn .5s var(--ease) both;
}
.screen.is-enter > .stack > *:nth-child(1){ animation-delay:.02s; }
.screen.is-enter > .stack > *:nth-child(2){ animation-delay:.06s; }
.screen.is-enter > .stack > *:nth-child(3){ animation-delay:.10s; }
.screen.is-enter > .stack > *:nth-child(4){ animation-delay:.14s; }
.screen.is-enter > .stack > *:nth-child(5){ animation-delay:.18s; }
.screen.is-enter > .stack > *:nth-child(n+6){ animation-delay:.22s; }
@keyframes cardIn{
  from{ opacity:0; transform:translateY(14px) scale(.985); }
  to{ opacity:1; transform:none; }
}

/* ── panel ────────────────────────────────────────────────────────────────── */
.panel{
  position:relative;
  background:
    linear-gradient(180deg, rgba(255,255,255,.022), transparent 40%),
    var(--panel);
  border:1px solid var(--line);
  border-radius:var(--r);
  padding:var(--pad);
  overflow:hidden;
}
.panel::before{
  content:""; position:absolute; left:0; right:0; top:0; height:1px;
  background:linear-gradient(90deg, transparent, rgba(255,255,255,.10) 30%, rgba(255,255,255,.10) 70%, transparent);
}

/* engineering corner ticks */
.panel__ticks::before,
.panel__ticks::after{
  content:""; position:absolute; width:12px; height:12px; pointer-events:none;
  border:1px solid rgba(247,147,26,.42);
}
.panel__ticks::before{ top:8px; left:8px; border-right:0; border-bottom:0; }
.panel__ticks::after{ bottom:8px; right:8px; border-left:0; border-top:0; }

.panel__hd{
  display:flex; align-items:center; justify-content:space-between;
  margin-bottom:12px;
}
.panel__t{
  font-family:var(--ff-display); font-weight:600; font-size:10px;
  letter-spacing:.24em; color:var(--ink-2); text-transform:uppercase;
}
.panel__badge{
  display:flex; align-items:center; gap:5px;
  font-size:8px; letter-spacing:.18em; color:var(--green); text-transform:uppercase;
  padding:3px 7px;
  border:1px solid rgba(63,217,138,.25); border-radius:20px;
  background:rgba(63,217,138,.06);
}

.grid2{ display:grid; grid-template-columns:1fr 1fr; gap:12px; }

.panel--mini{ padding:13px 14px; display:flex; flex-direction:column; gap:3px; }
.mini__k{ font-size:7.5px; letter-spacing:.18em; color:var(--faint); text-transform:uppercase; }
.mini__v{ font-size:15px; font-weight:600; color:var(--ink); }
.panel--mini:nth-child(2) .mini__v{ color:var(--cyan); }
.mini__u{ font-size:8px; letter-spacing:.16em; color:var(--mute); }

/* ── section header ───────────────────────────────────────────────────────── */
.sect{ padding:2px 4px 0; }
.sect__t{
  display:flex; align-items:center; gap:9px;
  font-family:var(--ff-display); font-weight:700; font-size:15px;
  letter-spacing:.13em; text-transform:uppercase; color:var(--ink);
}
.sect__s{
  margin-top:6px;
  font-size:10.5px; line-height:1.5; color:var(--mute);
  max-width:44ch;
}

/* ═══════════════════════════════════════════════════════════════════════════
   RIG — the core
   ═══════════════════════════════════════════════════════════════════════════ */
.panel--core{ padding:18px 16px 16px; }

.core{
  position:relative;
  display:grid; place-items:center;
  height:214px;
  margin-bottom:2px;
}
.core__halo{
  position:absolute; width:250px; height:250px; border-radius:50%;
  background:radial-gradient(circle, rgba(247,147,26,.17) 0%, rgba(247,147,26,.05) 42%, transparent 68%);
  animation:breath 4.6s var(--ease-io) infinite;
}
.core__ring{
  position:absolute; width:216px; height:216px; border-radius:50%;
  background:conic-gradient(from 0deg,
      transparent 0deg, rgba(247,147,26,.0) 200deg,
      rgba(247,147,26,.55) 300deg, rgba(255,196,107,.95) 350deg, transparent 360deg);
  mask:radial-gradient(circle, transparent 0 103px, #000 104px 106px, transparent 107px);
  -webkit-mask:radial-gradient(circle, transparent 0 103px, #000 104px 106px, transparent 107px);
  animation:spin 4.2s linear infinite;
}
.core__ring::after{
  content:""; position:absolute; inset:0; border-radius:50%;
  border:1px dashed rgba(126,150,176,.14);
  transform:scale(.86);
}

.core__unit{
  position:relative;
  width:196px; height:196px;
  display:grid; place-items:center;
  pointer-events:none;
}
.core.is-strained .core__unit{ animation:strain 1.9s var(--ease-io) infinite; }
@keyframes strain{ 0%,100%{ filter:none; } 50%{ filter:drop-shadow(0 0 18px rgba(255,90,82,.45)); } }
.core.is-idle .core__unit{ opacity:.55; filter:grayscale(.5); }

.core__hex{ animation:hexHit .34s var(--ease); }
@keyframes hexHit{
  0%{ filter:drop-shadow(0 0 0 rgba(247,147,26,0)); }
  30%{ filter:drop-shadow(0 0 26px rgba(247,147,26,.85)); }
  100%{ filter:drop-shadow(0 0 0 rgba(247,147,26,0)); }
}
.core__hex{
  position:absolute; inset:0; width:100%; height:100%;
  filter:drop-shadow(0 8px 26px rgba(0,0,0,.55));
}
.core__trace path{
  stroke-dasharray:4 5;
  animation:dash 1.4s linear infinite;
}
@keyframes dash{ to{ stroke-dashoffset:-18; } }

.core__b{
  position:relative;
  font-family:var(--ff-sym); font-weight:700; font-size:58px;
  color:var(--amber-lt);
  text-shadow:0 0 26px rgba(247,147,26,.55), 0 2px 0 rgba(0,0,0,.4);
  transform:translateY(-8px);
  animation:coreFloat 3.6s var(--ease-io) infinite;
}
@keyframes coreFloat{ 0%,100%{ transform:translateY(-8px);} 50%{ transform:translateY(-13px);} }

.core__fx{ position:absolute; inset:0; pointer-events:none; }
.pop{
  position:absolute;
  font-family:var(--ff-mono); font-size:13px; font-weight:600;
  color:var(--amber-lt);
  text-shadow:0 0 14px rgba(247,147,26,.7);
  pointer-events:none;
  animation:popUp 1.7s var(--ease) forwards;
  white-space:nowrap;
}
@keyframes popUp{
  0%{ opacity:0; transform:translate(-50%,6px) scale(.86); }
  16%{ opacity:1; transform:translate(-50%,-6px) scale(1.02); }
  70%{ opacity:.85; }
  100%{ opacity:0; transform:translate(-50%,-72px) scale(.96); }
}
/* boost */
.panel--boost{
  border-color:rgba(247,147,26,.34);
  background:
    linear-gradient(120deg, rgba(247,147,26,.14), rgba(247,147,26,.02) 55%),
    var(--panel);
  padding:12px 14px;
}
.boost{ display:flex; align-items:center; gap:12px; }
.boost__ico{ font-size:24px; }
.boost__txt{ display:flex; flex-direction:column; gap:2px; }
.boost__t{ font-size:9px; letter-spacing:.2em; color:var(--amber-lt); text-transform:uppercase; }
.boost__s{ font-size:14px; font-weight:600; color:var(--ink); }
.boost__x{
  margin-left:auto;
  font-family:var(--ff-display); font-weight:700; font-size:20px; color:var(--amber);
  text-shadow:0 0 18px rgba(247,147,26,.55);
}

/* console log */
.log{ display:flex; flex-direction:column; gap:5px; max-height:150px; overflow:hidden; }
.log li{
  display:flex; gap:8px; align-items:baseline;
  font-size:9.5px; color:var(--mute);
  animation:logIn .4s var(--ease) both;
  white-space:nowrap;
}
@keyframes logIn{ from{ opacity:0; transform:translateX(-6px);} to{ opacity:1; transform:none;} }
.log__t{ color:var(--faint); flex:none; }
.log__m{ min-width:0; overflow:hidden; text-overflow:ellipsis; }
.log li.ok .log__m{ color:var(--green); }
.log li.warn .log__m{ color:var(--amber); }
.log li.hash .log__m{ color:var(--cyan); }

/* ═══════════════════════════════════════════════════════════════════════════
   LISTS — mines / upgrades / shop
   ═══════════════════════════════════════════════════════════════════════════ */
.list{ display:flex; flex-direction:column; gap:10px; }

.panel--sum{ padding:13px 16px; }
.sum{ display:flex; align-items:center; }
.sum__c{ flex:1; display:flex; flex-direction:column; gap:2px; }
.sum__k{ font-size:7.5px; letter-spacing:.18em; color:var(--faint); text-transform:uppercase; }
.sum__v{ font-size:16px; font-weight:600; color:var(--amber-lt); }
.sum__c:last-child .sum__v{ color:var(--ink); }
.sum__u{ font-size:8px; letter-spacing:.14em; color:var(--mute); }
.sum__sep{ width:1px; align-self:stretch; background:var(--line); margin:0 14px; }

/* card */
.card{
  position:relative;
  display:flex; align-items:center; gap:12px;
  padding:12px;
  background:linear-gradient(180deg, rgba(255,255,255,.02), transparent 45%), var(--panel);
  border:1px solid var(--line);
  border-radius:var(--r);
  overflow:hidden;
  transition:border-color .25s, transform .18s var(--ease), background .25s;
}
.card::before{
  content:""; position:absolute; left:0; top:0; bottom:0; width:2px;
  background:linear-gradient(180deg, transparent, var(--line-2), transparent);
  transition:background .3s;
}
.card.is-afford::before{ background:linear-gradient(180deg, transparent, var(--amber), transparent); }
.card.is-afford{ border-color:rgba(247,147,26,.22); }
.card.is-locked{ opacity:.42; }
.card:active{ transform:scale(.99); }
.card.is-bought{ animation:boughtFlash .6s var(--ease); }
@keyframes boughtFlash{
  0%{ box-shadow:inset 0 0 0 0 rgba(247,147,26,0); }
  25%{ box-shadow:inset 0 0 40px 0 rgba(247,147,26,.28); border-color:var(--amber); }
  100%{ box-shadow:inset 0 0 0 0 rgba(247,147,26,0); }
}

.card__ico{
  width:48px; height:48px; flex:none;
  display:grid; place-items:center;
  font-size:23px;
  background:linear-gradient(150deg, var(--raise), var(--panel-2));
  border:1px solid var(--line-2);
  clip-path:polygon(22% 0, 100% 0, 100% 78%, 78% 100%, 0 100%, 0 22%);
  position:relative;
}
.card__ico::after{
  content:""; position:absolute; inset:0;
  background:linear-gradient(160deg, rgba(255,255,255,.07), transparent 60%);
}
.card.is-owned .card__ico{
  border-color:rgba(247,147,26,.4);
  box-shadow:inset 0 0 18px rgba(247,147,26,.12);
}

.card__body{ flex:1; min-width:0; display:flex; flex-direction:column; gap:3px; }
.card__top{ display:flex; align-items:center; gap:7px; flex-wrap:wrap; }
.card__n{
  font-family:var(--ff-display); font-weight:600; font-size:12.5px;
  line-height:1.25; letter-spacing:.04em; text-transform:uppercase; color:var(--ink);
  overflow-wrap:anywhere;
}
.card__lvl{
  font-size:8px; letter-spacing:.12em; color:var(--amber);
  padding:2px 5px; border-radius:4px;
  border:1px solid rgba(247,147,26,.3); background:rgba(247,147,26,.08);
  flex:none;
}
.card__d{
  font-size:9.5px; line-height:1.45; color:var(--faint);
  display:-webkit-box; -webkit-box-orient:vertical; -webkit-line-clamp:2;
  overflow:hidden;
}
.card__stats{ display:flex; gap:10px; margin-top:3px; flex-wrap:wrap; }
.card__st{ display:flex; align-items:center; gap:4px; font-size:9px; color:var(--mute); }
.card__st b{ color:var(--cyan); font-weight:600; }
.card__st.amber b{ color:var(--amber-lt); }

.card__buy{
  flex:none;
  display:flex; flex-direction:column; align-items:flex-end; gap:4px;
  min-width:84px;
}
.btn{
  display:inline-flex; align-items:center; justify-content:center; gap:5px;
  padding:8px 11px;
  font-family:var(--ff-mono); font-size:10.5px; font-weight:600; letter-spacing:.04em;
  color:var(--void);
  background:linear-gradient(160deg, var(--amber-lt), var(--amber) 55%, #D97C08);
  border-radius:8px;
  box-shadow:0 3px 14px rgba(247,147,26,.28), inset 0 1px 0 rgba(255,255,255,.3);
  transition:transform .14s var(--ease), box-shadow .2s, filter .2s;
  white-space:nowrap;
}
.btn:active{ transform:translateY(1px) scale(.98); box-shadow:0 1px 6px rgba(247,147,26,.24); }
.btn[disabled]{
  background:var(--raise); color:var(--faint);
  box-shadow:none; border:1px solid var(--line-2);
}
.btn--star{
  background:linear-gradient(160deg, #FFE38A, var(--star) 55%, #E0A800);
  box-shadow:0 3px 14px rgba(255,210,74,.26), inset 0 1px 0 rgba(255,255,255,.35);
}
.btn--ghost{
  background:none; color:var(--ink-2);
  border:1px solid var(--line-2); box-shadow:none;
}
.btn--wide{ width:100%; padding:13px; font-size:12px; }

.card__cost{ font-size:8.5px; color:var(--faint); letter-spacing:.06em; }
.card__cost.is-afford{ color:var(--amber); }

.card__owned{
  font-size:9px; letter-spacing:.14em; color:var(--green); text-transform:uppercase;
  padding:6px 9px; border:1px solid rgba(63,217,138,.28); border-radius:7px;
  background:rgba(63,217,138,.07);
}

/* progress inside upgrade cards */
.card__prog{ margin-top:6px; height:3px; background:var(--panel-2); border-radius:2px; overflow:hidden; }
.card__prog i{ display:block; height:100%; background:linear-gradient(90deg, var(--amber-dk), var(--amber)); transition:width .4s var(--ease); }

/* star badge on shop cards */
.card--star .card__ico{ border-color:rgba(255,210,74,.35); box-shadow:inset 0 0 18px rgba(255,210,74,.10); }
.tagline{
  position:absolute; top:0; right:0;
  font-size:7.5px; letter-spacing:.16em; text-transform:uppercase;
  padding:3px 8px 3px 10px;
  background:linear-gradient(90deg, transparent, rgba(247,147,26,.9));
  color:var(--void); font-weight:600;
  clip-path:polygon(10px 0, 100% 0, 100% 100%, 0 100%);
}
.tagline--best{ background:linear-gradient(90deg, transparent, var(--star)); }

.fineprint{
  font-size:9px; line-height:1.6; color:var(--faint);
  text-align:center; padding:4px 18px;
}

/* ═══════════════════════════════════════════════════════════════════════════
   PROFILE
   ═══════════════════════════════════════════════════════════════════════════ */
.panel--profile{ padding:18px 16px 16px; }
.prof{ display:flex; align-items:center; gap:13px; }
.prof__txt{ display:flex; flex-direction:column; gap:3px; min-width:0; }
.prof__n{
  font-family:var(--ff-display); font-weight:700; font-size:17px;
  letter-spacing:.06em; text-transform:uppercase;
  white-space:nowrap; overflow:hidden; text-overflow:ellipsis;
}
.prof__id{ font-size:9.5px; color:var(--faint); letter-spacing:.1em; }

.lvl{ margin-top:16px; }
.lvl__row{ display:flex; justify-content:space-between; align-items:baseline; margin-bottom:6px; }
.lvl__k{ font-size:9px; letter-spacing:.22em; color:var(--amber); text-transform:uppercase; }
.lvl__v{ font-size:9px; color:var(--faint); }

.langs{ display:grid; grid-template-columns:repeat(3, 1fr); gap:7px; }
.lang{
  position:relative;
  display:flex; flex-direction:column; align-items:center; gap:3px;
  padding:11px 4px 9px;
  border:1px solid var(--line); border-radius:9px;
  background:var(--panel-2);
  transition:border-color .2s, background .2s, transform .16s var(--ease);
  overflow:hidden;
}
.lang::before{
  content:""; position:absolute; left:8px; right:8px; top:0; height:1px;
  background:linear-gradient(90deg, transparent, var(--line-2), transparent);
}
.lang:active{ transform:scale(.96); }
.lang__c{
  font-family:var(--ff-display); font-weight:700; font-size:15px;
  letter-spacing:.12em; color:var(--ink-2); line-height:1.1;
}
.lang__n{ font-size:8px; letter-spacing:.1em; color:var(--faint); }
.lang.is-on{
  border-color:rgba(247,147,26,.45);
  background:linear-gradient(160deg, rgba(247,147,26,.15), rgba(247,147,26,.02));
}
.lang.is-on::before{ background:linear-gradient(90deg, transparent, var(--amber), transparent); }
.lang.is-on .lang__c{ color:var(--amber-lt); text-shadow:0 0 14px rgba(247,147,26,.45); }
.lang.is-on .lang__n{ color:var(--amber); }

.rows{ display:flex; flex-direction:column; }
.row{
  display:flex; align-items:center; justify-content:space-between;
  padding:12px 2px;
  border-top:1px solid var(--line);
  width:100%; text-align:left;
}
.row:first-child{ border-top:0; }
.row__k{ display:flex; align-items:center; gap:9px; font-size:11.5px; color:var(--ink-2); }
.row__k--danger{ color:var(--red); }
.row__go{ color:var(--faint); font-size:16px; }

/* switch */
.sw{ position:relative; width:38px; height:22px; flex:none; }
.sw input{ position:absolute; opacity:0; width:100%; height:100%; margin:0; cursor:pointer; z-index:2; }
.sw i{
  position:absolute; inset:0;
  background:var(--raise); border:1px solid var(--line-2); border-radius:20px;
  transition:background .25s, border-color .25s;
}
.sw i::after{
  content:""; position:absolute; top:2px; left:2px;
  width:16px; height:16px; border-radius:50%;
  background:var(--mute);
  transition:transform .28s var(--ease), background .25s;
}
.sw input:checked + i{ background:rgba(247,147,26,.20); border-color:rgba(247,147,26,.45); }
.sw input:checked + i::after{ transform:translateX(16px); background:var(--amber); box-shadow:0 0 10px rgba(247,147,26,.6); }

/* ═══════════════════════════════════════════════════════════════════════════
   FOOTER
   ═══════════════════════════════════════════════════════════════════════════ */
.foot{
  position:relative; z-index:30; flex:none;
  padding-bottom:var(--safe-b);
}
.foot__glass{
  position:absolute; inset:0;
  background:linear-gradient(180deg, rgba(10,13,17,.86), rgba(7,9,12,.98));
  backdrop-filter:blur(20px) saturate(1.5);
  -webkit-backdrop-filter:blur(20px) saturate(1.5);
  border-top:1px solid var(--line);
}
.foot__rail{
  position:absolute; top:0; left:0; right:0; height:2px; overflow:hidden;
}
.foot__rail i{
  position:absolute; top:0; height:2px; width:20%;
  background:linear-gradient(90deg, transparent, var(--amber), transparent);
  box-shadow:0 0 12px rgba(247,147,26,.7);
  transition:transform .42s var(--ease);
}

.foot__tabs{
  position:relative;
  display:grid; grid-template-columns:repeat(5,1fr);
  padding:9px 4px 3px;
}

.tab{
  display:flex; flex-direction:column; align-items:center; gap:4px;
  padding:5px 2px 4px;
  color:var(--faint);
  transition:color .25s var(--ease);
}
.tab__ico{ display:grid; place-items:center; width:24px; height:24px; position:relative; }
.tab__ico svg{ width:22px; height:22px; transition:transform .32s var(--ease), filter .32s; }
.tab__t{ font-size:7.5px; letter-spacing:.16em; text-transform:uppercase; }
.tab:active .tab__ico svg{ transform:scale(.88); }

.tab.is-on{ color:var(--amber); }
.tab.is-on .tab__ico svg{
  transform:translateY(-1px);
  filter:drop-shadow(0 0 8px rgba(247,147,26,.55));
}
.tab.is-on .tab__t{ color:var(--amber-lt); }
.tab.is-on .tab__ico::after{
  content:""; position:absolute; inset:-6px -9px;
  background:radial-gradient(ellipse at center, rgba(247,147,26,.16), transparent 70%);
  border-radius:50%;
}

.tab__pip{
  position:absolute; top:-2px; right:-2px;
  width:6px; height:6px; border-radius:50%;
  background:var(--red);
  box-shadow:0 0 0 2px var(--bg), 0 0 8px rgba(255,90,82,.8);
  animation:ping2 1.9s var(--ease-io) infinite;
}
@keyframes ping2{ 0%,100%{ transform:scale(1);} 50%{ transform:scale(1.28);} }

.foot__strip{
  position:relative;
  display:flex; align-items:center; justify-content:center; gap:7px;
  padding:5px 10px 7px;
  font-size:7px; letter-spacing:.22em; text-transform:uppercase;
  color:var(--line-2);
  border-top:1px solid rgba(27,34,44,.6);
}
.foot__brand{ color:var(--faint); }
.foot__dot{ width:2px; height:2px; border-radius:50%; background:var(--line-2); display:inline-block; }
.foot__strip .num{ color:var(--faint); }
#footBlk{ color:rgba(247,147,26,.55); }

/* ═══════════════════════════════════════════════════════════════════════════
   TOAST + SHEET
   ═══════════════════════════════════════════════════════════════════════════ */
.toast{
  position:fixed; z-index:60;
  left:50%; bottom:calc(var(--foot-h) + var(--safe-b) + 16px);
  transform:translate(-50%, 16px);
  display:flex; align-items:center; gap:9px;
  max-width:calc(100vw - 40px);
  padding:10px 15px;
  background:rgba(16,21,27,.97);
  border:1px solid var(--line-2); border-radius:11px;
  box-shadow:0 12px 40px rgba(0,0,0,.6);
  font-size:11px; color:var(--ink);
  opacity:0; pointer-events:none;
  transition:opacity .3s var(--ease), transform .38s var(--ease);
  backdrop-filter:blur(14px);
}
.toast.is-on{ opacity:1; transform:translate(-50%,0); }
.toast.is-good{ border-color:rgba(63,217,138,.4); }
.toast.is-bad{ border-color:rgba(255,90,82,.4); }
.toast span:first-child{ font-size:15px; line-height:1; }

.sheet{ position:fixed; inset:0; z-index:95; display:flex; align-items:flex-end; }
.sheet[hidden]{ display:none; }
.sheet__scrim{
  position:absolute; inset:0;
  background:rgba(4,6,9,.72);
  backdrop-filter:blur(4px);
  opacity:0; transition:opacity .32s var(--ease);
}
.sheet.is-on .sheet__scrim{ opacity:1; }
.sheet__card{
  position:relative; width:100%;
  background:var(--panel);
  border-top:1px solid var(--line-2);
  border-radius:20px 20px 0 0;
  padding:20px 18px calc(22px + var(--safe-b));
  transform:translateY(100%);
  transition:transform .42s var(--ease);
  box-shadow:0 -18px 60px rgba(0,0,0,.65);
}
.sheet.is-on .sheet__card{ transform:none; }
.sheet__card::before{
  content:""; position:absolute; top:9px; left:50%; transform:translateX(-50%);
  width:38px; height:3px; border-radius:2px; background:var(--line-2);
}
.sheet__t{
  font-family:var(--ff-display); font-weight:700; font-size:16px;
  letter-spacing:.1em; text-transform:uppercase; text-align:center;
  margin-top:8px;
}
.sheet__d{ margin-top:10px; font-size:11px; line-height:1.6; color:var(--mute); text-align:center; }
.sheet__acts{ display:flex; gap:9px; margin-top:20px; }
.sheet__acts .btn{ flex:1; padding:13px; font-size:11.5px; }
.sheet__ico{ font-size:40px; text-align:center; display:block; margin-bottom:4px; }

/* ═══════════════════════════════════════════════════════════════════════════
   tg-emoji — Telegram-style animated emoji element
   ═══════════════════════════════════════════════════════════════════════════ */
tg-emoji{
  display:inline-block;
  line-height:1;
  vertical-align:-.12em;
  transform-origin:50% 70%;
  will-change:transform;
}
tg-emoji > .tge-g{ display:inline-block; transform-origin:50% 70%; }
tg-emoji > .tge-lottie{ display:inline-block; width:1.15em; height:1.15em; vertical-align:-.18em; }

/* looped ambient motions (Telegram-like) */
tg-emoji[data-anim="bounce"]  > .tge-g{ animation:tgeBounce 2.6s var(--ease-io) infinite; }
tg-emoji[data-anim="pulse"]   > .tge-g{ animation:tgePulse  2.1s var(--ease-io) infinite; }
tg-emoji[data-anim="spin"]    > .tge-g{ animation:tgeSpin    5s   linear      infinite; }
tg-emoji[data-anim="shake"]   > .tge-g{ animation:tgeShake  3.4s var(--ease-io) infinite; }
tg-emoji[data-anim="flicker"] > .tge-g{ animation:tgeFlick  1.8s var(--ease-io) infinite; }
tg-emoji.is-tapped > .tge-g{ animation:tgePop .62s var(--ease); }

@keyframes tgeBounce{
  0%,68%,100%{ transform:translateY(0) scale(1); }
  74%{ transform:translateY(-4px) scale(1.08,.94); }
  82%{ transform:translateY(1px)  scale(.96,1.05); }
  90%{ transform:translateY(-1px) scale(1.01,.99); }
}
@keyframes tgePulse{
  0%,100%{ transform:scale(1); filter:none; }
  50%{ transform:scale(1.13); filter:drop-shadow(0 0 8px rgba(255,210,74,.6)); }
}
@keyframes tgeSpin{
  0%,72%{ transform:rotate(0deg); }
  100%{ transform:rotate(360deg); }
}
@keyframes tgeShake{
  0%,60%,100%{ transform:rotate(0deg); }
  66%{ transform:rotate(-11deg); }
  72%{ transform:rotate(9deg); }
  78%{ transform:rotate(-5deg); }
  84%{ transform:rotate(2deg); }
}
@keyframes tgeFlick{
  0%,100%{ transform:scale(1) translateY(0); filter:drop-shadow(0 0 4px rgba(247,147,26,.5)); }
  40%{ transform:scale(1.08) translateY(-2px); filter:drop-shadow(0 0 12px rgba(247,147,26,.85)); }
  60%{ transform:scale(.99) translateY(0); }
}
@keyframes tgePop{
  0%{ transform:scale(1); }
  28%{ transform:scale(1.42) rotate(-7deg); }
  55%{ transform:scale(.92) rotate(4deg); }
  100%{ transform:scale(1) rotate(0); }
}

/* ── small screens ────────────────────────────────────────────────────────── */
@media (max-height: 700px){
  .core{ height:190px; }
  .core__unit{ width:164px; height:164px; }
  .core__ring{ width:184px; height:184px;
    mask:radial-gradient(circle, transparent 0 87px, #000 88px 90px, transparent 91px);
    -webkit-mask:radial-gradient(circle, transparent 0 87px, #000 88px 90px, transparent 91px); }
  .core__halo{ width:210px; height:210px; }
  .core__b{ font-size:48px; }
  .log{ max-height:104px; }
}
@media (max-width: 340px){
  .tele{ grid-template-columns:repeat(2,1fr); }
  .card__buy{ min-width:74px; }
}

/* ═══════════════════════════════════════════════════════════════════════════
   v2 — LIVE OUTPUT · POWER GRID · POWER PLANTS · ADMIN CONSOLE
   ═══════════════════════════════════════════════════════════════════════════ */

/* ── live output readout under the core ───────────────────────────────────── */
.output{
  display:flex; flex-direction:column; align-items:center; gap:4px;
  padding-top:4px;
}
.output__k{
  font-size:7.5px; letter-spacing:.3em; color:var(--faint); text-transform:uppercase;
}
.output__row{ display:flex; align-items:baseline; gap:7px; }
.output__v{
  font-size:26px; font-weight:600; color:var(--ink);
  text-shadow:0 0 26px rgba(255,196,107,.22);
}
.output__u{ font-size:9px; letter-spacing:.16em; color:var(--mute); }
.output__st{
  margin-top:5px;
  font-size:8px; letter-spacing:.24em; text-transform:uppercase;
  padding:4px 11px; border-radius:20px;
  border:1px solid rgba(63,217,138,.28); background:rgba(63,217,138,.07); color:var(--green);
  transition:color .3s, border-color .3s, background .3s;
}
.output__st[data-state="warn"]{
  color:var(--red); border-color:rgba(255,90,82,.32); background:rgba(255,90,82,.07);
  animation:flash 1.6s steps(2) infinite;
}
.output__st[data-state="idle"]{
  color:var(--faint); border-color:var(--line); background:var(--panel-2);
}
@keyframes flash{ 50%{ opacity:.45; } }

/* ── power grid panel ─────────────────────────────────────────────────────── */
.panel--grid{ padding:15px 16px 14px; }
.panel__badge.is-warn{
  color:var(--red); border-color:rgba(255,90,82,.3); background:rgba(255,90,82,.07);
}
.panel__badge.is-warn .dot--live{ background:var(--red); animation:none; }

.gbar__track{
  position:relative;
  height:12px;
  background:var(--panel-2);
  border:1px solid var(--line);
  border-radius:4px;
  overflow:hidden;
}
.gbar__track i{
  display:block; height:100%;
  background:linear-gradient(90deg, var(--cyan-dk), var(--cyan) 70%, #7BF0E4);
  box-shadow:0 0 14px rgba(43,212,196,.35);
  transition:width .5s var(--ease), background .3s;
}
.gbar__track i.is-over{
  background:linear-gradient(90deg, #7A1F1B, var(--red) 70%, #FF8A84);
  box-shadow:0 0 14px rgba(255,90,82,.4);
}
.gbar__track b{
  position:absolute; top:-2px; bottom:-2px; width:2px;
  background:var(--amber);
  box-shadow:0 0 8px rgba(247,147,26,.9);
  transition:left .5s var(--ease);
}
.gbar__track::after{
  content:""; position:absolute; inset:0; pointer-events:none;
  background:repeating-linear-gradient(90deg, transparent 0 5px, rgba(7,9,12,.7) 5px 7px);
}
.gbar__legend{
  display:flex; justify-content:space-between; align-items:center;
  margin-top:9px;
}
.gl{ display:flex; align-items:center; gap:6px; font-size:8px; letter-spacing:.14em;
     color:var(--faint); text-transform:uppercase; }
.gl b{ font-size:10.5px; letter-spacing:0; color:var(--ink-2); }
.gl__sw{ width:8px; height:3px; border-radius:2px; display:inline-block; }
.gl__sw--load{ background:var(--cyan); }
.gl__sw--cap{ background:var(--amber); }

.gnote{
  margin-top:11px;
  font-size:9.5px; line-height:1.5; color:var(--mute);
}
.gnote.is-warn{ color:var(--red); }

/* ── plants ───────────────────────────────────────────────────────────────── */
.sect--gap{ margin-top:10px; }

.card--plant.is-afford::before{ background:linear-gradient(180deg, transparent, var(--cyan), transparent); }
.card--plant.is-afford{ border-color:rgba(43,212,196,.22); }
.card--plant.is-owned .card__ico{
  border-color:rgba(43,212,196,.4);
  box-shadow:inset 0 0 18px rgba(43,212,196,.12);
}
.card__lvl--cyan{
  color:var(--cyan);
  border-color:rgba(43,212,196,.3); background:rgba(43,212,196,.08);
}
.card__st.cyan b{ color:var(--cyan); }
.card__st.red{ opacity:.85; }

.btn--cyan{
  background:linear-gradient(160deg, #7BF0E4, var(--cyan) 55%, #12897E);
  box-shadow:0 3px 14px rgba(43,212,196,.24), inset 0 1px 0 rgba(255,255,255,.3);
}

.panel--surge{
  border-color:rgba(43,212,196,.34);
  background:linear-gradient(120deg, rgba(43,212,196,.13), rgba(43,212,196,.02) 55%), var(--panel);
  padding:12px 14px;
}
.panel--surge .boost__t{ color:var(--cyan); }
.panel--surge .boost__x{ color:var(--cyan); text-shadow:0 0 18px rgba(43,212,196,.5); }

/* ── admin row in settings ────────────────────────────────────────────────── */
.row--admin{ border-top:0; }
.row__k--admin{ color:var(--amber-lt); }
.row--admin + .row{ border-top:1px solid var(--line); }

/* ═══════════════════ ADMIN CONSOLE ═══════════════════ */
.admin{
  position:fixed; inset:0; z-index:80;
  display:flex; flex-direction:column;
  background:var(--bg);
  padding-top:var(--safe-t);
  opacity:0; transform:translateY(16px);
  transition:opacity .3s var(--ease), transform .38s var(--ease);
}
.admin[hidden]{ display:none; }
.admin.is-on{ opacity:1; transform:none; }

.admin__bar{
  flex:none;
  display:flex; align-items:center; justify-content:space-between;
  padding:14px 14px 12px;
  border-bottom:1px solid var(--line);
  background:linear-gradient(180deg, rgba(247,147,26,.06), transparent);
}
.admin__t{
  display:flex; align-items:center; gap:8px;
  font-family:var(--ff-display); font-weight:700; font-size:13px;
  letter-spacing:.2em; text-transform:uppercase; color:var(--amber-lt);
}
.admin__x{
  width:30px; height:30px; display:grid; place-items:center;
  color:var(--mute); border:1px solid var(--line); border-radius:8px; background:var(--panel);
}
.admin__x svg{ width:14px; height:14px; }
.admin__x:active{ transform:scale(.94); }

.admin__body{
  flex:1; min-height:0; overflow-y:auto;
  padding:14px 12px calc(24px + var(--safe-b));
  display:flex; flex-direction:column; gap:11px;
  scrollbar-width:none;
}
.admin__body::-webkit-scrollbar{ display:none; }

.adm__load{ display:grid; place-items:center; padding:60px 0; }
.adm__spin{
  width:26px; height:26px; border-radius:50%;
  border:2px solid var(--line); border-top-color:var(--amber);
  animation:spin .8s linear infinite;
}
.adm__empty{
  padding:22px 8px; text-align:center;
  font-size:10.5px; color:var(--faint);
}

/* KPI grid */
.kpis{ display:grid; grid-template-columns:repeat(2, 1fr); gap:8px; }
.kpi{
  position:relative;
  padding:11px 12px;
  background:linear-gradient(180deg, rgba(255,255,255,.022), transparent 45%), var(--panel);
  border:1px solid var(--line); border-radius:11px;
  display:flex; flex-direction:column; gap:4px;
  overflow:hidden;
}
.kpi::before{
  content:""; position:absolute; left:0; top:0; bottom:0; width:2px;
  background:linear-gradient(180deg, transparent, var(--line-2), transparent);
}
.kpi--star::before{ background:linear-gradient(180deg, transparent, var(--star), transparent); }
.kpi__k{ font-size:7.5px; letter-spacing:.16em; color:var(--faint); text-transform:uppercase; }
.kpi__v{ font-size:17px; font-weight:600; color:var(--ink); }
.kpi--star .kpi__v{ color:var(--star); }

/* chart cards */
.adm__card{
  background:linear-gradient(180deg, rgba(255,255,255,.02), transparent 40%), var(--panel);
  border:1px solid var(--line); border-radius:var(--r);
  padding:14px 14px 12px;
}
.adm__hd{ display:flex; align-items:baseline; justify-content:space-between; margin-bottom:12px; gap:10px; }
.adm__t{
  font-family:var(--ff-display); font-weight:600; font-size:9.5px;
  letter-spacing:.2em; color:var(--ink-2); text-transform:uppercase;
}
.adm__sum{ font-size:12px; font-weight:600; color:var(--amber-lt); white-space:nowrap; }

.chart{ display:block; width:100%; height:78px; }
.chart__x{
  display:flex; justify-content:space-between; margin-top:6px;
  font-size:7px; letter-spacing:.06em; color:var(--faint);
}
.chart__x span{ white-space:nowrap; }

/* item mix */
.mix{ display:flex; flex-direction:column; gap:8px; }
.mix__row{
  display:grid; grid-template-columns:1fr 68px auto auto;
  align-items:center; gap:8px;
}
.mix__n{
  font-size:9.5px; color:var(--ink-2);
  white-space:nowrap; overflow:hidden; text-overflow:ellipsis;
}
.mix__bar{ height:5px; background:var(--panel-2); border-radius:3px; overflow:hidden; }
.mix__bar i{
  display:block; height:100%;
  background:linear-gradient(90deg, var(--amber-dk), var(--star));
}
.mix__v{ font-size:9.5px; color:var(--star); white-space:nowrap; }
.mix__c{ font-size:8.5px; color:var(--faint); min-width:26px; text-align:right; }

/* top users table */
.tbl{ display:flex; flex-direction:column; }
.tbl__hd, .tbl__r{
  display:grid; grid-template-columns:1fr 52px 74px 40px;
  align-items:center; gap:6px;
  padding:8px 0;
}
.tbl__hd{
  font-size:7px; letter-spacing:.16em; color:var(--faint); text-transform:uppercase;
  border-bottom:1px solid var(--line);
  padding-top:0;
}
.tbl__hd span:not(:first-child), .tbl__r span:not(:first-child){ text-align:right; }
.tbl__r{ border-bottom:1px solid rgba(27,34,44,.55); font-size:10px; color:var(--ink-2); }
.tbl__r:last-child{ border-bottom:0; }
.tbl__u{ display:flex; flex-direction:column; gap:1px; min-width:0; }
.tbl__u b{
  font-size:10.5px; font-weight:600; color:var(--ink);
  white-space:nowrap; overflow:hidden; text-overflow:ellipsis;
}
.tbl__u em{ font-style:normal; font-size:8px; color:var(--faint); }
.tbl__s{ color:var(--star); font-weight:600; }
.tbl__a{ color:var(--faint); font-size:9px; }

.adm__foot{
  display:flex; align-items:center; justify-content:space-between; gap:12px;
  padding-top:4px;
}
.adm__foot .btn{ padding:10px 16px; }
.adm__ts{ font-size:8.5px; color:var(--faint); letter-spacing:.08em; }

@media (min-width: 420px){
  .kpis{ grid-template-columns:repeat(4, 1fr); }
}

/* ═══════════════════════════════════════════════════════════════════════════
   v3 — BTC MINER MAX wordmark · currency · invites · story · wallet · terms
   ═══════════════════════════════════════════════════════════════════════════ */

/* ── splash wordmark ──────────────────────────────────────────────────────── */
.wordmark{
  margin-top:24px;
  display:flex; flex-direction:column; align-items:center; gap:6px;
  text-align:center;
}
.wordmark__top{
  font-family:var(--ff-display); font-weight:600; font-size:16px;
  letter-spacing:.62em; text-indent:.62em;
  color:var(--ink-2);
  animation:riseIn .7s var(--ease) .12s both;
}
.wordmark__max{
  position:relative;
  display:flex; align-items:center; gap:14px;
  animation:none;
}
.wordmark__max b{
  position:relative;
  font-family:var(--ff-display); font-weight:700;
  font-size:72px; line-height:.92;
  letter-spacing:.11em; text-indent:.11em;
  /* a wide metal ramp: the highlight is a band that travels across it once */
  background:linear-gradient(100deg,
    #8A5100 0%, #C87D14 18%, #FFC46B 36%, #FFF4DC 46%,
    #FFC46B 56%, #C87D14 74%, #8A5100 100%);
  background-size:300% 100%;
  background-position:130% 0;
  -webkit-background-clip:text; background-clip:text;
  color:transparent;
  -webkit-text-fill-color:transparent;
  filter:drop-shadow(0 0 22px rgba(247,147,26,.34));
  animation:
    maxWipe   .82s var(--ease)    .2s both,
    maxSheen 1.65s var(--ease-io) .85s both;
}
/* the letters are uncovered from the baseline up, then the light passes */
@keyframes maxWipe{
  0%{   opacity:0; clip-path:inset(0 0 100% 0); transform:translateY(6px); }
  100%{ opacity:1; clip-path:inset(0 0 0 0);    transform:none; }
}
@keyframes maxSheen{
  0%{   background-position:130% 0; }
  100%{ background-position:-30% 0; }
}
/* engraved ghost sitting under the gradient */
.wordmark__max::before{
  content:attr(data-text);
  position:absolute; left:50%; top:50%;
  transform:translate(-50%,-50%) translateY(2px);
  font-family:var(--ff-display); font-weight:700;
  font-size:72px; line-height:.92;
  letter-spacing:.11em; text-indent:.11em;
  color:transparent;
  -webkit-text-stroke:1px rgba(255,196,107,.20);
  pointer-events:none;
  animation:ghostIn 1s var(--ease) .1s both;
}
@keyframes ghostIn{ from{ opacity:0; } to{ opacity:1; } }
.wordmark__rule{
  width:38px; height:1px; flex:none;
  animation:ruleIn .7s var(--ease) .62s both;
  background:linear-gradient(90deg, transparent, rgba(247,147,26,.75));
}
.wordmark__rule:last-child{
  background:linear-gradient(90deg, rgba(247,147,26,.75), transparent);
}
/* the rules draw themselves outward from the word */
@keyframes ruleIn{ from{ width:0; opacity:0; } to{ width:38px; opacity:1; } }

/* the splash sub-line sits under the wordmark now */
.splash__sub{ margin-top:14px; }

/* ── header: balance is a control ─────────────────────────────────────────── */
.hdr__bal{
  margin-left:auto; margin-right:2px;
  display:flex; flex-direction:column; align-items:flex-end; gap:2px;
  padding:5px 8px 5px 10px;
  border-radius:10px;
  border:1px solid transparent;
  transition:border-color .2s, background .2s, transform .14s var(--ease);
}
.hdr__bal:active{ transform:scale(.97); background:rgba(255,255,255,.03); border-color:var(--line); }
.hdr__bal::after{
  content:"⇄";
  position:absolute; opacity:0;
}

/* difficulty cell is tappable */
.tele__cell--btn{
  text-align:left; font:inherit;
  border:0; border-radius:0;
  cursor:pointer;
}
.tele__cell--btn:active{ background:var(--panel-2); }
.tele__cell--btn::after{
  content:"?";
  position:absolute; top:7px; right:8px;
  width:11px; height:11px; border-radius:50%;
  font-size:7.5px; line-height:11px; text-align:center;
  color:var(--faint); border:1px solid var(--line-2);
}
.tele__cell.is-hot .tele__v{ color:var(--red); }

/* ── live output: fiat line ───────────────────────────────────────────────── */
.output__fiat{
  font-size:11px; color:var(--cyan);
  letter-spacing:.02em;
}
.output__fiat em{ font-style:normal; color:var(--mute); font-size:9px; letter-spacing:.1em; }

/* ── star market: why-prices bar ──────────────────────────────────────────── */
.whybar{
  display:flex; align-items:center; justify-content:space-between;
  width:100%; padding:11px 14px;
  background:linear-gradient(120deg, rgba(255,210,74,.10), rgba(255,210,74,.02) 60%), var(--panel);
  border:1px solid rgba(255,210,74,.24); border-radius:12px;
  transition:transform .14s var(--ease);
}
.whybar:active{ transform:scale(.99); }
.whybar__l{ display:flex; align-items:center; gap:9px; font-size:11px; color:var(--ink-2); }
.whybar__q{
  width:17px; height:17px; flex:none; border-radius:50%;
  display:grid; place-items:center;
  font-size:10px; font-weight:700; color:var(--void);
  background:var(--star);
}
.whybar__tier{
  font-family:var(--ff-display); font-weight:700; font-size:13px;
  color:var(--star); letter-spacing:.08em;
}

/* ── invite panel ─────────────────────────────────────────────────────────── */
.panel--invite{
  background:
    linear-gradient(150deg, rgba(43,212,196,.10), transparent 52%),
    linear-gradient(180deg, rgba(255,255,255,.022), transparent 40%),
    var(--panel);
  border-color:rgba(43,212,196,.22);
}
.inv__hd{ display:flex; gap:12px; align-items:flex-start; }
.inv__ico{ font-size:26px; flex:none; }
.inv__t{
  font-family:var(--ff-display); font-weight:700; font-size:13px;
  letter-spacing:.16em; text-transform:uppercase; color:var(--ink);
}
.inv__s{ margin-top:5px; font-size:10px; line-height:1.55; color:var(--mute); }

.inv__stats{
  display:flex; align-items:center;
  margin:14px 0 13px;
  padding:11px 0;
  border-top:1px solid var(--line); border-bottom:1px solid var(--line);
}
.inv__cell{ flex:1; display:flex; flex-direction:column; gap:3px; align-items:center; }
.inv__k{ font-size:7.5px; letter-spacing:.16em; color:var(--faint); text-transform:uppercase; }
.inv__v{ font-size:20px; font-weight:600; color:var(--cyan); }
.inv__cell:last-child .inv__v{ color:var(--amber-lt); }
.inv__sep{ width:1px; align-self:stretch; background:var(--line); }

.inv__acts{ display:flex; flex-direction:column; gap:8px; }
.inv__acts .btn--ghost{ padding:11px; font-size:10.5px; }

/* ── story panel ──────────────────────────────────────────────────────────── */
.panel--story{
  position:relative;
  padding:0;
  border-color:rgba(247,147,26,.28);
  overflow:hidden;
}
.story__glow{
  position:absolute; inset:0;
  background:
    radial-gradient(120% 90% at 82% 12%, rgba(247,147,26,.24), transparent 62%),
    radial-gradient(90% 80% at 10% 92%, rgba(43,212,196,.16), transparent 60%);
}
.story__body{ position:relative; padding:16px; }
.story__k{
  font-family:var(--ff-display); font-weight:700; font-size:12px;
  letter-spacing:.22em; text-transform:uppercase; color:var(--amber-lt);
}
.story__s{ margin:7px 0 14px; font-size:10px; line-height:1.55; color:var(--ink-2); max-width:38ch; }
.btn--story{
  width:100%; padding:13px;
  display:flex; align-items:center; justify-content:center; gap:9px;
  font-size:11.5px;
  background:linear-gradient(120deg, #FFD9A0, var(--amber) 45%, #C46A00);
}
.btn--story tg-emoji{ font-size:16px; }

/* ── payout wallet ────────────────────────────────────────────────────────── */
.wal__s{ font-size:10px; line-height:1.55; color:var(--mute); margin-bottom:11px; }
.wal__row{ display:flex; gap:8px; margin-bottom:10px; }
.wal__in{
  flex:1; min-width:0;
  padding:11px 12px;
  font-family:var(--ff-mono); font-size:11px;
  color:var(--ink);
  background:var(--panel-2);
  border:1px solid var(--line); border-radius:9px;
  outline:none;
  transition:border-color .2s;
}
.wal__in:focus{ border-color:rgba(247,147,26,.45); }
.wal__in::placeholder{ color:var(--faint); }
.btn--sm{ padding:11px 15px; font-size:10.5px; flex:none; }
.wal__note{
  margin-top:11px;
  font-size:9px; line-height:1.6; color:var(--faint);
}

/* ── sheet extras ─────────────────────────────────────────────────────────── */
.sheet__stat{
  display:flex; align-items:center; justify-content:space-between;
  margin-top:14px; padding:11px 13px;
  background:var(--panel-2); border:1px solid var(--line); border-radius:10px;
  font-size:9px; letter-spacing:.16em; color:var(--faint); text-transform:uppercase;
}
.sheet__stat b{ font-size:14px; letter-spacing:0; color:var(--amber-lt); text-transform:none; }
.sheet__addr{
  margin-top:8px; padding:10px 12px;
  background:var(--panel-2); border:1px dashed var(--line-2); border-radius:10px;
  font-size:10px; color:var(--ink-2); word-break:break-all; text-align:center;
}

/* ── terms of service ─────────────────────────────────────────────────────── */
.terms{
  position:fixed; inset:0; z-index:90;
  display:flex; flex-direction:column;
  background:var(--bg);
  padding-top:var(--safe-t);
  opacity:0; transform:translateY(16px);
  transition:opacity .3s var(--ease), transform .38s var(--ease);
}
.terms[hidden]{ display:none; }
.terms.is-on{ opacity:1; transform:none; }

.terms__bar{
  flex:none;
  display:flex; align-items:center; justify-content:space-between;
  padding:14px 14px 12px;
  border-bottom:1px solid var(--line);
  background:linear-gradient(180deg, rgba(247,147,26,.05), transparent);
}

/* accept sits outside the scrollable body, in its own bar — always in view
   while reading, never requiring a scroll to the very end to find it */
.terms__acceptBar{
  flex:none;
  padding:13px 16px calc(14px + var(--safe-b));
  border-top:1px solid var(--line);
  background:linear-gradient(0deg, var(--bg) 55%, rgba(7,9,12,.85));
  box-shadow:0 -8px 20px rgba(0,0,0,.35);
}
.terms__acceptBar .btn{ padding:14px; font-size:12px; }
.terms__body{
  flex:1; min-height:0; overflow-y:auto;
  padding:18px 16px 28px;
  scrollbar-width:none;
}
.terms__body::-webkit-scrollbar{ display:none; }

.terms__doc{ max-width:62ch; margin:0 auto; }
.terms__meta{
  font-size:8.5px; line-height:1.7; letter-spacing:.06em;
  color:var(--faint); text-transform:uppercase;
  padding-bottom:12px; border-bottom:1px solid var(--line);
}
.terms__title{
  margin-top:16px;
  font-family:var(--ff-display); font-weight:700; font-size:22px;
  letter-spacing:.1em; text-transform:uppercase; color:var(--ink);
}
.terms__nature{
  margin-top:8px;
  font-size:11px; line-height:1.6; color:var(--amber-lt);
}
.terms__toc{
  margin-top:16px; padding:11px 12px;
  font-size:8.5px; line-height:1.9; letter-spacing:.05em;
  color:var(--mute); text-transform:uppercase;
  background:var(--panel-2); border:1px solid var(--line); border-radius:9px;
}
.terms__wall{ margin-top:18px; }
.terms__wall p,
.terms__artB p{
  font-size:10.5px; line-height:1.72; color:var(--ink-2);
  margin-bottom:9px;
  text-align:justify; hyphens:auto;
}
.terms__list{ margin-top:6px; padding:0; list-style:none; counter-reset:none; }
.terms__art{ margin-top:22px; padding-top:16px; border-top:1px solid var(--line); }
.terms__artT{
  font-family:var(--ff-display); font-weight:600; font-size:12px;
  letter-spacing:.13em; text-transform:uppercase; color:var(--amber);
  margin-bottom:9px;
}
.terms__age{
  margin-top:24px; padding:11px 12px;
  font-size:9.5px; line-height:1.65; color:var(--mute);
  background:var(--panel-2); border:1px solid var(--line); border-radius:9px;
}
.terms__sign{
  margin-top:14px; margin-bottom:20px;
  font-size:10px; line-height:1.65; color:var(--faint); font-style:italic;
}

/* ── attention pip on the modules tab ─────────────────────────────────────── */
.tab__pip{
  position:absolute; top:-1px; right:-3px;
  width:6px; height:6px; border-radius:50%;
  background:var(--amber);
  box-shadow:0 0 0 2px var(--bg), 0 0 8px rgba(247,147,26,.9);
  animation:ping2 1.9s var(--ease-io) infinite;
}
@keyframes ping2{ 0%,100%{ transform:scale(1);} 50%{ transform:scale(1.3);} }

/* ── small screens ────────────────────────────────────────────────────────── */
@media (max-height: 700px){
  .wordmark__max b, .wordmark__max::before{ font-size:58px; }
  .wordmark__top{ font-size:14px; }
}

/* payout queue in the admin console */
.kpi--warn::before{ background:linear-gradient(180deg, transparent, var(--red), transparent); }
.kpi--warn .kpi__v{ color:var(--red); }
.po{ padding:10px 0; border-bottom:1px solid rgba(27,34,44,.55); }
.po:last-child{ border-bottom:0; }
.po__hd{ display:flex; align-items:baseline; gap:7px; }
.po__hd b{ font-size:11px; color:var(--ink); font-weight:600; }
.po__hd em{ font-style:normal; font-size:8.5px; color:var(--faint); }
.po__a{ margin-left:auto; font-size:11px; color:var(--amber-lt); font-weight:600; white-space:nowrap; }
.po__w{ margin-top:4px; font-size:9px; color:var(--ink-2); word-break:break-all; }
.po__t{ margin-top:3px; font-size:8.5px; color:var(--faint); }

/* what an invite actually pays */
.inv__pay{
  display:flex; align-items:baseline; gap:8px; flex-wrap:wrap;
  margin:0 0 13px;
  padding:11px 13px;
  background:linear-gradient(120deg, rgba(247,147,26,.12), rgba(247,147,26,.02) 60%);
  border:1px solid rgba(247,147,26,.26); border-radius:11px;
}
.inv__payK{
  font-size:7.5px; letter-spacing:.16em; color:var(--faint); text-transform:uppercase;
  width:100%;
}
.inv__payV{ font-size:19px; font-weight:600; color:var(--amber-lt); }
.inv__payU{ font-size:9px; letter-spacing:.14em; color:var(--mute); }
.inv__payF{ margin-left:auto; font-size:11px; color:var(--cyan); }

/* ── fixed Terms access — always reachable regardless of tab ─────────────── */

/* ═══════════════════════════════════════════════════════════════════════════
   ADMIN — user management (search, rows, detail view)
   ═══════════════════════════════════════════════════════════════════════════ */
.adm__search{
  width:100%;
  padding:11px 13px;
  margin-bottom:11px;
  font-family:var(--ff-mono); font-size:11.5px;
  color:var(--ink);
  background:var(--panel-2);
  border:1px solid var(--line); border-radius:9px;
  outline:none;
  transition:border-color .2s;
}
.adm__search:focus{ border-color:rgba(247,147,26,.45); }
.adm__search::placeholder{ color:var(--faint); }

.usrs{ display:flex; flex-direction:column; gap:6px; max-height:340px; overflow-y:auto; scrollbar-width:none; }
.usrs::-webkit-scrollbar{ display:none; }

.usr{
  display:flex; align-items:center; flex-wrap:wrap; gap:4px 10px;
  width:100%; text-align:left;
  padding:10px 12px;
  background:var(--panel-2);
  border:1px solid var(--line); border-radius:9px;
  transition:border-color .15s, transform .12s var(--ease);
}
.usr:active{ transform:scale(.99); border-color:rgba(247,147,26,.3); }
.usr__id{ display:flex; flex-direction:column; gap:1px; min-width:0; flex:1; }
.usr__id b{ font-size:11px; font-weight:600; color:var(--ink); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.usr__id em{ font-style:normal; font-size:8.5px; color:var(--faint); }
.usr__meta{
  display:flex; align-items:center; gap:6px;
  font-size:9px; color:var(--mute); white-space:nowrap;
}
.usr__meta b{ color:var(--amber-lt); font-weight:600; }
.usr__dot{ width:2px; height:2px; border-radius:50%; background:var(--line-2); display:inline-block; }
.usr__banned{
  font-size:7.5px; letter-spacing:.12em; text-transform:uppercase; font-weight:600;
  color:var(--red); padding:2px 7px; border-radius:20px;
  border:1px solid rgba(255,90,82,.35); background:rgba(255,90,82,.08);
  flex:none;
}

.adm__back{
  display:inline-flex; align-items:center; gap:4px;
  margin-bottom:12px;
  font-size:10.5px; letter-spacing:.1em; color:var(--ink-2); text-transform:uppercase;
  padding:8px 4px;
}
.adm__back:active{ opacity:.6; }

.dhead{ display:flex; align-items:center; gap:12px; margin-bottom:12px; }
.dhead__av{
  width:46px; height:46px; flex:none;
  display:grid; place-items:center;
  font-family:var(--ff-display); font-weight:700; font-size:19px;
  color:var(--amber-lt);
  background:linear-gradient(145deg, rgba(247,147,26,.16), rgba(247,147,26,.03)), var(--panel-2);
  border:1px solid rgba(247,147,26,.28);
  border-radius:12px;
}
.dhead__id{ display:flex; flex-direction:column; gap:2px; min-width:0; flex:1; }
.dhead__n{ font-size:14px; font-weight:600; color:var(--ink); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.dhead__u{ font-size:9.5px; color:var(--faint); }
.dhead__badge{ flex:none; }

.dstats{ display:grid; grid-template-columns:1fr 1fr; gap:2px 16px; }
.dstat{ display:flex; justify-content:space-between; align-items:baseline; padding:7px 0; border-bottom:1px solid rgba(27,34,44,.6); }
.dstat__k{ font-size:9px; letter-spacing:.1em; color:var(--faint); text-transform:uppercase; }
.dstat__v{ font-size:11.5px; font-weight:600; color:var(--ink); }
.dstat__v.amber{ color:var(--amber-lt); }
.dstat__v.star{ color:var(--star); }

.dnote{ margin-top:11px; font-size:9.5px; color:var(--mute); line-height:1.7; }
.dnote b{ color:var(--ink-2); font-weight:600; }
.dnote--tight{ margin-top:0; margin-bottom:11px; }

.dgrant{ display:flex; gap:8px; }
.dgrant .adm__search{ margin-bottom:0; flex:1; }
.dgrant .btn{ flex:none; padding:11px 18px; }

.hist{ display:flex; flex-direction:column; }
.hist__r{
  display:flex; align-items:center; gap:8px;
  padding:9px 0; border-top:1px solid rgba(27,34,44,.6);
  font-size:10px; color:var(--ink-2);
}
.hist__r:first-child{ border-top:0; }
.hist__r > span:first-child{ flex:1; min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.hist__s{ color:var(--star); font-weight:600; }
.hist__pos{ color:var(--green); }
.hist__neg{ color:var(--red); }
.hist__t{ color:var(--faint); font-size:9px; min-width:38px; text-align:right; }

.btn--danger{
  background:linear-gradient(160deg, #FF8A84, var(--red) 55%, #A81E17);
  box-shadow:0 3px 14px rgba(255,90,82,.26), inset 0 1px 0 rgba(255,255,255,.25);
}

.adm__load--sm{ padding:24px 0; }

/* ═══════════════════════════════════════════════════════════════════════════
   SUSPENDED ACCOUNT — full-screen lock, no way to dismiss it client-side
   ═══════════════════════════════════════════════════════════════════════════ */
.lock{
  position:fixed; inset:0; z-index:100;
  display:flex; flex-direction:column; align-items:center; justify-content:center;
  gap:14px;
  padding:40px 32px;
  text-align:center;
  background:var(--void);
  opacity:0;
  transition:opacity .4s var(--ease);
}
.lock[hidden]{ display:none; }
.lock.is-on{ opacity:1; }
.lock__glow{
  position:absolute; left:50%; top:38%;
  width:min(520px,140vw); aspect-ratio:1; transform:translate(-50%,-50%);
  background:radial-gradient(circle, rgba(255,90,82,.16) 0%, rgba(255,90,82,.04) 42%, transparent 68%);
}
.lock__ico{ position:relative; font-size:52px; margin-bottom:6px; }
.lock__t{
  position:relative;
  font-family:var(--ff-display); font-weight:700; font-size:19px;
  letter-spacing:.14em; text-transform:uppercase; color:var(--red);
}
.lock__d{
  position:relative;
  max-width:36ch;
  font-size:12px; line-height:1.7; color:var(--ink-2);
}

/* ── quantity selector ─────────────────────────────────────────────────────
   Units are small and cheap by design, so a returning player has a queue of
   them waiting. This decides how many one tap clears. */
.qty{
  display:flex; gap:6px; margin:0 0 10px; padding:4px;
  background:var(--panel-2); border:1px solid var(--line); border-radius:12px;
}
.qty__b{
  flex:1; padding:9px 0;
  font:600 11px/1 var(--ff-mono); letter-spacing:.08em; color:var(--ink-2);
  background:none; border:0; border-radius:9px; cursor:pointer;
  transition:background .18s var(--ease), color .18s var(--ease);
}
.qty__b:hover{ color:var(--ink); }
.qty__b.is-on{
  color:var(--bg); background:linear-gradient(180deg,var(--amber-lt),var(--amber));
  box-shadow:0 2px 10px -4px var(--amber);
}

/* Account deletion sits in its own card, set apart from the controls above it
   so it is never the thing you tap by accident. */
.adm__card--danger{ border-color:rgba(255,90,82,.34); }
.adm__card--danger .adm__t{ color:var(--red); }
.dnote--tight{ margin-top:0; }

/* ═══════════════════════════════════════════════════════════════════════════
   RIG HUB — launcher cards that take the place of the old MINES/MODULES tabs
   ═══════════════════════════════════════════════════════════════════════════ */
.card--launch{
  width:100%; text-align:left; cursor:pointer;
  font:inherit; color:inherit;
}
.card__d.is-warn{ color:var(--red); }

/* attention dot anchored to a launcher's icon badge — same visual language
   as .tab__pip, which no longer applies once mines/modules leave the footer */
.card__pip{
  position:absolute; top:-3px; right:-3px;
  width:8px; height:8px; border-radius:50%;
  background:var(--red);
  box-shadow:0 0 0 2px var(--bg), 0 0 8px rgba(255,90,82,.8);
  animation:ping2 1.9s var(--ease-io) infinite;
}

/* in-screen return link for a screen reached only through RIG, so it stays
   reachable even where Telegram's native BackButton is unavailable */
.scr__back{
  display:inline-flex; align-items:center; gap:4px;
  margin-bottom:0;
  font-size:10.5px; letter-spacing:.1em; color:var(--ink-2); text-transform:uppercase;
  padding:8px 4px;
}
.scr__back:active{ opacity:.6; }

/* ── saved payout addresses — up to WALLET_MAX, each withdrawable on its own ─ */
.walcount{
  font-size:9px; letter-spacing:.14em; color:var(--faint); text-transform:uppercase;
  margin:9px 0 10px;
}
.walbanner{
  padding:10px 12px; margin-bottom:12px;
  font-size:10.5px; color:var(--ink-2); line-height:1.5;
  background:var(--panel-2); border:1px solid var(--line); border-radius:10px;
}
.walbanner.is-warn{ color:var(--amber-lt); border-color:rgba(247,147,26,.3); }
.walempty{
  padding:16px 4px; text-align:center;
  font-size:10.5px; color:var(--faint); line-height:1.6;
}
.wallist{ display:flex; flex-direction:column; gap:8px; }
.wallist:not(:empty){ margin-bottom:14px; }
.walrow{
  display:flex; align-items:center; gap:8px;
  padding:10px 10px 10px 13px;
  background:var(--panel-2); border:1px solid var(--line); border-radius:10px;
}
.walrow__a{
  flex:1; min-width:0;
  font-family:var(--ff-mono); font-size:11px; color:var(--ink);
  overflow:hidden; text-overflow:ellipsis; white-space:nowrap;
}
.walrow__go{ flex:none; padding:8px 12px; font-size:9.5px; }
.walrow__x{
  flex:none; width:26px; height:26px; border-radius:8px;
  display:grid; place-items:center;
  color:var(--faint); font-size:15px; line-height:1;
  background:none; border:1px solid var(--line);
}
.walrow__x:active{ color:var(--red); border-color:rgba(255,90,82,.4); }
