.header-actions{display:flex;gap:8px;align-items:center}.coin-balance{height:var(--header-avatar-size,44px);min-width:68px;display:flex;align-items:center;justify-content:center;gap:7px;border:0;border-radius:999px;background:#eaf0f5;color:#163957;padding:0 12px;font-weight:750;font-size:14px}.header-actions .profile-avatar{width:var(--header-avatar-size,44px);height:var(--header-avatar-size,44px);flex-shrink:0}.stroycoin{width:15px;height:20px;fill:none;stroke:currentColor;stroke-width:2.5;vertical-align:middle;flex-shrink:0}.commerce-screen h2{font-size:19px}.commerce-screen h3{font-size:16px}.commerce-screen input{width:100%;padding:12px;border:1px solid #d7e2eb;border-radius:9px;min-width:0;background:white;color:#203b53}.coin-secondary{display:block;width:100%;background:#e7eff7;border:0;border-radius:8px;color:#284767;font-weight:700;padding:13px;margin:12px 0}.coin-section{padding:22px 0;border-bottom:1px solid #d9e3ed}.coin-section p{font-size:14px;color:#62768a;line-height:1.6}.coin-line{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:13px 0;border-bottom:1px solid #e4eaf0}.coin-line strong{white-space:nowrap}.coin-line small{display:block;font-size:11px;color:#5f7283;margin-top:5px}.coin-card{background:white;border:1px solid #e2e9ef;padding:18px;border-radius:10px;margin:16px 0}.coin-card h2,.coin-card h3{margin:0}.promo-controls{display:flex;align-items:center;gap:8px;margin-top:8px}.promo-controls input{flex:1}.promo-controls button{width:auto;margin:0;padding:12px}.coin-small{font-size:12px!important;color:#5f7283}.coin-pre{white-space:pre-wrap;font-size:14px;line-height:1.7}.commerce-banner{display:block;width:auto;max-width:100%;height:auto;max-height:min(45vh,420px);margin:0 auto 16px;object-fit:contain;border-radius:10px}.commerce-qr{display:block;max-width:230px;width:100%;aspect-ratio:1;margin:20px auto}.merch-card{display:grid;grid-template-columns:95px 1fr;gap:12px}.merch-card>img{width:95px;height:110px;object-fit:contain;background:#f7f5ef}.merch-card>button{grid-column:1/-1}.merch-order-photo{max-width:220px;width:100%}.coin-pages{display:flex;justify-content:center;gap:10px;margin:16px}.coin-pages button{padding:8px 13px;border:0;border-radius:6px;background:#e7eff7;color:#1d4163}.coin-dialog{max-width:410px;width:calc(100% - 30px);max-height:calc(100dvh - env(safe-area-inset-top) - env(safe-area-inset-bottom) - 40px);border:0;border-radius:12px;padding:20px;color:#24445f}.coin-dialog::backdrop{background:#152c4b88}.coin-dialog-head{display:flex;justify-content:space-between;align-items:center;gap:12px}.coin-dialog-head h2{font-size:20px}.coin-dialog-head button{border:0;background:transparent;color:#5c7389;font-size:28px}.coin-dialog-text{max-height:55dvh;overflow:auto;white-space:pre-wrap;font-size:15px;line-height:1.75;padding:6px 0 18px}.coin-dialog button{min-height:44px}.coin-balance[hidden]{display:none}#promo-message{color:#b44747}.header-actions{--header-avatar-size:44px}.coin-dialog-confirm-row{display:flex;gap:8px}.coin-dialog-confirm-row button{flex:1}
.app-header{padding-top:calc(8px + env(safe-area-inset-top))}.update-banner{top:calc(68px + env(safe-area-inset-top))}
.stroycoin{width:auto;height:1cap;object-fit:contain;vertical-align:baseline}
.coin-balance .stroycoin{height:.8em}
.ticket-options{display:grid;gap:10px;border:0;padding:0;margin:14px 0}
.ticket-option{position:relative;display:block;padding:15px 14px;border:1px solid #d7e2ed;border-radius:9px;background:#fff;cursor:pointer;color:#1f3b60}
.ticket-option.selected{border-color:#1f3b60;background:#edf3fa;box-shadow:inset 0 0 0 1px #1f3b60}
.ticket-option.unavailable{cursor:default;background:#f8fafc}
.ticket-option:focus-within{outline:2px solid #7497bd;outline-offset:2px}
.commerce-screen .ticket-option input{position:absolute;top:17px;right:14px;width:16px;height:16px;padding:0;accent-color:#1f3b60}
.ticket-option-heading{display:flex;align-items:start;justify-content:space-between;gap:12px;padding-right:26px;font-size:17px;line-height:1.3}
.ticket-option-heading strong:last-child{white-space:nowrap}
.ticket-description{display:block;margin:10px 0;font-size:13px;line-height:1.5;color:#526b82}
.ticket-inclusions{list-style:none;display:grid;gap:6px;padding:0;margin:12px 0;font-size:13px;line-height:1.4}
.ticket-inclusions li{display:flex;gap:7px;align-items:baseline}
.ticket-inclusions li span{color:#357558;flex:none}
.ticket-inclusions-toggle summary{display:inline-flex;align-items:center;gap:8px;min-height:32px;cursor:pointer;list-style:none;font-size:13px;font-weight:600;color:#1f3b60}
.ticket-inclusions-toggle summary::-webkit-details-marker{display:none}
.ticket-inclusions-toggle summary::after{content:'';width:6px;height:6px;border-right:2px solid currentColor;border-bottom:2px solid currentColor;transform:translateY(-2px) rotate(45deg)}
.ticket-inclusions-toggle[open] summary::after{transform:translateY(2px) rotate(-135deg)}
.ticket-inclusions-toggle summary:focus-visible{outline:2px solid #7497bd;outline-offset:2px}
.ticket-inclusions-toggle .ticket-inclusions{margin:6px 0 4px}
.ticket-option small{display:block;color:#a3531f;font-size:14px;font-weight:600;margin-top:9px;line-height:1.4}
.ticket-continue{position:sticky;bottom:calc(82px + env(safe-area-inset-bottom));z-index:1;width:100%;margin-top:4px}
.ticket-continue:disabled{opacity:.6;cursor:default}
.event-day-list{list-style:none;padding:0;margin:12px 0 20px;display:grid;gap:10px}
.event-day-list li{display:flex;justify-content:space-between;flex-wrap:wrap;gap:6px 16px;padding:12px;border:1px solid #d8e2ed;border-radius:9px;font-size:14px;line-height:1.5}
.event-day-list li span{white-space:nowrap}
.event-legacy-bounds{font-size:14px;line-height:1.6}
/* Keep native date/time controls within the viewport without removing their picker. */
input:is([type=date],[type=time],[type=datetime-local]){display:block;width:100%;inline-size:100%;min-width:0;min-inline-size:0;max-width:100%;max-inline-size:100%;box-sizing:border-box;-webkit-appearance:none;appearance:none;overflow:hidden}
input:is([type=date],[type=time],[type=datetime-local])::-webkit-date-and-time-value{min-width:0;text-align:left}
input:is([type=date],[type=time],[type=datetime-local])::-webkit-datetime-edit{min-width:0;max-width:100%;padding:0}
.people-event-filter{display:grid;gap:8px;margin:16px 0;min-width:0}
.people-event-filter select,#private-note{width:100%;min-width:0;padding:10px;border:1px solid #cfdbe8;border-radius:8px;background:#fff;color:#203b53;font:inherit;font-size:16px}
.people-event-filter select{min-height:46px}
.person-card[role=button]{cursor:pointer}.person-card[role=button]:focus-visible{outline:2px solid #315d86;outline-offset:2px}
#person-dialog{max-height:85dvh;overflow:auto}#person-content p{overflow-wrap:anywhere;white-space:pre-wrap}
.profile-reward-section { margin: 14px 0; border-top: 1px solid #dbe3eb; padding-top: 12px; }
.profile-reward-section summary { display: flex; flex-direction: column; gap: 5px; cursor: pointer; }
.profile-reward-section ul { padding: 0; list-style: none; }
.profile-reward-section li { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 6px 12px; margin: 10px 0; overflow-wrap: anywhere; }
.profile-reward-section li .stroycoin { width: auto; height: .85em; }

#coin-history-filter[hidden]{display:none}#coin-history-filter{display:block;font-size:14px}#coin-history-direction{display:block;width:100%;padding:12px;margin-top:6px;border:1px solid #d7e2eb;border-radius:9px;background:white;color:#203b53}#coin-history-pages{flex-wrap:wrap;align-items:center}#coin-history-pages [role="alert"]{width:100%;color:#a43c3c}.coin-line>span{min-width:0;overflow-wrap:anywhere}
.photo-dialog{width:min(480px,calc(100% - 28px));max-height:calc(100dvh - 40px);overflow:auto;border:1px solid #d7e2eb;border-radius:12px;padding:20px;color:#203b53}
.photo-dialog::backdrop{background:#152c4b88}
.photo-dialog-head{display:flex;align-items:center;justify-content:space-between;gap:12px;position:sticky;top:0;z-index:1;background:white}
.photo-dialog-head h2{margin:0;font-size:22px}
.photo-dialog-head button{background:transparent;border:0;color:#526b82;font-size:28px;min-width:44px;min-height:44px;flex:none}
.photo-dialog p{line-height:1.5;font-size:14px}
#photo-preview{display:block;width:100%;max-height:40dvh;object-fit:contain;border-radius:8px;background:#f4f7fa}
.photo-preview-actions{display:grid;gap:8px;margin-top:14px}
.photo-preview-actions button{width:100%;margin:0;min-height:44px}
.photo-dialog button:disabled{opacity:.6;cursor:wait}
.photo-dialog [hidden]{display:none!important}

#promo-message.is-success{color:#28794f;font-weight:650}
.commerce-screen #promo-code[readonly]{background:#eef1f4;color:#657587;border-color:#d6dee5;cursor:default}
.participant-discard-actions{display:grid;gap:8px}.participant-discard-actions button{margin:0;width:100%}
.people-search-label{display:grid;gap:8px;margin:16px 0;font-size:14px}.people-search-label input{width:100%;min-width:0;min-height:46px;padding:11px;border:1px solid #cfdbe8;border-radius:8px;background:#fff;color:#203b53;font:inherit;font-size:16px}
.ticket-category-symbol{width:20px;height:20px;vertical-align:-3px;margin-right:7px;flex:none}

#commerce-event-title{overflow-wrap:anywhere}
#commerce-event-description,#dialog-description,#coin-dialog-text,.ticket-description{white-space:pre-wrap;overflow-wrap:anywhere}.home-event-grid{display:grid;gap:12px;margin-bottom:24px}.home-event-card{padding:18px;border:1px solid #d5e0ed;border-radius:12px;background:#fff;min-width:0}.home-event-title{display:flex;gap:10px;align-items:flex-start}.home-event-title svg{flex:none;margin-top:2px}.home-event-card h3{font-size:18px;line-height:1.35;margin:0 0 10px;overflow-wrap:anywhere}.home-event-card p{font-size:14px;line-height:1.5;margin:6px 0;color:#526b82;overflow-wrap:anywhere}.home-ticket-status{display:block;font-size:14px;margin:12px 0}.home-event-actions{display:flex;gap:8px;flex-wrap:wrap}.home-event-actions button{flex:1;min-width:120px}.home-empty{font-size:14px;line-height:1.5;color:#526b82;padding:8px 0}@media(min-width:900px){.home-event-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
/* Payment waiting uses ordinary flow; it does not alter the login layout. */
.payment-link { display: flex; align-items: center; justify-content: center; text-decoration: none; }

#checkout-content { margin-top: 20px; }
.checkout-confirmation { display:flex; gap:12px; align-items:flex-start; margin:18px 0; font-size:14px; line-height:1.5; }
.checkout-confirmation input { width:20px; height:20px; flex:0 0 20px; margin-top:2px; }
#checkout-payment-state { color:#17324b; font-weight:600; }
/* The ticket opened after a purchase stays clear of the sticky header; the square QR keeps its place while it loads. */
#commerce-owned { scroll-margin-top:80px; }
.payment-return-note { margin:14px 2px 0; padding:12px 14px; border-radius:10px; background:#e5f1fa; color:#173f63; font-size:14px; line-height:1.45; }
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
/* Arrival from the forum landing: the chosen ticket and payment come first, the forum details stay one tap away. */
.is-checkout-focus :is(#commerce-event-kind,#commerce-event-date,#commerce-about),.is-checkout-focus .ticket-option:not(.selected){display:none!important}
.commerce-focus{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:-4px 0 6px;color:#60748a;font-size:15px;line-height:1.4}
.commerce-focus p{margin:0}
.commerce-focus-more{flex:none;min-height:44px;padding:0 4px;border:0;background:none;color:#1f5f99;font:inherit;font-weight:650;text-decoration:underline;text-underline-offset:3px;cursor:pointer}
.checkout-focus-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:6px}
.checkout-focus-head h2{margin:0}
.is-checkout-focus .ticket-options{margin:8px 0 0}
/* The chosen ticket card above already names the ticket and its price; a started payment keeps its own card. */
.is-checkout-focus #checkout-content{margin-top:0}
.is-checkout-focus #checkout-content:not(.has-payment)>.coin-card{display:none}
.is-checkout-focus #checkout-content>.coin-section{padding:14px 0}
.is-checkout-focus .checkout-confirmation{margin:12px 0}
/* The event page (owner 21.10.2026, cabinet audit item 4): kind, title and one line, then tariffs and payment; the rest is folded. */
.event-kind{margin:0 0 4px;color:#15598f;font-size:15px;font-weight:650;line-height:1.3}
.commerce-event-body>.event-kind+h1{margin-top:0}
#commerce-event-date{margin:4px 0 0;color:#48677f;font-size:16px;line-height:1.4}
.event-about{margin:18px 0 0;border:1px solid #d7e2ed;border-radius:12px;background:#fff}
.event-about>summary{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:52px;padding:0 16px;color:#1f3b60;font-size:16px;font-weight:650;cursor:pointer;list-style:none}
.event-about>summary::-webkit-details-marker{display:none}
.event-about>summary span{transition:transform .15s}.event-about[open]>summary span{transform:rotate(180deg)}
.event-about>summary:focus-visible{outline:2px solid #7497bd;outline-offset:2px}
.event-about-body{display:grid;gap:12px;padding:0 16px 16px}
.event-about-body>*{margin:0}.event-about-body .commerce-banner{justify-self:center;max-height:70dvh}
.event-about-body .event-day-list{margin:0}.event-about-body h2{margin:4px 0 0;font-size:18px}
/* Computer: forms and single items read in one column of 760 px; lists and the home page go up to 1 100 px (cabinet audit item 22). */
@media(min-width:900px){
  :is([data-screen="forum"],[data-screen="rewards"],[data-screen="coins"],[data-screen="checkout"],[data-screen="merch"],[data-screen="merch-orders"],[data-screen="commerce-event"],[data-screen="second-day"]){max-width:760px;margin-inline:auto}
  .commerce-event-body>h1:first-child{margin-top:0}
}
/* Person card: photo, video card and contacts that open the phone or messenger (Л19). */
.person-head{display:flex;align-items:center;gap:14px;margin:12px 0 4px}.person-head h2{margin:0;font-size:21px;line-height:1.2;overflow-wrap:anywhere}
.person-head-avatar{width:84px;height:84px;font-size:30px}.person-subtitle{margin:4px 0 0;color:#5f7388;font-size:14px;line-height:1.35}
.person-head .person-resident{display:inline-block;margin:6px 0 0;padding:3px 9px;border-radius:999px;background:#fff4d6;color:#7a5200;font-size:13px;font-weight:700}
#person-video{display:block;width:100%;max-height:60dvh;margin:12px 0;border-radius:10px;background:#0f2338}#person-video[hidden]{display:none}
.person-contacts a{color:#1d598c;font-weight:650;text-decoration:underline;text-underline-offset:2px}
/* «Хочу познакомиться» on the card (cabinet audit item 18, owner 21.10.2026). */
.introduction{display:grid;gap:10px;margin:18px 0}.introduction p{margin:0}
.introduction .save-profile{justify-content:center;font-size:17px}
.introduction-hint{color:#5f7388;font-size:14px;line-height:1.45}
.introduction-state{display:flex;gap:10px;align-items:center;padding:12px 14px;border-radius:12px;background:#eef7f1;color:#23603f;font-size:15px;line-height:1.4}.introduction-state svg{flex:none}
.introduction-incoming{font-size:15px;line-height:1.45}
.introduction-actions{display:grid;gap:8px}.introduction-actions .coin-secondary{margin:0;min-height:44px}
.load-failure{display:grid;gap:10px;justify-items:start;align-content:start;width:100%;padding:14px 16px;border:1px solid #f0d2c8;border-radius:12px;background:#fff8f5;color:#7a3b26}.load-failure p{margin:0}.load-failure button{min-height:44px;height:auto;padding:8px 18px}#home-upcoming-events .load-failure{flex:1;align-content:center;justify-items:center;text-align:center}
.registration-gift{position:absolute;top:calc(100% + 10px);right:12px;z-index:6;display:flex;align-items:flex-start;gap:12px;box-sizing:border-box;width:min(340px,calc(100% - 24px));padding:14px 6px 14px 14px;border-radius:14px;background:#17324b;color:#fff;box-shadow:0 12px 32px #0f22382e;font-size:14px;line-height:1.35;animation:registration-gift-in .25s ease-out}
.registration-gift::before{content:'';position:absolute;top:-6px;right:var(--gift-arrow,90px);width:14px;height:14px;border-radius:3px 0 0 0;background:inherit;transform:rotate(45deg)}
.registration-gift-icon{flex:0 0 auto;width:28px;height:28px;margin-top:1px;color:#f2c76b}
.registration-gift p{flex:1;margin:0}.registration-gift strong{display:block;font-size:15px;font-weight:750}.registration-gift p>span{display:block;margin-top:3px;color:#d5e2ef}.registration-gift-amount{white-space:nowrap}
.registration-gift-close{flex:0 0 auto;width:36px;height:36px;margin:-8px 0;border:0;border-radius:50%;background:transparent;color:#fff;font-size:24px;line-height:1;cursor:pointer}
.registration-gift-close:focus-visible{outline:2px solid #f2c76b;outline-offset:-2px}
/* The ticket card names its event (owner 20.10.2026, cabinet audit item 9). */
.coin-card .ticket-event{margin:6px 0 14px;color:#48677f;font-size:15px;line-height:1.4}.ticket-event b{display:block;color:#17324b;font-size:17px;font-weight:750}.ticket-event span{display:block}.coin-card .ticket-save{margin-top:4px}
/* The landing path shows the gift on the paid ticket instead (owner 20.10.2026, cabinet audit item 3). */
.ticket-gift{display:flex;align-items:flex-start;gap:10px;margin:0 0 14px;padding:12px 4px 12px 12px;border:1px solid #f2c76b;border-radius:12px;background:#fff8e6;color:#17324b;font-size:14px;line-height:1.4;text-align:left}
.ticket-gift .registration-gift-icon{color:#c8901f}.ticket-gift p{flex:1;margin:0}.ticket-gift strong{display:block;font-size:15px;font-weight:750}.ticket-gift p>span{display:block;margin-top:3px;color:#48677f}
.ticket-gift .registration-gift-close{width:44px;height:44px;margin:-10px 0;color:#17324b}
/* Cabinet audit item 19: the ticket asks once whether others may see that the participant is going. */
.ticket-visibility{margin:14px 0 0;padding:14px;border:1px solid #d7e3ee;border-radius:12px;background:#fff;color:#17324b;font-size:15px;line-height:1.4;text-align:left}
.ticket-visibility p{margin:0}.ticket-visibility small{display:block;margin-top:8px;color:#5f7388;font-size:13px}
.ticket-visibility-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:10px}.ticket-visibility-actions button{justify-content:center;margin:0;min-height:44px}
.ticket-visibility .ticket-visibility-error{margin-top:8px;color:#a33a2b}
@keyframes registration-gift-in{from{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:none}}
@media (prefers-reduced-motion:reduce){.registration-gift{animation:none}}
/* Second day (owner 16.10.2026): the request block under the ticket and its short form. */
.reminders-box{margin:18px 0 4px;padding:14px;border:1px solid #d7e3ee;border-radius:10px;background:#fff}
.reminders-box h3{margin:0 0 6px;color:#183e68;font-size:1rem}
.reminders-box p{margin:4px 0;color:#405a72;line-height:1.4}
.reminders-box .reminders-telegram{display:flex;align-items:center;justify-content:center;min-height:44px;margin:10px 0 0;padding:10px 12px;text-align:center;text-decoration:none}
.reminders-box .reminders-state{color:#2f6f4a;font-weight:700}
.reminders-link{padding:0;border:0;background:none;color:#1a598c;font:inherit;font-weight:650;text-decoration:underline;text-underline-offset:3px;cursor:pointer}
.second-day-box{margin:18px 0 4px;padding:14px;border:1px solid #c8dcf6;border-radius:10px;background:#f3f8fe}
.second-day-box h3{margin:0 0 6px;color:#183e68;font-size:1rem}
.second-day-box p{margin:4px 0;color:#405a72;line-height:1.4}
.second-day-box .save-profile{width:100%;margin-top:10px}
.second-day-box .coin-secondary{margin:10px 0 0}
.second-day-box .second-day-state{color:#183e68;font-weight:700}
.second-day-box .second-day-state.is-confirmed{color:#2f6f4a}
.second-day-contacts{display:grid;gap:8px;margin-top:10px}
.second-day-box .second-day-contacts .coin-secondary{display:flex;align-items:center;justify-content:center;min-height:44px;margin:0;padding:10px 12px;text-align:center;text-decoration:none}
.second-day-intro{margin:0 0 18px;padding:14px;border-radius:10px;background:#eef6ff;color:#24425f;line-height:1.45}
.second-day-form{display:grid;gap:14px}
.second-day-form .coin-small{margin:0}
.second-day-form .save-profile{width:100%}
#second-day-message:empty{display:none}
#second-day-message{margin:0;color:#a23f32}
/* Landing checkout (owner 16.10.2026, variant Б): the chosen ticket without queue count and empty «what is included», so promo code and payment fit the first screen. */
.is-checkout-focus .ticket-option small,.is-checkout-focus .ticket-inclusions-empty,.is-checkout-focus #promo-form>.coin-small{display:none}
.is-checkout-focus #promo-form>label{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
.is-checkout-focus #promo-form .promo-controls{margin-top:0}
.is-checkout-focus #checkout-content>.coin-section{padding:10px 0}
.is-checkout-focus #promo-message:empty{display:none}
.checkout-receipt-note{margin:8px 0 0;text-align:center}
/* Cabinet audit items 20 and 21: the balance first, then what it buys; the invitation says what it brings and shares in one tap. */
.coin-summary{margin:8px 0 6px;padding:18px;border:1px solid #f2c76b;border-radius:14px;background:#fff8e6;color:#17324b}
.coin-summary p{margin:0;color:#48677f;font-size:15px;line-height:1.45}
.coin-summary .coin-summary-balance{display:flex;align-items:center;gap:10px;margin-bottom:6px;color:#17324b;font-size:20px;font-weight:650;line-height:1.2}
.coin-summary-balance .stroycoin{width:auto;height:30px}.coin-summary-balance strong{font-size:30px;font-weight:800}
.coin-summary-actions,.coin-invite-actions{display:grid;gap:8px;margin-top:14px}
.coin-summary-actions button,.coin-invite-actions button{justify-content:center;margin:0;min-height:48px}
.coin-invite-actions{margin-top:10px}.coin-invite-actions button[hidden]{display:none}
.coin-section #coin-referral-reward{color:#17324b;font-size:15px;line-height:1.45}
/* «Билеты» tab (owner 21.10.2026, package 3 sketch): the nearest ticket with its QR, other tickets one line each, past ones folded. */
.tickets-list{display:grid;gap:12px;margin-top:14px}
.ticket-main{display:grid;gap:8px;padding:16px;border-radius:14px;background:#17324b;color:#fff}
.ticket-main h2{margin:0;color:#fff;font-size:20px;line-height:1.25;overflow-wrap:anywhere}
.ticket-main p{margin:0;color:#d2deea;font-size:15px;line-height:1.4}
.ticket-main .ticket-main-top{color:#f2c76b;font-size:14px;font-weight:650}
.ticket-main-qr{justify-self:center;box-sizing:border-box;width:min(220px,70vw);aspect-ratio:1;margin:6px 0;padding:8px;border-radius:10px;background:#fff}
.ticket-main-save{min-height:48px;border:0;border-radius:10px;background:#fff;color:#17324b;font:inherit;font-size:16px;font-weight:650;cursor:pointer}
.ticket-main-more{min-height:44px;border:0;background:none;color:#d2deea;font:inherit;font-size:15px;text-decoration:underline;text-underline-offset:3px;cursor:pointer}
.ticket-row{display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%;padding:14px 16px;border:1px solid #d9e3ed;border-radius:12px;background:#fff;color:#17324b;font:inherit;text-align:left;cursor:pointer}
.ticket-row-copy{display:grid;gap:3px;min-width:0}
.ticket-row-copy small{color:#15598f;font-size:14px;font-weight:650}
.ticket-row-copy strong{font-size:17px;line-height:1.25;overflow-wrap:anywhere}
.ticket-row-copy span{color:#48677f;font-size:15px;line-height:1.35}
.ticket-row-go{flex:none;color:#15598f;font-size:15px;font-weight:650;white-space:nowrap}
.ticket-row-note{border-color:#f2c76b;background:#fff8e6}
.tickets-empty{display:grid;justify-items:center;gap:8px;padding:24px 16px;border:1px solid #d9e3ed;border-radius:14px;background:#fff;text-align:center}
.tickets-empty svg{width:40px;height:40px;color:#5f7388}
.tickets-empty strong{font-size:19px}
.tickets-empty p{margin:0;color:#48677f;font-size:15px;line-height:1.45}
.tickets-next-title{margin:6px 0 0;font-size:19px}
.tickets-next{display:grid;gap:6px;width:100%;padding:16px;border:1px solid #d9e3ed;border-radius:12px;background:#fff;color:#17324b;font:inherit;text-align:left;cursor:pointer}
.tickets-next small{color:#15598f;font-size:14px;font-weight:650}
.tickets-next strong{font-size:18px;line-height:1.25;overflow-wrap:anywhere}
.tickets-next>span{color:#48677f;font-size:15px;line-height:1.4}
.tickets-next>.tickets-next-go{display:flex;align-items:center;justify-content:center;gap:6px;min-height:48px;margin-top:8px;border-radius:10px;background:#15598f;color:#fff;font-size:16px;font-weight:650}
.tickets-past{border:1px solid #d9e3ed;border-radius:12px;background:#fff}
.tickets-past summary{display:flex;justify-content:space-between;align-items:center;min-height:52px;padding:0 16px;color:#48677f;font-size:16px;font-weight:650;cursor:pointer;list-style:none}
.tickets-past summary::-webkit-details-marker{display:none}
.tickets-past[open] summary span{transform:rotate(180deg)}
.tickets-past>div{display:grid;gap:8px;padding:0 10px 10px}
#tickets-message:empty{display:none}
@media(min-width:900px){[data-screen="tickets"]{max-width:760px;margin-inline:auto}.ticket-main{grid-template-columns:minmax(0,1fr) 220px;column-gap:24px;padding:24px}.ticket-main>:not(.ticket-main-qr){grid-column:1}.ticket-main-qr{grid-column:2;grid-row:1/span 5;width:220px;margin:0}.ticket-main-save{justify-self:start;padding:0 22px}.ticket-main-more{justify-self:start;padding:0}}
/* Owner 22.10.2026: «Закрыть» stays at the top of a long card while it scrolls, and the private note takes little room. */
.person-close{position:sticky;top:0;z-index:3;display:flex;align-items:center;gap:6px;width:max-content;min-height:40px;margin:0 0 0 auto;padding:0 12px 0 14px;border:1px solid #d3dfea;border-radius:999px;background:#fff;color:#284767;font:inherit;font-size:15px;font-weight:700;box-shadow:0 2px 10px #15304d29;cursor:pointer}
.person-close svg{flex:none}
#person-dialog .person-head{margin-top:6px}
.private-note{display:grid;gap:6px;margin:16px 0 0;padding-top:14px;border-top:1px solid #e3ebf3}
.private-note label{color:#203b53;font-size:15px;font-weight:700}
.private-note label small{color:#6a7f93;font-size:13px;font-weight:500}
.private-note #private-note{min-height:0;padding:8px 10px;line-height:1.4;resize:none;overflow:auto}
.private-note .private-note-save{justify-self:end;min-height:40px;padding:0 16px;border:0;border-radius:8px;background:#e7eff7;color:#284767;font:inherit;font-size:15px;font-weight:700;cursor:pointer}
/* Owner 22.10.2026: «Скопировать ссылку» answers on the button itself. */
#copy-referral.is-copied{background:#e3f4ea;color:#1f6a3f}
.coin-invite-status{margin:8px 0 0;color:#8a3b2f;font-size:14px;line-height:1.4}.coin-invite-status:empty{display:none}
#coin-referral{box-sizing:border-box;width:100%;margin-top:10px;padding:10px;border:1px solid #cfdbe8;border-radius:8px;background:#fff;color:#203b53;font:inherit;font-size:15px}
/* Owner 22.10.2026: a forum ticket and the forum's page lead back to the forum landing. */
a.ticket-main-more{display:flex;align-items:center;justify-content:center;gap:4px}
.event-about-body .event-landing{display:flex;align-items:center;justify-content:center;gap:6px;text-align:center;text-decoration:none}
