/* BALI Telegram Mini App: VOLUMETRIC FINISH
   Theme extension only. Every source asset and business flow remains unchanged.
   Dark club stage, anodized brass + forest glass + a hint of violet/cyan lighting.
   No decorative spinning objects: the authentic BALI COIN alone rotates.
   Do not change card, catalog product, calendar or navigation geometry. */
:root{
 --bali-stage-brass:#edc87a;
 --bali-stage-mint:#d5ffb0;
 --bali-stage-glass:#1a2724;
 --bali-stage-violet:#8165b0;
 --bali-stage-cyan:#70b4aa;
}
body.bali-guest-theme .app{
 background:
 radial-gradient(ellipse 70% 40% at 9% 25%,rgba(64,144,122,.125),transparent 76%),
 radial-gradient(ellipse 85% 42% at 102% 40%,rgba(125,72,160,.16),transparent 81%),
 radial-gradient(ellipse 98% 35% at 55% -12%,rgba(249,176,66,.18),transparent 79%),
 radial-gradient(ellipse 67% 44% at 54% 106%,rgba(115,164,86,.11),transparent 80%),
 linear-gradient(164deg,#131a1a 2%,#0b1217 51%,#090d12 100%)!important;
}
body.bali-guest-theme .app::before{
 opacity:.36!important;
 background-image:
  linear-gradient(126deg,transparent 0%,rgba(242,224,173,.026) 20%,transparent 45%),
  repeating-linear-gradient(118deg,transparent 0 102px,rgba(255,244,211,.038) 103px,transparent 104px),
  radial-gradient(circle at 40% 50%,rgba(209,242,163,.1) 0 1px,transparent 1.75px)!important;
 background-size:auto,auto,32px 32px!important;
}
/* Header: an inset black-glass display with hairline brass on its front edge. */
body.bali-guest-theme .head{
 background:
  linear-gradient(90deg,rgba(230,172,84,.07),transparent 24%,rgba(127,186,110,.045) 70%,rgba(112,88,168,.08)),
  linear-gradient(172deg,#253028,#111c1b 45%,#0c1417)!important;
 border-bottom:1px solid rgba(208,222,161,.40)!important;
 box-shadow:inset 0 1px 0 rgba(255,248,205,.17),
  inset 0 -1px rgba(12,27,19,.75),
  0 4px 0 rgba(4,11,12,.85),0 10px 24px rgba(0,0,0,.38)!important;
}
body.bali-guest-theme .tg-brand-original{
 filter:drop-shadow(0 3px 3px rgba(0,0,0,.9))
  drop-shadow(0 0 7px rgba(233,188,101,.28))!important;
}
body.bali-guest-theme .tg-live-pill{
 border:1px solid rgba(181,231,151,.46)!important;
 box-shadow:inset 0 1px rgba(244,255,234,.21),
  inset 0 -1px rgba(2,10,6,.7),0 3px 0 #09140d,0 5px 11px #0007!important;
}
/* Navigation has a genuine inset slot for the current page.
   Keep original website silhouettes and 44px+ touch surfaces. */
body.bali-guest-theme .nav{
 background:
  linear-gradient(95deg,rgba(217,172,91,.07),transparent 40%,rgba(131,190,109,.09)),
  linear-gradient(180deg,#27352b,#121e1c 36%,#0b1315)!important;
 border-top:1px solid rgba(228,221,171,.50)!important;
 box-shadow:inset 0 2px 0 #f8ffdc11,0 -4px 18px #000b!important;
}
body.bali-guest-theme .nav button.current{
 background:linear-gradient(157deg,rgba(129,175,95,.37),rgba(42,77,57,.49) 67%,rgba(27,44,49,.42))!important;
 box-shadow:inset 0 1px rgba(234,255,203,.27),
  inset 0 -1px rgba(8,19,12,.7),
  0 2px 0 #0a1713,0 0 12px rgba(168,221,131,.13)!important;
}
body.bali-guest-theme .nav button.current .tg-nav-art{
 filter:drop-shadow(0 0 6px rgba(207,255,167,.42))!important;
}
body.bali-guest-theme .nav button:not(.current):active{
 background:rgba(174,226,148,.12);
}
/* Shared tangible controls: a metal/glass edge, rather than a flat paint fill. */
body.bali-guest-theme .tg-page :is(.button,.tg-card-tool):not(:disabled){
 position:relative;
}
body.bali-guest-theme .tg-page .button:not(:disabled){
 box-shadow:
  inset 0 1px 0 rgba(239,255,225,.23),
  inset 0 -1px rgba(0,0,0,.35),
  0 3px 0 #08130e,0 6px 12px rgba(0,0,0,.30)!important;
}
body.bali-guest-theme .tg-page .button.primary:not(:disabled){
 box-shadow:
  inset 0 1px 0 rgba(255,255,232,.75),
  inset 0 -2px rgba(61,117,40,.47),
  0 3px 0 #416531,0 7px 15px rgba(4,10,5,.43)!important;
}
body.bali-guest-theme .tg-page .button:not(:disabled):active{
 transform:translateY(2px);
 box-shadow:inset 0 2px 5px rgba(0,0,0,.25),0 1px 0 #08130e!important;
}
/* The original source BALI CARD remains unchanged inside its real 3D flip scene.
   Add a static stage spotlight and a grounding shadow outside the physical card. */
body.bali-guest-theme .tg-page-card .tg-card-plinth{
 position:relative;isolation:isolate;
 background:
  radial-gradient(ellipse 64% 32% at 50% 85%,rgba(96,218,178,.24),transparent 77%),
  radial-gradient(ellipse 72% 55% at 50% 38%,rgba(247,176,76,.19),transparent 75%)!important;
}
body.bali-guest-theme .tg-page-card .tg-card-plinth::before{
 content:"";position:absolute;z-index:-1;pointer-events:none;
 inset:10% 8% 9%;border-radius:50%;
 background:radial-gradient(ellipse,rgba(213,168,92,.27),rgba(96,130,75,.13) 44%,transparent 78%)!important;
 filter:blur(21px);opacity:.75;
}
/* Shadows on the perspective wrapper are safe; CSS filter on this element
   would flatten preserve-3d and could break the ORIGINAL front/back flip. */
body.bali-guest-theme .tg-page-card #baliIdFlipScene{
 filter:none!important;
 border-radius:clamp(13px,3vw,22px);
 box-shadow:0 12px 18px rgba(0,0,0,.38),
  0 0 16px rgba(218,172,78,.10);
}
body.bali-guest-theme .tg-page-card .tg-card-switcher{
 border:1px solid rgba(219,220,157,.55)!important;
 background:
 linear-gradient(148deg,rgba(209,188,120,.08),transparent 43%),
 linear-gradient(155deg,#2d382c,#131e20 55%,#12151c)!important;
 box-shadow:inset 0 1px rgba(255,246,198,.27),
  0 3px 0 #0a1013,0 7px 18px #0008!important;
}
body.bali-guest-theme .tg-page-card .tg-card-switcher>button.selected{
 background:linear-gradient(150deg,#738950,#324b37 45%,#202e2f)!important;
 box-shadow:inset 0 1px rgba(255,255,222,.33),inset 0 -1px #132419,0 3px 0 #17271c!important;
}
body.bali-guest-theme .tg-page-card .tg-card-tool{
 background:
  radial-gradient(circle at 3% 0%,rgba(202,255,165,.12),transparent 50%),
  linear-gradient(144deg,#354739 0%,#253536 48%,#131e27 100%)!important;
 border:1px solid rgba(187,220,158,.61)!important;
 box-shadow:
  inset 0 1px rgba(250,255,225,.28),
  inset 1px 0 rgba(214,247,176,.08),
  inset 0 -1px rgba(0,0,0,.29),
  0 3px 0 #0b1519,0 7px 15px rgba(0,0,0,.49)!important;
}
body.bali-guest-theme .tg-page-card .tg-card-tool-qr{
 background:
  radial-gradient(ellipse at 0% 0%,rgba(221,255,180,.26),transparent 55%),
  linear-gradient(144deg,#446840,#294b3b 50%,#132720)!important;
}
body.bali-guest-theme .tg-page-card .tg-card-tool-icon{
 border:1px solid rgba(255,246,188,.42)!important;
 background:linear-gradient(141deg,#fff3c8,#dcb677 52%,#a97c43 91%)!important;
 box-shadow:inset 0 1px rgba(255,255,237,.75),inset 0 -2px #866036,
  0 3px 0 #4e3925,0 6px 10px rgba(0,0,0,.36)!important;
}
body.bali-guest-theme .tg-page-card .tg-card-tool-qr .tg-card-tool-icon{
 background:linear-gradient(145deg,#f1ffd0,#b8e291 52%,#699e5f 93%)!important;
 box-shadow:inset 0 1px rgba(255,255,242,.85),inset 0 -2px #507b45,
  0 3px 0 #24472a,0 6px 11px #0008!important;
}
/* A hero medallion showcase, not another coin or duplicate art.
   Preserve the actual WebGL model and CSS fallback. */
body.bali-guest-theme .tg-page-card .tg-home-coin-model{
 position:relative;isolation:isolate;
 background:radial-gradient(ellipse 47% 47% at 50% 52%,rgba(255,204,90,.22),transparent 89%)!important;
}
body.bali-guest-theme .tg-page-card .tg-home-coin-model::before{
 content:"";position:absolute;z-index:-1;pointer-events:none;
 width:min(73vw,calc((100dvh - 245px)*1.08),345px);
 aspect-ratio:1;top:50%;left:50%;transform:translate(-50%,-50%);
 border-radius:50%;border:1px solid rgba(233,206,117,.16);
 box-shadow:inset 0 0 30px #101e2277,0 0 0 13px #f8ca4b08,
   0 0 0 22px #97c78e07,0 0 38px #dfaf603b;
 background:
  radial-gradient(circle,transparent 56%,rgba(226,192,108,.09) 79%,transparent 91%),
  conic-gradient(from 12deg,rgba(230,170,62,.10),transparent 20%,
  rgba(95,201,173,.10) 40%,transparent 65%,rgba(156,113,197,.10) 83%,transparent);
}
body.bali-guest-theme .tg-page-card .tg-home-coin-model::after{
 content:"";position:absolute;pointer-events:none;z-index:-1;
 width:min(60vw,260px);height:14px;left:50%;bottom:5%;
 transform:translateX(-50%);border-radius:50%;
 background:rgba(0,0,0,.72);filter:blur(10px);
}
body.bali-guest-theme .tg-page-card .tg-home-coin-label h2{
 background:linear-gradient(180deg,#fff8db,#efcd77 57%,#c8994a);
 -webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;
 filter:drop-shadow(0 3px 2px #17180d);
}
/* Original source menu card proportions stay intact; only the material changes. */
body.bali-guest-theme .tg-page-menu #menuPage #menuGrid .bali-catalog-card{
 border:1px solid rgba(150,193,136,.6)!important;
 background:
  linear-gradient(125deg,rgba(235,255,196,.068),transparent 45%),
  linear-gradient(146deg,#2c4030,#1b2b2d 61%,#121b21)!important;
 box-shadow:inset 0 1px rgba(239,255,207,.18),inset 0 -1px #080f10,
  0 2px 0 #0e1615,0 5px 10px rgba(0,0,0,.2)!important;
}
body.bali-guest-theme .tg-page-menu .tg-menu-tabs .button.selected{
 border-color:rgba(220,239,161,.82)!important;
 background:linear-gradient(155deg,#5d754a,#304a3f 61%,#1f3537)!important;
}
body.bali-guest-theme .tg-page-menu #menuPage .bali-catalog-card .add-to-cart-btn{
 background:linear-gradient(156deg,#fff2c9,#e0b977 55%,#bf8e59)!important;
 box-shadow:inset 0 1px #ffffff99,inset 0 -1px #b38856,
  0 2px 0 #6e5034!important;
}
/* Month lives in its own window. Every day is a tactile tile; ring colors
   are unchanged: TODAY white, PAST red, FUTURE green. */
body.bali-guest-theme .tg-page-calendar #tgMonthPanel{
 border:1px solid rgba(184,216,150,.48)!important;
 background:
  radial-gradient(ellipse at 87% 8%,rgba(119,153,83,.20),transparent 55%),
  linear-gradient(153deg,#2d3b2b,#172723 62%,#101b21)!important;
 box-shadow:inset 0 1px rgba(250,255,223,.20),
  inset 0 -1px rgba(0,0,0,.35),0 3px 0 #0b1614,0 9px 23px #0008!important;
}
body.bali-guest-theme .tg-page-calendar #tgCalendarDays .tg-calendar-day{
 background:linear-gradient(147deg,rgba(82,103,73,.43),rgba(17,30,31,.92))!important;
 box-shadow:inset 0 1px rgba(244,252,225,.18),0 2px 0 rgba(4,11,14,.92)!important;
}
body.bali-guest-theme .tg-page-calendar #tgCalendarDays .tg-calendar-day.is-selected{
 background:linear-gradient(148deg,#557a49,#2b4b3b 65%,#15272b)!important;
 box-shadow:inset 0 1px rgba(252,255,230,.40),0 3px 0 #1d4423,
  0 0 13px rgba(137,224,113,.27)!important;
}
body.bali-guest-theme .tg-page-calendar .tg-calendar-view-tabs .selected{
 box-shadow:inset 0 1px #fdffe158,inset 0 -1px #243825,
  0 3px 0 #1b301d,0 0 10px #a4dd8924!important;
}
/* Keep square posters and existing interactive swipe. Depth is layered
   on the actual photo card; no text or overlays obscure its face. */
body.bali-guest-theme .tg-page-calendar .tg-event-poster{
 border-color:rgba(234,204,141,.61)!important;
 box-shadow:inset 0 1px rgba(255,247,212,.30),
  0 5px 0 #292125,0 13px 16px rgba(0,0,0,.39),
  0 28px 31px rgba(0,0,0,.42)!important;
}
body.bali-guest-theme .tg-page-calendar .tg-event-poster.is-current{
 border-color:rgba(255,228,158,.91)!important;
 box-shadow:0 5px 0 #6f502b,0 13px 18px #000a,
  0 27px 34px #0009,0 0 24px rgba(220,166,77,.25)!important;
}
body.bali-guest-theme .tg-page-calendar .tg-calendar-poster-controls .button{
 background:linear-gradient(142deg,#4d6347,#25383b)!important;
}
/* WORK: prize cards read like real collectible plaques. No fake progress. */
body.bali-guest-theme .tg-page-work .tg-work-stats>div{
 border:1px solid rgba(202,222,154,.51)!important;
 background:linear-gradient(140deg,#435d3b,#293c39 62%,#1b2a30)!important;
 box-shadow:inset 0 1px rgba(253,255,218,.27),0 3px 0 #162721,0 7px 13px #0007!important;
}
body.bali-guest-theme .tg-page-work .tg-work-mission{
 border:1px solid rgba(197,215,153,.46)!important;
 background:
  radial-gradient(ellipse at 6% 5%,rgba(239,213,127,.11),transparent 63%),
  linear-gradient(145deg,#364b3b,#1d3332 61%,#182432)!important;
 box-shadow:inset 0 1px rgba(246,255,211,.23),
  0 3px 0 #101c20,0 6px 12px rgba(0,0,0,.4)!important;
}
body.bali-guest-theme .tg-page-work .tg-work-icon{
 border:1px solid #dceebda8!important;
 background:linear-gradient(145deg,#fff1c1,#b3c98d 53%,#77a38d)!important;
 box-shadow:inset 0 1px #ffffffc9,0 3px 0 #456e54,0 5px 9px #0006!important;
}
/* CoinShop keeps the original site colors, catalog images, QR exchange rules.
   Improve frame and stock contrast, not the number of rows or stock semantics. */
body.bali-guest-theme .tg-page-shop .tg-coinshop{
 border-color:rgba(193,233,159,.46)!important;
 background:
  radial-gradient(ellipse at 82% 0%,rgba(181,229,132,.13),transparent 42%),
  linear-gradient(151deg,#263f2b,#182f29 53%,#0c1c1b)!important;
 box-shadow:inset 0 1px rgba(247,255,220,.23),
  inset 0 -1px #081111,0 3px 0 #0b1614,0 12px 21px #0008!important;
}
body.bali-guest-theme .tg-page-shop .tg-coinshop-balance{
 background:linear-gradient(146deg,#29452b,#142c22)!important;
 box-shadow:inset 0 1px #ddffb933,0 2px 0 #102315!important;
}
body.bali-guest-theme .tg-page-shop .tg-coinshop-display .coin-shop-product{
 border-color:rgba(142,190,127,.60)!important;
 background:linear-gradient(149deg,#29482c,#183126 64%,#152420)!important;
 box-shadow:inset 0 1px #e9ffdd22,0 2px 0 #0b1e17!important;
}
body.bali-guest-theme .tg-page-shop .tg-coinshop-display .coin-shop-image{
 border:1px solid rgba(182,216,157,.30);
 background:linear-gradient(135deg,#1d3826,#0e231c);
}
body.bali-guest-theme .tg-page-shop .tg-coinshop-display .coin-shop-stock.is-out{
 color:#ffb9a5!important;
}
/* Profile: identity panel with enamel inset; all lines remain visible. */
body.bali-guest-theme .tg-page-profile .tg-profile-hero{
 border:1px solid rgba(226,217,155,.51)!important;
 background:
  radial-gradient(ellipse at 10% 1%,rgba(246,205,129,.20),transparent 62%),
  linear-gradient(151deg,#34473b,#1c3134 57%,#17212d)!important;
 box-shadow:inset 0 1px #fcffe150,0 3px 0 #1a2725,0 8px 18px #0009!important;
}
body.bali-guest-theme .tg-page-profile .tg-profile-avatar{
 border:1px solid #ffeed098;
 background:linear-gradient(145deg,#ffefbd,#d8aa72 58%,#856149)!important;
 box-shadow:inset 0 1px #ffffffdc,0 3px 0 #59442b,0 7px 12px #0008!important;
}
body.bali-guest-theme .tg-page-profile>.tg-panel{
 box-shadow:inset 0 1px rgba(243,255,211,.21),0 3px 0 #101b18,0 7px 14px #0007!important;
}
body.bali-guest-theme .tg-page-history .tg-receipt-item{
 border:1px solid rgba(174,223,152,.50)!important;
 background:linear-gradient(150deg,#354b36,#1b3432 63%,#182328)!important;
 box-shadow:inset 0 1px #efffdb22,0 3px 0 #101a15!important;
}
/* Real data only. Typography stays compact and no page is allowed to scroll. */
@media(max-height:600px){
 body.bali-guest-theme .tg-page-card .tg-home-coin-model::before{
  width:min(69vw,calc((100dvh - 240px)*1.06),290px);
 }
}
@media(prefers-reduced-motion:reduce){
 body.bali-guest-theme .tg-page .button:not(:disabled){transition:none!important}
 body.bali-guest-theme .tg-page-calendar .tg-calendar-day{transition:none!important}
}
