/* ────────────────────────────────────────────────────────────────────────
   TRENCHES WALLET — deposit + withdraw overlay.
   Same theme as the ARMORY (shop.css): Chakra Petch, amber #ffae00, dark
   gunmetal panels. Fully scoped under #trenches-wallet (+ the #tl-wallet-bar header
   controls) so nothing here collides with the front-door styles or the shop.
   Opened by the header ADD FUNDS / WITHDRAW controls AND window.TrenchesOpenWallet
   (in-game Unity menu, via the jslib bridge).
   ──────────────────────────────────────────────────────────────────────── */

/* ---- header wallet bar (balance + ADD FUNDS + WITHDRAW), matches the landing top-bar.
        Sharp corners + the landing --tl- palette so it sits flush with #tl-token-pill. ---- */
#tl-wallet-bar{ display:flex; align-items:center; gap:10px; }
#tl-wallet-bar[hidden]{ display:none; }
#tl-balance{
  font-size:11px; letter-spacing:.14em; color:var(--tl-steel);
  border:1px solid var(--tl-line); padding:8px 14px; background:rgba(11,14,16,.55); white-space:nowrap;
}
#tl-balance b{ color:var(--tl-gold); font-weight:700; margin:0 3px; }
.tl-wallet-btn{
  font-family:inherit; font-size:11px; font-weight:700; letter-spacing:.14em; cursor:pointer;
  padding:8px 14px; border:1px solid var(--tl-gold); background:var(--tl-gold); color:#0b0e10;
  transition:.15s;
}
.tl-wallet-btn:hover{ background:var(--tl-gold-deep); border-color:var(--tl-gold-deep); }
.tl-wallet-btn.ghost{ color:var(--tl-steel); background:transparent; border-color:var(--tl-line); }
.tl-wallet-btn.ghost:hover{ color:var(--tl-gold); border-color:var(--tl-gold); }

/* ---- deposit-in-flight pill: visible while funds sit on the in-game wallet being swept,
        so a fresh deposit never looks 'swallowed'. Amber + soft pulse + animated ellipsis;
        flips green on credit. Sits flush-left of the balance in the header bar. ---- */
#tl-deposit-pill{
  display:inline-flex; align-items:center; white-space:nowrap;
  font-size:11px; font-weight:700; letter-spacing:.14em; text-transform:uppercase;
  padding:8px 12px; border:1px solid var(--tl-gold);
  color:var(--tl-gold); background:rgba(255,174,0,.08);
  animation:tl-dep-pulse 1.4s ease-in-out infinite;
}
#tl-deposit-pill[hidden]{ display:none; }
#tl-deposit-pill.credited{ color:#27c08a; border-color:#1c5e47; background:#0e2a22; animation:none; }
#tl-deposit-pill .tl-pill-dots::after{ content:""; animation:tl-dep-dots 1.2s steps(1,end) infinite; }
#tl-deposit-pill.credited .tl-pill-dots{ display:none; }
@keyframes tl-dep-pulse{
  0%,100%{ box-shadow:0 0 0 1px rgba(255,174,0,.10); opacity:.92; }
  50%{ box-shadow:0 0 14px rgba(255,174,0,.30); opacity:1; }
}
@keyframes tl-dep-dots{ 0%{content:"";} 25%{content:".";} 50%{content:"..";} 75%,100%{content:"...";} }

/* ---- backdrop ---- */
#trenches-wallet{
  position:fixed;inset:0;z-index:10001;display:none;
  align-items:center;justify-content:center;padding:26px;
  background:rgba(4,5,7,.72);backdrop-filter:blur(6px);
  font-family:'Chakra Petch',system-ui,sans-serif;color:#e9e9ea;
}
#trenches-wallet.open{display:flex}
#trenches-wallet *{box-sizing:border-box}

#trenches-wallet .tw-panel{
  width:100%;max-width:480px;border:1px solid #23272e;border-radius:18px;overflow:hidden;
  background:linear-gradient(180deg,#101216,#0c0e11);
  box-shadow:0 30px 80px rgba(0,0,0,.6), inset 0 1px 0 rgba(255,255,255,.03);
}

/* ---- header ---- */
#trenches-wallet .tw-head{
  display:flex;align-items:center;justify-content:space-between;
  padding:18px 22px;border-bottom:1px solid #23272e;background:linear-gradient(180deg,#14171c,#101216);
}
#trenches-wallet .tw-head h1{margin:0;font-size:19px;letter-spacing:4px;font-weight:700;display:flex;align-items:center;gap:12px}
#trenches-wallet .tw-head h1 .tw-bar{width:5px;height:20px;background:#ffae00;box-shadow:0 0 12px #ffae00;border-radius:2px}
#trenches-wallet .tw-close{cursor:pointer;color:#8a8f98;border:1px solid #23272e;border-radius:9px;padding:6px 11px;font-weight:700;letter-spacing:1px}
#trenches-wallet .tw-close:hover{color:#e9e9ea;border-color:#ffae00}

