/* "Живое стекло" - the STMEGI Junior look on top of style.css: the SMM calendar's bold royal
   blue + lime, Unbounded headings, frosted-glass cards over a soft background with the logo
   drifting through it, and round, slightly 3D buttons. Removing this file's <link> (and the
   .bg-layer in index.html) brings back the previous, minimal design. */

@font-face { font-family: 'Unbounded'; font-style: normal; font-display: swap; font-weight: 200 900; src: url(/fonts/unbounded-cyrillic.woff2) format('woff2'); unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; }
@font-face { font-family: 'Unbounded'; font-style: normal; font-display: swap; font-weight: 200 900; src: url(/fonts/unbounded-latin.woff2) format('woff2'); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: 'Montserrat'; font-style: normal; font-display: swap; font-weight: 100 900; src: url(/fonts/montserrat-cyrillic.woff2) format('woff2'); unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; }
@font-face { font-family: 'Montserrat'; font-style: normal; font-display: swap; font-weight: 100 900; src: url(/fonts/montserrat-latin.woff2) format('woff2'); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: 'Caveat'; font-style: normal; font-display: swap; font-weight: 400 700; src: url(/fonts/caveat-cyrillic.woff2) format('woff2'); unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; }
@font-face { font-family: 'Caveat'; font-style: normal; font-display: swap; font-weight: 400 700; src: url(/fonts/caveat-latin.woff2) format('woff2'); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }

:root {
  --bg: #EDF3FF;
  --surface: #FFFFFF;
  --surface-alt: rgba(30, 85, 227, .08);
  --text: #0A1B4D;
  --muted: #5A6A93;
  --accent: #1E55E3;
  --accent-dark: #1440B8;
  --accent-contrast: #FFFFFF;
  --border: rgba(30, 85, 227, .13);
  --cyan: #47C4DC;
  --lime: #C6F04A;
  --lime-ink: #3D5A00;
  --rsvp: #7C3AED;
  --rsvp-soft: rgba(124, 58, 237, .12);
  --success-soft: rgba(22, 163, 74, .13);
  --danger-soft: rgba(239, 68, 68, .12);

  --glass: rgba(255, 255, 255, .62);
  --glass-strong: rgba(255, 255, 255, .8);
  --glass-edge: rgba(255, 255, 255, .85);
  --glass-blur: blur(18px) saturate(170%);
  --glass-shadow: 0 10px 30px -16px rgba(20, 55, 160, .35), inset 0 1px 0 rgba(255, 255, 255, .9);
  --head: 'Unbounded', 'Montserrat', -apple-system, sans-serif;
}

body { font-family: 'Montserrat', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif; font-weight: 500; background: var(--bg); }
@media (min-width: 481px) {
  body { background: transparent; }
  #app { box-shadow: 0 0 0 1px rgba(255, 255, 255, .7), 0 30px 80px -30px rgba(20, 55, 160, .45); border-radius: 0; }
}

