/* BALI Mini App · adaptive mobile-only presentation and three photo actions.
   Preserves BALI Lime Shadow palette and all existing card tiers/3D materials.
   Profile contacts always remain reachable, even on very small devices. */
html,body{max-width:100%;overflow-x:hidden}
body.bali-guest-theme .app{min-width:0!important;width:100%!important;max-width:100vw!important;height:100dvh!important;min-height:0!important;overflow:hidden!important}
body.bali-guest-theme .app .main,
body.bali-guest-theme .app .tg-page{min-width:0!important;max-width:100%!important}
body.bali-guest-theme button{touch-action:manipulation;-webkit-tap-highlight-color:transparent}
body.bali-guest-theme input,
body.bali-guest-theme select,
body.bali-guest-theme textarea{font-size:16px}
body.bali-guest-theme .tg-page-home .tg-home-intro{
 gap:clamp(4px,.8dvh,8px)!important;
 padding-bottom:clamp(3px,.6dvh,6px)!important;
}
body.bali-guest-theme .tg-home-photo-hub{
 padding:clamp(7px,.95dvh,10px)!important;
 gap:clamp(4px,.52dvh,6px)!important;
}
body.bali-guest-theme .tg-photo-hub-description{
 display:-webkit-box!important;-webkit-line-clamp:2!important;
 -webkit-box-orient:vertical!important;overflow:hidden!important;
}
body.bali-guest-theme .tg-home-photo-hub .tg-photo-hub-actions{
 display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr))!important;
 gap:clamp(4px,1.25vw,7px)!important;width:100%!important;
}
body.bali-guest-theme .tg-home-photo-hub .tg-photo-hub-actions>button{
 position:relative!important;display:flex!important;flex-direction:column!important;
 align-items:center!important;justify-content:center!important;
 gap:clamp(4px,.8dvh,8px)!important;
 min-height:0!important;height:auto!important;width:100%!important;
 aspect-ratio:1 / 1!important;
 border-radius:clamp(9px,2.7vw,14px)!important;
 padding:clamp(4px,1.2vw,8px)!important;
 background:#24272d!important;border:1px solid rgba(255,255,255,.18)!important;
 box-shadow:none!important;text-align:center!important;
 color:#f5f5f5!important;
 overflow:hidden!important;transition:transform .12s ease,filter .12s ease!important;
}
body.bali-guest-theme .tg-home-photo-hub .tg-photo-hub-actions>button.tg-photo-contest-btn{
 border-color:rgba(178,239,95,.53)!important;
}
body.bali-guest-theme .tg-home-photo-hub .tg-photo-hub-actions>button.tg-photo-show-btn[data-connected="true"],
body.bali-guest-theme .tg-home-photo-hub .tg-photo-hub-actions>button.tg-photo-vote-btn[data-live="true"]{
 background:#b9ff51!important;color:#10131a!important;
 border-color:#b9ff51!important;
}
body.bali-guest-theme .tg-home-photo-hub .tg-photo-hub-actions>button:disabled{
 opacity:.55!important;filter:saturate(.45)!important;cursor:default!important;
}
body.bali-guest-theme .tg-home-photo-hub .tg-photo-hub-actions>button:active:not(:disabled){
 transform:scale(.96)!important;filter:brightness(1.09)!important;
}
body.bali-guest-theme .tg-home-photo-hub .tg-photo-hub-actions .tg-photo-action-icon{
 flex:none!important;display:grid!important;place-items:center!important;
 width:clamp(27px,8.1vw,36px)!important;height:clamp(27px,8.1vw,36px)!important;
 border-radius:10px!important;background:#30333a!important;
 color:#d8ff9f!important;font:850 clamp(18px,5.5vw,25px)/1 Manrope,Inter,sans-serif!important;
}
body.bali-guest-theme .tg-home-photo-hub .tg-photo-hub-actions>button[data-connected="true"] .tg-photo-action-icon,
body.bali-guest-theme .tg-home-photo-hub .tg-photo-hub-actions>button[data-live="true"] .tg-photo-action-icon{
 color:#b9ff51!important;background:#10131a!important;
}
body.bali-guest-theme .tg-home-photo-hub .tg-photo-hub-actions .tg-photo-action-label{
 min-width:0!important;display:flex!important;flex-direction:column!important;
 justify-content:center!important;gap:2px!important;
 color:inherit!important;
 font:850 clamp(7.5px,2.25vw,10.5px)/1.12 Manrope,Inter,sans-serif!important;
 letter-spacing:-.018em!important;text-align:center!important;overflow-wrap:anywhere!important;
}
body.bali-guest-theme .tg-home-photo-hub .tg-photo-hub-actions .tg-photo-action-label small{
 display:block!important;font:700 clamp(7px,2vw,9px)/1.12 Manrope,Inter,sans-serif!important;
 color:inherit!important;opacity:.84!important;white-space:normal!important;
}
body.bali-guest-theme .tg-photo-hub-hint{line-height:1.2!important}
/* Club contacts are duplicated in Profile for every screen, so a tight Home
   can hide its copy without hiding the club's phone/maps/social shortcuts. */
