:root{--bg:var(--tg-theme-secondary-bg-color,#f1f1f4);--sec:var(--tg-theme-section-bg-color,var(--tg-theme-bg-color,#fff));--text:var(--tg-theme-text-color,#000);--hint:var(--tg-theme-hint-color,#6d6d72);--subtitle:var(--tg-theme-subtitle-text-color,var(--hint));--section-header:var(--tg-theme-section-header-text-color,var(--hint));--accent:var(--tg-theme-accent-text-color,var(--tg-theme-link-color,#1a6fd0));--button:var(--tg-theme-button-color,#1a6fd0);--button-text:var(--tg-theme-button-text-color,#fff);--destructive:var(--tg-theme-destructive-text-color,#d7263d);--sep:var(--tg-theme-section-separator-color,color-mix(in srgb, var(--text) 10%, transparent));--chip:color-mix(in srgb, var(--text) 7%, transparent);--accent-soft:color-mix(in srgb, var(--button) 14%, transparent);--green:#24a148;--green-soft:color-mix(in srgb, var(--green) 16%, transparent);--orange:#e07b1f;--orange-soft:color-mix(in srgb, var(--orange) 16%, transparent);--radius:14px;color:var(--text);background:var(--bg);-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent;font-family:-apple-system,BlinkMacSystemFont,SF Pro Text,Inter,Roboto,Segoe UI,sans-serif;font-size:16px}*{box-sizing:border-box}body{background:var(--bg);margin:0}a{color:var(--accent);text-decoration:none}button{font:inherit;color:inherit;cursor:pointer;background:0 0;border:0;padding:0}button:disabled{opacity:.5;cursor:default}input,textarea{font:inherit;color:var(--text)}input::placeholder,textarea::placeholder{color:var(--hint)}.page{padding:8px 16px calc(32px + var(--tg-safe-area-inset-bottom,0px));flex-direction:column;gap:20px;min-height:100vh;display:flex}.large-title{letter-spacing:-.5px;margin:8px 4px 0;font-size:32px;font-weight:700}.subtitle{color:var(--subtitle);margin:-14px 4px 0;font-size:15px}.muted{color:var(--hint)}.error{color:var(--destructive)}.small{font-size:13px}.section{flex-direction:column;gap:6px;display:flex}.section-title{text-transform:uppercase;letter-spacing:.3px;color:var(--section-header);margin:0 16px;font-size:13px;font-weight:500}.section-footer{color:var(--hint);margin:0 16px;font-size:13px;line-height:1.4}.section-body{border-radius:var(--radius);background:var(--sec);overflow:hidden}.section-body>*+*{border-top:1px solid var(--sep)}.section-body.inset>*+*{box-shadow:inset 58px 1px 0 var(--sec), inset 0 1px 0 var(--sep);border-top:0}.cell{text-align:left;width:100%;min-height:48px;color:var(--text);align-items:center;gap:12px;padding:10px 16px;display:flex}button.cell:active,a.cell:active{background:var(--chip)}.cell-main{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.cell-title{text-overflow:ellipsis;white-space:nowrap;font-size:16px;overflow:hidden}.cell-sub{color:var(--hint);text-overflow:ellipsis;white-space:nowrap;font-size:14px;overflow:hidden}.cell-right{color:var(--hint);flex-shrink:0;align-items:center;gap:6px;font-size:15px;display:flex}.cell.accent .cell-title{color:var(--accent)}.cell.destructive .cell-title{color:var(--destructive)}.icon-tile{background:var(--accent-soft);width:30px;height:30px;color:var(--accent);border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;display:flex}.segmented{background:var(--chip);border-radius:10px;grid-auto-columns:minmax(0,1fr);grid-auto-flow:column;gap:2px;padding:2px;display:grid}.segmented button{border-radius:8px;height:32px;font-size:14px}.segmented button[aria-selected=true]{background:var(--sec);font-weight:600;box-shadow:0 1px 3px #0000001f}.date-tile{background:var(--chip);width:44px;height:44px;color:var(--text);border-radius:12px;flex-direction:column;flex-shrink:0;justify-content:center;align-items:center;display:flex}.date-tile b{font-size:17px;line-height:1}.date-tile span{text-transform:uppercase;font-size:11px;font-weight:600;line-height:1.3}.date-tile.going,.pill.going{background:var(--green-soft);color:var(--green)}.date-tile.maybe,.pill.maybe{background:var(--orange-soft);color:var(--orange)}.date-tile.time b{font-size:14px}.pill{background:var(--chip);color:var(--hint);border-radius:10px;flex-shrink:0;padding:4px 8px;font-size:12px;font-weight:600}.chips{flex-wrap:wrap;gap:8px;display:flex}.chip{background:var(--sec);border-radius:18px;height:36px;padding:0 14px;font-size:14px}.chip[aria-pressed=true]{background:var(--button);color:var(--button-text);font-weight:600}.avatar{object-fit:cover;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-weight:700;display:inline-flex;overflow:hidden}.avatar-stack{display:flex}.avatar-stack>*+*{margin-left:-8px}.hero{background:var(--button);color:var(--button-text);text-align:left;border-radius:20px;flex-direction:column;gap:14px;padding:18px;display:flex}.hero-kicker{letter-spacing:.4px;text-transform:uppercase;opacity:.8;font-size:13px;font-weight:600}.hero-title{letter-spacing:-.3px;font-size:24px;font-weight:700}.hero-sub{opacity:.85;font-size:15px}.hero .pill{color:inherit;background:#ffffff38}.hero .avatar{border:2px solid var(--button)}.event-head{text-align:center;flex-direction:column;align-items:center;gap:10px;padding-top:8px;display:flex}.event-icon{background:var(--button);width:72px;height:72px;color:var(--button-text);border-radius:22px;justify-content:center;align-items:center;display:flex}.event-title{letter-spacing:-.4px;margin:0;font-size:26px;font-weight:700}.event-title.cancelled{opacity:.6;text-decoration:line-through}.rsvp{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;display:grid}.rsvp button{background:var(--sec);border-radius:14px;flex-direction:column;justify-content:center;align-items:center;gap:3px;height:60px;font-size:15px;display:flex}.rsvp button[aria-checked=true].going{background:var(--green-soft);color:var(--green);box-shadow:inset 0 0 0 2px var(--green);font-weight:600}.rsvp button[aria-checked=true].maybe{background:var(--orange-soft);color:var(--orange);box-shadow:inset 0 0 0 2px var(--orange);font-weight:600}.rsvp button[aria-checked=true].declined{background:var(--chip);box-shadow:inset 0 0 0 2px var(--hint);font-weight:600}.notice{border-radius:var(--radius);background:var(--accent-soft);align-items:center;gap:12px;padding:14px 16px;font-size:14px;line-height:1.4;display:flex}.field{align-items:center;gap:12px;padding:12px 16px;display:flex}.field>span{flex-shrink:0;font-size:16px}.field input{text-align:right;background:0 0;border:0;outline:none;flex:1;min-width:0;padding:0;font-size:16px}.field-big input,.field-big textarea{background:0 0;border:0;outline:none;width:100%;padding:0}.field-big input{font-size:20px;font-weight:600}.field-big textarea{resize:none;min-height:44px;font-size:16px}.field-big{padding:12px 16px;display:block}.field input[type=date],.field input[type=time]{text-align:center;background:var(--chip);border-radius:8px;flex:none;height:34px;padding:0 10px}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.switch{flex-shrink:0;width:51px;height:31px;position:relative}.switch input{opacity:0;cursor:pointer;margin:0;position:absolute;inset:0}.switch span{background:var(--chip);pointer-events:none;border-radius:16px;transition:background .2s;position:absolute;inset:0}.switch span:after{content:"";background:#fff;border-radius:50%;width:27px;height:27px;transition:transform .2s;position:absolute;top:2px;left:2px;box-shadow:0 2px 4px #0003}.switch input:checked+span{background:var(--green)}.switch input:checked+span:after{transform:translate(20px)}.poll{flex-direction:column;gap:10px;padding:14px 16px;display:flex}.poll-q{font-size:16px;font-weight:600}.poll-option{background:var(--chip);border-radius:10px;justify-content:space-between;align-items:center;height:44px;padding:0 14px;display:flex;position:relative;overflow:hidden}.poll-option:disabled{opacity:1}.poll-option.mine{box-shadow:inset 0 0 0 2px var(--button);font-weight:600}.poll-option.winner{font-weight:700}.poll-bar{background:var(--accent-soft);transition:width .3s;position:absolute;inset:0 auto 0 0}.poll-option>span:not(.poll-bar){position:relative}.poll-actions{gap:16px;display:flex}.calendar{padding:12px 12px 8px}.cal-head{justify-content:space-between;align-items:center;padding:0 4px 8px;display:flex}.cal-head strong{text-transform:capitalize;font-size:17px}.cal-head button{width:36px;height:36px;color:var(--accent);border-radius:18px;justify-content:center;align-items:center;display:inline-flex}.cal-grid{text-align:center;grid-template-columns:repeat(7,minmax(0,1fr));gap:2px;display:grid}.cal-weekday{color:var(--hint);padding:4px 0;font-size:12px;font-weight:600}.cal-day{border-radius:21px;height:42px;font-size:16px;position:relative}.cal-day.today{color:var(--accent);font-weight:700}.cal-day.selected{background:var(--button);color:var(--button-text);font-weight:600}.cal-dot{background:var(--accent);border-radius:50%;width:5px;height:5px;margin-left:-2.5px;position:absolute;bottom:5px;left:50%}.cal-day.selected .cal-dot{background:var(--button-text)}.fallback-bar{background:var(--sec);border-top:1px solid var(--sep);gap:8px;margin:0 -16px;padding:10px 16px 16px;display:grid;position:sticky;bottom:0}.btn{background:var(--button);height:50px;color:var(--button-text);border-radius:12px;width:100%;font-size:16px;font-weight:600}.btn.secondary{background:var(--accent-soft);color:var(--accent)}.skeleton{border-radius:var(--radius);background:var(--chip);animation:1.2s ease-in-out infinite pulse}@keyframes pulse{50%{opacity:.5}}.empty{text-align:center;flex-direction:column;align-items:center;gap:8px;padding:40px 24px;display:flex}.empty-icon{background:var(--accent-soft);width:64px;height:64px;color:var(--accent);border-radius:20px;justify-content:center;align-items:center;display:flex}.empty-title{font-size:18px;font-weight:600}