/* ---- tabs ---- */
#trenches-wallet .tw-tabs{display:flex;gap:8px;padding:16px 22px 0}
#trenches-wallet .tw-tab{
  flex:1;text-align:center;cursor:pointer;user-select:none;
  border:1px solid #23272e;border-radius:11px;padding:12px;
  font-size:14px;font-weight:800;letter-spacing:2px;color:#8a8f98;background:#15181d;transition:.15s;
}
#trenches-wallet .tw-tab:hover{color:#e9e9ea;border-color:#33383f}
#trenches-wallet .tw-tab.active{color:#ffae00;border-color:#ffae00;background:#1b1f25;box-shadow:0 0 0 1px rgba(255,174,0,.25)}

/* ---- views ---- */
#trenches-wallet .tw-view{display:none;padding:20px 22px 22px}
#trenches-wallet .tw-view.show{display:block}
#trenches-wallet .tw-label{font-size:11.5px;letter-spacing:2px;color:#8a8f98;font-weight:700;margin:0 0 8px}

/* ---- deposit ---- */
#trenches-wallet .tw-addr{
  display:flex;align-items:center;gap:10px;border:1px solid #23272e;border-radius:12px;
  background:#15181d;padding:13px 14px;margin-bottom:12px;
}
#trenches-wallet .tw-addr code{
  flex:1;font-family:'Chakra Petch',monospace;font-size:13px;color:#e9e9ea;letter-spacing:.3px;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
}
#trenches-wallet .tw-copy{
  cursor:pointer;border:1px solid #ffae00;color:#ffae00;background:#1b1f25;border-radius:9px;
  padding:8px 13px;font-weight:800;letter-spacing:1px;font-size:12px;transition:.15s;white-space:nowrap;
}
#trenches-wallet .tw-copy:hover{background:#22272f;box-shadow:0 0 16px rgba(255,174,0,.3)}
#trenches-wallet .tw-status{
  border:1px solid #23272e;border-radius:12px;background:#101317;padding:13px 14px;
  font-size:13px;line-height:1.55;color:#c7ccd4;letter-spacing:.3px;margin-bottom:12px;
}
#trenches-wallet .tw-status.live{border-color:#3a2f12;color:#ffd86b;box-shadow:0 0 0 1px rgba(255,174,0,.12)}
#trenches-wallet .tw-status.good{border-color:#1c5e47;color:#27c08a;background:#0e2a22}
#trenches-wallet .tw-note{font-size:11.5px;color:#8a8f98;line-height:1.55;letter-spacing:.3px}
#trenches-wallet .tw-note b{color:#ffc24d}

/* ---- withdraw ---- */
#trenches-wallet .tw-bal{
  display:flex;align-items:baseline;justify-content:space-between;
  border:1px solid #23272e;border-radius:12px;background:#15181d;padding:14px 16px;margin-bottom:16px;
}
#trenches-wallet .tw-bal .tw-bal-l{font-size:11.5px;letter-spacing:2px;color:#8a8f98;font-weight:700}
#trenches-wallet .tw-bal .tw-bal-v{font-size:24px;font-weight:800;color:#ffd86b;letter-spacing:.5px}
#trenches-wallet .tw-bal .tw-bal-v small{font-size:13px;color:#8a8f98;font-weight:600;letter-spacing:1px;margin-left:5px}

#trenches-wallet .tw-input-wrap{position:relative;margin-bottom:12px}
#trenches-wallet .tw-input{
  width:100%;border:1px solid #23272e;border-radius:12px;background:#101317;
  color:#e9e9ea;font-family:inherit;font-size:20px;font-weight:700;letter-spacing:.5px;
  padding:15px 70px 15px 15px;outline:none;transition:.15s;
}
#trenches-wallet .tw-input:focus{border-color:#ffae00;box-shadow:0 0 0 1px rgba(255,174,0,.35)}
#trenches-wallet .tw-input::placeholder{color:#5b616b;font-weight:600}
#trenches-wallet .tw-input-suffix{
  position:absolute;right:16px;top:50%;transform:translateY(-50%);
  font-size:13px;font-weight:800;letter-spacing:2px;color:#8a8f98;pointer-events:none;
}