body.bali-guest-theme .tg-page-home .tg-home-contacts{
 order:10!important;flex:0 0 auto!important;
 margin-top:auto!important;padding:clamp(6px,.85dvh,9px)!important;
}
body.bali-guest-theme .tg-page-home .tg-home-contacts .tg-home-contact-link{
 height:clamp(32px,5.15dvh,42px)!important;
}
body.bali-guest-theme .tg-page-home .tg-home-contacts .tg-home-map-link{
 min-height:clamp(27px,4.3dvh,34px)!important;
}
@media(max-height:705px),(max-width:325px),(max-height:755px) and (max-width:360px){
 body.bali-guest-theme .tg-page-home .tg-home-contacts{display:none!important}
}
@media(max-height:625px){
 body.bali-guest-theme .tg-home-hero-copy p{display:none!important}
 body.bali-guest-theme .tg-photo-hub-description{-webkit-line-clamp:1!important}
 body.bali-guest-theme .tg-home-photo-hub .tg-photo-hub-actions>button{aspect-ratio:1.15 / 1!important}
 body.bali-guest-theme .tg-home-photo-hub .tg-photo-hub-actions .tg-photo-action-icon{
  width:25px!important;height:25px!important;font-size:18px!important;
 }
 body.bali-guest-theme .tg-home-photo-hub .tg-photo-hub-actions .tg-photo-action-label{font-size:8px!important}
 body.bali-guest-theme .tg-photo-hub-hint{display:none!important}
}
@media(max-width:350px){
 body.bali-guest-theme .tg-home-photo-hub .tg-photo-hub-actions>button{padding:4px 2px!important;gap:3px!important}
 body.bali-guest-theme .tg-home-photo-hub .tg-photo-hub-actions .tg-photo-action-label{font-size:7.5px!important}
 body.bali-guest-theme .tg-home-photo-hub .tg-photo-hub-actions .tg-photo-action-label small{font-size:7px!important}
}
/* Profile: explicit scroll of all content including contacts on small phones. */
body.bali-guest-theme .tg-page-profile{
 display:flex!important;flex-direction:column!important;min-height:0!important;
 height:100%!important;overflow-y:auto!important;overflow-x:hidden!important;
 overscroll-behavior-y:contain!important;touch-action:pan-y!important;
 -webkit-overflow-scrolling:touch!important;
 padding-bottom:clamp(15px,2.5dvh,22px)!important;
 scrollbar-width:thin;scrollbar-color:#3d473f transparent;
}
body.bali-guest-theme .tg-page-profile .tg-profile-hero,
body.bali-guest-theme .tg-page-profile .tg-profile-info,
body.bali-guest-theme .tg-page-profile .tg-profile-actions,
body.bali-guest-theme .tg-page-profile .tg-profile-footnote,
body.bali-guest-theme .tg-page-profile .tg-profile-logout{
 flex:0 0 auto!important;
}
body.bali-guest-theme .tg-page-profile .tg-profile-info{
 min-height:unset!important;overflow:visible!important;
 padding:clamp(9px,1.4dvh,13px)!important;
}
body.bali-guest-theme .tg-page-profile .tg-profile-field{
 min-height:clamp(26px,4.1dvh,36px)!important;
}
body.bali-guest-theme .tg-page-profile .tg-profile-actions{
 margin:clamp(4px,.7dvh,7px) 0!important;
}
body.bali-guest-theme .tg-page-profile .tg-profile-contacts{
 display:flex!important;flex-direction:column!important;
 flex:0 0 auto!important;width:100%!important;
 margin:clamp(4px,.7dvh,8px) 0!important;padding:9px!important;
 order:unset!important;border-radius:12px!important;
 background:#16181d!important;
 border:1px solid rgba(255,255,255,.16)!important;
 box-shadow:none!important;
}
body.bali-guest-theme .tg-page-profile .tg-profile-contacts .tg-home-contact-grid{
 width:100%!important;display:grid!important;
 grid-template-columns:repeat(4,minmax(0,1fr))!important;
 gap:clamp(4px,.9vw,8px)!important;
}
body.bali-guest-theme .tg-page-profile .tg-profile-contacts .tg-home-contact-link{
 height:clamp(43px,6.5dvh,52px)!important;
 min-width:0!important;padding:5px 1px!important;font-size:clamp(7.5px,2vw,10px)!important;
}
body.bali-guest-theme .tg-page-profile .tg-profile-contacts .tg-home-map-link{
 width:100%!important;min-height:clamp(35px,5.4dvh,43px)!important;
}
body.bali-guest-theme .tg-page-profile .tg-profile-contacts h2{
 font-size:clamp(10px,1.8dvh,13px)!important;
}
@media(max-width:360px){
 body.bali-guest-theme .tg-page-profile .tg-profile-contacts .tg-home-contact-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}
 body.bali-guest-theme .tg-page-profile .tg-profile-contacts .tg-home-contact-link{height:39px!important}
}
/* Full-height, vertical-scrolling competition ballot on iOS/Android. */
body.bali-guest-theme .tg-page-vote,#tgVoteCandidates{min-width:0!important}
body.bali-guest-theme .tg-page-vote{
 height:100%!important;min-height:0!important;display:flex!important;flex-direction:column!important;
 overflow:hidden!important;
}
body.bali-guest-theme .tg-page-vote>#screen{
 min-height:0!important;flex:1 1 auto!important;
 display:flex!important;flex-direction:column!important;overflow:hidden!important;
}
body.bali-guest-theme .tg-photo-vote-screen{
 height:100%!important;min-height:0!important;display:flex!important;
 flex-direction:column!important;gap:clamp(6px,1dvh,10px)!important;
 width:100%!important;overflow:hidden!important;
}
body.bali-guest-theme .tg-photo-vote-heading{
 display:grid!important;grid-template-columns:35px minmax(0,1fr)!important;
 align-items:center!important;gap:10px!important;flex:0 0 auto!important;
}
body.bali-guest-theme .tg-photo-vote-heading>span{min-width:0}
body.bali-guest-theme .tg-photo-vote-back{
 display:grid;place-items:center;width:35px;min-height:35px;
 border:1px solid rgba(255,255,255,.14);background:#24272d;color:#d8ff9f;
 border-radius:10px;font-size:30px;line-height:1;padding:0;
}
body.bali-guest-theme .tg-photo-vote-heading small{
 font:750 9px/1.12 Manrope,Inter,sans-serif;color:#d8ff9f;letter-spacing:.12em;
}
body.bali-guest-theme .tg-photo-vote-heading h1{
 margin:2px 0 0;color:#f5f5f5;
 font:850 clamp(13px,3.3vw,18px)/1.15 Manrope,Inter,sans-serif;
 letter-spacing:-.028em;
}
body.bali-guest-theme .tg-photo-vote-description{
 flex:0 0 auto!important;padding:10px!important;
 border:1px solid rgba(255,255,255,.16);border-radius:12px;
 background:#191b20;
}
body.bali-guest-theme .tg-photo-vote-description b{
 color:#d8ff9f;font:850 11px/1.2 Manrope,Inter,sans-serif;
}
body.bali-guest-theme .tg-photo-vote-description p{
 margin:4px 0 0;color:#bfc4c9;font:550 clamp(10px,1.4dvh,11px)/1.32 Manrope,Inter,sans-serif;
}
body.bali-guest-theme .tg-photo-vote-notice{
 flex:0 0 auto!important;margin:0!important;min-height:14px!important;
 font:600 clamp(9px,1.3dvh,11px)/1.3 Manrope,Inter,sans-serif;
 color:#d8ff9f;
}
body.bali-guest-theme #tgVoteCandidates.tg-photo-vote-list{
 display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;
 grid-auto-rows:max-content!important;align-content:start!important;
 gap:clamp(7px,2vw,11px)!important;
 overflow-y:auto!important;overflow-x:hidden!important;
 overscroll-behavior-y:contain!important;touch-action:pan-y!important;
 -webkit-overflow-scrolling:touch;scrollbar-width:thin;scrollbar-color:#48504a transparent;
 flex:1 1 auto!important;min-height:0!important;
 padding:2px 2px 11px!important;
}
body.bali-guest-theme #tgVoteCandidates .tg-photo-vote-candidate{
 display:flex!important;flex-direction:column!important;gap:5px!important;
 width:100%!important;min-width:0!important;max-width:none!important;
 min-height:0!important;height:auto!important;
 padding:6px!important;background:#191b20!important;
 border:1px solid rgba(255,255,255,.16)!important;
 border-radius:13px!important;box-shadow:none!important;color:#f5f5f5!important;
 text-align:left!important;transition:border-color .12s ease,transform .12s ease!important;
}
body.bali-guest-theme #tgVoteCandidates .tg-photo-vote-candidate.chosen{
 border-color:#b9ff51!important;
}
body.bali-guest-theme #tgVoteCandidates .tg-photo-vote-candidate.already{
 background:#222e23!important;border-color:#b9ff51!important;
}
body.bali-guest-theme #tgVoteCandidates .tg-photo-vote-candidate:active:not(:disabled){
 transform:scale(.986)!important;
}
body.bali-guest-theme #tgVoteCandidates .tg-photo-vote-candidate:disabled{
 opacity:.85!important;
}
body.bali-guest-theme .tg-photo-vote-picture{
 display:block;position:relative;width:100%!important;
 aspect-ratio:1 / 1!important;min-height:0!important;
 background:#272c30;border-radius:9px;overflow:hidden;
}
body.bali-guest-theme .tg-photo-vote-picture img{display:block;width:100%;height:100%;object-fit:cover}
body.bali-guest-theme .tg-photo-vote-avatar{
 width:100%;height:100%;display:grid;place-items:center;
 font:900 clamp(28px,12vw,52px)/1 Manrope,Inter,sans-serif;color:#d8ff9f;
 background:linear-gradient(135deg,#343a3c,#22262c);
}
body.bali-guest-theme .tg-photo-vote-mark{
 position:absolute;right:6px;bottom:6px;width:24px;height:24px;
 display:grid;place-items:center;border-radius:50%;
 background:#10131ac9;color:#d8ff9f;border:1px solid #b9ff51;
 font-size:15px;
}
body.bali-guest-theme #tgVoteCandidates .tg-photo-vote-candidate.chosen .tg-photo-vote-mark,
body.bali-guest-theme #tgVoteCandidates .tg-photo-vote-candidate.already .tg-photo-vote-mark{
 background:#b9ff51;color:#10131a;
}
body.bali-guest-theme #tgVoteCandidates .tg-photo-vote-name{
 width:100%;min-width:0;color:#f5f5f5;white-space:normal;
 text-align:center;font:800 clamp(10px,1.45dvh,12px)/1.2 Manrope,Inter,sans-serif;
 overflow-wrap:anywhere;
}
body.bali-guest-theme .tg-photo-vote-footer{
 display:flex;flex-direction:column;gap:6px!important;
 flex:0 0 auto!important;padding:8px 0 2px!important;
 background:#080b11;border-top:1px solid rgba(255,255,255,.12);
}
body.bali-guest-theme .tg-photo-vote-confirm{
 min-height:clamp(39px,5.8dvh,47px);width:100%!important;
 border-radius:11px;background:#b9ff51;color:#10131a;
 border:1px solid #b9ff51;box-shadow:none;
 font:850 clamp(11px,1.6dvh,13px)/1.2 Manrope,Inter,sans-serif;
}
body.bali-guest-theme .tg-photo-vote-confirm:disabled{
 opacity:.6;background:#24272d;border-color:rgba(255,255,255,.15);color:#aeb4b8;
}
body.bali-guest-theme .tg-photo-vote-footer>small{
 text-align:center;color:#aeb4b8;font:550 clamp(8px,1.1dvh,10px)/1.2 Manrope,Inter,sans-serif;
}
body.bali-guest-theme .tg-mobile-only{
 display:flex;flex-direction:column;align-items:center;justify-content:center;
 min-height:100dvh;padding:30px;background:#080b11;color:#f5f5f5;text-align:center;
}
body.bali-guest-theme .tg-mobile-only-icon{font-size:53px;color:#b9ff51}
body.bali-guest-theme .tg-mobile-only h1{font-size:21px}
body.bali-guest-theme .tg-mobile-only p{font-size:14px;color:#bbc0c5}
@media(max-height:650px){
 body.bali-guest-theme .tg-photo-vote-description{padding:7px!important}
 body.bali-guest-theme .tg-photo-vote-footer{padding-top:5px!important}
 body.bali-guest-theme .tg-photo-vote-footer>small{display:none}
}
@media(prefers-reduced-motion:reduce){
 body.bali-guest-theme #tgVoteCandidates .tg-photo-vote-candidate{transition:none!important}
}

/* Compact equal-size actions: each side is 2/3 of its previous grid cell.
   Use real layout dimensions so the saved height is available to the text. */
body.bali-guest-theme .tg-home-photo-hub .tg-photo-hub-actions{
 justify-items:center!important;
 gap:clamp(4px,1.25vw,7px)!important;
}
body.bali-guest-theme .tg-home-photo-hub .tg-photo-hub-actions>button{
 width:66.6667%!important;
 min-height:0!important;height:auto!important;
 padding:4px 2px!important;gap:4px!important;
 border-radius:clamp(7px,1.8vw,10px)!important;
}
body.bali-guest-theme .tg-home-photo-hub .tg-photo-hub-actions .tg-photo-action-icon{
 width:clamp(18px,5.4vw,24px)!important;
 height:clamp(18px,5.4vw,24px)!important;
 border-radius:7px!important;
 font-size:clamp(13px,3.7vw,17px)!important;
}
body.bali-guest-theme .tg-home-photo-hub .tg-photo-hub-actions .tg-photo-action-label,
body.bali-guest-theme .tg-home-photo-hub .tg-photo-hub-actions .tg-photo-action-label small{
 font-size:clamp(7px,1.9vw,9px)!important;line-height:1.15!important;
}
body.bali-guest-theme .tg-home-photo-hub .tg-photo-hub-description,
body.bali-guest-theme .tg-home-photo-hub .tg-photo-hub-hint{
 display:block!important;-webkit-line-clamp:unset!important;
 line-clamp:unset!important;-webkit-box-orient:initial!important;
 max-height:none!important;overflow:visible!important;
 white-space:normal!important;text-overflow:clip!important;
}
