/* Event page. Loads after the design system's tokens.css and components/bundle.css.
   Sizes and colours copied from design/Main.dc.html (desktop) and design/Phone.dc.html (phone). */
.ep{display:flex;flex-wrap:wrap;gap:48px;max-width:1280px;margin:0 auto;padding:32px 40px 80px;box-sizing:border-box;color:var(--q-ink);font-family:var(--font-brand)}
.ep-side{flex:1 1 340px;max-width:420px;display:flex;flex-direction:column;gap:20px;min-width:0}
.ep-main{flex:999 1 560px;min-width:0;display:flex;flex-direction:column;gap:24px}
/* the site's own section padding (60 px top) is not for the event page's columns and parts: «О встрече» starts level with the cover (row 61) */
.ep section{padding-block:0}
.ep a:not(.qv-btn):not(.qv-tab):not(.ep-mq):not(.ep-mp):not(.ep-gw):not(.ep-where):not(.ep-tile):not(.ep-fsub):not(.ep-mt),.ep-link{color:var(--q-ink);font-weight:600;text-decoration:underline;text-decoration-color:var(--q-sky);text-decoration-thickness:2px;text-underline-offset:4px}
/* a link made a button keeps the button's own colours (Team B's finding 1, row 61: «Войти и зарегистрироваться» was ink on ink) */
.ep a.qv-btn{color:var(--fg);text-decoration:none}.ep a.qv-btn.outline{color:var(--oc,var(--q-ink))}
.ep-link{border:0;background:none;padding:0;font:600 15px/1.4 var(--font-brand);cursor:pointer}
.ep-muted{color:var(--q-muted)}
.ep-small{font-size:14px}
.ep-label{font:600 15px/1.2 var(--font-head);color:var(--q-muted)}
.ep-eb{font:600 12px/1 var(--font-head);letter-spacing:.08em;text-transform:uppercase}
.ep-h3{font:700 19px/1.2 var(--font-head);margin:0}
.ep-h2s{font:700 24px/1.15 var(--font-head)}
.ep-row{display:flex;flex-wrap:wrap;align-items:center;gap:8px}
.ep-col{display:flex;flex-direction:column;gap:10px}
.ep-grow{flex:1 1 auto}
.ep-box{border:2px solid var(--q-line);padding:16px;display:flex;flex-direction:column;gap:14px}
.ep-panel{border:2px solid var(--q-ink);padding:16px;display:flex;flex-direction:column;gap:12px;margin-top:10px}
.ep-eq{display:flex;width:100%}
.ep-eq .qv-tab{flex:1 1 0;text-align:center}

/* cover */
.ep-cover{position:relative;min-height:290px;display:flex;align-items:flex-end;padding:24px;box-sizing:border-box}
.ep-cover h1{margin:0;font:700 40px/1.05 var(--font-head);max-width:75%}
.ep-cover-emoji{position:absolute;top:24px;right:24px;font-size:112px;line-height:1.2}
.ep-poster{margin:0}
.ep-poster img{display:block;width:100%;height:auto;max-height:calc(min(420px,100vw) * 1.25);object-fit:contain}
.ep-title{margin:0;font:700 32px/1.1 var(--font-head)}
.ep-emojis{display:flex;flex-wrap:wrap;gap:6px}
.ep-emo input{position:absolute;opacity:0}
.ep-emo span{display:flex;align-items:center;justify-content:center;width:44px;height:44px;font-size:24px;border:2px solid var(--q-line);cursor:pointer}
.ep-emo input:checked+span{border-color:var(--q-ink)}

/* facts */
.ep-cat{margin:0;display:flex;align-items:center;gap:10px;font:600 16px/1.2 var(--font-head)}
/* design v5 (d7b3db95): the category's icon, «Все события» above the columns, the description closed by a hairline */
.ep-cicon{display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;width:22px;height:22px}
.ep-cicon path{fill:none;stroke:currentColor;stroke-width:2.4;stroke-linecap:round;stroke-linejoin:round}
.ep-back{flex:1 0 100%;margin:0 0 -24px;font-size:16px}
/* a fold whose summary carries a muted note (design v5: «Вид списка гостей: стикеры (видит только команда)», «Добавить ведущего (…)»): the note shows while closed, no triangle */
.ep-sum{list-style:none;cursor:pointer}.ep-sum::-webkit-details-marker{display:none}
.ep-guests [data-all-guests]{font-size:15px}   /* the guest row, then «Идут…» 12 px under it (0713066a) */
.ep-facts{display:grid;grid-template-columns:64px minmax(0,1fr);gap:14px 12px;margin:0;font-size:16px;line-height:1.4}
.ep-facts dt{font:600 15px/1.4 var(--font-head);color:var(--q-muted);padding-top:2px}
.ep-facts dd{margin:0;display:flex;flex-direction:column;gap:10px;min-width:0}
/* design v5, phone (c97b266a, screens 1-2): «QARAVAN представляет» over the title, the facts as small capital labels over their values,
   the hosts side by side, «Добавить в календарь» under the date; on a desktop these stay as they are */
.ep-eyebrow,.ep-cal-ph{display:none}
@media (max-width:720px){
  .ep-cover{flex-direction:column;align-items:flex-start;justify-content:flex-end}
  .ep-eyebrow{display:block;font:700 11px/1.2 var(--font-head);letter-spacing:.08em;text-transform:uppercase}
  .ep-cover .ep-eyebrow+h1{margin-top:6px}
  .ep-facts{display:block}
  .ep-facts dt{font:700 11px/1.2 var(--font-head);letter-spacing:.08em;text-transform:uppercase;padding:0;margin:14px 0 4px}
  .ep-facts dt:first-child{margin-top:0}
  .ep-facts dd{gap:4px}
  .ep-facts dd:has(.ep-host){flex-direction:row;flex-wrap:wrap;gap:8px 20px}
  .ep-cal-ph{display:inline-flex;align-items:center;min-height:44px;align-self:flex-start;margin:-10px 0 -12px}
  .ep-side>.ep-cal{display:none}
}
.ep-host{display:flex;align-items:center;gap:12px}
.ep-host>span:not(.hst){display:flex;flex-direction:column;gap:1px;min-width:0}
.ep-host form{margin-left:auto}
.ep-cal{margin:0}
@media (max-width:720px),(pointer:coarse){.ep-cal a{display:inline-flex;align-items:center;min-height:44px}
  .ep-prog a{display:inline-block;padding-block:11px;margin-block:-11px}}   /* «Часть программы …»: a 44 px target without moving the line (Team G's live check) */