#trenches-wallet .tw-presets{display:flex;gap:8px;margin-bottom:10px}
#trenches-wallet .tw-preset{
  flex:1;cursor:pointer;user-select:none;text-align:center;
  border:1px solid #23272e;border-radius:10px;background:#15181d;color:#c7ccd4;
  padding:11px;font-size:13px;font-weight:800;letter-spacing:1.5px;transition:.15s;
}
#trenches-wallet .tw-preset:hover{color:#e9e9ea;border-color:#33383f}
#trenches-wallet .tw-preset.active{color:#1a1206;border-color:#ffae00;background:linear-gradient(90deg,#b8821f,#ffae00);box-shadow:0 0 18px rgba(255,174,0,.35)}

#trenches-wallet .tw-helper{font-size:12.5px;color:#8a8f98;letter-spacing:.4px;min-height:18px;margin-bottom:14px}
#trenches-wallet .tw-helper b{color:#ffd86b;font-weight:700}

#trenches-wallet .tw-dest{
  width:100%;border:1px solid #23272e;border-radius:12px;background:#101317;
  color:#e9e9ea;font-family:'Chakra Petch',monospace;font-size:13px;letter-spacing:.3px;
  padding:13px 14px;outline:none;transition:.15s;margin-bottom:16px;
}
#trenches-wallet .tw-dest:focus{border-color:#ffae00;box-shadow:0 0 0 1px rgba(255,174,0,.35)}
#trenches-wallet .tw-dest::placeholder{color:#5b616b}

#trenches-wallet .tw-submit{
  width:100%;border:none;cursor:pointer;border-radius:12px;padding:16px;
  font-family:inherit;font-size:18px;font-weight:800;letter-spacing:3px;transition:.15s;
  background:linear-gradient(90deg,#b8821f,#ffae00);color:#1a1206;
}
#trenches-wallet .tw-submit:hover{box-shadow:0 0 26px rgba(255,174,0,.45);transform:translateY(-1px)}
#trenches-wallet .tw-submit.busy{background:#1b1f25;color:#8a8f98;cursor:wait;box-shadow:none;transform:none}
#trenches-wallet .tw-submit:disabled{background:#15181d;color:#5b616b;cursor:not-allowed;box-shadow:none;transform:none}

#trenches-wallet .tw-result{margin-top:12px;font-size:13px;letter-spacing:.3px;line-height:1.5;min-height:18px;text-align:center}
#trenches-wallet .tw-result.ok{color:#27c08a}
#trenches-wallet .tw-result.err{color:#ff6a5d}

/* ---- footer ---- */
#trenches-wallet .tw-foot{
  padding:14px 22px;border-top:1px solid #23272e;color:#8a8f98;font-size:12px;
  display:flex;gap:18px;flex-wrap:wrap;align-items:center;letter-spacing:.5px;
}
#trenches-wallet .tw-pill{border:1px solid #23272e;border-radius:20px;padding:5px 12px}

/* ────────────────────────────────────────────────────────────────────────
   COMING SOON gate — replaces the wallet on devnet. Same amber/gunmetal theme.
   Blurs the page behind it; Admin unlock reveals the real wallet.
   ──────────────────────────────────────────────────────────────────────── */
#trenches-soon{
  position:fixed;inset:0;z-index:10002;display:none;
  align-items:center;justify-content:center;padding:26px;
  background:rgba(4,5,7,.55);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);
  font-family:'Chakra Petch',system-ui,sans-serif;color:#e9e9ea;
}
#trenches-soon.open{display:flex}
#trenches-soon *{box-sizing:border-box}
#trenches-soon .ts-panel{
  position:relative;width:100%;max-width:440px;text-align:center;
  border:1px solid #23272e;border-radius:18px;padding:38px 34px 30px;
  background:linear-gradient(180deg,#101216,#0c0e11);
  box-shadow:0 30px 80px rgba(0,0,0,.6), inset 0 1px 0 rgba(255,255,255,.03);
}
#trenches-soon .ts-badge{
  display:inline-block;font-size:11px;font-weight:800;letter-spacing:3px;color:#ffae00;
  border:1px solid #3a2f12;border-radius:20px;padding:5px 14px;margin-bottom:16px;
  background:rgba(255,174,0,.06);
}
#trenches-soon .ts-title{
  margin:0 0 12px;font-size:34px;font-weight:800;letter-spacing:6px;color:#e9e9ea;
  text-shadow:0 0 22px rgba(255,174,0,.18);
}
#trenches-soon .ts-copy{margin:0 0 22px;font-size:14px;line-height:1.6;color:#c7ccd4;letter-spacing:.3px}
#trenches-soon .ts-copy b{color:#ffc24d}

