/* BaziBit game visual system. Presentation only: existing IDs, events and data contracts remain unchanged. */
:root{--bb-bg:#07090d;--bb-surface:#0d1118;--bb-surface-2:#111821;--bb-surface-3:#17202b;--bb-line:rgba(255,255,255,.09);--bb-text:#f5f7fa;--bb-muted:#7f8998;--bb-orange:#f7931a;--bb-up:#22c58b;--bb-down:#f45b6b;--bb-gold:#e9b84f;--bb-vh:var(--tg-viewport-stable-height,100dvh);--bb-nav:calc(66px + env(safe-area-inset-bottom,0px))}
*{box-sizing:border-box}html,body{width:100%;height:100%;overflow:hidden!important}body{background:var(--bb-bg)!important;color:var(--bb-text);padding:0!important;height:var(--bb-vh);min-height:var(--bb-vh);overflow:hidden!important;-webkit-font-smoothing:antialiased}.hidden{display:none!important}
.topbar{height:50px;min-height:50px;padding:7px 14px!important;background:#07090d!important;border-bottom:1px solid var(--bb-line)!important}.balance-chip,.stats-chip{height:34px;padding:0 11px!important;border-radius:10px!important;background:var(--bb-surface)!important;border:1px solid var(--bb-line)!important;font:600 11px/1 var(--font-mono)!important}.balance-chip .dot{background:var(--bb-orange)!important;box-shadow:0 0 7px rgba(247,147,26,.35)!important}.stats-chip{color:var(--bb-muted)!important}.stats-chip #winsValue{color:var(--bb-up)}.stats-chip #lossesValue{color:var(--bb-down)}.stats-sep{opacity:.35}.identity-banner{height:28px;min-height:28px;padding:0 12px!important;background:#090c11!important;border-bottom:1px solid var(--bb-line)!important;font-size:9px!important}.identity-mark{display:grid;place-items:center;width:17px;height:17px;border-radius:5px;background:var(--bb-orange);color:#111;font:700 7px/1 var(--font-mono)}
#panel-game{display:block!important;position:relative;height:calc(var(--bb-vh) - 50px - 28px - var(--bb-nav));max-height:calc(var(--bb-vh) - 50px - 28px - var(--bb-nav));min-height:0;overflow:hidden!important;padding:8px 12px 7px!important;animation:none!important}.game-shell{position:relative;height:100%;min-height:0;display:grid;grid-template-rows:minmax(0,1fr) minmax(94px,24%) minmax(116px,29%);gap:7px}
.market-hero{position:relative;min-height:0;overflow:hidden;border:1px solid var(--bb-line);border-radius:18px;background:radial-gradient(circle at 50% -20%,rgba(247,147,26,.07),transparent 42%),linear-gradient(145deg,#10151d,#090c11);box-shadow:inset 0 1px 0 rgba(255,255,255,.025)}.market-topline{height:40px;display:flex;align-items:center;justify-content:space-between;padding:0 14px;border-bottom:1px solid rgba(255,255,255,.055)}.market-symbol{display:flex;align-items:center;gap:8px}.btc-mark{width:25px;height:25px;display:grid;place-items:center;border-radius:7px;background:var(--bb-orange);color:#111;font:700 17px/1 var(--font-display)}.market-symbol strong{display:block;font:700 12px/1 var(--font-display);letter-spacing:.02em}.market-symbol div>span{display:block;margin-top:3px;color:var(--bb-muted);font-size:8px}.live-status{display:flex;align-items:center;gap:5px;color:var(--bb-up);font:700 8px/1 var(--font-mono);letter-spacing:.08em}.live-status i{width:5px;height:5px;border-radius:50%;background:var(--bb-up)}
#priceTicker{position:absolute;top:54px;left:14px;right:14px;text-align:center;font:700 clamp(29px,8.7vw,42px)/1 var(--font-mono);letter-spacing:-.055em;color:var(--bb-text);z-index:4;pointer-events:none}#priceDelta{position:absolute;top:101px;left:14px;right:14px;text-align:center;font:700 11px/1 var(--font-mono);z-index:4;pointer-events:none}.price-delta.up{color:var(--bb-up)!important}.price-delta.down{color:var(--bb-down)!important}#entryPrice{position:absolute;top:122px;left:14px;right:14px;text-align:center;margin:0!important;color:var(--bb-muted);font:500 8px/1 var(--font-mono);z-index:4;pointer-events:none}
#liveCard{position:absolute;left:13px;right:13px;top:145px;bottom:8px;height:auto;margin:0!important;padding:6px 8px 4px!important;border:0!important;border-top:1px solid rgba(255,255,255,.055)!important;border-radius:0!important;background:transparent!important;box-shadow:none!important;overflow:hidden;z-index:3;display:block}#liveCard.hidden{display:none!important}.live-card-head{height:14px;margin:0 0 2px!important;font-size:7px!important;color:var(--bb-muted)!important}.live-dot{width:5px!important;height:5px!important;background:var(--bb-up)!important;box-shadow:none!important;animation:none!important}.live-card-body{position:relative;height:calc(100% - 16px)}.live-price-row{height:16px;display:flex;align-items:center;margin:0!important;gap:5px!important;font-size:8px!important}.live-label{font-size:7px!important;min-width:auto!important;color:var(--bb-muted)!important}.live-current-label{margin-inline-start:8px}.live-lock-price{font:700 9px/1 var(--font-mono)!important;color:var(--bb-gold)!important}.live-current-price{font:700 10px/1 var(--font-mono)!important}.live-current-price.up{color:var(--bb-up)!important}.live-current-price.down{color:var(--bb-down)!important}.live-price-delta{font:700 8px/1 var(--font-mono)!important}.live-price-delta.up{color:var(--bb-up)!important}.live-price-delta.down{color:var(--bb-down)!important}.live-card .sparkline{width:100%;height:calc(100% - 24px)!important;min-height:32px;margin:3px 0 0!important}.sparkline-lock-line{stroke:rgba(233,184,79,.35)!important;stroke-width:1!important}.sparkline-price-line{stroke:var(--bb-up)!important;stroke-width:2!important}.sparkline-price-line.down{stroke:var(--bb-down)!important}.live-closes-in{font-size:7px!important;color:var(--bb-muted)!important;text-align:left!important}
.round-panel{min-height:0;overflow:hidden;border:1px solid var(--bb-line);border-radius:16px;background:var(--bb-surface)}.round-heading{height:29px;display:flex;align-items:center;justify-content:space-between;padding:0 12px;border-bottom:1px solid rgba(255,255,255,.055)}.round-kicker{font:700 8px/1 var(--font-mono);color:var(--bb-orange);letter-spacing:.06em}.round-id{font:500 9px/1 var(--font-mono);color:var(--bb-muted)}.round-id b{color:var(--bb-text)}.round-main{height:calc(100% - 29px);display:grid;grid-template-columns:94px 1fr;direction:ltr;align-items:center;padding:4px 10px;gap:11px}.ring-wrap{position:relative!important;width:82px!important;height:82px!important;margin:0!important;inset:auto!important;grid-column:1;justify-self:center}.ring{width:100%;height:100%;transform:rotate(-90deg)}.ring-track{stroke:rgba(255,255,255,.055)!important;stroke-width:8!important}.ring-pools,.ring-pools-down{stroke-width:8!important}.ring-time{stroke:var(--bb-gold)!important;stroke-width:3!important}.ring-center{inset:0!important}.countdown{font:700 18px/1 var(--font-mono)!important;color:var(--bb-gold)!important;letter-spacing:-.03em}.ring-label{font-size:7px!important;color:var(--bb-muted)!important;margin-top:3px}.round-side{direction:rtl;min-width:0}.round-state{display:flex;align-items:center;gap:6px;color:var(--bb-text);font:700 11px/1 var(--font-body)}.round-state span{width:6px;height:6px;border-radius:50%;background:var(--bb-up);box-shadow:0 0 8px rgba(34,197,139,.25)}.pool-caption{margin:10px 0 5px;color:var(--bb-muted);font-size:8px}.pools-bar{position:static!important;width:100%;height:6px!important;margin:0 0 6px!important;border-radius:99px;background:var(--bb-down)!important}.pools-bar-up{background:var(--bb-up)!important}.pools-legend{position:static!important;display:flex;justify-content:space-between;margin:0!important;font-size:8px!important}.legend-item.up,.legend-item.up b{color:var(--bb-up)!important}.legend-item.down,.legend-item.down b{color:var(--bb-down)!important}.legend-item b{font:700 9px/1 var(--font-mono)!important}
.action-zone{position:relative;min-height:0;overflow:hidden;border:1px solid var(--bb-line);border-radius:16px;background:linear-gradient(180deg,#111923,#0c1118);padding:9px}.action-heading{height:22px;display:flex;align-items:center;justify-content:space-between}.action-heading strong{font:700 10px/1 var(--font-body)}.action-heading span{font:500 8px/1 var(--font-body);color:var(--bb-muted)}.direction-row{height:calc(100% - 22px)!important;min-height:0!important;margin:0!important;display:grid!important;grid-template-columns:1fr 1fr;gap:7px}.dir-btn{height:100%!important;min-height:0!important;padding:8px!important;border-radius:13px!important;background:var(--bb-surface-3)!important;border:1px solid rgba(255,255,255,.13)!important;color:var(--bb-text)!important;display:flex!important;flex-direction:column!important;align-items:center!important;justify-content:center!important;gap:4px!important;transition:transform .12s ease,border-color .12s ease,background .12s ease!important}.dir-btn:active{transform:scale(.985)!important}.dir-icon{width:31px;height:31px;display:grid;place-items:center;border-radius:9px;font:700 20px/1 var(--font-mono)!important}.dir-up .dir-icon{background:rgba(34,197,139,.1);color:var(--bb-up)}.dir-down .dir-icon{background:rgba(244,91,107,.1);color:var(--bb-down)}.dir-title{font:700 12px/1 var(--font-body)}.dir-subtitle{font:500 7px/1.3 var(--font-body);color:var(--bb-muted);text-align:center}.dir-up.selected{border-color:var(--bb-up)!important;background:rgba(34,197,139,.09)!important;box-shadow:inset 0 0 0 1px rgba(34,197,139,.15),0 0 16px rgba(34,197,139,.08)}.dir-down.selected{border-color:var(--bb-down)!important;background:rgba(244,91,107,.09)!important;box-shadow:inset 0 0 0 1px rgba(244,91,107,.15),0 0 16px rgba(244,91,107,.08)}
#amountRow{position:absolute;left:9px;right:9px;bottom:9px;height:62px!important;margin:0!important;padding:6px!important;border:1px solid rgba(247,147,26,.36);border-radius:12px;background:rgba(8,11,16,.985);z-index:10;overflow:hidden;visibility:visible;opacity:1}#amountRow.hidden{display:block!important;visibility:hidden;opacity:0;pointer-events:none}#amountChips{height:100%;padding-top:8px;display:block}.amount-label{position:absolute;top:3px;right:9px;margin:0!important;font-size:7px!important;color:var(--bb-muted)}.amount-chips{height:100%;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:5px}.amount-chip{height:38px!important;min-width:0!important;width:100%!important;padding:0 2px!important;border-radius:8px!important;border:1px solid var(--bb-line)!important;background:var(--bb-surface-2)!important;color:var(--bb-text)!important;font:700 9px/1 var(--font-mono)!important;display:flex!important;align-items:center!important;justify-content:center!important}.amount-chip:active{background:var(--bb-orange)!important;color:#111!important}.amount-chip:disabled{opacity:.35}.selected-dir-label{display:none!important}.my-bets-banner{position:absolute;left:10px;right:10px;bottom:74px;height:24px;margin:0!important;padding:4px 8px!important;border-radius:9px!important;background:rgba(10,14,20,.98)!important;border:1px solid rgba(233,184,79,.35)!important;font-size:8px!important;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;z-index:9}
.bottom-nav{position:fixed!important;left:0;right:0;bottom:0;height:var(--bb-nav);min-height:var(--bb-nav)!important;padding:5px 7px calc(5px + env(safe-area-inset-bottom,0px))!important;background:rgba(7,9,13,.98)!important;border-top:1px solid var(--bb-line)!important;z-index:50}.nav-btn{min-width:0!important;border:0!important;border-radius:10px!important;color:#687383!important;background:transparent!important;font-size:9px!important;gap:3px!important}.nav-btn.active{color:var(--bb-orange)!important;background:rgba(247,147,26,.075)!important}.toast{z-index:100!important;bottom:calc(var(--bb-nav) + 8px)!important}.panel:not(#panel-game).active{position:absolute;top:78px;bottom:var(--bb-nav);left:0;right:0;overflow-y:auto;overflow-x:hidden;padding:16px 14px calc(78px + env(safe-area-inset-bottom,0px))!important;background:var(--bb-bg);z-index:20}
#priceTicker:empty::after{content:'—';color:var(--bb-muted)}#priceTicker{color:var(--bb-text)}
/* The live price is already the authoritative Hero value. Keep the lower chart metadata focused on lock price and delta instead of repeating the same current price. */
#liveCurrentPrice,.live-current-label{display:none!important}
#liveCard .live-price-row{justify-content:flex-start}
#liveCard .live-card-body{height:calc(100% - 16px)}
#liveCard .sparkline{height:calc(100% - 24px)!important}
#entryPrice{display:none!important}
@media (max-height:680px){.game-shell{grid-template-rows:minmax(0,1fr) minmax(88px,24%) minmax(108px,29%)}.market-topline{height:36px}.market-hero #priceTicker{top:49px}.market-hero #priceDelta{top:94px}.market-hero #entryPrice{top:114px}.market-hero #liveCard{top:136px}.ring-wrap{width:74px!important;height:74px!important}.countdown{font-size:16px!important}.action-zone{padding:7px}.action-heading{height:20px}.direction-row{height:calc(100% - 20px)!important}}
@media (max-width:360px){#panel-game{padding-inline:8px!important}.game-shell{gap:6px}.round-main{grid-template-columns:80px 1fr;padding-inline:7px;gap:8px}.ring-wrap{width:70px!important;height:70px!important}.countdown{font-size:15px!important}.dir-title{font-size:11px}.dir-subtitle{font-size:6px}.amount-chips{gap:3px}}@media (min-width:601px){#panel-game{max-width:520px;margin:0 auto}}