/* BALI CARD compact launchpad, Instagram-style single event feed,
   and conditional independent photo wall. Mini App ONLY; site untouched. */

/* C A L E N D A R : one photo at a time, large square, centred. */
body.bali-guest-theme .tg-page-calendar #screen{
 display:flex!important;flex-direction:column!important;min-height:0!important;
 overflow:hidden!important;
}
body.bali-guest-theme .tg-page-calendar #screen>.tg-title{
 margin:0 0 1px!important;font-size:clamp(16px,3dvh,22px)!important;
}
body.bali-guest-theme .tg-page-calendar .tg-calendar-view-tabs{
 flex:none!important;margin:3px 0 5px!important;gap:7px!important;
}
body.bali-guest-theme .tg-page-calendar .tg-calendar-view-tabs .button{
 min-height:31px!important;height:31px!important;
 padding:4px 10px!important;font-size:11px!important;
}
/* The parent stage fills remaining real height, the square measures from the
   available stage via CSS container size instead of guessing phone models. */
body.bali-guest-theme .tg-page-calendar #tgCalendarStage{
 flex:1 1 0!important;min-height:0!important;
 max-width:500px!important;width:100%!important;
 display:flex!important;flex-direction:column!important;
 padding:0!important;margin:0 auto!important;overflow:hidden!important;
}
body.bali-guest-theme .tg-page-calendar #tgPosterStack{
 position:relative!important;
 container-type:size;
 flex:1 1 0!important;min-height:0!important;
 display:block!important;overflow:hidden!important;
 width:100%!important;height:auto!important;
 max-height:none!important;
 background:radial-gradient(ellipse 70% 52% at 50% 55%,rgba(181,231,143,.12),transparent 83%);
 perspective:none!important;
}
body.bali-guest-theme .tg-page-calendar #tgPosterStack::before,
body.bali-guest-theme .tg-page-calendar #tgPosterStack::after{
 display:none!important;
}
body.bali-guest-theme .tg-page-calendar #tgPosterStack>.tg-event-poster{
 position:absolute!important;inset:auto!important;
 display:block!important;
 width:min(100cqw,100cqh,440px)!important;
 max-width:none!important;height:auto!important;
 aspect-ratio:1/1!important;
 top:50%!important;left:50%!important;
 transform:translate(-50%,-50%)!important;
 opacity:1!important;rotate:none!important;
 border-radius:clamp(12px,4vw,21px)!important;
 border:1px solid #d9dbad91!important;
 box-shadow:inset 0 1px #efffd759,
  0 4px 0 #243c2a,0 11px 26px rgba(0,0,0,.56)!important;
 backface-visibility:visible!important;
 transition:opacity .2s ease!important;
 pointer-events:auto;
}
body.bali-guest-theme .tg-page-calendar #tgPosterStack>.tg-event-poster:not(.is-current){
 display:none!important;visibility:hidden!important;
 pointer-events:none!important;
}
body.bali-guest-theme .tg-page-calendar #tgPosterStack>.tg-event-poster.is-current{
 border-color:#fcf0c1!important;
 box-shadow:inset 0 1px #fff8ca7c,
  0 4px 0 #765d38,0 11px 25px #000c,0 0 18px #b3d27e27!important;
}
body.bali-guest-theme .tg-page-calendar #tgPosterStack>.tg-event-poster img{
 width:100%;height:100%;object-fit:cover!important;
}
/* No arrows. Small spatial cue and a real 1/N counter. */
body.bali-guest-theme .tg-page-calendar #tgCalendarStage .tg-calendar-poster-controls{
 display:flex!important;gap:9px!important;justify-content:center!important;
 align-items:center!important;min-height:18px!important;height:19px!important;
 flex:none!important;padding:0!important;margin:1px 0 0!important;
}
body.bali-guest-theme .tg-page-calendar .tg-calendar-counter{
 color:#e9eac9!important;font:750 9px/1 Manrope,Inter,sans-serif!important;
 letter-spacing:.06em!important;min-width:0!important;
}
.tg-event-swipe-gesture{
 display:flex;align-items:center;gap:6px;
 font:750 8px/1 Manrope,Inter,sans-serif;
 letter-spacing:.14em;color:#9ebd9a;
}
.tg-swipe-track{
 width:38px;height:5px;flex:none;display:block;position:relative;
 border-radius:10px;background:#648d6835;overflow:hidden;
}
.tg-swipe-track i{
 width:13px;height:100%;position:absolute;left:0;top:0;
 border-radius:10px;background:#c6efab;
 box-shadow:0 0 7px #bafb96;
 animation:bali-swipe-signal 3.9s ease-in-out infinite;
}
@keyframes bali-swipe-signal{
 0%,7%{transform:translateX(12px);opacity:.55}
 24%{transform:translateX(0);opacity:1}
 50%{transform:translateX(24px);opacity:1}
 68%,100%{transform:translateX(12px);opacity:.45}
}
/* Instagram post meta: clear separate action row without tall button cards. */
body.bali-guest-theme .tg-page-calendar #tgEventDetail{
 flex:0 0 auto!important;min-height:0!important;
 margin:3px 0 2px!important;padding:5px 8px 7px!important;
 border:1px solid #a9c98b55!important;border-radius:14px!important;
 background:linear-gradient(148deg,#25382d,#162526 68%,#101b20)!important;
 box-shadow:inset 0 1px #ecffd12b,0 3px 0 #0c1616!important;
 overflow:hidden;
}
body.bali-guest-theme .tg-event-feed-content{display:flex;flex-direction:column;gap:4px;min-height:0}
body.bali-guest-theme .tg-event-social-row{
 display:flex!important;align-items:center!important;justify-content:flex-start!important;
 gap:8px!important;min-height:31px!important;
}
body.bali-guest-theme .tg-event-icon-button{
 flex:none;display:grid;place-items:center;
 width:32px;height:31px;border:0;border-radius:9px;
 background:transparent;color:#e5f5d9;
 box-shadow:none;padding:3px;touch-action:manipulation;
}
body.bali-guest-theme .tg-event-icon-button svg{
 width:23px;height:23px;display:block;filter:drop-shadow(0 1px 2px #000b);
}
body.bali-guest-theme .tg-event-icon-button:active{
 transform:scale(.91);background:#98be7c24;
}
body.bali-guest-theme .tg-event-icon-button:focus-visible{
 outline:2px solid #d6ffb7;outline-offset:-1px;
}
body.bali-guest-theme .tg-event-icon-button:disabled{opacity:.45}
body.bali-guest-theme .tg-event-like.is-liked{
 color:#f06e7b;animation:bali-heart-bump .32s ease-out;
}
@keyframes bali-heart-bump{0%{transform:scale(.72)}65%{transform:scale(1.13)}100%{transform:scale(1)}}
body.bali-guest-theme .tg-event-share-icon{color:#c7f6aa}
body.bali-guest-theme .tg-event-social-count{
 font:750 clamp(9px,1.6dvh,12px)/1 Manrope,Inter,sans-serif!important;
 margin-left:auto;white-space:nowrap;color:#d0edc2!important;
}
body.bali-guest-theme .tg-event-feed-caption{
 display:flex;align-items:baseline;justify-content:space-between;gap:6px;
 min-height:16px;max-width:100%;
}
body.bali-guest-theme .tg-event-feed-caption b{
 flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
 color:#f3ffe8;font:850 clamp(10px,1.8dvh,13px)/1.2 Manrope,Inter,sans-serif;
}
body.bali-guest-theme .tg-event-feed-caption span{
 flex:none;font:650 clamp(8px,1.4dvh,10px)/1.2 Manrope,Inter,sans-serif;
 color:#c5d6b5;
}
body.bali-guest-theme .tg-event-friends{
 display:flex;align-items:center;gap:6px;min-width:0;min-height:26px;
 border-top:1px solid #b5e59e20;padding-top:5px;
}
body.bali-guest-theme .tg-event-friends>strong{
 flex:none;color:#dceca9;font:800 8px/1.2 Manrope,Inter,sans-serif;letter-spacing:.05em;
}
body.bali-guest-theme .tg-event-friends>span{
 min-width:0;display:flex;align-items:center;gap:5px;
 font-size:clamp(8px,1.35dvh,10px);color:#b8cbb2;
}
body.bali-guest-theme .tg-event-avatars{
 display:flex;flex:none;padding-left:3px;
}
body.bali-guest-theme .tg-event-avatars i{
 display:grid;place-items:center;margin-left:-3px;
 width:17px;height:17px;border-radius:50%;
 border:1px solid #d9ffb7;background:#4e7851;color:#f6ffe7;
 font:900 8px/1 Manrope,Inter,sans-serif;font-style:normal;
}
body.bali-guest-theme .tg-friend-names{
 display:block!important;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
}
body.bali-guest-theme .tg-event-interest-note{
 font-size:9px!important;line-height:1.2!important;margin:2px 0 0!important;
}
@media(max-width:350px){
 body.bali-guest-theme .tg-event-friends>strong{font-size:7px}
 body.bali-guest-theme .tg-event-feed-caption b{font-size:10px}
}
@media(max-height:610px){
 body.bali-guest-theme .tg-page-calendar #screen>.tg-title{font-size:17px!important}
 body.bali-guest-theme .tg-page-calendar #tgEventDetail{padding:2px 6px 4px!important}
 body.bali-guest-theme .tg-event-feed-content{gap:2px}
 body.bali-guest-theme .tg-event-friends{min-height:22px;padding-top:3px}
 body.bali-guest-theme .tg-event-social-row{min-height:29px!important}
}

/* B A L I   P H O T O   W A L L : independent guest wall only. */
body.bali-guest-theme .tg-page-card .tg-photo-wall-launcher{
 flex:none;align-self:stretch;
 display:flex;align-items:center;justify-content:center;gap:8px;
 width:100%;height:clamp(33px,5.4dvh,39px);
 min-height:33px;padding:4px 11px;
 margin:auto 0 0!important;
 border:1px solid #8ecd9f9c;border-radius:11px;
 background:linear-gradient(132deg,#395c49,#253b46 62%,#15242b);
 color:#e7ffe8;
 box-shadow:inset 0 1px #efffdd54,0 2px 0 #122d24,0 5px 12px #0008;
 font:850 clamp(10px,1.7dvh,12px)/1 Manrope,Inter,sans-serif;
 letter-spacing:.05em;
 cursor:pointer;touch-action:manipulation;
 animation:bali-photo-wall-peek 12s ease-in-out infinite;
}
/* Hidden is authoritative: CSS display:flex must not expose the button offline. */
body.bali-guest-theme .tg-page-card .tg-photo-wall-launcher[hidden]{
 display:none!important;animation:none!important;
}
body.bali-guest-theme .tg-page-card .tg-photo-wall-launcher span:first-child{
 flex:none;color:#d6ffb4;font-size:17px;
}
body.bali-guest-theme .tg-page-card .tg-photo-wall-launcher small{
 font-size:9px;letter-spacing:.04em;color:#b9d0c5;
}
body.bali-guest-theme .tg-page-card .tg-photo-wall-launcher:focus-visible{
 outline:2px solid #ecffd8;outline-offset:2px;
}
body.bali-guest-theme .tg-page-card .tg-photo-wall-launcher:active{
 animation:none;transform:translateY(2px);
}
/* Briefly slips below its normal slot, without disappearing permanently. */
@keyframes bali-photo-wall-peek{
 0%,55%,87%,100%{opacity:1;transform:translateY(0)}
 68%,78%{opacity:.26;transform:translateY(17px)}
}
@media(prefers-reduced-motion:reduce){
 .tg-swipe-track i,.tg-event-like.is-liked,
 body.bali-guest-theme .tg-page-card .tg-photo-wall-launcher{animation:none!important}
}

/* Richer post caption only where it fits. On a small iPhone the feed stays
   the same unclipped three-action post; taller screens use surplus height
   for actual published description and verified invitee numbers. */
body.bali-guest-theme .tg-page-calendar .tg-event-extra-info{display:none}
@media(min-height:720px){
 body.bali-guest-theme .tg-page-calendar .tg-event-extra-info{
  display:flex;flex-direction:column;gap:5px;
  padding:5px 2px 1px;
  border-top:1px solid rgba(189,223,157,.15);
 }
 body.bali-guest-theme .tg-page-calendar .tg-event-feed-description{
  display:-webkit-box;overflow:hidden;
  -webkit-line-clamp:2;-webkit-box-orient:vertical;
  color:#c5d7c2;font:520 10px/1.45 Manrope,Inter,sans-serif;
  margin:0!important;
 }
 body.bali-guest-theme .tg-page-calendar .tg-event-invites-status{
  display:flex;align-items:center;gap:5px;
  color:#bed8b9;font:650 9px/1.2 Manrope,Inter,sans-serif;
 }
 body.bali-guest-theme .tg-page-calendar .tg-event-invites-status span{
  font-weight:850;color:#d7f9bb;letter-spacing:.07em;
 }
 body.bali-guest-theme .tg-page-calendar .tg-event-invites-status b{
  color:#f8d991;font-size:12px;font-variant-numeric:tabular-nums;
 }
 body.bali-guest-theme .tg-page-calendar .tg-event-invites-status small{
  color:#bcd0b8;font-size:9px;
 }
}
@media(min-width:600px) and (min-height:760px){
 body.bali-guest-theme .tg-page-calendar #tgCalendarStage{
  max-width:min(100%,570px)!important;
 }
 body.bali-guest-theme .tg-page-calendar #tgPosterStack>.tg-event-poster{
  width:min(100cqw,100cqh,540px)!important;
 }
}