#trenches-soon .ts-admin-toggle{
  font-family:inherit;cursor:pointer;font-size:12px;font-weight:800;letter-spacing:2px;
  border:1px solid #23272e;border-radius:10px;background:#15181d;color:#8a8f98;
  padding:10px 20px;transition:.15s;
}
#trenches-soon .ts-admin-toggle:hover{color:#ffae00;border-color:#ffae00}

#trenches-soon .ts-admin{display:flex;gap:8px;margin-top:16px}
#trenches-soon .ts-admin[hidden]{display:none}
#trenches-soon .ts-pw{
  flex:1;border:1px solid #23272e;border-radius:11px;background:#101317;color:#e9e9ea;
  font-family:inherit;font-size:14px;letter-spacing:.5px;padding:12px 14px;outline:none;transition:.15s;
}
#trenches-soon .ts-pw:focus{border-color:#ffae00;box-shadow:0 0 0 1px rgba(255,174,0,.35)}
#trenches-soon .ts-pw::placeholder{color:#5b616b}
#trenches-soon .ts-unlock{
  border:none;cursor:pointer;border-radius:11px;padding:12px 18px;
  font-family:inherit;font-size:13px;font-weight:800;letter-spacing:2px;transition:.15s;
  background:linear-gradient(90deg,#b8821f,#ffae00);color:#1a1206;
}
#trenches-soon .ts-unlock:hover{box-shadow:0 0 22px rgba(255,174,0,.4)}
#trenches-soon .ts-err{min-height:16px;margin-top:12px;font-size:12.5px;letter-spacing:.3px;color:#ff6a5d}

#trenches-soon .ts-close{
  position:absolute;top:14px;right:16px;cursor:pointer;color:#8a8f98;
  border:1px solid #23272e;border-radius:9px;padding:6px 11px;font-size:11px;font-weight:700;letter-spacing:1px;
}
#trenches-soon .ts-close:hover{color:#e9e9ea;border-color:#ffae00}

/* ---- header deposit-pill loading spinner (pure UI): a small amber ring spins while the deposit
        is in flight, swapped for a ✓ once credited. Complements the pulsing pill + ellipsis. ---- */
#tl-deposit-pill:not(.credited)::before{
  content:""; width:11px; height:11px; margin-right:8px; border-radius:50%; flex:0 0 auto;
  border:2px solid rgba(255,174,0,.28); border-top-color:var(--tl-gold);
  animation:tl-dep-spin .7s linear infinite;
}
#tl-deposit-pill.credited::before{ content:"✓"; margin-right:7px; font-size:12px; line-height:1; }
@keyframes tl-dep-spin{ to{ transform:rotate(360deg); } }

/* let the header balance punch-scale during the credited count-up (transform never affects layout) */
#tl-balance{ transform-origin:center; }

/* ---- floating DEPOSITING toast (pure UI): keeps the in-flight/credited deposit status visible over
        the Unity demo main menu after the Add Funds panel closes. Mirrors the header pill; hidden
        while the panel is open (wallet.js renderDepositToast). Reuses the pill's pulse/dots/spin. ---- */
#tl-deposit-toast{
  /* Pinned into the demo Main Menu header gap (between the PLAYTRENCHES logo and the SOL balance).
     Centred on 44% of the viewport width so it sits in that open space, clear of both clusters. */
  position:fixed; top:14px; left:44%; transform:translateX(-50%); z-index:10030;
  display:inline-flex; align-items:center; white-space:nowrap;
  font-family:'Chakra Petch',system-ui,sans-serif;
  font-size:12px; font-weight:700; letter-spacing:.14em; text-transform:uppercase;
  padding:10px 15px; border:1px solid var(--tl-gold); color:var(--tl-gold);
  background:rgba(14,12,6,.82); backdrop-filter:blur(6px); -webkit-backdrop-filter:blur(6px);
  box-shadow:0 8px 30px rgba(0,0,0,.5);
  animation:tl-dt-in .35s cubic-bezier(.2,1.2,.35,1) both, tl-dep-pulse 1.4s ease-in-out infinite;
}
#tl-deposit-toast[hidden]{ display:none; }
#tl-deposit-toast:not(.credited)::before{
  content:""; width:12px; height:12px; margin-right:9px; border-radius:50%; flex:0 0 auto;
  border:2px solid rgba(255,174,0,.28); border-top-color:var(--tl-gold);
  animation:tl-dep-spin .7s linear infinite;
}
#tl-deposit-toast.credited{
  color:#27c08a; border-color:#1c5e47; background:#0e2a22; animation:none;
}
#tl-deposit-toast.credited::before{ content:"✓"; margin-right:8px; font-size:13px; line-height:1; }
#tl-deposit-toast .tl-dt-dots::after{ content:""; animation:tl-dep-dots 1.2s steps(1,end) infinite; }
#tl-deposit-toast.credited .tl-dt-dots{ display:none; }
@keyframes tl-dt-in{ from{ opacity:0; transform:translate(-50%,-10px); } to{ opacity:1; transform:translate(-50%,0); } }

