.village-event-launcher {
  position: fixed; right: 14px; top: calc(max(10px, env(safe-area-inset-top)) + var(--top-h, 80px) + var(--online-h, 36px) + var(--alerts-h, 0px) + 16px); z-index: var(--z-alerts, 7);
  max-width: calc(100vw - 28px); min-height: 44px; padding: 10px 16px;
  color: #49351c; background: #f6e7c7; border: 1px solid #aa8041;
  border-radius: 24px; box-shadow: 0 4px 16px #38281126; font-weight: 700;
}
.village-event-dialog {
  padding: 0; width: min(520px, calc(100vw - 24px)); max-width: none;
  max-height: calc(var(--visible-h, 100dvh) - 24px - env(safe-area-inset-top) - env(safe-area-inset-bottom)); border: 1px solid #ab864d; border-radius: 18px;
  color: #392e23; background: #f7edda; box-shadow: 0 24px 90px #16100b66;
  overflow-y: auto; overscroll-behavior: contain; font-family: 'Outfit', sans-serif;
}
.village-event-dialog::backdrop { background: #22292299; backdrop-filter: blur(4px); }
.village-event-paper { padding: 28px; background: radial-gradient(ellipse at top, #fff9e9, transparent 65%); }
.village-event-close { position: absolute; right: 8px; top: 8px; min-width: 44px; min-height: 44px; border: 0; background: transparent; color: #675034; }
.village-event-kicker { margin: 0 36px 12px 0; color: #7d5930; font-size: 12px; letter-spacing: .1em; text-transform: uppercase; font-weight: 700; }
.village-event-emblem { font-size: 44px; line-height: 1.3; }
.village-event-dialog h2 { margin: 8px 0 12px; font-family: 'Cinzel', serif; font-size: 26px; line-height: 1.25; color: #46341d; }
.village-event-story, .village-event-result { font-size: 16px; line-height: 1.6; }
.village-event-clock { color: #76522a; font-size: 13px; font-weight: 600; }
.village-event-choices { display: grid; gap: 10px; }
.village-event-choices button { display: grid; gap: 5px; width: 100%; min-height: 44px; padding: 13px 15px; text-align: left; white-space: normal; color: #45351f; background: #fff9ed; border: 1px solid #c7ab77; border-radius: 10px; font: inherit; cursor: pointer; }
.village-event-choices button:hover:enabled { border-color: #7b5728; background: #f0e1be; }
.village-event-choices button:disabled { opacity: .65; cursor: default; }
.village-event-choices strong { font-size: 16px; }
.village-event-choices span { font-size: 13px; line-height: 1.5; }
.village-event-choices .village-event-cost { color: #755128; font-weight: 600; }
.village-event-shortage, .village-event-feedback { color: #8e3023; }
.village-event-feedback:empty { display: none; }
.village-event-footnote { font-size: 12px; color: #78644b; margin-bottom: 0; line-height: 1.5; }
.village-event-dialog button:focus-visible, .village-event-launcher:focus-visible { outline: 3px solid #916322; outline-offset: 2px; }
.village-event-history { list-style: none; padding: 0; }
.village-event-history li { border-left: 2px solid #b99b66; padding: 3px 12px; margin: 12px 0; }
.village-event-history time { font-size: 11px; color: #78644b; }
.village-event-history p { font-size: 13px; line-height: 1.6; margin: 5px 0; }
/* Keep aligned with SHEET_QUERY in mobile-ui.js. */
@media (max-width: 760px), (pointer: coarse) and (max-width: 1100px), (max-height: 500px) and (max-width: 1100px) {
  .sheet-open .village-event-launcher { visibility: hidden; }
  .village-event-paper { padding: 20px 16px; }
  .village-event-dialog h2 { font-size: 22px; }
  .village-event-emblem { font-size: 32px; }
  .village-event-launcher { top: auto; bottom: calc(var(--bar-h, 80px) + env(safe-area-inset-bottom) + 12px); font-size: 13px; }
}
