.calendar-trigger {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  min-height: 44px;
  margin-top: 16px;
  color: #092f50;
  font: 0.9375rem/1.5 var(--sans);
  text-underline-offset: 4px;
}
.calendar-trigger svg { flex: none; }
.calendar-dialog {
  width: min(420px, calc(100% - 40px));
  max-height: calc(100dvh - 40px);
  padding: 28px;
  border: 1px solid var(--rule);
  border-radius: 2px;
  background: #fff;
  color: var(--ink);
}
.calendar-dialog::backdrop { background: rgb(32 35 38 / 35%); }
.calendar-dialog h2 { margin: 0; font: 400 1.75rem/1.15 var(--serif); }
.calendar-dialog .calendar-details { margin: 12px 0 24px; font: 1rem/1.5 var(--sans); color: var(--ink-soft); white-space: pre-line; }
.calendar-options { display: grid; gap: 12px; }
.calendar-options a {
  display: flex;
  justify-content: center;
  align-items: center;
  min-height: 48px;
  padding: 12px 16px;
  border: 1px solid var(--rule);
  border-radius: 2px;
  color: #092f50;
  font: 500 0.9375rem/1.4 var(--sans);
  text-decoration: none;
  text-align: center;
}
.calendar-options a:hover { border-color: #092f50; background: #f2f5f7; }
.calendar-dialog .calendar-hint { margin: 16px 0 0; color: var(--ink-soft); font: 0.875rem/1.5 var(--sans); }
.calendar-dialog form { margin-top: 12px; }
.calendar-cancel { min-height: 44px; padding: 0; border: 0; background: none; color: var(--ink-soft); font: 0.9375rem/1.5 var(--sans); text-decoration: underline; text-underline-offset: 4px; cursor: pointer; }