/* ════ DEPOSIT CREDITED celebration — pure UI, fired by wallet.js showCredited().
        Full-screen heavy blur over the menu/game, the balance climbs in green centre-screen,
        then a ring-burst + checkmark plays. Auto-dismisses; pointer-events:none so it never
        traps input. No money logic. Respects prefers-reduced-motion. ════ */
#tl-credit-celebrate{
  position:fixed; inset:0; z-index:10050; display:flex; align-items:center; justify-content:center;
  padding:24px; pointer-events:none; opacity:0; transition:opacity .4s ease;
  background:radial-gradient(120% 120% at 50% 42%, rgba(8,26,20,.5), rgba(3,5,7,.82));
  backdrop-filter:blur(24px) saturate(1.15); -webkit-backdrop-filter:blur(24px) saturate(1.15);
  font-family:'Chakra Petch',system-ui,sans-serif; text-align:center;
}
#tl-credit-celebrate[hidden]{ display:none; }
#tl-credit-celebrate.show{ opacity:1; }
#tl-credit-celebrate.hide{ opacity:0; }

.tl-cc-card{ position:relative; animation:tl-cc-pop .5s cubic-bezier(.2,1.3,.35,1) both; }
@keyframes tl-cc-pop{ 0%{ opacity:0; transform:scale(.86) translateY(10px); } 100%{ opacity:1; transform:none; } }

.tl-cc-badge{
  font-size:13px; font-weight:700; letter-spacing:.42em; text-transform:uppercase; color:#27c08a;
  margin-bottom:18px; text-shadow:0 0 18px rgba(39,192,138,.55);
}
.tl-cc-balance{
  font-size:clamp(52px,11vw,104px); font-weight:800; line-height:1; color:#3df0ad;
  text-shadow:0 0 42px rgba(39,192,138,.45), 0 4px 26px rgba(0,0,0,.5);
}
.tl-cc-balance b{ color:#4dffbb; font-weight:800; }
.tl-cc-unit{ font-size:.4em; font-weight:700; letter-spacing:.12em; color:#27c08a; margin-left:.18em; }
.tl-cc-delta{ margin-top:14px; font-size:18px; font-weight:700; letter-spacing:.16em; color:#27c08a; }

.tl-cc-burst{ position:relative; width:0; height:0; margin:40px auto 0; }
.tl-cc-ring{
  position:absolute; left:0; top:0; width:64px; height:64px; margin:-32px 0 0 -32px;
  border-radius:50%; border:2px solid rgba(61,240,173,.6); opacity:0;
}
#tl-credit-celebrate.burst .tl-cc-ring{ animation:tl-cc-ring 1s ease-out both; }
#tl-credit-celebrate.burst .tl-cc-ring2{ animation:tl-cc-ring 1.1s ease-out .12s both; }
@keyframes tl-cc-ring{ 0%{ transform:scale(.2); opacity:.9; } 100%{ transform:scale(3.6); opacity:0; } }
.tl-cc-check{ position:absolute; left:0; top:0; width:54px; height:54px; margin:-27px 0 0 -27px; }
.tl-cc-check path{
  fill:none; stroke:#4dffbb; stroke-width:5; stroke-linecap:round; stroke-linejoin:round;
  stroke-dasharray:52; stroke-dashoffset:52; filter:drop-shadow(0 0 8px rgba(61,240,173,.7));
}
#tl-credit-celebrate.burst .tl-cc-check path{ animation:tl-cc-check .5s ease-out .05s forwards; }
@keyframes tl-cc-check{ to{ stroke-dashoffset:0; } }

@media (prefers-reduced-motion:reduce){
  .tl-cc-card{ animation:none; }
  #tl-credit-celebrate.burst .tl-cc-ring,
  #tl-credit-celebrate.burst .tl-cc-ring2,
  #tl-credit-celebrate.burst .tl-cc-check path{ animation:none; }
  .tl-cc-check path{ stroke-dashoffset:0; }
}
