/* Shared event cards: customer order page and administrator preview. */
.event-modal-overlay { display:none; position:fixed; inset:0; width:100%; height:100%; height:100dvh; padding:16px; box-sizing:border-box; background:rgba(15,23,42,.55); z-index:2147483647; align-items:center; justify-content:center; }
.event-modal-content { display:flex; flex-direction:column; min-height:0; max-height:calc(100vh - 32px); max-height:calc(100dvh - 32px); background:var(--sns-theme-surface); border:1px solid var(--sns-theme-line); border-radius:var(--sns-theme-radius-overlay); overflow:hidden; width:100%; max-width:400px; box-sizing:border-box; font-size:15px; line-height:1.5; letter-spacing:-.035em; box-shadow:0 10px 40px rgba(0,0,0,.2); }
.event-modal-content--referral { max-width:420px; }
.event-modal-content:focus { outline:none; }
.event-modal-heading { display:flex; align-items:center; justify-content:space-between; gap:12px; padding:12px 16px; border-bottom:1px solid var(--sns-theme-line); color:var(--sns-theme-text); }
.event-modal-heading strong { min-width:0; font-size:14px; overflow-wrap:anywhere; }
.event-modal-heading [data-popup-progress] { flex-shrink:0; color:var(--sns-theme-text-2); font-size:12px; font-variant-numeric:tabular-nums; }
.event-modal-img { min-height:0; overflow:auto; overscroll-behavior:contain; }
.event-modal-img img { display:block; width:100%; height:auto; }
.event-modal-image-error { min-height:160px; padding:24px; margin:0; color:var(--sns-theme-text); overflow-wrap:anywhere; }
.event-modal-image-error span { display:block; margin-top:8px; color:var(--sns-theme-text-2); }
.sns-event-card { color:var(--sns-theme-text); text-align:left; word-break:keep-all; overflow-wrap:anywhere; }
.sns-event-card-hero { box-sizing:border-box; padding:22px; min-height:234px; background:var(--sns-theme-surface); border-bottom:1px solid var(--sns-theme-line); }
.sns-event-card-topline { min-height:20px; margin-bottom:12px; font-size:12px; font-weight:650; color:var(--sns-theme-text-2); }
.sns-event-card-hero h2 { margin:0; font-size:20px; font-weight:750; line-height:1.4; letter-spacing:-.045em; }
.sns-event-card-benefit { display:flex; align-items:baseline; gap:8px; min-height:64px; margin:8px 0 12px; color:var(--sns-theme-brand-strong); }
.sns-event-card-benefit strong { font-size:48px; font-weight:800; line-height:1.25; letter-spacing:-.045em; font-variant-numeric:tabular-nums; }
.sns-event-card-benefit span { font-size:13px; font-weight:650; }
.sns-event-card-benefit--pair { gap:24px; }
.sns-event-card-benefit--pair > div { display:flex; align-items:baseline; gap:8px; }
.sns-event-card-meta { display:grid; gap:4px; color:var(--sns-theme-text-2); font-size:12px; line-height:1.5; }
.sns-event-card-meta p { margin:0; }
.sns-event-card-body { padding:18px 22px 20px; }
.sns-event-card-body > p { margin:0; font-size:13px; font-weight:650; line-height:1.6; }
.sns-event-card-body > .sns-event-card-detail { margin-top:4px; font-size:12px; font-weight:400; color:var(--sns-theme-text-2); }
.sns-event-card-action { display:flex; align-items:center; justify-content:center; gap:10px; min-height:46px; margin-top:16px; padding:10px 12px; box-sizing:border-box; border:1px solid var(--sns-theme-brand-strong); border-radius:var(--sns-theme-radius-control); background:var(--sns-theme-brand-strong); color:var(--sns-theme-on-brand); font-size:14px; font-weight:700; line-height:1.5; text-decoration:none; }
.sns-event-card-action:is(:hover,:focus-visible) { color:var(--sns-theme-on-brand); text-decoration:none; filter:brightness(.94); }
.event-modal-content :is(a,button,input):focus-visible { outline:2px solid var(--sns-theme-brand); outline-offset:2px; }
.event-modal-footer { flex:0 0 auto; display:grid; gap:4px; padding:8px 16px 12px; background:var(--sns-theme-surface); border-top:1px solid var(--sns-theme-line); }
.event-modal-dismiss-options { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; }
.event-modal-content .event-modal-footer label { display:flex; align-items:center; justify-content:center; gap:8px; min-height:44px; font-size:12px; color:var(--sns-theme-text-2); font-weight:500; margin:0; cursor:pointer; letter-spacing:-.035em; }
.event-modal-content .event-modal-footer label input { flex:0 0 auto; width:18px; height:18px; margin:0; accent-color:var(--sns-theme-brand-strong); cursor:pointer; }
.event-modal-footer .event-modal-close-btn { min-height:44px; margin:0; padding:8px 12px; border:1px solid var(--sns-theme-line); border-radius:var(--sns-theme-radius-control); background:var(--sns-theme-surface); color:var(--sns-theme-text); font:inherit; font-size:13px; font-weight:650; cursor:pointer; letter-spacing:-.035em; }
.event-modal-footer .event-modal-close-btn:hover { background:var(--sns-theme-surface-hover); }
.event-modal-actions { display:flex; gap:8px; }
.event-modal-actions > button { flex:1; min-width:0; }
.event-modal-footer .event-modal-next-btn { color:var(--sns-theme-on-brand); background:var(--sns-theme-brand-strong); border-color:var(--sns-theme-brand-strong); }
.event-modal-footer .event-modal-next-btn:hover { background:var(--sns-theme-brand-strong); filter:brightness(.94); }
.event-modal-overlay [hidden] { display:none; }
@media (max-width:360px) {
  .sns-event-card-hero { padding:20px 16px; }
  .sns-event-card-body { padding:18px 16px; }
  .sns-event-card-hero h2 { font-size:18px; }
  .event-modal-footer { padding-inline:12px; }
  .event-modal-content .event-modal-footer label { gap:5px; font-size:11px; }
}