/* people: colours, photos, stickers */
.c-purple{background:var(--q-purple);color:#fff}.c-orange{background:var(--q-orange);color:#333}
.c-green{background:var(--q-green);color:#333}.c-yellow{background:var(--q-yellow);color:#333}.c-ink{background:var(--q-ink);color:var(--q-white)}
/* An uploaded photo is the person's own square crop, so cover never cuts it differently. */
.has-photo{background-size:cover;background-position:center;color:transparent}
.hst{display:flex;align-items:flex-end;flex:none;box-sizing:border-box;width:40px;height:40px;padding:0 0 4px 5px;border:2px solid var(--q-ink);box-shadow:3px 3px 0 var(--q-ink);font:700 15px/1 var(--font-head);transform:rotate(var(--r,0deg))}
.ep-gl{display:flex;flex-wrap:wrap;gap:16px 14px;padding:4px 0 2px 2px}
.ep-gw{display:flex;flex-direction:column;gap:8px;width:64px;border:0;background:none;padding:0;text-decoration:none!important;color:inherit;cursor:pointer}
.ep-gn{font:600 14px/1.15 var(--font-head);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ep-st{display:flex;align-items:flex-end;box-sizing:border-box;width:64px;height:64px;padding:0 0 7px 8px;border:2px solid var(--q-ink);box-shadow:4px 4px 0 var(--q-ink);font:700 24px/1 var(--font-head);transform:rotate(var(--r,0deg));transition:transform .15s ease-out,box-shadow .15s ease-out}
.ep-gw:hover .ep-st,.ep-gw:focus-visible .ep-st{transform:rotate(0) translate(-2px,-2px);box-shadow:6px 6px 0 var(--q-ink)}
.ep-st.more{background:var(--q-white);font-size:22px}
.ep-st.blank{background:var(--q-line);border-color:var(--q-edge);box-shadow:4px 4px 0 var(--q-edge)}
.ep-stickers{display:flex;flex-wrap:wrap;gap:14px;padding:4px 0 2px 2px}
.ep-big{position:relative;display:block;width:64px;height:64px;overflow:hidden}
.ep-big span{position:absolute;left:-5px;bottom:-19px;font:800 118px/1 var(--font-head);letter-spacing:-.05em}
.ep-emj{display:flex;align-items:center;justify-content:center;width:64px;height:64px;font-size:34px;line-height:1.2}
.ep-plain{display:flex;align-items:flex-end;box-sizing:border-box;width:64px;height:64px;padding:0 0 7px 8px;border:2px solid var(--q-ink);background:var(--q-white);font:800 30px/1 var(--font-head)}
.ep-mp{position:relative;display:block;width:92px;height:124px;overflow:hidden;text-decoration:none!important}
.ep-mp .l{position:absolute;left:6px;top:-14px;font:800 104px/1 var(--font-head);letter-spacing:-.04em}
.ep-mp .n{position:absolute;left:9px;right:6px;bottom:9px;font:700 15px/1.1 var(--font-head);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ep-mp .r{position:absolute;left:9px;bottom:28px;font:600 11px/1 var(--font-head);letter-spacing:.08em;text-transform:uppercase}
.ep-mp.more{background:var(--q-white);box-shadow:inset 0 0 0 2px var(--q-ink)}
.ep-mp.more .l{left:9px;top:10px;font-size:58px}
.ep-mp.has-photo .n{right:auto;left:6px;bottom:6px;padding:4px 6px;background:var(--q-ink);color:var(--q-white)}
.ep-mosaic{display:flex;flex-wrap:wrap}
.ep-mq{display:flex;align-items:flex-end;box-sizing:border-box;width:72px;height:72px;padding:0 0 8px 9px;font:700 26px/1 var(--font-head);text-decoration:none!important}
.ep-mq.more{background:var(--q-white);box-shadow:inset 0 0 0 2px var(--q-ink)}
.ep-names{margin:0;font:600 16px/1.4 var(--font-head)}
.ep-guests p{margin:0;font-size:16px}
.ep-all{list-style:none;margin:0 0 16px;padding:0;display:flex;flex-direction:column;gap:10px}
.ep-all a{display:flex;align-items:center;gap:12px}

/* guest style picker (team only) */
.ep-gsrow{display:flex;flex-wrap:wrap;gap:10px;margin-top:10px}
.ep-gso{display:flex;flex-direction:column;align-items:flex-start;gap:6px;padding:10px;border:2px solid var(--q-line);background:var(--q-white);font:600 14px/1.2 var(--font-head);cursor:pointer}
.ep-gso.on{border-color:var(--q-ink)}
.ep-gsd{font-weight:400;color:var(--q-muted);font-size:12px}
.ep-gpv{display:flex;gap:4px;height:28px;align-items:flex-end}
.ep-gpv i{display:flex;align-items:flex-end;width:22px;height:22px;font-style:normal;font-size:13px;transform:rotate(var(--r,0))}
.pv-stickers i{border:2px solid var(--q-ink);box-shadow:2px 2px 0 var(--q-ink)}
.ep-gpv .k1{background:var(--q-purple);color:#fff}.ep-gpv .k2{background:var(--q-orange)}.ep-gpv .k3{background:var(--q-green)}.ep-gpv .k4{background:var(--q-yellow)}.ep-gpv .k5{background:var(--q-ink);color:var(--q-white)}
.pv-emoji i{justify-content:center;align-items:center}
.pv-mosaic{gap:0}

/* Before registering: blurred stand-ins behind the card (design/BeforeRsvp.dc.html, Phone screen 2). */
.ep-blur{filter:blur(7px);user-select:none;pointer-events:none}
.ep-tease{position:relative;min-height:560px;overflow:hidden}
.ep-tease::after{content:"";position:absolute;left:0;right:0;bottom:0;height:200px;background:linear-gradient(transparent,var(--q-white))}
.ep-tease .ep-blur{display:flex;flex-direction:column;gap:20px}
.ep-tb{height:14px;width:60%;background:var(--q-line)}
.ep-gate{position:absolute;z-index:1;left:50%;top:96px;transform:translateX(-50%);width:min(440px,calc(100% - 32px));box-sizing:border-box;background:var(--q-white);border:2px solid var(--q-ink);box-shadow:6px 6px 0 var(--q-ink);padding:24px;display:flex;flex-direction:column;gap:14px}
.ep-gate.static{position:static;transform:none;width:auto;box-shadow:none}

/* «О встрече» and its blocks (design/DescBlocks.dc.html). Visible to everyone. */
.ep .ep-about{display:flex;flex-direction:column;padding-bottom:28px;border-bottom:2px solid var(--q-line)}
.ep-shead{border-bottom:2px solid var(--q-ink);padding-bottom:12px;margin-bottom:18px}
.ep-shead h2{margin:0;font:700 32px/1.1 var(--font-head)}
.ep-lead{margin:0 0 16px;max-width:700px;font:500 23px/1.45 var(--font-brand)}
.ep-body{margin:0 0 18px;max-width:700px;font-size:18px;line-height:1.55}
.ep-blk{display:grid;grid-template-columns:48px minmax(0,1fr);column-gap:18px;padding:26px 0;border-top:1px solid var(--q-edge)}
.ep-ic{display:flex;align-items:center;justify-content:center;width:48px;height:48px}
.ep-bc{display:flex;flex-direction:column;gap:14px;min-width:0;padding-top:2px}
.ep-bc .ep-body{margin:0}
.ep-bh{display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px}
.ep-bh strong{font:700 22px/1.2 var(--font-head)}
.ep-only{display:inline-flex;align-items:center;height:26px;padding:0 8px;background:var(--q-ink);color:var(--q-white);font:600 13px/1 var(--font-head)}
.c-sky{background:var(--q-sky);color:#fff}.c-red{background:var(--q-red);color:#fff}
.ep-tl{display:grid;grid-template-columns:64px 1fr;gap:12px 16px;font-size:18px;line-height:1.35}
.ep-tl b{font:700 18px/1.35 var(--font-head)}
.ep-li{display:flex;gap:12px;align-items:baseline;font-size:18px;line-height:1.45}
.ep-tr{display:flex;align-items:center;gap:14px}
.ep-lines{display:flex;gap:4px;flex:none;min-width:112px}
.ep-sub{display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;border-radius:50%;font:700 18px/1 Helvetica,Arial,sans-serif}
.ep-stop{display:flex;flex-direction:column;font:600 18px/1.3 var(--font-head)}
.ep-walk{font:400 15px/1.35 var(--font-brand);color:var(--q-muted)}
@media (max-width:600px){.ep-tr .ep-lines{min-width:72px}}   /* room for two badges, so a long station name keeps its width on a phone */
.ep-chips{display:flex;flex-wrap:wrap;gap:8px}
.ep-achip{display:inline-flex;align-items:center;gap:8px;height:40px;padding:0 14px 0 10px;border:2px solid var(--q-ink);font:600 16px/1 var(--font-head)}
.ep-achip svg{color:var(--q-green);flex:none}
.ep-door{display:block;width:100%;max-height:320px;object-fit:cover}
.ep-partners{display:flex;flex-wrap:wrap;gap:12px}
.ep-ptile{display:flex;align-items:center;justify-content:center;width:180px;height:72px;border:2px solid var(--q-ink);font:600 14px/1.2 var(--font-head);text-align:center;padding:0 10px;box-sizing:border-box;text-decoration:none!important}
.ep-ptile img{max-width:100%;max-height:52px}
.ep-amt input{position:absolute;opacity:0}
.ep-amt span{display:inline-flex;align-items:center;justify-content:center;min-width:76px;height:48px;border:2px solid var(--q-ink);font:700 19px/1 var(--font-head);cursor:pointer}
.ep-amt input:checked+span{background:var(--q-ink);color:var(--q-white)}
.ep-donate{display:flex;flex-direction:column;gap:14px}

/* «Выбираем фильм» */
.ep-film{display:flex;flex-wrap:wrap;gap:16px;padding:16px 0;border-top:1px solid var(--q-line)}
.ep-film.win{border:2px solid var(--q-ink);padding:16px}
.ep-trailer{position:relative;flex:none;width:224px;height:126px;border:0;padding:0;background:#222 center/cover;cursor:pointer}
.ep-trailer i{position:absolute;left:50%;top:50%;width:52px;height:52px;margin:-26px 0 0 -26px;border-radius:50%;background:rgba(0,0,0,.6)}
.ep-trailer i::after{content:"";position:absolute;left:20px;top:15px;border-left:17px solid #fff;border-top:11px solid transparent;border-bottom:11px solid transparent}
.ep-fi{flex:1 1 240px;min-width:0;display:flex;flex-direction:column;gap:6px}
.ep-fi>strong{font:700 20px/1.2 var(--font-head)}
.ep-fbar{position:relative;height:8px;background:var(--q-line)}.ep-fbar i{position:absolute;inset:0 auto 0 0;background:var(--q-red)}
.ep-player{width:100%;max-width:560px;aspect-ratio:16/9;border:0}
.ep-slide-prev{width:320px;height:180px;border:2px solid var(--q-line);object-fit:cover}

/* «Собирайтесь вместе», «Позовите друзей!» */
.ep-together-item{display:flex;align-items:center;gap:12px;padding-top:12px;border-top:1px solid var(--q-line)}
.ep-together-item>div{flex:1 1 auto;min-width:0;display:flex;flex-direction:column;gap:3px}
.ep-field{display:flex;flex-direction:column;gap:6px}
.ep-url{flex:1 1 auto;min-width:0;display:flex;align-items:center;min-height:36px;padding:0 10px;border:2px solid var(--q-line);font-size:15px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ep-copy{flex-wrap:nowrap}   /* the copy button wraps onto two lines, as the board (d7b3db95) draws it */
.ep-previews{align-items:flex-end;gap:16px}
.ep-prev{display:flex;flex-direction:column;gap:10px}
.ep-thumb{position:relative;overflow:hidden;background:var(--q-line)}
.ep-thumb.ep-story{width:108px;height:192px}.ep-thumb.post{width:108px;height:135px}
.ep-thumb img{display:block;width:100%;height:100%}
/* The dashed link-sticker space: preview only, never in the downloaded file. */
.ep-guide{position:absolute;left:7.4%;width:59.3%;height:6.25%;box-sizing:border-box;border:1px dashed currentColor;color:#fff;font-size:0;opacity:.8}

/* discussion */
.ep-dhead{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:8px;border-bottom:2px solid var(--q-ink);padding-bottom:12px;margin-top:16px}
.ep-dhead h2{margin:0;font:700 32px/1.1 var(--font-head)}
.ep-compose{display:flex;flex-direction:column;gap:10px}
.ep-picked{flex-direction:row;justify-content:space-between}
.ep-namep{border:2px solid var(--q-ink);padding:18px;display:flex;flex-direction:column;gap:12px}
.ep-nopt{display:flex;align-items:center;gap:12px;padding:12px;border:2px solid var(--q-line);cursor:pointer}
.ep-nopt span{display:flex;flex-direction:column;gap:3px}
.ep-nopt:has(input:checked){border-color:var(--q-ink);background:var(--q-line)}
.ep-posts{display:flex;flex-direction:column;gap:20px}
.ep-post{border:2px solid var(--q-line);padding:20px;display:flex;flex-direction:column;gap:12px;scroll-margin-top:80px;transition:outline-color .3s}
.ep-post.pin{border-color:var(--q-ink)}
.ep-post.flash{outline:4px solid var(--q-yellow);outline-offset:2px}
.ep-pinned{font:600 13px/1 var(--font-head)}
.ep-text{margin:0;font-size:17px;line-height:1.5}
.ep-media{display:block;align-self:flex-start;max-width:100%;max-height:320px;width:auto;height:auto;object-fit:contain}   /* a photo or GIF in a post keeps its shape, at most 320 px tall (design v5 70205bb9; a tall GIF filled the column) */
.ep-q{margin:0;font:700 24px/1.2 var(--font-head)}
.ep-who{display:flex;align-items:center;gap:12px}
.ep-who>div{display:flex;flex-direction:column;gap:2px;min-width:0}
.ep-who strong{font:700 17px/1.2 var(--font-head)}
.ep-who .ep-muted{font-size:14px}
.ep-who.k strong{font-size:15px}.ep-who.k .ep-muted{font-size:13px}
.ep-av{display:flex;align-items:center;justify-content:center;flex:none;width:44px;height:44px;font:700 18px/1 var(--font-head);background-size:cover;background-position:center}
.ep-av.sm{width:32px;height:32px;font-size:14px}.ep-av.xs{width:28px;height:28px;font-size:12px}.ep-av.lg{width:96px;height:96px;font-size:44px}
.ep-av.anon{background:var(--q-line);font-size:20px}.ep-av.ink{background:var(--q-ink);color:var(--q-white)}
.ep-pl{text-decoration:none!important}
.ep-acts{display:flex;flex-wrap:wrap;align-items:center;gap:8px 14px}
.ep-rx{display:inline-flex;align-items:center;gap:5px;height:32px;padding:0 10px;border:2px solid var(--q-line);background:var(--q-white);font:600 14px/1 var(--font-head);cursor:pointer}
.ep-rx.on{border-color:var(--q-ink);background:var(--q-line)}
.ep-heart{border:0;background:none;font-size:22px;line-height:1;cursor:pointer;padding:4px}
.ep-rep{border:0;background:none;padding:6px 0;font:600 14px/1.2 var(--font-head);color:var(--q-muted);cursor:pointer}
.ep-rep:hover{color:var(--q-ink);text-decoration:underline}
.ep-cmts{border-top:1px solid var(--q-line);padding-top:14px;display:flex;flex-direction:column;gap:16px}
.ep-cm{display:flex;flex-direction:column;gap:6px}
.ep-cm p{margin:0;font-size:16px;line-height:1.45}
.ep-kids{margin-left:44px;display:flex;flex-direction:column;gap:12px;margin-top:10px}
.ep-reply{flex-wrap:nowrap}.ep-reply .qv-input{flex:1 1 auto}
.ep-poll{display:flex;flex-direction:column;gap:8px}
.ep-bar{position:relative;display:flex;justify-content:space-between;padding:10px 12px;border:2px solid var(--q-line);font:600 16px/1.2 var(--font-head)}
.ep-bar span{position:relative;z-index:1}
.ep-bar i{position:absolute;inset:0 auto 0 0;background:var(--q-red-tint,var(--q-line))}
.ep-bar.on{border-color:var(--q-ink)}
.ep-ride,.ep-slot{display:flex;align-items:center;gap:12px}
.ep-ride>div,.ep-slot>div{flex:1 1 auto;display:flex;flex-direction:column;gap:3px}
.ep-chip input{position:absolute;opacity:0}
.ep-chip span{display:inline-flex;align-items:center;height:36px;padding:0 12px;border:2px solid var(--q-line);font:600 15px/1 var(--font-head);cursor:pointer}
.ep-chip input:checked+span{border-color:var(--q-ink);background:var(--q-line)}
.ep-mats,.ep-asks{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px}
.ep-mats li,.ep-asks li{display:flex;align-items:center;justify-content:space-between;gap:12px;padding-top:10px;border-top:1px solid var(--q-line)}
.ep-mats li>span{display:flex;flex-direction:column;gap:2px}
/* «Уже спрашивают»: the question first, the vote on the right as an up arrow and the count; your vote fills it. */
.ep-vote{display:inline-flex;align-items:center;justify-content:center;gap:8px;flex:none;min-width:72px;height:44px;padding:0 14px;border:2px solid var(--q-line);background:var(--q-white);color:var(--q-ink);font:700 18px/1 var(--font-head);cursor:pointer}
.ep-vote:hover{background:var(--q-line)}
.ep-vote.on,.ep-vote.on:hover{background:var(--q-ink);border-color:var(--q-ink);color:var(--q-white)}
.ep-asks li>span{flex:1 1 auto;min-width:0;font-size:17px;line-height:1.4}
.ep-private{border:2px dashed var(--q-edge);padding:10px 12px}
.ep-warn{margin:0;font-size:15px;line-height:1.4}
.ep-settings{border:2px solid var(--q-ink);padding:20px;display:flex;flex-direction:column;gap:16px}
.ep-settings h3{margin:0;font:700 22px/1.2 var(--font-head)}
.ep-dialog{border:2px solid var(--q-ink);padding:24px;max-width:440px;width:calc(100% - 32px)}
.ep-dialog::backdrop{background:rgba(51,51,51,.55)}

/* Phone (design/Phone.dc.html): one column, 16 px sides, the answer bar fixed at the bottom. */
.ep-shimg{display:flex;flex-direction:column;gap:inherit}
@media (max-width:720px){
  .ep{padding:16px 16px 120px;gap:28px}
  .ep-side{max-width:none}
  /* The phone's order (design/Phone.dc.html, Team G's row 61 review): the cover, when and where, then «О встрече»,
     then the calendar, sharing and the program, then the guests and the discussion. The two columns give up their boxes. */
  .ep{flex-direction:column;flex-wrap:nowrap}
  .ep-side,.ep-main{display:contents}
  .ep-side>*{order:1}
  .ep-main>.ep-about{order:2}
  .ep-side>.ep-cal,.ep-side>.ep-cal~*{order:3}
  .ep-main>*:not(.ep-about){order:4}
  .ep-cover{min-height:240px;padding:18px}
  .ep-cover h1{font-size:36px}
  .ep-cover-emoji{font-size:84px;top:16px;right:16px}
  .ep-dhead h2{font-size:26px}
  .ep-post{padding:14px}
  .ep-kids{margin-left:38px}
  .ep-gl{gap:12px}
  .ep-st{width:48px;height:48px;font-size:18px;box-shadow:3px 3px 0 var(--q-ink)}
  .ep-gw{width:48px}
  .ep-gn{font-size:12px}
  /* The answer bar: three buttons before an answer, one line («Вы идёте», «Изменить ответ») after. */
  .ep-rsvp{position:fixed;left:0;right:0;bottom:0;z-index:20;background:var(--q-white);border-top:2px solid var(--q-ink);padding:10px 16px calc(12px + env(safe-area-inset-bottom))}
  .ep-rsvp .ep-label{display:none}
  .ep-rsvp .ep-row>*{flex:1 1 0;padding-inline:8px;white-space:nowrap}
  .ep-rsvp.answered:not(.open) .ep-row{display:none}
  .ep-rsvp-short{display:none}
  .ep-rsvp.answered:not(.open) .ep-rsvp-short{display:flex;align-items:center;justify-content:space-between;min-height:44px;font:700 17px/1.2 var(--font-head)}
}
/* 44 px targets on phones and touch screens (Team G's row 65 walk; Team E's discussion.css does its own): the small buttons
   of the new-post box («Фото», «GIF», «Голосование», «Другие блоки», «Отправить») and every other small button, the tabs, and the
   text-link buttons such as «Изменить ответ» */
@media (max-width:900px), (pointer:coarse){
  .ep .qv-btn.sm, .ep .qv-tab{min-height:44px}
  .ep button.ep-link{display:inline-flex;align-items:center;min-height:44px} .ep summary.ep-link,.ep summary.ep-sum{padding-block:11px}   /* a fold keeps its triangle */
}

/* design v5, phone (c97b266a, screen 7): «Позовите друзей!» shows «Сторис» and «Пост»; each opens the box as a sheet from the bottom:
   the size tabs, one preview, language and two colour squares, the sticker tick, «Поделиться» (the picture to the phone's share menu),
   «Сохранить на телефон», «Скопировать ссылку». The desktop box is unchanged. */
.ep-sh-grip,.ep-sh-x,.ep-ph-only,.ep-share-ph{display:none}
.ep-sh-head{display:flex;align-items:center;justify-content:space-between;gap:12px}
.ep-share .ep-sh-lc{display:flex;flex-direction:row;flex-wrap:nowrap;align-items:center;gap:10px}.ep-sh-lc>.qv-tabs{flex:1 1 0;min-width:0;width:auto}
.ep-sw{width:44px;height:44px;border:2px solid var(--q-white);padding:0;cursor:pointer;box-shadow:inset 0 0 0 3px var(--q-white)}
.ep-sw.on{border-color:var(--q-ink)}
.ep-sheet-bg{position:fixed;inset:0;z-index:59;background:rgba(28,28,27,.46)}
@media (max-width:720px){
  .ep-share-ph{display:flex;gap:8px}.ep-share-ph>*{flex:1 1 0}
  .ep-share:not(.sheet) .ep-shimg{display:none}
  .ep-share.sheet{position:fixed;left:0;right:0;bottom:0;z-index:60;max-height:92vh;overflow:auto;margin:0;border:0;border-top:2px solid var(--q-ink);background:var(--q-white);padding:10px 16px calc(16px + env(safe-area-inset-bottom))}
  .ep-share.sheet .ep-sh-grip{display:block;width:40px;height:4px;margin:0 auto 6px;background:var(--q-muted)}
  .ep-share.sheet .ep-sh-x{display:inline-flex;align-items:center;justify-content:center;min-width:44px;min-height:44px;border:0;background:none;font-size:30px;line-height:1;color:var(--q-ink);cursor:pointer}
  .ep-share.sheet .ep-ph-only{display:block}.ep-share.sheet .ep-swatches.ep-ph-only{display:inline-flex;gap:8px}
  .ep-share.sheet .ep-desk-only,.ep-share.sheet .ep-copy,.ep-share.sheet .ep-share-ph,.ep-share.sheet .ep-prev>a{display:none}
  .ep-share.sheet .ep-previews{display:block;background:var(--q-line);padding:14px}
  .ep-share.sheet[data-size="story"] .ep-prev:nth-child(2),.ep-share.sheet[data-size="post"] .ep-prev:nth-child(1){display:none}
  .ep-share.sheet .ep-thumb{margin:0 auto;width:min(190px,60vw);height:auto;aspect-ratio:9/16}.ep-share.sheet .ep-thumb.post{aspect-ratio:4/5}
  .ep-share.sheet .ep-sh-act{display:flex;flex-direction:column;align-items:flex-start;gap:10px}
  .ep-share.sheet .ep-sh-act .ep-row{display:flex;gap:8px;align-self:stretch}.ep-share.sheet .ep-sh-act .ep-row>*{flex:1 1 0}
}

/* The cover's full emoji list: a scrolling grid of 44 px buttons */
.ep-emo-all summary{min-height:44px;display:flex;align-items:center;cursor:pointer}
.ep-emo-grid{display:flex;flex-wrap:wrap;max-height:264px;overflow:auto;border:1px solid var(--q-line);padding:6px}
.ep-emo-b{width:44px;height:44px;font-size:24px;line-height:1;border:2px solid transparent;background:none;cursor:pointer;padding:0}
.ep-emo-b:hover{background:var(--q-line)}.ep-emo-b.on{border-color:var(--q-ink)}
.ep-emo-other{display:flex;flex-direction:column;gap:4px;max-width:240px}
.ep-emo-q{display:block;width:100%;max-width:360px;margin:8px 0}
.ep-emo-h{flex:0 0 100%;margin:8px 4px 4px;font:600 13px/1 var(--font-head);letter-spacing:.06em;text-transform:uppercase;color:var(--q-muted)}

/* Owner 2026-11-06, P0 "100% the design" (event-page/design/v5, board 70205bb9): */
.ep-back{flex:0 0 100%;margin:0 0 -24px;font-size:16px}
.ep-cat{display:flex;align-items:center;gap:10px}
.ep-cat .qv-cicon{flex:0 0 auto}
.ep-rsvp-short{display:none}
.ep-gsrow-wrap > summary,.epd-add > summary,.ep-facts details > summary{cursor:pointer;list-style:none}
.ep-gsrow-wrap > summary::-webkit-details-marker,.epd-add > summary::-webkit-details-marker,.ep-facts details > summary::-webkit-details-marker{display:none}
@media (max-width:720px){.ep-back{order:-1;margin:0}}
/* the poster's colour (owner): a row of square swatches, the chosen one framed in ink */
.ep-colors{display:flex;flex-direction:column;gap:6px}
.ep-col{position:relative;display:inline-flex;cursor:pointer}
.ep-col input{position:absolute;opacity:0;width:1px;height:1px}
.ep-col > span[aria-hidden]{display:block;width:40px;height:40px;border:2px solid var(--q-line);box-shadow:inset 0 0 0 2px #fff}
.ep-col input:checked + span{border-color:var(--q-ink)}
.ep-col input:focus-visible + span{outline:3px solid var(--accent);outline-offset:2px}
.ep-sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
.ep-panel-toggle > summary{list-style:none;cursor:pointer}.ep-panel-toggle > summary::-webkit-details-marker{display:none}
.ep-gsrow-wrap > summary > .ep-muted,.epd-add > summary > .ep-muted,.ep-facts details > summary > .ep-muted{margin-left:.3em}
.ep .ep-settings{padding:20px 24px}
.ep-set-link{margin:-8px 0 0}
.eps .eps-cover .ep-panel{border:0;padding:0;margin-top:10px}
.ep-cover{padding-top:160px}
@media (max-width:720px){.ep-cover{padding-top:120px}}
/* Owner 2026-11-06 ("fix spacing… make it sleek"): the main column's rhythm as the design (board 70205bb9) */
.ep .ep-about{gap:16px;padding-bottom:28px;border-bottom:2px solid var(--q-line)}
.ep-guests{display:flex;flex-direction:column;gap:12px}
.ep-guests > p{display:flex;flex-wrap:wrap;align-items:baseline;gap:6px 16px;font-size:16px}
/* the count is one span, so the 16 px gap falls only before «Все гости» (it fell before the comma: «Идут 14 человек   , ещё 3») */
/* Owner 2026-11-06: the pictures for social media fold behind «Скачать картинки для соцсетей», on every screen */
/* on a desktop; a phone opens them as a sheet instead (design v5 c97b266a, screen 7, below) */
@media (min-width:721px){.ep-share:not(.img-open) .ep-shimg{display:none}.ep-sh-fold{align-self:flex-start}}
@media (max-width:720px){.ep-sh-fold{display:none}}
/* the page's frame and columns as the design (board 70205bb9: max-width 1120, padding 32 32 64, side 320..400, gaps 24) */
.ep{max-width:1120px;padding:32px 32px 64px;gap:48px}
.ep-side{flex:1 1 320px;max-width:400px;gap:24px}
@media (max-width:720px){.ep{padding:16px 16px 120px;gap:28px}.ep-side{max-width:none}}

/* design v5, board 0713066a, measured against the board's own CSS: the row gaps of each style, the sticker row's padding, and the
   small lift on hover the board gives every style */
.ep-gl-stickers{padding:6px 0 2px 4px}
.ep-gl-big_letter,.ep-gl-emoji{gap:14px 12px}
.ep-gl-mini_posters{gap:12px}
.ep-big,.ep-emj,.ep-mp{transition:transform .15s ease-out}.ep-mq{transition:transform .15s ease-out}
.ep-gw:hover .ep-big,.ep-gw:focus-visible .ep-big,.ep-gw:hover .ep-emj,.ep-gw:focus-visible .ep-emj,.ep-mp:hover,.ep-mp:focus-visible{transform:translateY(-3px)}
.ep-mq:hover,.ep-mq:focus-visible{transform:translateY(-4px)}
@media (prefers-reduced-motion:reduce){.ep-big,.ep-emj,.ep-mp,.ep-mq{transition:none}}

/* design v5, board d7b3db95, measured against the board's computed styles at 1280 (Team A): the side column is 360 wide with
   16/1.5 text, the cover 28 px all round with a 48/1.04 title, the date at weight 600, «Добавить в календарь» 16/1.5,
   the gate's heading at line-height 1.2. Phones keep their own sizes. */
@media (min-width:721px){
  .ep-side{flex:0 0 360px;max-width:360px;font-size:16px;line-height:1.5}
  .ep-cover{padding:28px}
  .ep-cover h1{font:700 48px/1.04 var(--font-head);max-width:none}
}
.ep-facts dd strong{font-weight:600}
.ep-cal{font-size:16px;line-height:1.5}
.ep-back{line-height:1.5}
.ep-gate .ep-h2s{line-height:1.2}
.ep-namegate{display:flex;flex-direction:column;gap:10px;margin-top:12px;padding:16px;border:2px solid var(--q-ink)}
.ep-namegate p{margin:0}
.ep-namegate .ep-field{display:flex;flex-direction:column;gap:4px;font:600 14px/1.2 var(--font-head)}

/* design v5, board 70205bb9, measured against the board's computed styles at 1280 (Team A): «Ваш ответ» is a line of its own,
   the composer's label is the site's field label (Fira Sans 15/1.3, ink), «Добавить блок в описание» 14/1.4 */
.ep-rsvp > .ep-label{display:block}
.ep label.ep-label[for="ep-text"]{font:600 15px/1.3 var(--font-brand);color:var(--q-ink)}
.ep .epd-add > summary,.ep .epd-add > summary .ep-link{font-size:14px;line-height:1.4}
/* the text of a post (70205bb9 at 1280, c97b266a at 390): a guest's post 17/1.5 on a desktop and 16/1.45 on a phone, the
   organizers' questions post one size smaller */
.ep .ep-post .ep-ptext .ep-text{font-size:17px;line-height:1.5}
.ep .ep-post[data-orgq] .ep-ptext .ep-text{font-size:16px;line-height:1.5}
@media (max-width:720px){
  .ep .ep-post .ep-ptext .ep-text{font-size:16px;line-height:1.45}
  .ep .ep-post[data-orgq] .ep-ptext .ep-text{font-size:15px;line-height:1.45}
}

/* Icon buttons (owner, 2026-11-06: recognisable icons instead of words; ui.mjs icon() and ilabel()): a 44 px square, the icon in ink,
   no frame until hover or focus; the words stay for screen readers and as a tooltip. */
.ep-i{display:block;flex:none}
.ep-ic{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;padding:0;border:2px solid transparent;background:none;color:var(--q-ink);cursor:pointer}
.ep-ic:hover{background:var(--q-line)} .ep-ic:focus-visible{outline:3px solid var(--q-ink);outline-offset:0}
.ep-ic[aria-expanded="true"],.ep-ic[aria-pressed="true"]{border-color:var(--q-ink)}
.ep-ic[hidden]{display:none}
.qv-btn .ep-i{margin-right:8px}
.ep-tools{gap:2px}
.ep-gift{display:inline-flex;align-items:center;justify-content:center;height:20px;padding:0 3px;border:2px solid currentColor;font:700 12px/1 var(--font-head);letter-spacing:.02em}
/* «Позовите друзей!»: one row of tiles, an icon with one short word under it (as Partiful's invite row): SMS (phones), the link,
   Stories and Post (phones; a desktop has «Картинки для соцсетей»), the phone's share menu */
.ep-invite{display:grid;grid-template-columns:repeat(auto-fit,minmax(64px,1fr));gap:8px}
.ep-tile{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;min-height:72px;padding:8px 4px;border:2px solid var(--q-line);background:var(--q-white);color:var(--q-ink);font:600 14px/1.1 var(--font-head);text-decoration:none;cursor:pointer;text-align:center}
.ep-tile:hover{border-color:var(--q-ink)} .ep-tile:focus-visible{outline:3px solid var(--q-ink);outline-offset:2px}
.ep-tile.done{border-color:var(--q-ink);background:var(--q-line)}
.ep-tile[hidden]{display:none}
@media (min-width:721px){.ep-tile[data-open-sheet],.ep-tile[data-sms]{display:none}.ep-sh-fold{display:inline-flex;align-items:center}}
/* «Где»: the place's name and its address, one link to Google Maps (render.mjs whereHtml); laid out with the facts below */
.ep-where{color:var(--q-ink);text-decoration:none}
.ep-where:hover strong{text-decoration-color:var(--q-ink)}
.ep-send-ic{flex:none;background:var(--q-ink);color:var(--q-white)} .ep-send-ic:hover{background:var(--q-ink);opacity:.85}
.ep-hostinv{display:flex;flex-direction:column;gap:10px;align-items:flex-start;margin-bottom:24px;border-color:var(--q-ink)} .ep-hostinv p{margin:0}
.eps-invite{display:flex;flex-direction:column;gap:10px;align-items:flex-start;margin-top:8px} .eps-invite .ep-field{display:flex;flex-direction:column;gap:4px;width:100%;max-width:420px;font:600 15px/1.2 var(--font-head)}

/* The facts as one pattern (owner, 2026-11-06, "deeply off with spacing and organization"): each row a 24 px icon column and the fact,
   bold first line, quiet second line (the calendar link, the address); the same 16 px between rows on every screen; the dt words for
   screen readers only. The answer bar on a phone keeps its label hidden (a later rule had brought «Ваш ответ» back into the fixed bar). */
.ep-sr{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
.ep .ep-facts{display:flex;flex-direction:column;gap:16px;margin:0}
.ep .ep-fact{margin:0}
.ep .ep-fact dt{margin:0}
.ep .ep-fact dd{margin:0;display:flex;flex-direction:row;align-items:flex-start;gap:12px;min-width:0}
.ep .ep-fact dd>.ep-i,.ep .ep-fact .ep-fic{flex:0 0 24px;width:24px;height:24px;margin-top:0;display:flex;align-items:center;justify-content:center}
.ep .ep-fv{display:flex;flex-direction:column;align-items:flex-start;gap:2px;min-width:0;font-size:16px;line-height:1.4}
.ep .ep-fv strong{font:700 17px/1.3 var(--font-head);color:var(--q-ink)}
.ep .ep-cat-name{font:600 16px/24px var(--font-head)}
.ep .ep-fact a.ep-fsub,.ep .ep-fv .ep-fsub{font-size:15px;line-height:1.4;color:var(--q-muted);font-weight:400}
.ep .ep-fact a.ep-fsub{text-decoration:underline;text-decoration-color:var(--q-line);text-decoration-thickness:2px;text-underline-offset:3px;min-height:0;margin:0}
.ep .ep-fact a.ep-fsub:hover{color:var(--q-ink);text-decoration-color:var(--q-sky)}
.ep .ep-where{display:flex;flex-direction:column;gap:2px;min-height:0}
.ep .ep-where strong{font:700 17px/1.3 var(--font-head);text-decoration:underline;text-decoration-color:var(--q-sky);text-decoration-thickness:2px;text-underline-offset:4px}
.ep .ep-fact-hosts dd{flex-direction:column;gap:10px}
.ep .ep-set-link{margin:-8px 0 0} .ep .ep-set-link a{display:inline-flex;align-items:center;gap:6px;min-height:44px;font-size:15px}
.ep .ep-cal[hidden]{display:none}
@media (max-width:720px){
  .ep .ep-rsvp > .ep-label{display:none}
  .ep .ep-rsvp{box-shadow:0 -6px 16px rgba(28,28,27,.08)}
}
/* The cover's emoji in the flow, top right, the title under it (owner, 2026-11-06: "emoji is over the text"): the emoji was absolute and
   the 1280 rule gave the title the full width with only 28 px on top, so a long title ran into it. Now nothing can overlap at any width. */
.ep .ep-cover{flex-direction:column;align-items:flex-start;justify-content:flex-end;padding-top:24px}
.ep .ep-cover-emoji{position:static;align-self:flex-end;margin:0 0 auto;padding-bottom:16px;font-size:96px;line-height:1}
@media (max-width:720px){.ep .ep-cover{padding-top:16px}.ep .ep-cover-emoji{font-size:72px;padding-bottom:12px}}

/* «Изменить событие» and «Настройки» under the cover: two quiet tools on one line */
.ep .ep-set-link{display:flex;flex-wrap:wrap;gap:4px 20px;margin:-8px 0 0}
.ep .ep-tool{display:inline-flex;align-items:center;gap:6px;min-height:44px;padding:0;border:0;background:none;color:var(--q-ink);font:600 15px/1.2 var(--font-head);cursor:pointer;text-decoration:none}
.ep .ep-tool span{text-decoration:underline;text-decoration-color:var(--q-sky);text-decoration-thickness:2px;text-underline-offset:4px}
/* the edit sheet: a dialog over the page, the whole screen on a phone; a bar on top with the cross and Save */
.ep-edit{width:min(860px,calc(100vw - 32px));max-height:calc(100dvh - 48px);padding:0;border:2px solid var(--q-ink);background:var(--q-white);color:var(--q-ink)}
.ep-edit::backdrop{background:rgba(28,28,27,.5)}
.ep-ed-bar{position:sticky;top:0;z-index:1;display:flex;align-items:center;gap:12px;padding:8px 16px;border-bottom:1px solid var(--q-line);background:var(--q-white)}
.ep-ed-bar strong{flex:1 1 auto;font:700 18px/1.2 var(--font-head)}
.ep-ed-body{display:flex;flex-direction:column;gap:20px;padding:16px 20px 24px}
.ep-ed-langs{display:grid;grid-template-columns:1fr 1fr;gap:20px}
.ep-ed-lang,.ep-ed-grp{margin:0;padding:0;border:0;display:flex;flex-direction:column;gap:12px;min-width:0}
.ep-ed-lang legend,.ep-ed-grp legend{padding:0;margin-bottom:10px;font:700 17px/1.2 var(--font-head)}
.ep-ed .ep-field{display:flex;flex-direction:column;gap:4px;font:600 15px/1.25 var(--font-head)}
.ep-ed .qv-input,.ep-ed .qv-textarea{width:100%;box-sizing:border-box;min-height:44px;font:400 16px/1.4 var(--font-brand)}
.ep-ed-times{gap:16px;align-items:flex-start} .ep-ed-times .ep-field{flex:1 1 140px}
.ep-ed .ep-err:empty{display:none}
@media (max-width:720px){
  .ep-edit{width:100vw;max-width:100vw;height:100dvh;max-height:100dvh;margin:0;border:0}
  .ep-ed-langs{grid-template-columns:1fr}
  .ep-ed-body{padding:16px}
}
.ep-ed .ep-field .ep-muted{font:400 14px/1.4 var(--font-brand)}

/* «Пригласить по email» (organizers) and an invitation's panel */
.ep-ginv{padding:0}
.ep-ginv-sum{display:flex;flex-wrap:wrap;align-items:center;gap:6px 10px;padding:12px 16px;min-height:44px;box-sizing:border-box;cursor:pointer;list-style:none;font:600 16px/1.2 var(--font-head)}
.ep-ginv-sum::-webkit-details-marker{display:none}
.ep-ginv-sum .ep-muted{flex-basis:100%;padding-left:30px;font-family:var(--font-brand);font-weight:400}
.ep-ginv-form{display:flex;flex-direction:column;align-items:flex-start;gap:10px;padding:0 16px 16px}
.ep-ginv-form .ep-field,.ep-inv-form .ep-field{display:flex;flex-direction:column;gap:4px;width:100%;font:600 15px/1.25 var(--font-head)}
.ep-ginv-form textarea{width:100%;box-sizing:border-box;font:400 16px/1.4 var(--font-brand)}
.ep-ginv-form p,.ep-inv-form p{margin:0}
.ep-inv-form{display:flex;flex-direction:column;gap:10px;align-items:flex-start;width:100%}
@media (max-width:720px){.ep-share.sheet .ep-invite{display:none}}   /* inside the Stories / Post sheet the size tabs do that job */

/* Organizers' tools under the cover (worker/event-page/manage.mjs; docs/EVENT-MANAGE-HEURISTICS.md F10): one row of named buttons,
   square and outlined like the site's secondary buttons; two columns on a phone. */
.ep .ep-manage{display:grid;grid-template-columns:repeat(auto-fill,minmax(168px,1fr));gap:8px;margin:-8px 0 0}
.ep .ep-mt{display:flex;align-items:center;gap:8px;min-height:44px;padding:6px 12px;box-sizing:border-box;border:2px solid var(--q-ink);background:var(--q-white);color:var(--q-ink);font:600 15px/1.2 var(--font-head);text-align:left;text-decoration:none;cursor:pointer}
.ep .ep-mt span{text-decoration:none}.ep .ep-mt svg{flex:0 0 auto}
.ep .ep-mt:hover{background:var(--q-ink);color:var(--q-white)}
.ep .ep-mt:focus-visible{outline:3px solid var(--q-sky);outline-offset:2px}
@media (max-width:720px){.ep .ep-manage{grid-template-columns:1fr 1fr}.ep .ep-mt{padding:6px 10px}}
/* the move, cancel and delete dialogs: centred on a desktop, a sheet from the bottom on a phone */
.ep-dlg{width:min(500px,calc(100vw - 32px));max-height:calc(100dvh - 32px);padding:0;border:2px solid var(--q-ink);background:var(--q-white);color:var(--q-ink);overflow:auto;font-family:var(--font-brand)}
.ep-dlg::backdrop{background:rgba(28,28,27,.5)}
.ep-dlg form,.ep-dlg-in{display:flex;flex-direction:column;gap:16px;padding:12px 20px 20px}
.ep-dlg p{margin:0;font-size:16px;line-height:1.45}
.ep-dlg-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-right:-10px}
.ep-dlg-head h2{margin:0;font:700 22px/1.2 var(--font-head)}
.ep-dlg .ep-field{display:flex;flex-direction:column;gap:4px;font:600 15px/1.25 var(--font-head)}
.ep-dlg .qv-input,.ep-dlg .qv-textarea{width:100%;box-sizing:border-box;min-height:48px;font:400 17px/1.4 var(--font-brand)}
.ep-dlg .qv-textarea{min-height:72px}
.ep-dates{display:flex;flex-direction:column;align-items:flex-start;gap:8px}
.ep-dates.off{opacity:.45}
.ep-date-row{display:flex;align-items:flex-end;gap:4px;width:100%}
.ep-date-row .ep-field{flex:1 1 auto}
.ep-dates .ep-link{display:inline-flex;align-items:center;gap:6px;min-height:44px;padding:0;border:0;background:none;color:var(--q-ink);font:600 15px/1.2 var(--font-head);cursor:pointer;text-decoration:underline;text-decoration-color:var(--q-sky);text-decoration-thickness:2px;text-underline-offset:4px}
.ep-dlg .ep-ed-times{display:flex;gap:12px}.ep-dlg .ep-ed-times .ep-field{flex:1 1 0;min-width:0}
.ep-dlg-tell{display:flex;flex-direction:column;gap:12px;padding-top:4px;border-top:1px solid var(--q-line)}
.ep-dlg-tell .qv-check{padding-top:12px}
.ep-dlg-prev{padding:12px 14px;border:1px solid var(--q-line);font-size:15px!important}
.ep-dlg-prev[hidden],.ep-dlg [data-tell-more][hidden]{display:none}
.ep-dlg-list{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:6px;font-size:16px;line-height:1.4}
.ep-dlg-acts{display:flex;flex-wrap:wrap;gap:10px}
.ep-dlg .ep-err{margin:0;color:var(--q-red);font-weight:600}.ep-dlg .ep-err:empty{display:none}
@media (max-width:720px){
  .ep-dlg{width:100vw;max-width:100vw;margin:auto 0 0;max-height:92dvh;border-width:2px 0 0}
  .ep-dlg form,.ep-dlg-in{padding:8px 16px calc(20px + env(safe-area-inset-bottom))}
  .ep-dlg-acts .qv-btn{flex:1 1 100%;justify-content:center}
}
/* what was just saved, once, at the bottom of the screen */
.ep-toast{position:fixed;left:50%;bottom:24px;z-index:1000;transform:translateX(-50%);max-width:calc(100vw - 32px);box-sizing:border-box;padding:12px 18px;background:var(--q-ink);color:var(--q-white);box-shadow:0 0 0 2px var(--q-white);font:600 16px/1.35 var(--font-brand)}
.ep-toast:empty{display:none}
@media (max-width:720px){.ep-toast{bottom:calc(96px + env(safe-area-inset-bottom));width:calc(100vw - 32px)}}
/* the edit sheet keeps its width on a desktop (discussion.css's .ep-sheet is 420 px: F3); on a phone one language at a time (F4) */
.ep-sheet.ep-edit{width:min(860px,calc(100vw - 32px));max-width:calc(100vw - 32px)}
.ep-ed-tabs{display:none}
.ep-ed-when{display:flex;flex-wrap:wrap;align-items:center;gap:8px 14px;padding:14px 0;border-top:1px solid var(--q-line);border-bottom:1px solid var(--q-line)}
.ep-ed-when .ep-label{flex-basis:100%;color:var(--q-ink);font:700 17px/1.2 var(--font-head)}
.ep-ed-when-v{font:600 17px/1.3 var(--font-head)}
.ep-ed-when .qv-btn{display:inline-flex;align-items:center;gap:6px}
@media (max-width:720px){
  .ep-sheet.ep-edit{width:100vw;max-width:100vw;height:100dvh;max-height:100dvh;margin:0;border:0}
  .ep-ed-tabs{display:flex;gap:0;border:2px solid var(--q-ink)}
  .ep-ed-tab{flex:1 1 0;min-height:44px;border:0;background:var(--q-white);color:var(--q-ink);font:600 16px/1.2 var(--font-head);cursor:pointer}
  .ep-ed-tab[aria-pressed="true"]{background:var(--q-ink);color:var(--q-white)}
  .ep-ed[data-show="ru"] .ep-ed-lang[data-ed-lang="en"],.ep-ed[data-show="en"] .ep-ed-lang[data-ed-lang="ru"]{display:none}
  .ep-ed-lang>legend{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}   /* the tab above names the language */
}
/* a canceled event's page (manage.mjs cancelledPage) */
.ep.ep-gone{max-width:760px}
.ep-gone-box{display:flex;flex-direction:column;align-items:flex-start;gap:20px;padding:8px 0 48px}
.ep-gone-box p{margin:0;font-size:17px;line-height:1.45}
/* the headline field: the cancellation is the first and largest thing on the page (owner, 2026-11-07: "very clear that it's cancelled");
   white on the brand red is 3.6:1, so everything in it is large text (24 px and up, bold) */
.ep-gone-field{width:100%;box-sizing:border-box;padding:28px 28px 32px;background:#ff3333;color:#fff}
.ep-gone-field h1{margin:0;display:flex;flex-direction:column;gap:18px;color:#fff}
.ep-gone-big{display:flex;align-items:center;gap:14px;font:700 clamp(40px,9vw,72px)/1 var(--font-head)}
.ep-gone-big svg{width:clamp(40px,8vw,64px);height:auto;flex:0 0 auto;stroke-width:3}
.ep-gone-name{font:700 clamp(24px,4.5vw,34px)/1.15 var(--font-head)}
.ep-gone-field .ep-gone-when{margin-top:14px;font:700 24px/1.3 var(--font-head);color:#fff}
.ep-gone-when s{text-decoration-thickness:3px}
.ep-gone-box .ep-gone-lead{font-size:19px;font-weight:600}
@media (max-width:720px){.ep-gone-field{padding:22px 18px 26px}.ep-gone-field .ep-gone-when{font-size:22px}}
.ep-gone-org{display:flex;flex-direction:column;align-items:flex-start;gap:12px;width:100%;margin-top:16px;padding-top:20px;border-top:1px solid var(--q-line)}
.ep-gone-org form{margin:0}
.ep-gone-org .qv-btn{display:inline-flex;align-items:center;gap:8px}
/* «Перенести встречу»: the month of square days (site/event-page/calendar.mjs). Square, as everything in the design system; the chosen
   day fills ink like a chosen tab, today has the q-edge frame, focus is the 3 px sky ring, hover the hairline colour. 44 px days at least. */
.ep-cal{width:100%}
.ep-cal-head{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:6px}
.ep-cal-head strong{font:700 19px/1.2 var(--font-head)}
.ep-cal-nav{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;padding:0;border:2px solid var(--q-edge);background:var(--q-white);color:var(--q-ink);cursor:pointer}
.ep-cal-nav:hover:not(:disabled){border-color:var(--q-ink)}
.ep-cal-nav:disabled{opacity:.35;cursor:default}
.ep-cal table{width:100%;border-collapse:collapse;table-layout:fixed}
.ep-cal th{padding:0 0 6px;font:600 13px/1 var(--font-head);color:var(--q-muted);text-align:center}
.ep-cal td{padding:2px;text-align:center}
.ep-cal-d{display:flex;align-items:center;justify-content:center;width:100%;height:46px;padding:0;border:2px solid transparent;background:none;color:var(--q-ink);font:600 17px/1 var(--font-head);cursor:pointer}
@media (hover:hover){.ep-cal-d:hover:not(:disabled):not([aria-pressed="true"]){background:var(--q-line)}}   /* a tap on a phone leaves :hover on: never over the chosen day */
.ep-cal-d.today{border-color:var(--q-edge)}
.ep-cal-d[aria-pressed="true"]{background:var(--q-ink);border-color:var(--q-ink);color:var(--q-white)}
.ep-cal-d:disabled{color:var(--q-muted);opacity:.45;cursor:default}
.ep-cal-d:focus-visible,.ep-cal-nav:focus-visible{outline:3px solid var(--q-sky);outline-offset:1px}
.ep-cal-chosen{margin:6px 0 0!important;font:600 17px/1.35 var(--font-head)!important}
.ep-dates.off{opacity:.4}
.ep-dlg select.ep-time{width:100%}
@media (max-width:720px){.ep-cal-d{height:44px;font-size:16px}}
