/* Telegram calendar / real published square posters in a stereoscopic coverflow.
   Fully scoped to Mini App; no site calendar styles or Firebase dependencies. */
.tg-calendar-panel{padding:15px 13px 13px;margin:16px 0 0;border-radius:21px}
.tg-calendar-toolbar{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:17px}
.tg-calendar-toolbar .tg-eyebrow{font-size:9px;letter-spacing:.14em;margin-bottom:5px}
.tg-calendar-toolbar .tg-panel-title{font-size:19px;text-transform:capitalize}
.tg-calendar-month-controls{display:flex;gap:8px}
.tg-calendar-month-controls .button{
 width:36px;height:35px;padding:0;display:grid;place-items:center;
 font-size:24px;line-height:1;flex:none;border-radius:11px;
}
.tg-calendar-weekdays,.tg-calendar-days{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:5px}
.tg-calendar-weekdays{margin:0 0 8px}
.tg-calendar-weekdays span{
 display:block;text-align:center;color:#cbb48e;
 font:800 9px/1.4 Inter,Manrope,sans-serif;letter-spacing:.07em;
}
.tg-calendar-day{
 position:relative;display:flex;align-items:center;justify-content:center;
 box-sizing:border-box;width:100%;aspect-ratio:1/1.02;min-width:0;min-height:0;
 padding:0!important;border:1px solid rgba(246,207,142,.13)!important;
 border-radius:9px!important;color:#d4cab7!important;
 font:750 clamp(10px,3.3vw,13px)/1 Inter,Manrope,sans-serif;
 background:linear-gradient(150deg,rgba(70,53,42,.66),rgba(23,24,33,.8))!important;
 box-shadow:inset 0 1px rgba(255,243,212,.055),0 3px 0 #0b0b12;
 transition:background .17s,box-shadow .17s,transform .17s;
}
.tg-calendar-day i{
 position:absolute;bottom:3px;width:4px;height:4px;border-radius:50%;
 background:#dfbc76;box-shadow:0 0 5px #f2c25e;
}
.tg-calendar-day[data-outside="true"]{opacity:.35}
.tg-calendar-day[data-ring="future"]{border-color:#7acb8f!important;color:#c8ffd4!important}
.tg-calendar-day[data-ring="past"]{border-color:#d8847c!important;color:#ffd5c8!important}
.tg-calendar-day[data-ring="today"]{border-color:#fff9e5!important;color:#fff9e5!important;box-shadow:inset 0 0 0 1px #fff8d1,0 3px 0 #2c2620,0 0 12px #fff2bd24}
.tg-calendar-day.is-selected{
 background:linear-gradient(155deg,#9a6734 0%,#6d452d 38%,#2a2429 100%)!important;
 box-shadow:inset 0 2px rgba(255,243,205,.3),0 4px 0 #432818,0 8px 15px #0008;
 transform:translateY(-2px);color:#fff7d9!important;
}
.tg-calendar-day:focus-visible{outline:2px solid #ffe0a3;outline-offset:3px}
.tg-calendar-stage{
 position:relative;max-width:680px;margin:11px auto 0;
 overflow:hidden;outline:none;
 padding:0 0 3px;
}
.tg-calendar-stage:focus-visible{outline:2px solid #f2cc86;outline-offset:3px;border-radius:18px}
.tg-calendar-poster-stack{
 position:relative;display:block;width:100%;
 height:clamp(265px,92vw,450px);max-height:min(58dvh,450px);
 min-height:240px;perspective:1000px;perspective-origin:center 50%;
 transform-style:preserve-3d;touch-action:pan-y;
 isolation:isolate;
}
.tg-calendar-poster-stack::before{
 content:"";position:absolute;top:14%;left:8%;right:8%;height:75%;
 background:radial-gradient(ellipse at center,rgba(252,186,90,.19),transparent 75%);
 filter:blur(13px);pointer-events:none;
}
.tg-calendar-poster-stack::after{
 content:"";position:absolute;left:24%;right:24%;bottom:3%;height:6%;border-radius:50%;
 background:#000;filter:blur(17px);opacity:.75;pointer-events:none;
}
.tg-event-poster{
 position:absolute;display:block;box-sizing:border-box;overflow:hidden;
 top:50%;left:50%;
 width:min(69vw,325px,68%);aspect-ratio:1;
 border:1px solid rgba(255,229,166,.35);
 border-radius:clamp(14px,4vw,22px);
 background:linear-gradient(138deg,#5c3b2e,#171923 60%,#11131c);
 box-shadow:inset 0 1px rgba(255,236,180,.4),0 5px 0 #211717,0 27px 41px #000c;
 transform-style:preserve-3d;
 transform:translate(-50%,-50%) translateX(var(--poster-x,0%)) translateZ(var(--poster-z,0px)) rotateY(var(--poster-yaw,0deg)) scale(var(--poster-scale,1));
 opacity:var(--poster-alpha,1);
 backface-visibility:hidden;
 transition:transform .58s cubic-bezier(.2,.8,.2,1),opacity .35s ease,visibility .35s ease;
 will-change:transform;
}
.tg-event-poster::before{
 content:"";position:absolute;z-index:5;inset:0;pointer-events:none;
 border-radius:inherit;border:1px solid rgba(255,231,162,.21);
 box-shadow:inset 0 0 0 2px rgba(22,13,18,.17),inset 0 0 19px rgba(0,0,0,.24);
}
.tg-event-poster::after{
 content:"";position:absolute;inset:0;pointer-events:none;z-index:4;
 background:linear-gradient(100deg,rgba(255,231,187,.10),transparent 23%,transparent 60%,rgba(9,10,14,.32));
}
.tg-event-poster img{width:100%;height:100%;display:block;object-fit:cover;user-select:none;-webkit-user-drag:none}
.tg-event-poster.is-current{border-color:#f5d592;box-shadow:0 8px 0 #3c281b,0 22px 34px #000b,0 0 30px #be7e3c2b}
.tg-event-poster-gloss{
 position:absolute;inset:0;pointer-events:none;z-index:4;
 background:linear-gradient(108deg,transparent 22%,rgba(255,245,210,.055) 37%,rgba(255,247,216,.19) 47%,transparent 60%);
 mix-blend-mode:screen;opacity:.58;
}
.tg-event-empty-art{display:flex;align-items:center;justify-content:center;flex-direction:column;width:100%;height:100%;gap:9px;
 background:radial-gradient(circle at 50% 44%,#764c2d,#27212a 48%,#10131a 86%)}
.tg-event-empty-art span{font:950 clamp(28px,10vw,58px)/1 Inter,sans-serif;letter-spacing:.16em;color:#ffe9b9;text-shadow:0 4px 0 #663e29,0 13px 23px #000a}
.tg-event-empty-art small{font:750 9px Inter,sans-serif;letter-spacing:.32em;color:#d7ac73}
.tg-event-poster-date{
 position:absolute;z-index:6;top:10px;right:10px;display:flex;align-items:center;gap:5px;
 border:1px solid rgba(255,232,165,.58);border-radius:10px;
 color:#ffe8b4;background:linear-gradient(155deg,rgba(97,65,36,.84),rgba(22,21,26,.86));
 box-shadow:inset 0 1px #fff4c244,0 4px 9px #0008;
 padding:6px 8px;pointer-events:none;
}
.tg-event-poster-date b{font:900 18px/1 Inter,sans-serif}
.tg-event-poster-date small{font:750 9px/1.2 Inter,sans-serif;max-width:45px;text-transform:uppercase}
.tg-calendar-poster-controls{position:relative;display:flex;justify-content:center;align-items:center;gap:18px;padding:3px 10px 13px}
.tg-calendar-poster-controls .button{display:grid;place-items:center;width:40px;height:38px;flex:none;padding:0;font-size:25px;line-height:1}
.tg-calendar-counter{font:800 12px/1 Inter,sans-serif;letter-spacing:.14em;color:#e6bd7d;min-width:54px;text-align:center}
.tg-calendar-empty{
 position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);
 text-align:center;width:min(100%,285px);color:#c6b59c;
}
.tg-calendar-empty span{display:block;font-size:72px;color:#ffdc9a;text-shadow:0 7px 0 #71461d,0 20px 35px #0009}
.tg-calendar-empty h2{font-size:20px;margin:12px 0 6px;color:#ffe5b8}
.tg-calendar-empty p{font-size:12px;line-height:1.5}
.tg-event-detail{padding:18px 17px;margin:0 0 18px;min-height:84px}
.tg-event-detail[hidden]{display:none!important}
.tg-event-heading{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}
.tg-event-heading .tg-eyebrow{font-size:9px}
.tg-event-heading .tg-panel-title{font-size:18px;line-height:1.3}
.tg-event-heading .tg-chip{flex:none;align-self:center;font-size:9px;max-width:42%}
.tg-event-time{font:650 11px/1.5 Inter,sans-serif;color:#e9c38b;margin:9px 0 0}
.tg-event-more{min-height:39px;margin-top:13px;width:100%;font-size:12px}
.tg-event-description{white-space:pre-wrap;overflow-wrap:anywhere;font-size:12px;line-height:1.6;color:#ddd0b9;margin:14px 0 0}
@media(min-width:600px){
 .tg-event-poster{width:min(43%,330px)}
 .tg-calendar-poster-stack{height:430px}
 .tg-calendar-day{font-size:14px}
}
@media(max-width:370px){
 .tg-calendar-panel{padding:12px 9px}
 .tg-calendar-weekdays,.tg-calendar-days{gap:4px}
 .tg-calendar-day{border-radius:7px!important}
 .tg-calendar-poster-stack{min-height:225px;height:min(88vw,300px)}
 .tg-event-poster{width:66%}
}
@media(prefers-reduced-motion:reduce){
 .tg-event-poster,.tg-calendar-day{transition:none!important;will-change:auto!important}
 .tg-event-poster-gloss{opacity:.15}
}


/* Shared verified "Хочу пойти" event plans; dimensions and colour remain Telegram-only. */
.tg-event-interest-bar{
 display:flex;align-items:center;justify-content:space-between;gap:12px;
 margin-top:14px;padding-top:13px;border-top:1px solid rgba(244,208,137,.18);
}
.tg-event-interest-bar>.button{
 min-height:47px;flex:1;text-align:center;max-width:230px;
 font:800 12px/1.4 Inter,Manrope,sans-serif;border-radius:13px;
 box-shadow:inset 0 2px rgba(255,246,197,.23),0 4px 0 #4e301a,0 9px 18px #0008;
}
.tg-event-interest-bar>.button:disabled{opacity:.6;box-shadow:inset 0 1px #fff1,0 2px 0 #1c1a1b}
.tg-event-interest-bar .tg-interest-selected{
 background:linear-gradient(150deg,#264b38,#193628 53%,#14261d)!important;
 border-color:#7ad9a0!important;color:#d3ffe2!important;
 box-shadow:inset 0 2px #b0ffcc41,0 4px 0 #12271a,0 9px 18px #0008;
}
.tg-event-interest-count{font:750 11px/1.5 Inter,sans-serif;color:#e0ba7c;text-align:right;min-width:0;max-width:38%}
.tg-event-interest-note{color:#bda88b;font-size:11px;line-height:1.55;margin:12px 0 0}