/* ---- background: soft brand wash + the logo mark drifting slowly behind everything ---- */
.bg-layer { position: fixed; inset: 0; z-index: -1; overflow: hidden; pointer-events: none;
  background:
    radial-gradient(60% 40% at 100% 0%, rgba(71, 196, 220, .30) 0%, rgba(71, 196, 220, 0) 70%),
    radial-gradient(55% 35% at 0% 100%, rgba(198, 240, 74, .28) 0%, rgba(198, 240, 74, 0) 70%),
    radial-gradient(70% 45% at 0% 30%, rgba(30, 85, 227, .14) 0%, rgba(30, 85, 227, 0) 70%),
    linear-gradient(170deg, #E6EFFF 0%, #F3F7FF 50%, #ECEFFF 100%);
}
.bg-mark { position: absolute; display: block; opacity: .16; will-change: transform;
  animation: bgDrift var(--d, 60s) ease-in-out var(--delay, 0s) infinite alternate; }
.bg-mark.far { opacity: .10; filter: blur(1.5px); }
.bg-mark.lime { opacity: .5; }
@keyframes bgDrift {
  0% { transform: translate(0, 0) rotate(var(--r0, 0deg)); }
  50% { transform: translate(var(--dx, 30px), var(--dy, -40px)) rotate(calc(var(--r0, 0deg) + 25deg)); }
  100% { transform: translate(calc(var(--dx, 30px) * -.6), calc(var(--dy, -40px) * .8)) rotate(calc(var(--r0, 0deg) - 15deg)); }
}
@media (prefers-reduced-motion: reduce) { .bg-mark { animation: none; } }
html.calm .bg-mark { animation: none; }

/* Screens are see-through so the background shows behind every page. */
.frame { background: transparent; }
.frame.exit-left { opacity: 0; }

/* ---- type ---- */
.header-title, .featured-title, .poster-title, .stat-num, .stat-tile-num, .points-hero .num, .profile-name,
.celebrate-title, .qr-name, .admin-hero-title, .item-head-title, .empty-title, .scan-name, .mini-stat-num,
.refund-amount, .user-card-name, .stat-strip b, .date-tile-day, .splash-title {
  font-family: var(--head); letter-spacing: -0.015em;
}
.header { padding: 16px 18px 10px; }
.header-title { font-size: 25px; font-weight: 800; color: var(--text); }
.greeting { font-family: 'Caveat', cursive; font-size: 23px; font-weight: 700; color: var(--accent); margin-bottom: 0; transform: rotate(-1.5deg); transform-origin: left; display: inline-block; }
.section-label { font-family: var(--head); font-size: 11px; font-weight: 700; letter-spacing: .08em; color: var(--accent); margin: 20px 6px 9px; }
.row-title { font-weight: 700; }
.row-sub { color: var(--muted); }
.featured-title { font-size: 19px; font-weight: 700; line-height: 1.25; }
.poster-title { font-size: 22px; font-weight: 800; }
.stat-tile-num, .mini-stat-num { color: var(--accent); font-weight: 800; }
.featured-kicker, .poster-kicker { font-family: var(--head); font-weight: 700; color: var(--accent); letter-spacing: .08em; font-size: 10px; }
.item-when { color: var(--accent); font-weight: 800; }

/* ---- glass surfaces ---- */
.card-group, .stat-card, .stat-tile, .form-section, .empty-state, .qr-card, .item-head, .user-card, .stat-strip,
.mini-stat, .admin-hero, .thread-user, .featured, .scan-result.checking, .bubble.theirs {
  background: var(--glass);
  -webkit-backdrop-filter: var(--glass-blur); backdrop-filter: var(--glass-blur);
  border: 1px solid var(--glass-edge);
  box-shadow: var(--glass-shadow);
}
.card-group, .stat-card, .stat-tile, .form-section, .item-head, .user-card, .stat-strip, .admin-hero { border-radius: 24px; }
.empty-state, .qr-card, .featured { border-radius: 28px; }
.mini-stat { border-radius: 20px; }
.list-row { border-bottom-color: rgba(30, 85, 227, .08); padding: 14px 16px; }
.list-row:active { background: rgba(255, 255, 255, .55); }
.featured { box-shadow: 0 18px 40px -20px rgba(20, 55, 160, .5), inset 0 1px 0 rgba(255, 255, 255, .9); }
.featured-img { height: 176px; }
.featured-when { background: var(--lime); color: var(--lime-ink); border-radius: 999px; padding: 7px 13px; font-weight: 800; box-shadow: 0 6px 16px -8px rgba(61, 90, 0, .55); }
.featured-img.placeholder, .poster-cover { background: linear-gradient(135deg, #3D7BFF 0%, #1E55E3 55%, #1238A8 100%); }
.featured-img.placeholder.lesson, .poster-cover.lesson { background: linear-gradient(135deg, #8B7CFF 0%, #5B45E8 55%, #3524B0 100%); }
.item-thumb { border-radius: 18px; }
.item-thumb.placeholder { background: linear-gradient(135deg, rgba(71, 196, 220, .25), rgba(30, 85, 227, .18)); }
.item-thumb.placeholder.lesson { background: linear-gradient(135deg, rgba(139, 124, 255, .25), rgba(91, 69, 232, .18)); }
.item-head-img.placeholder { background: linear-gradient(135deg, rgba(71, 196, 220, .25), rgba(30, 85, 227, .18)); }
.tip-card { background: rgba(255, 255, 255, .45); -webkit-backdrop-filter: var(--glass-blur); backdrop-filter: var(--glass-blur); border: 1.5px dashed rgba(30, 85, 227, .25); border-radius: 20px; color: var(--accent-dark); }
.hint { background: rgba(255, 255, 255, .55); border-radius: 16px; }
.menu-icon, .sheet-icon, .pay-method-icon, .doc-icon { border-radius: 14px; background: rgba(255, 255, 255, .8); box-shadow: inset 0 0 0 1px rgba(30, 85, 227, .1), 0 4px 10px -6px rgba(20, 55, 160, .35); }
.date-tile { border-radius: 14px; border: none; background: rgba(255, 255, 255, .85); box-shadow: inset 0 0 0 1px rgba(30, 85, 227, .12); }
.date-tile-month { background: var(--accent); }

/* Points: the hero card in the brand blue with a lime number - the most "fun" spot. */
.points-hero { border-radius: 28px; background: linear-gradient(135deg, #3D7BFF 0%, #1E55E3 50%, #1238A8 100%);
  box-shadow: 0 18px 40px -18px rgba(30, 85, 227, .8), inset 0 1px 0 rgba(255, 255, 255, .35); position: relative; overflow: hidden; }
.points-hero::after { content: ''; position: absolute; right: -30px; top: -30px; width: 150px; height: 150px; opacity: .18;
  background: url(/img/logo-mark-white.svg) center / contain no-repeat; transform: rotate(14deg); }
.points-hero .num { color: var(--lime); font-weight: 800; }

/* ---- chips & badges: rounder, juicier ---- */
.badge, .mini-chip, .pill, .seg, .chip-btn, .header-count { border-radius: 999px; }
.mini-chip { padding: 4px 9px; font-weight: 700; background: rgba(255, 255, 255, .75); color: var(--muted); box-shadow: inset 0 0 0 1px rgba(30, 85, 227, .1); }
.mini-chip.points, .badge.points { background: var(--lime); color: var(--lime-ink); box-shadow: none; }
.mini-chip.ok, .badge.approved { background: #D9F7E5; color: #13803F; box-shadow: none; }
.mini-chip.warn, .badge.pending { background: #FFF1C7; color: #9A5B00; box-shadow: none; }
.mini-chip.gender, .badge.gender { background: #FFE0F0; color: #C0157A; box-shadow: none; }
.mini-chip.rsvp, .badge.rsvp { background: #EDE6FF; color: #6D28D9; box-shadow: none; }
.pill.inactive { background: rgba(255, 255, 255, .75); box-shadow: inset 0 0 0 1px rgba(30, 85, 227, .14); }
.pill.active { background: linear-gradient(180deg, #3D7BFF, #1E55E3); box-shadow: 0 6px 14px -8px rgba(30, 85, 227, .9), inset 0 1px 0 rgba(255, 255, 255, .35); }
.segmented { background: rgba(255, 255, 255, .5); border-radius: 999px; box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .8); }
.seg.active { background: #fff; color: var(--accent); box-shadow: 0 4px 12px -6px rgba(20, 55, 160, .4); }

/* ---- buttons: pill-shaped, a little 3D ---- */
.btn { border-radius: 999px; min-height: 52px; font-weight: 800; letter-spacing: .01em; }
.btn-primary { background: linear-gradient(180deg, #4A86FF 0%, #1E55E3 100%); color: #fff;
  box-shadow: 0 12px 24px -12px rgba(30, 85, 227, .95), inset 0 1px 0 rgba(255, 255, 255, .45), inset 0 -3px 0 rgba(8, 30, 110, .25); }
.btn-primary:active { transform: translateY(1px) scale(.98); box-shadow: 0 6px 14px -8px rgba(30, 85, 227, .9), inset 0 1px 0 rgba(255, 255, 255, .35), inset 0 -1px 0 rgba(8, 30, 110, .25); }
.btn-secondary, .action-bar .btn.btn-more { background: rgba(255, 255, 255, .78); -webkit-backdrop-filter: var(--glass-blur); backdrop-filter: var(--glass-blur);
  color: var(--accent); border: 1px solid #fff; box-shadow: 0 8px 20px -14px rgba(20, 55, 160, .55), inset 0 -2px 0 rgba(30, 85, 227, .08); }
.btn-danger { background: linear-gradient(180deg, #FF6B6B, #E53935); box-shadow: 0 12px 24px -12px rgba(229, 57, 53, .9), inset 0 1px 0 rgba(255, 255, 255, .4), inset 0 -3px 0 rgba(120, 10, 10, .2); }
.btn-danger-soft { background: rgba(255, 255, 255, .78); color: var(--danger); border: 1px solid #fff; box-shadow: 0 8px 20px -14px rgba(229, 57, 53, .5); }
.danger-zone .btn { border-radius: 999px; }
.action-btn, .btn-pick, .chip-btn, .format-btn { border-radius: 999px; background: rgba(255, 255, 255, .78); color: var(--accent); box-shadow: inset 0 0 0 1px rgba(30, 85, 227, .12); }
.action-bar { background: transparent; border-top: none; padding: 10px 16px 8px; }
.action-bar.no-tabbar { background: linear-gradient(180deg, rgba(237, 243, 255, 0), rgba(237, 243, 255, .9) 40%); }

/* ---- inputs ---- */
.input, .date-field, .search-input { border-radius: 16px; border: 1px solid rgba(30, 85, 227, .14); background: rgba(255, 255, 255, .85); }
.form-section .input, .form-section .date-field { background: rgba(255, 255, 255, .9); }
.input:focus, .search-input:focus { border-color: var(--accent); box-shadow: 0 0 0 4px rgba(30, 85, 227, .12); }
.field-label { font-weight: 700; color: var(--muted); }
.emoji-pick { border-radius: 14px; background: rgba(255, 255, 255, .85); border-color: rgba(30, 85, 227, .12); }

/* ---- floating glass tab bar ---- */
.tabbar { margin: 4px 12px calc(8px + env(safe-area-inset-bottom)); padding: 7px 6px; border: 1px solid rgba(255, 255, 255, .9); border-radius: 30px;
  background: rgba(255, 255, 255, .66); -webkit-backdrop-filter: blur(22px) saturate(180%); backdrop-filter: blur(22px) saturate(180%);
  box-shadow: 0 14px 34px -14px rgba(20, 55, 160, .45), inset 0 1px 0 #fff; }
.tab-item { position: relative; padding: 6px 0 5px; border-radius: 22px; font-size: 10px; font-weight: 700; color: #7383AB; transition: color 150ms ease, background-color 200ms ease; }
.tab-item.active { color: var(--accent); background: rgba(30, 85, 227, .1); }
.tab-badge { background: #FF3B6B; box-shadow: 0 0 0 2px #fff; }

/* ---- sheets, toast, chat ---- */
.sheet { background: rgba(255, 255, 255, .86); -webkit-backdrop-filter: blur(24px) saturate(180%); backdrop-filter: blur(24px) saturate(180%); border-radius: 30px 30px 0 0; }
.sheet-row { border-radius: 18px; }
.sheet-row.cancel { border-radius: 999px; background: rgba(30, 85, 227, .08); }
.sheet-backdrop { background: rgba(10, 27, 77, .3); }
.toast { border-radius: 999px; background: rgba(10, 27, 77, .9); -webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px); }
.bubble { border-radius: 20px; }
.bubble.mine { background: linear-gradient(180deg, #4A86FF, #1E55E3); }

/* ---- splash: the logo pops in and breathes ---- */
.splash-logo { width: 92px; height: auto; animation: splashPop 560ms cubic-bezier(.34, 1.56, .64, 1) both, logoBreath 2.4s ease-in-out .6s infinite; filter: drop-shadow(0 10px 22px rgba(71, 196, 220, .45)); }
.splash-title { font-size: 15px; font-weight: 800; letter-spacing: .14em; color: var(--text); }
.splash-title span { color: var(--accent); }
@keyframes logoBreath { 0%, 100% { transform: scale(1) rotate(0deg); } 50% { transform: scale(1.06) rotate(8deg); } }
@media (prefers-reduced-motion: reduce) { .splash-logo { animation: none; } }

/* ---- misc ---- */
.profile-photo { border: 3px solid #fff; box-shadow: 0 10px 24px -12px rgba(20, 55, 160, .5); }
.profile-photo.placeholder { background: linear-gradient(135deg, #47C4DC, #1E55E3); color: #fff; font-family: var(--head); }
.avatar { background: linear-gradient(135deg, #47C4DC, #1E55E3); }
.checkbox.checked { background: var(--accent); border-color: var(--accent); }
.empty-art { background: rgba(255, 255, 255, .8); }
.poster-cover-emoji { border-radius: 20px; }
.celebrate-check { box-shadow: 0 0 0 3px #fff; }
.field-warn { border-radius: 14px; }
.onboarding-logo { width: 150px; height: auto; display: block; margin: 0 auto; filter: drop-shadow(0 10px 24px rgba(71, 196, 220, .3)); }
.filter-panel { background: var(--glass); -webkit-backdrop-filter: var(--glass-blur); backdrop-filter: var(--glass-blur); border: 1px solid var(--glass-edge); box-shadow: var(--glass-shadow); border-radius: 24px; }
.mini-chip.prog { background: #DDF4FA; color: #0B7A93; box-shadow: none; }
.filter-reset { font-family: var(--head); font-size: 11px; letter-spacing: .04em; }
.cal-month { font-family: var(--head); font-weight: 900; font-size: 36px; }
.cal-sub { font-family: var(--head); }
.cal-btn, .cal-nav { background: rgba(255, 255, 255, .78); -webkit-backdrop-filter: var(--glass-blur); backdrop-filter: var(--glass-blur);
  border: 1px solid #fff; box-shadow: 0 8px 20px -12px rgba(20, 55, 160, .55), inset 0 -2px 0 rgba(30, 85, 227, .08); }
.cal-week { font-family: var(--head); font-size: 11px; background: linear-gradient(180deg, #3D7BFF, #1E55E3); border-radius: 999px;
  box-shadow: 0 10px 22px -12px rgba(30, 85, 227, .9), inset 0 1px 0 rgba(255, 255, 255, .35); }
.cal-cell { background: var(--glass); -webkit-backdrop-filter: var(--glass-blur); backdrop-filter: var(--glass-blur); border: 1px solid var(--glass-edge); border-radius: 14px; }
.cal-num { font-family: var(--head); font-size: 14px; }
.cal-cell.has { background: rgba(225, 236, 255, .9); }
.cal-cell.going { background: var(--lime); border-color: #fff; }
.cal-cell.going .cal-num { color: var(--lime-ink); }
.cal-cell.selected { background: linear-gradient(180deg, #4A86FF, #1E55E3); box-shadow: 0 8px 18px -10px rgba(30, 85, 227, .9); }
.cal-cell.blank { background: transparent; border: none; box-shadow: none; -webkit-backdrop-filter: none; backdrop-filter: none; }
.cal-cell { border-radius: 12px; }
.cal-cell.has { background: rgba(255, 255, 255, .82); }
.cal-ev { font-family: 'Montserrat', sans-serif; }
.cal-cell.selected .cal-num { color: #fff; }
.place-card { background: var(--glass); -webkit-backdrop-filter: var(--glass-blur); backdrop-filter: var(--glass-blur); border: 1px solid var(--glass-edge); box-shadow: var(--glass-shadow); border-radius: 20px; }
.place-copy { background: rgba(255, 255, 255, .85); box-shadow: inset 0 0 0 1px rgba(30, 85, 227, .14), 0 4px 10px -6px rgba(20, 55, 160, .4); }
.program-banner { border-radius: 24px; background: rgba(255, 246, 219, .9); -webkit-backdrop-filter: var(--glass-blur); backdrop-filter: var(--glass-blur); box-shadow: 0 10px 26px -16px rgba(150, 100, 0, .45); }
.program-banner-btn { background: linear-gradient(180deg, #4A86FF, #1E55E3); box-shadow: 0 8px 18px -10px rgba(30, 85, 227, .9), inset 0 1px 0 rgba(255, 255, 255, .4); }
.cal-empty { background: var(--glass); -webkit-backdrop-filter: var(--glass-blur); backdrop-filter: var(--glass-blur); border: 1px solid var(--glass-edge); border-radius: 20px; }

/* ---- profile: member card, stat tiles, quick actions, achievements, "где я был" ---- */
.member-card { position: relative; overflow: hidden; border-radius: 28px; padding: 16px 18px 14px; color: #fff; margin-bottom: 12px;
  background: radial-gradient(120% 90% at 100% 0%, rgba(71, 196, 220, .55) 0%, rgba(71, 196, 220, 0) 55%),
    radial-gradient(90% 80% at 0% 100%, rgba(198, 240, 74, .35) 0%, rgba(198, 240, 74, 0) 60%),
    linear-gradient(135deg, #3D7BFF 0%, #1E55E3 50%, #1238A8 100%);
  box-shadow: 0 18px 40px -18px rgba(20, 55, 160, .7), inset 0 1px 0 rgba(255, 255, 255, .35); }
.member-card::before { content: ''; position: absolute; inset: 0; pointer-events: none;
  background: linear-gradient(115deg, rgba(255, 255, 255, 0) 30%, rgba(255, 255, 255, .22) 45%, rgba(255, 255, 255, 0) 60%);
  transform: translateX(-100%); animation: mcShine 6s ease-in-out 1s infinite; }
@keyframes mcShine { 0%, 70% { transform: translateX(-100%); } 100% { transform: translateX(100%); } }
.mc-top { display: flex; align-items: center; justify-content: space-between; }
.mc-brand { font-family: var(--head); font-size: 10px; letter-spacing: .14em; opacity: .8; }
.mc-qr { width: 38px; height: 38px; border-radius: 12px; border: 0; color: #fff; background: rgba(255, 255, 255, .18);
  display: flex; align-items: center; justify-content: center; box-shadow: inset 0 1px 0 rgba(255, 255, 255, .4); }
.mc-main { display: flex; align-items: center; gap: 14px; margin-top: 10px; }
.mc-ava { --p: 0; position: relative; flex: none; width: 76px; height: 76px; border-radius: 50%; padding: 4px;
  background: conic-gradient(var(--lime) calc(var(--p) * 1%), rgba(255, 255, 255, .22) 0); }
.mc-ava img, .mc-initials { width: 100%; height: 100%; border-radius: 50%; object-fit: cover; border: 3px solid #1E55E3; }
.mc-initials { display: flex; align-items: center; justify-content: center; font-family: var(--head); font-size: 24px;
  background: linear-gradient(135deg, #47C4DC, #1E55E3); }
.mc-lvl-num { position: absolute; right: -2px; bottom: -2px; width: 26px; height: 26px; border-radius: 50%; background: var(--lime);
  color: var(--lime-ink); font-family: var(--head); font-weight: 800; font-size: 12px; display: flex; align-items: center; justify-content: center;
  border: 2px solid #1E55E3; }
.mc-name { font-family: var(--head); font-weight: 700; font-size: 19px; line-height: 1.15; }
.mc-level { display: inline-block; margin-top: 7px; padding: 4px 10px; border-radius: 999px; font-size: 12px; font-weight: 700;
  background: rgba(255, 255, 255, .18); box-shadow: inset 0 1px 0 rgba(255, 255, 255, .3); }
.mc-bar { height: 10px; border-radius: 999px; background: rgba(255, 255, 255, .2); margin-top: 16px; overflow: hidden; }
.mc-bar i { display: block; height: 100%; border-radius: inherit; background: linear-gradient(90deg, #E4FF8A, var(--lime));
  box-shadow: 0 0 12px rgba(198, 240, 74, .8); animation: mcGrow 1.1s cubic-bezier(.2, .8, .2, 1) both; }
@keyframes mcGrow { from { width: 0; } }
.mc-bar-text { font-size: 12.5px; margin-top: 7px; opacity: .92; }
.mc-bar-text b { color: var(--lime); font-weight: 800; }
.mc-foot { display: flex; flex-wrap: wrap; gap: 6px 14px; margin-top: 12px; padding-top: 10px; border-top: 1px dashed rgba(255, 255, 255, .3);
  font-size: 11.5px; opacity: .8; }

.pf-stats { display: flex; gap: 8px; margin-bottom: 12px; }
.pf-stat { flex: 1; min-width: 0; border-radius: 20px; padding: 12px 10px; text-align: center; display: flex; flex-direction: column; align-items: center; justify-content: center; background: var(--glass);
  -webkit-backdrop-filter: var(--glass-blur); backdrop-filter: var(--glass-blur); border: 1px solid var(--glass-edge); box-shadow: var(--glass-shadow); }
.pf-num { font-family: var(--head); font-weight: 800; font-size: 24px; color: var(--accent); line-height: 1.1; }
.pf-lab { font-size: 11.5px; color: var(--muted); margin-top: 2px; }
.pf-stat.hot .pf-num { color: var(--text); }
.pf-rank { display: inline-block; margin-top: 5px; padding: 2px 8px; border-radius: 999px; background: var(--lime); color: var(--lime-ink);
  font-size: 11px; font-weight: 800; }

.pf-actions { display: grid; grid-template-columns: repeat(4, 1fr); gap: 8px; margin-bottom: 4px; }
.pf-action { display: flex; flex-direction: column; align-items: center; gap: 6px; padding: 12px 4px 10px; border: 1px solid var(--glass-edge);
  border-radius: 20px; background: var(--glass); -webkit-backdrop-filter: var(--glass-blur); backdrop-filter: var(--glass-blur);
  box-shadow: var(--glass-shadow); font: inherit; font-size: 11.5px; font-weight: 700; color: var(--text); }
.pf-action:active { transform: scale(.95); }
.pf-action-ico { width: 42px; height: 42px; border-radius: 14px; display: flex; align-items: center; justify-content: center; font-size: 21px;
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, .6), 0 6px 14px -8px rgba(20, 55, 160, .6); }
.pf-action.blue .pf-action-ico { background: linear-gradient(135deg, #7FA6FF, #1E55E3); }
.pf-action.cyan .pf-action-ico { background: linear-gradient(135deg, #A3EBF7, #47C4DC); }
.pf-action.lime .pf-action-ico { background: linear-gradient(135deg, #EEFFB8, #C6F04A); }
.pf-action.violet .pf-action-ico { background: linear-gradient(135deg, #C9B2FF, #7C3AED); }

.pf-scroll { display: flex; gap: 10px; overflow-x: auto; margin: 0 -16px; padding: 2px 16px 6px; scrollbar-width: none; scroll-snap-type: x proximity; scroll-padding: 0 16px; }
.pf-scroll::-webkit-scrollbar { display: none; }
.pf-badge { flex: none; width: 92px; text-align: center; scroll-snap-align: start; }
.pf-medal { width: 64px; height: 64px; margin: 0 auto; border-radius: 50%; display: flex; align-items: center; justify-content: center; font-size: 28px;
  background: rgba(90, 106, 147, .12); filter: grayscale(1); opacity: .5; border: 2px dashed rgba(90, 106, 147, .3); }
.pf-badge.done .pf-medal { filter: none; opacity: 1; border: 3px solid #fff;
  background: radial-gradient(circle at 30% 25%, #FFFFFF 0%, #EEFFB8 35%, #C6F04A 100%);
  box-shadow: 0 10px 20px -10px rgba(61, 90, 0, .7), inset 0 -3px 0 rgba(61, 90, 0, .15); }
.pf-badge-name { font-size: 11.5px; font-weight: 700; margin-top: 6px; line-height: 1.2; }
.pf-badge-sub { font-size: 10.5px; color: var(--muted); margin-top: 2px; }
.pf-badge.done .pf-badge-sub { color: var(--lime-ink); }

.pf-trail { flex: none; width: 124px; border-radius: 20px; padding: 10px; background: var(--glass); border: 1px solid var(--glass-edge);
  box-shadow: var(--glass-shadow); scroll-snap-align: start; }
.pf-trail-ico { width: 40px; height: 40px; border-radius: 13px; display: flex; align-items: center; justify-content: center; font-size: 21px;
  background: linear-gradient(135deg, #DCE7FF, #BFD2FF); }
.pf-trail-ico.lesson { background: linear-gradient(135deg, #F2FFD0, #DDF78A); }
.pf-trail-name { font-size: 12.5px; overflow-wrap: anywhere; hyphens: auto; font-weight: 700; margin-top: 8px; line-height: 1.25; min-height: 31px; }
.pf-trail-date { font-size: 11px; color: var(--muted); margin-top: 4px; }

.pf-pills { display: flex; flex-direction: column; gap: 8px; margin-top: 16px; }
.pf-pill { flex: 1; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; padding: 12px 8px; border-radius: 999px; border: 1px solid var(--glass-edge); background: var(--glass);
  box-shadow: var(--glass-shadow); font: inherit; font-size: 13px; font-weight: 700; color: var(--text); }
.pf-program-note { text-align: center; font-size: 12.5px; color: var(--accent); font-weight: 700; margin-top: 12px; }

/* ---- profile: the black-and-gold "patron" donation card ---- */
.donate-card { position: relative; overflow: hidden; border-radius: 28px; padding: 18px 18px 16px; margin: 14px 0 4px; color: #F6E7B8; cursor: pointer;
  background: radial-gradient(90% 70% at 100% 0%, rgba(232, 197, 108, .22) 0%, rgba(232, 197, 108, 0) 60%),
    radial-gradient(80% 60% at 0% 100%, rgba(30, 85, 227, .35) 0%, rgba(30, 85, 227, 0) 65%),
    linear-gradient(140deg, #141A33 0%, #0A0E1F 55%, #05070F 100%);
  box-shadow: 0 22px 44px -20px rgba(5, 7, 15, .85), inset 0 1px 0 rgba(255, 236, 180, .25); }
.donate-card::after { content: ''; position: absolute; inset: 0; border-radius: inherit; padding: 1.5px; pointer-events: none;
  background: linear-gradient(135deg, #FFF1C2, #C9A24A 35%, #6E5420 60%, #E8C56C 100%);
  -webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0); -webkit-mask-composite: xor; mask-composite: exclude; }
.donate-card::before { content: ''; position: absolute; inset: 0; pointer-events: none; z-index: 1;
  background: linear-gradient(115deg, rgba(255, 236, 180, 0) 35%, rgba(255, 236, 180, .18) 48%, rgba(255, 236, 180, 0) 60%);
  transform: translateX(-100%); animation: mcShine 5s ease-in-out .5s infinite; }
.donate-card:active { transform: scale(.985); }
.dc-mark { position: absolute; right: -34px; bottom: -40px; width: 190px; opacity: .07; transform: rotate(-14deg); pointer-events: none; }
.dc-top { position: relative; display: flex; align-items: center; justify-content: space-between; }
.dc-chip { width: 40px; height: 30px; border-radius: 7px; position: relative;
  background: linear-gradient(135deg, #FFF1C2 0%, #E8C56C 40%, #B08A35 100%); box-shadow: inset 0 0 0 1px rgba(110, 84, 32, .45); }
.dc-chip::before, .dc-chip::after { content: ''; position: absolute; border: 1px solid rgba(110, 84, 32, .45); }
.dc-chip::before { left: 12px; right: 12px; top: -1px; bottom: -1px; border-top: 0; border-bottom: 0; }
.dc-chip::after { top: 9px; bottom: 9px; left: -1px; right: -1px; border-left: 0; border-right: 0; }
.dc-brand { font-family: var(--head); font-size: 9.5px; letter-spacing: .18em; color: #C9A24A; }
.dc-title { position: relative; font-family: var(--head); font-weight: 800; font-size: 22px; line-height: 1.15; margin-top: 16px;
  background: linear-gradient(100deg, #FFF6D8 0%, #E8C56C 45%, #FFF1C2 70%, #C9A24A 100%);
  -webkit-background-clip: text; background-clip: text; color: transparent; }
.dc-sub { position: relative; font-size: 12.5px; line-height: 1.45; margin-top: 8px; color: rgba(246, 231, 184, .72); max-width: 290px; }
.dc-bottom { position: relative; z-index: 2; display: flex; align-items: center; justify-content: space-between; margin-top: 16px; }
.dc-btn { display: inline-block; padding: 12px 20px; border-radius: 999px; font-weight: 800; font-size: 14px; color: #2A1F06;
  background: linear-gradient(135deg, #FFF1C2 0%, #E8C56C 45%, #C9A24A 100%);
  box-shadow: 0 10px 22px -10px rgba(232, 197, 108, .8), inset 0 1px 0 rgba(255, 255, 255, .7); }
.dc-heart { font-size: 26px; color: #E8C56C; text-shadow: 0 0 14px rgba(232, 197, 108, .7); animation: dcBeat 1.6s ease-in-out infinite; }
@keyframes dcBeat { 0%, 100% { transform: scale(1); } 15% { transform: scale(1.18); } 30% { transform: scale(1); } 45% { transform: scale(1.12); } }

/* ---- family sign-up: "С кем идёте?" ---- */
.party-pick .party-radio { flex: none; width: 22px; height: 22px; border-radius: 50%; border: 2px solid rgba(90, 106, 147, .35); }
.party-pick .party-radio.on { border: 7px solid var(--accent); box-shadow: 0 0 0 3px rgba(30, 85, 227, .15); }
.party-pick.on { background: rgba(30, 85, 227, .06); }
.couple-line { color: var(--accent); font-weight: 600; }
.muted-note { color: var(--muted); font-weight: 500; }

/* ---- family sign-up: children + total; table seating ---- */
.kid-add { display: flex; gap: 8px; align-items: center; padding: 10px 12px; }
.kid-add .input { margin: 0; }
.kid-add #kid-name { flex: 2; min-width: 0; }
.kid-add #kid-age { flex: 1; min-width: 0; max-width: 84px; }
.party-total { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin-top: 14px; padding: 14px 16px;
  border-radius: 20px; background: linear-gradient(135deg, #3D7BFF, #1E55E3); color: #fff; font-size: 13px; font-weight: 600;
  box-shadow: 0 12px 26px -14px rgba(20, 55, 160, .7); }
.party-total b { font-family: var(--head); font-size: 18px; color: var(--lime); white-space: nowrap; }

.tables-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 10px; margin-top: 12px; }
.table-card { border-radius: 20px; padding: 12px; background: var(--glass); border: 1px solid var(--glass-edge); box-shadow: var(--glass-shadow);
  -webkit-backdrop-filter: var(--glass-blur); backdrop-filter: var(--glass-blur); min-width: 0; }
.table-card.pick { cursor: pointer; }
.table-card.pick:active { transform: scale(.97); }
.table-card.mine { border: 2px solid var(--accent); background: rgba(30, 85, 227, .08); }
.table-card.full:not(.mine) { opacity: .6; }
.table-top { display: flex; justify-content: space-between; align-items: baseline; }
.table-top b { font-family: var(--head); font-size: 15px; }
.table-top span { font-size: 12px; font-weight: 700; color: var(--muted); }
.table-bar { height: 6px; border-radius: 999px; background: rgba(30, 85, 227, .1); margin: 8px 0 8px; overflow: hidden; }
.table-bar i { display: block; height: 100%; border-radius: inherit; background: linear-gradient(90deg, #47C4DC, #1E55E3); }
.table-card.full .table-bar i { background: linear-gradient(90deg, #F59E0B, #EF4444); }
.table-person { display: flex; align-items: center; gap: 6px; font-size: 12px; font-weight: 600; padding: 3px 0; min-width: 0; }
.table-person { align-items: flex-start; }
.table-person span { overflow: hidden; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; line-height: 1.3; }
.table-person .avatar { flex: none; }
.table-empty { font-size: 12px; color: var(--muted); padding: 4px 0; }
.table-mine, .table-cta { margin-top: 8px; font-size: 11.5px; font-weight: 800; text-align: center; border-radius: 999px; padding: 5px; }
.table-mine { background: var(--accent); color: #fff; }
.table-cta { background: var(--lime); color: var(--lime-ink); }

/* ---- admins-only items ---- */
.mini-chip.admins-only, .badge.admins-only { background: #1A1F3A; color: #F6E7B8; border: 1px solid rgba(232, 197, 108, .5); }
.admins-only-line { margin-top: 14px; font-weight: 700; }

/* ---- named, typed tables: admin editor + member plan ---- */
.t-head, .t-row { display: grid; grid-template-columns: 52px 1fr 52px 96px 34px; gap: 6px; align-items: center; }
.t-head { font-size: 11px; font-weight: 700; color: var(--muted); margin: 0 2px 4px; }
.t-row { margin-bottom: 6px; }
.t-row .input, .t-bulk .input { margin: 0; padding: 10px 8px; min-width: 0; font-size: 14px; }
.t-row select.input, .t-bulk select.input { padding: 10px 4px; }
.t-bulk { display: flex; gap: 6px; align-items: center; margin-top: 4px; }
.t-bulk #tb-count, .t-bulk #tb-seats { width: 72px; flex: none; }
.t-bulk select { flex: 1; min-width: 0; }
.t-bulk span { font-size: 13px; color: var(--muted); }
.table-name { font-size: 12.5px; font-weight: 700; margin-top: 2px; }
.table-for { display: inline-block; margin-top: 5px; padding: 2px 8px; border-radius: 999px; font-size: 11px; font-weight: 800; }
.table-for.family { background: var(--rsvp-soft); color: var(--rsvp); }
.table-for.female { background: rgba(236, 72, 153, .12); color: #BE185D; }
.table-for.male { background: rgba(30, 85, 227, .12); color: var(--accent); }
.table-card.closed { opacity: .55; }
.table-no { margin-top: 8px; font-size: 11px; font-weight: 700; text-align: center; color: var(--muted); }
.tg-grid { display: grid; grid-template-columns: 1fr 76px 104px; gap: 6px 8px; align-items: center; margin-bottom: 4px; }
.tg-grid > span { font-size: 11px; font-weight: 700; color: var(--muted); }
.tg-grid .input { margin: 0; padding: 10px; }
.tg-label { font-size: 14px; font-weight: 700; }

/* ---- round tables: list of mini tables + one big table ---- */
.tcard { display: flex; gap: 12px; align-items: center; padding: 8px 12px 8px 6px; margin-bottom: 8px; border-radius: 22px; cursor: pointer;
  background: var(--glass); border: 1px solid var(--glass-edge); box-shadow: var(--glass-shadow);
  -webkit-backdrop-filter: var(--glass-blur); backdrop-filter: var(--glass-blur); animation: tcIn .45s cubic-bezier(.2, .8, .2, 1) both; }
.tcard:active { transform: scale(.98); }
.tcard.mine { border: 2px solid var(--lime); }
.tcard.closed, .tcard.full { opacity: .62; }
.tcard .rt { flex: none; }
.tc-main { flex: 1; min-width: 0; }
.tc-main b { display: block; font-size: 14.5px; }
.tc-sub { font-size: 12px; color: var(--muted); margin-top: 2px; }
.tc-faces { display: flex; align-items: center; margin-top: 6px; }
.tc-faces .avatar { margin-right: -6px; border: 2px solid #fff; }
.tc-more { margin-left: 10px; font-size: 11px; font-weight: 800; color: var(--muted); }
.tc-pill { flex: none; font-size: 11.5px; font-weight: 800; padding: 7px 11px; border-radius: 999px; background: var(--lime); color: var(--lime-ink); }
.tc-pill.off { background: rgba(90, 106, 147, .12); color: var(--muted); }
@keyframes tcIn { from { opacity: 0; transform: translateY(10px); } }

.rt-chair { transform-box: fill-box; transform-origin: center; animation: chairIn .5s cubic-bezier(.3, 1.6, .5, 1) both; }
.rt-chair.me circle { animation: chairPulse 1.6s ease-in-out infinite; transform-box: fill-box; transform-origin: center; }
@keyframes chairIn { from { opacity: 0; transform: scale(.2); } }
@keyframes chairPulse { 50% { transform: scale(1.14); } }

.bt-nav { display: flex; align-items: center; justify-content: space-between; gap: 8px; margin-top: 4px; }
.bt-arrow { width: 42px; height: 42px; flex: none; border-radius: 50%; border: 0; background: #fff; color: var(--accent); font-size: 22px; font-weight: 800;
  box-shadow: 0 6px 16px -8px rgba(20, 55, 160, .5); }
.bt-arrow:active { transform: scale(.92); }
.bt-title { text-align: center; min-width: 0; }
.bt-title b { display: block; font-family: var(--head); font-size: 17px; line-height: 1.2; }
.bt-title .table-for { margin-top: 4px; }
.bt-dots { display: flex; gap: 5px; justify-content: center; margin: 10px 0 2px; flex-wrap: wrap; }
.bt-dots i { width: 7px; height: 7px; border-radius: 4px; background: rgba(30, 85, 227, .2); transition: width .25s; }
.bt-dots i.on { width: 20px; background: var(--accent); }
.bt-stage { display: flex; justify-content: center; touch-action: pan-y; }
.bt-stage .rt-top { transform-box: fill-box; transform-origin: center; animation: topIn .45s cubic-bezier(.2, .8, .2, 1) both; }
.bt-stage.next { animation: slideNext .35s cubic-bezier(.2, .8, .2, 1); }
.bt-stage.prev { animation: slidePrev .35s cubic-bezier(.2, .8, .2, 1); }
@keyframes topIn { from { transform: scale(.85); opacity: 0; } }
@keyframes slideNext { from { transform: translateX(60px); opacity: 0; } }
@keyframes slidePrev { from { transform: translateX(-60px); opacity: 0; } }
.list-row.bt-me { background: rgba(198, 240, 74, .18); }

/* ---- the hall from above (variant 1) flowing into the big table (variant 2) ---- */
.hall-legend { display: flex; flex-wrap: wrap; gap: 6px; margin: 4px 0 8px; }
.hall-legend span { display: inline-flex; align-items: center; gap: 5px; font-size: 11px; font-weight: 800; padding: 4px 9px; border-radius: 999px; background: #fff; }
.hall-legend i { width: 10px; height: 10px; border-radius: 50%; display: inline-block; }
.hall-legend i.free { background: #fff; border: 1.5px dashed #94A3B8; }
.hall { display: grid; grid-template-columns: 1fr 1fr; gap: 2px 0; }
.hall-table { text-align: center; cursor: pointer; animation: tcIn .45s cubic-bezier(.2, .8, .2, 1) both; -webkit-tap-highlight-color: transparent; }
.hall-table .rt { display: block; margin: 0 auto; transition: transform .2s; }
.hall-table:active .rt { transform: scale(.94); }
.ht-name { font-size: 12px; font-weight: 800; margin-top: -6px; padding: 0 4px; }
.hall-table.mine .ht-name, .hall-table.fits .ht-name { color: var(--accent); }
.hall-table.closed { opacity: .36; filter: saturate(.6); }
.hall-table.full { opacity: .6; }
.ht-tag { display: inline-block; margin-top: 3px; font-size: 10.5px; font-weight: 800; padding: 2px 8px; border-radius: 999px; background: rgba(90, 106, 147, .12); color: var(--muted); }
.ht-tag.mine { background: var(--lime); color: var(--lime-ink); }
.bt-stage.flow { animation: flowIn .55s cubic-bezier(.2, .9, .25, 1); }
@keyframes flowIn { from { transform: translate(var(--fx, 0), var(--fy, 0)) scale(var(--fs, .5)); opacity: .6; } }
.hall, .hall-legend, .bt-nav, .bt-stage, .bt-dots, .tcard { -webkit-user-select: none; user-select: none; -webkit-touch-callout: none; }

/* ---- promo codes ---- */
.promo-row { display: flex; gap: 8px; align-items: center; margin-bottom: 12px; }
.promo-row .input { margin: 0; flex: 1; text-transform: uppercase; }
.promo-applied { display: flex; align-items: center; gap: 8px; margin-bottom: 14px; padding: 10px 12px; border-radius: 14px; font-size: 13px; font-weight: 700;
  background: rgba(198, 240, 74, .3); color: var(--lime-ink); }
.promo-applied b { font-family: var(--head); }
.promo-applied .chip-btn { margin-left: auto; }
.badge s { opacity: .6; }
.promo-badge { flex: none; min-width: 64px; padding: 8px 10px; border-radius: 14px; text-align: center; font-family: var(--head); font-size: 13px; font-weight: 800;
  background: linear-gradient(135deg, #EEFFB8, #C6F04A); color: var(--lime-ink); }
.promo-off { opacity: .5; }
.shabbat-line { margin: 14px 0 4px; font-weight: 800; }

/* ---- admin users: sort + points / sign-up filters ---- */
.filter-line { display: flex; align-items: center; gap: 8px; margin-bottom: 8px; }
.filter-line-label { flex: none; width: 88px; font-size: 12px; font-weight: 800; color: var(--muted); }
.pill-row.scroll { flex-wrap: nowrap; overflow-x: auto; margin: 0 -16px 0 0; padding-right: 16px; scrollbar-width: none; }
.pill-row.scroll::-webkit-scrollbar { display: none; }
.pill-row.scroll .pill { flex: none; white-space: nowrap; }
.tip-card.addon-cta { cursor: pointer; border: 1.5px solid var(--accent); color: var(--accent); font-weight: 700; }
.mish-list div { padding: 6px 0; font-weight: 700; font-size: 15px; border-bottom: 1px dashed var(--border); }
.mish-list div:last-child { border-bottom: 0; }
.mish-missing div { padding: 4px 0; font-size: 13px; color: var(--muted); }

/* ---- Shabbat: the app rests ---- */
.shabbat-screen { position: fixed; inset: 0; z-index: 9999; display: flex; flex-direction: column; align-items: center; justify-content: center;
  padding: 32px; text-align: center; color: #F6E7B8;
  background: radial-gradient(70% 50% at 50% 30%, rgba(232, 197, 108, .25), transparent 70%), linear-gradient(170deg, #141A33 0%, #0A0E1F 60%, #05070F 100%); }
.shabbat-candles { display: flex; gap: 34px; margin-bottom: 28px; }
.shabbat-candles .flame { position: relative; width: 16px; height: 70px; border-radius: 4px; background: linear-gradient(#FFF6D8, #E8D7A8); }
.shabbat-candles .flame::before { content: ''; position: absolute; left: 50%; top: -30px; width: 16px; height: 26px; margin-left: -8px;
  border-radius: 50% 50% 50% 50% / 60% 60% 40% 40%; background: radial-gradient(circle at 50% 70%, #FFF 0%, #FFE58A 35%, #FF9F2E 75%, transparent 76%);
  box-shadow: 0 0 30px 10px rgba(255, 180, 60, .35); animation: flicker 1.8s ease-in-out infinite; transform-origin: 50% 100%; }
.shabbat-candles .flame:nth-child(2)::before { animation-delay: .4s; }
@keyframes flicker { 0%, 100% { transform: scale(1) rotate(-2deg); } 50% { transform: scale(1.08, 1.15) rotate(2deg); } }
.shabbat-title { font-family: var(--head); font-size: 30px; font-weight: 800;
  background: linear-gradient(100deg, #FFF6D8, #E8C56C, #FFF1C2); -webkit-background-clip: text; background-clip: text; color: transparent; }
.shabbat-text { margin-top: 14px; font-size: 15px; line-height: 1.5; color: rgba(246, 231, 184, .85); max-width: 320px; }
.shabbat-text b { color: #FFE58A; }
.shabbat-sub { margin-top: 18px; font-size: 13px; color: rgba(246, 231, 184, .6); }

/* ---- motion: cards rise in on entering a screen, skeleton loading, confetti, press feedback ---- */
.frame.fresh .list-row.item-line, .frame.fresh .featured-card, .frame.fresh .card-group, .frame.fresh .stat-card,
.frame.fresh .member-card, .frame.fresh .pf-stats, .frame.fresh .pf-actions, .frame.fresh .donate-card, .frame.fresh .hall-table,
.frame.fresh .poster-body > * { animation: riseIn .5s cubic-bezier(.2, .8, .2, 1) both; }
.frame.fresh .list-row.item-line:nth-child(2), .frame.fresh .card-group:nth-of-type(2), .frame.fresh .hall-table:nth-child(2) { animation-delay: .04s; }
.frame.fresh .list-row.item-line:nth-child(3), .frame.fresh .card-group:nth-of-type(3), .frame.fresh .hall-table:nth-child(3) { animation-delay: .08s; }
.frame.fresh .list-row.item-line:nth-child(4), .frame.fresh .card-group:nth-of-type(4), .frame.fresh .hall-table:nth-child(4) { animation-delay: .12s; }
.frame.fresh .list-row.item-line:nth-child(5), .frame.fresh .card-group:nth-of-type(5), .frame.fresh .hall-table:nth-child(5) { animation-delay: .16s; }
.frame.fresh .list-row.item-line:nth-child(n+6), .frame.fresh .hall-table:nth-child(n+6) { animation-delay: .2s; }
.frame.fresh .pf-stats { animation-delay: .06s; } .frame.fresh .pf-actions { animation-delay: .12s; } .frame.fresh .donate-card { animation-delay: .18s; }
.frame.fresh .poster-body > *:nth-child(2) { animation-delay: .05s; } .frame.fresh .poster-body > *:nth-child(3) { animation-delay: .1s; }
.frame.fresh .poster-body > *:nth-child(n+4) { animation-delay: .15s; }
@keyframes riseIn { from { opacity: 0; transform: translateY(14px) scale(.985); } }

.list-row:not(.static):active, .featured-card:active, .stat-card[onclick]:active { transform: scale(.985); transition: transform .12s; }

.sk-wrap { padding-top: 70px; }
.sk-title { width: 55%; height: 28px; border-radius: 10px; margin-bottom: 18px; }
.sk-card { display: flex; gap: 12px; align-items: center; padding: 12px; margin-bottom: 10px; border-radius: 22px; background: var(--glass); border: 1px solid var(--glass-edge); }
.sk-thumb { flex: none; width: 64px; height: 64px; border-radius: 16px; }
.sk-lines { flex: 1; display: flex; flex-direction: column; gap: 8px; }
.sk-lines i { display: block; height: 12px; border-radius: 6px; }
.sk-lines i.short { width: 45%; }
.sk-title, .sk-thumb, .sk-lines i {
  background: linear-gradient(90deg, rgba(30, 85, 227, .07) 0%, rgba(30, 85, 227, .16) 40%, rgba(30, 85, 227, .07) 80%);
  background-size: 200% 100%; animation: skShimmer 1.2s linear infinite; }
@keyframes skShimmer { from { background-position: 200% 0; } to { background-position: -200% 0; } }

.confetti { position: fixed; inset: 0; pointer-events: none; z-index: 9998; overflow: hidden; }
.confetti i { position: absolute; top: -12px; width: 9px; height: 14px; border-radius: 2px; animation: confettiFall 1.4s cubic-bezier(.3, .6, .4, 1) both; }
@keyframes confettiFall {
  0% { transform: translate(0, 0) rotate(0); opacity: 1; }
  100% { transform: translate(var(--dx), 105vh) rotate(var(--rot)); opacity: .9; }
}

@media (prefers-reduced-motion: reduce) {
  .frame.fresh * { animation: none !important; }
  .sk-title, .sk-thumb, .sk-lines i { animation: none; }
}
html.calm .frame.fresh * { animation: none !important; }

/* ---- share button on the poster ---- */
.share-btn { display: flex; align-items: center; justify-content: center; gap: 8px; width: 100%; margin: 14px 0 4px; padding: 13px 14px;
  border: 0; border-radius: 18px; font: inherit; font-weight: 800; font-size: 14.5px; color: #fff; cursor: pointer;
  background: linear-gradient(135deg, #47C4DC 0%, #3D7BFF 55%, #1E55E3 100%); box-shadow: 0 12px 26px -14px rgba(30, 85, 227, .8), inset 0 1px 0 rgba(255, 255, 255, .35); }
.share-btn span { font-size: 17px; }
.share-btn:active { transform: scale(.97); }

/* ---- galleries ---- */
.gal-strip-head { display: flex; justify-content: space-between; align-items: baseline; margin: 18px 2px 8px; font-weight: 800; font-size: 14px; cursor: pointer; }
.gal-strip-head span { font-size: 13px; color: var(--accent); }
.gal-strip { display: flex; gap: 8px; overflow-x: auto; margin: 0 -16px; padding: 0 16px 4px; scrollbar-width: none; }
.gal-strip::-webkit-scrollbar { display: none; }
.gal-strip img, .gal-ph { flex: none; width: 104px; height: 104px; border-radius: 16px; object-fit: cover; box-shadow: 0 8px 18px -10px rgba(20, 55, 160, .5); cursor: pointer; }
.gal-ph { background: linear-gradient(90deg, rgba(30, 85, 227, .07), rgba(30, 85, 227, .16), rgba(30, 85, 227, .07)); background-size: 200% 100%; animation: skShimmer 1.2s linear infinite; }
.gal-grid { columns: 3 110px; column-gap: 6px; }
.gal-grid img, .gal-cell { width: 100%; margin-bottom: 6px; border-radius: 14px; display: block; object-fit: cover; break-inside: avoid; cursor: pointer; }
.gal-grid img { background: rgba(30, 85, 227, .08); animation: riseIn .4s both; }
.gal-cell { position: relative; }
.gal-cell img { margin: 0; }
.gal-cell button { position: absolute; top: 6px; right: 6px; width: 28px; height: 28px; border-radius: 50%; border: 0; color: #fff; font-weight: 800;
  background: rgba(10, 14, 31, .6); -webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px); }
.gal-upload { display: flex; flex-direction: column; align-items: center; gap: 4px; margin: 4px 0 14px; padding: 18px; border-radius: 20px; cursor: pointer;
  border: 2px dashed rgba(30, 85, 227, .35); color: var(--accent); font-weight: 800; background: rgba(30, 85, 227, .05); }
.gal-upload span { font-size: 12px; font-weight: 600; color: var(--muted); }
.gal-upload input { display: none; }
.gal-progress { margin-bottom: 12px; font-size: 13px; font-weight: 700; color: var(--accent); }
.gal-progress .mc-bar { background: rgba(30, 85, 227, .12); margin-top: 6px; }
.album-card { margin-bottom: 12px; border-radius: 22px; overflow: hidden; background: var(--glass); border: 1px solid var(--glass-edge); box-shadow: var(--glass-shadow); cursor: pointer; }
.album-card:active { transform: scale(.985); }
.album-covers { display: grid; grid-template-columns: 2fr 1fr; grid-template-rows: 1fr 1fr; gap: 3px; height: 170px; }
.album-covers img { width: 100%; height: 100%; object-fit: cover; display: block; }
.album-covers img:first-child { grid-row: span 2; }
.album-covers img:only-child { grid-column: span 2; }
.album-meta { padding: 10px 14px 12px; }
.pf-gallery-card { display: flex; align-items: center; gap: 12px; margin: 10px 0 2px; padding: 12px 14px; border-radius: 20px; cursor: pointer;
  background: linear-gradient(120deg, rgba(71, 196, 220, .18), rgba(198, 240, 74, .2)); border: 1px solid var(--glass-edge); box-shadow: var(--glass-shadow); }
.pfg-ico { width: 42px; height: 42px; border-radius: 14px; display: flex; align-items: center; justify-content: center; font-size: 22px; background: #fff; }

/* full-screen viewer */
.pv { position: fixed; inset: 0; z-index: 9990; background: rgba(5, 7, 15, .96); opacity: 0; transition: opacity .25s; display: flex; flex-direction: column; }
.pv.open { opacity: 1; }
.pv-top { display: flex; align-items: center; gap: 8px; padding: calc(var(--tg-safe-top, 0px) + 14px) 14px 8px; color: #fff; }
.pv-count { flex: 1; font-weight: 800; font-size: 14px; opacity: .85; }
.pv-btn { width: 40px; height: 40px; border-radius: 50%; border: 0; background: rgba(255, 255, 255, .12); color: #fff; font-size: 16px; font-weight: 800; }
.pv-stage { flex: 1; display: flex; align-items: center; justify-content: center; overflow: hidden; touch-action: pan-y; }
.pv-img { max-width: 100%; max-height: 100%; object-fit: contain; border-radius: 6px; }
.pv-img.slide-l { animation: vSlideL .3s cubic-bezier(.2, .8, .2, 1); }
.pv-img.slide-r { animation: vSlideR .3s cubic-bezier(.2, .8, .2, 1); }
@keyframes vSlideL { from { transform: translateX(50px); opacity: .3; } }
@keyframes vSlideR { from { transform: translateX(-50px); opacity: .3; } }
.pv-nav { position: absolute; top: 50%; width: 44px; height: 44px; margin-top: -22px; border-radius: 50%; border: 0;
  background: rgba(255, 255, 255, .12); color: #fff; font-size: 24px; font-weight: 800; }
.pv-nav.prev { left: 10px; } .pv-nav.next { right: 10px; }
.ref-rank { width: 26px; text-align: center; font-family: var(--head); font-weight: 800; color: var(--accent); }

/* who's going (paid items) */
.going-people { margin: 12px 0 2px; padding: 12px 14px; border-radius: 20px; background: var(--glass); border: 1px solid var(--glass-edge);
  box-shadow: var(--glass-shadow); -webkit-backdrop-filter: var(--glass-blur); backdrop-filter: var(--glass-blur); cursor: pointer; }
.gp-head { display: flex; align-items: center; gap: 10px; }
.gp-faces { display: flex; padding-left: 8px; }
.gp-face { width: 32px; height: 32px; margin-left: -8px; border-radius: 50%; border: 2px solid #fff; background: linear-gradient(135deg, #4A86FF, #1E55E3);
  color: #fff; font-size: 11px; font-weight: 800; display: inline-flex; align-items: center; justify-content: center; overflow: hidden; flex-shrink: 0; }
.gp-face img { width: 100%; height: 100%; object-fit: cover; }
.gp-face.more { background: var(--lime); color: var(--lime-ink); }
.gp-title { flex: 1; font-weight: 800; font-size: 14px; }
.gp-chev { font-size: 22px; color: var(--muted); transition: transform .25s; }
.going-people.open .gp-chev { transform: rotate(90deg); }
.gp-list { margin-top: 10px; display: flex; flex-direction: column; gap: 6px; animation: riseIn .25s ease both; }
.gp-row { display: flex; align-items: center; gap: 10px; font-size: 14px; font-weight: 600; }
.gp-row .gp-face { margin-left: 0; border: 0; }
.gp-row i { color: var(--muted); font-weight: 500; }

/* item chat */
.chat-card { display: flex; align-items: center; gap: 12px; margin: 10px 0 2px; padding: 12px 14px; border-radius: 20px; cursor: pointer;
  background: linear-gradient(120deg, rgba(30, 85, 227, .14), rgba(124, 58, 237, .14)); border: 1px solid var(--glass-edge); box-shadow: var(--glass-shadow); }
.chat-card.locked { cursor: default; background: var(--glass); opacity: .85; }
.cc-ico { width: 42px; height: 42px; border-radius: 14px; display: flex; align-items: center; justify-content: center; font-size: 22px; background: #fff; flex-shrink: 0; }
.cc-new { min-width: 22px; height: 22px; padding: 0 7px; border-radius: 11px; background: #EF4444; color: #fff; font-size: 12px; font-weight: 800;
  display: inline-flex; align-items: center; justify-content: center; }
.chat-content { padding-bottom: 20px; }
.chat-intro { text-align: center; font-weight: 800; font-size: 14px; margin: 4px 0 14px; }
.chat-intro span { font-weight: 500; font-size: 12px; color: var(--muted); }
#chat-list { display: flex; flex-direction: column; gap: 6px; }
.cm { display: flex; align-items: flex-end; gap: 8px; max-width: 86%; animation: riseIn .2s ease both; }
.cm.cont { margin-top: -3px; }
.cm.mine { align-self: flex-end; }
.cm-ava { width: 30px; flex-shrink: 0; }
.cm-ava .gp-face { margin: 0; width: 30px; height: 30px; border: 0; }
.cm-bubble { padding: 8px 12px 6px; border-radius: 18px 18px 18px 6px; background: rgba(255, 255, 255, .85); border: 1px solid var(--glass-edge);
  box-shadow: 0 4px 14px -10px rgba(20, 55, 160, .4); min-width: 64px; }
.cm.mine .cm-bubble { border-radius: 18px 18px 6px 18px; background: linear-gradient(180deg, #4A86FF, #1E55E3); color: #fff; border-color: transparent; }
.cm-name { font-size: 12px; font-weight: 800; color: var(--accent); margin-bottom: 2px; }
.cm-staff { margin-left: 6px; padding: 1px 6px; border-radius: 8px; background: var(--lime); color: var(--lime-ink); font-size: 10px; }
.cm-text { font-size: 14.5px; line-height: 1.4; word-wrap: break-word; overflow-wrap: anywhere; }
.cm-when { font-size: 10px; opacity: .6; text-align: right; margin-top: 2px; }
.chat-compose { flex: 1; display: flex; align-items: flex-end; gap: 8px; }
.chat-compose textarea { flex: 1; resize: none; min-height: 44px; max-height: 120px; padding: 11px 14px; border-radius: 22px; border: 1px solid var(--border);
  background: rgba(255, 255, 255, .92); font: inherit; font-size: 15px; color: var(--text); outline: none; line-height: 1.35; }
.chat-send { width: 44px; height: 44px; flex-shrink: 0; border: 0; border-radius: 50%; background: linear-gradient(180deg, #4A86FF, #1E55E3); color: #fff;
  display: flex; align-items: center; justify-content: center; box-shadow: 0 8px 18px -8px rgba(30, 85, 227, .7); }
.chat-send:active { transform: scale(.92); }
.input.locked { opacity: .65; background: var(--surface-alt); }
div.input.locked { display: flex; align-items: center; }

/* admin "События": events and lessons in one list, by day */
.seg-tabs { display: flex; gap: 4px; padding: 4px; margin-bottom: 12px; border-radius: 16px; background: var(--surface-alt); }
.seg-tabs .seg { flex: 1; padding: 9px 4px; border: 0; border-radius: 12px; background: transparent; font: inherit; font-size: 13px; font-weight: 700;
  color: var(--muted); white-space: nowrap; transition: background .2s, color .2s; }
.seg-tabs .seg span { font-size: 11px; opacity: .7; }
.seg-tabs .seg.active { background: #fff; color: var(--accent); box-shadow: 0 4px 12px -6px rgba(20, 55, 160, .45); }
.day-label { font-family: var(--head); font-size: 13px; font-weight: 700; color: var(--text); margin: 18px 4px 8px; }
.day-label.past { color: var(--muted); }
.time-tile { width: 58px; flex-shrink: 0; border-radius: 14px; padding: 7px 0 6px; text-align: center; color: #fff;
  background: linear-gradient(180deg, #4A86FF, #1E55E3); box-shadow: 0 6px 14px -8px rgba(30, 85, 227, .7); }
.time-tile.lesson { background: linear-gradient(180deg, #9B6BFF, #7C3AED); box-shadow: 0 6px 14px -8px rgba(124, 58, 237, .7); }
.time-tile.past { opacity: .55; }
.tt-time { font-family: var(--head); font-size: 12.5px; font-weight: 800; line-height: 1.1; }
.tt-kind { font-size: 10px; font-weight: 800; text-transform: uppercase; letter-spacing: .06em; opacity: .85; margin-top: 3px; }
.mini-chip.kind-event { background: rgba(30, 85, 227, .12); color: #1E55E3; }
.mini-chip.kind-lesson { background: rgba(124, 58, 237, .12); color: #7C3AED; }
.seg-tabs .seg:nth-child(2).active { color: #1E55E3; }
.seg-tabs .seg:nth-child(3).active { color: #7C3AED; }
