select { cursor: pointer; background-color: white; border-color: #d7bebe; padding-right: 32px; }
  .calendar { margin-top: 18px; padding: 18px; border: 1px solid var(--line); border-radius: 16px; background: white; }
  .calendarToolbar { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 10px; margin-bottom: 14px; }
  .calendarToolbar strong { color: var(--red-dark); }
  .calendarToolbar button { padding: 6px 10px; min-height: 40px; }
  .calendarLegend, .calendarHelp { font-size: .82rem; color: var(--ink-2); margin: 12px 0; }
  .calendarLegend { display: flex; flex-wrap: wrap; gap: 12px; }
  .calendarGrid { display: grid; grid-template-columns: repeat(7,minmax(0,1fr)); gap: 5px; }
  .calendarWeekday { text-align: center; font-size: .8rem; color: var(--muted); padding: 4px; }
  .calendarDay { border: 1px solid var(--line); background: #fafafa; border-radius: 10px; min-height: 78px; padding: 7px 3px; cursor: pointer; color: var(--ink); }
  .calendarDay:hover { background: var(--red-soft); }
  .calendarDay:disabled { opacity:.35; cursor:not-allowed; background:#eee; }
  .calendarDay[aria-pressed=true] { border: 2px solid var(--red); background: var(--red-soft); }
  .calendarDay.today { box-shadow: inset 0 -3px var(--red); }
  .calendarCount { display: block; font-size: .7rem; margin: 3px 0; border-radius: 5px; }
  .calendarEvent { display:block; width:100%; margin:3px 0; padding:3px 5px; border-left:3px solid currentColor; border-radius:4px; font-size:.68rem; line-height:1.35; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; text-align:left; }
  .calendarMore { display:block; margin-top:3px; color:var(--ink-2); font-size:.65rem; text-align:left; }
  .calendarApproved { color: #176344; background: #def3e7; }
  .calendarPending { color: #805100; background: #fff0cc; }
  .calendarDetail { margin-top: 18px; border-top: 1px solid var(--line); padding-top: 14px; }
  .calendarEntry { padding: 10px 0; border-bottom: 1px solid var(--line); }
  .calendarEntry p { margin: 4px 0; font-size: .88rem; }
  @media(max-width: 520px) {
    .calendar { padding:10px; }
    .calendarGrid { grid-template-columns:repeat(7,minmax(96px,1fr)); gap:4px; overflow-x:auto; overscroll-behavior-x:contain; padding-bottom:8px; scrollbar-width:thin; }
    .calendarWeekday { position:sticky; top:0; background:white; }
    .calendarDay { min-height:112px; padding:7px 5px; }
    .calendarEvent { font-size:.72rem; }
    .calendarMore { font-size:.7rem; }
  }
  .calendarRegular {color:#174ea6;background:#e8f0fe;}
  .calendarEntry[role=button]{cursor:pointer;border-radius:8px;padding:12px;}.calendarEntry[role=button]:hover{background:#f4f7fc;}
  .calendarWeekScroll{max-height:650px;overflow:auto;border:1px solid var(--line);border-radius:12px;}
  .calendarWeek{min-width:800px;}.calendarWeekHeader,.calendarWeekAllDay,.calendarWeekBody{display:grid;grid-template-columns:58px repeat(7,minmax(0,1fr));}
  .calendarWeekHeader{position:sticky;top:0;z-index:5;background:white;min-height:54px;border-bottom:1px solid var(--line);}
  .calendarWeekDate{background:white;border:0;border-left:1px solid var(--line);font:inherit;color:var(--ink);cursor:pointer;}.calendarWeekDate.today{color:#174ea6;font-weight:700;background:#e8f0fe;}
  .calendarTimeZone{font-size:.65rem;align-self:center;text-align:center;}.calendarWeekAllDay{border-bottom:1px solid var(--line);min-height:32px;font-size:.7rem;}.calendarWeekAllDay>div{border-left:1px solid var(--line);padding:2px;}.calendarWeekAllDay button{display:block;width:100%;border:0;border-radius:4px;text-align:left;font:inherit;margin:2px 0;padding:4px;}
  .calendarWeekBody{height:1152px;}.calendarWeekColumn{position:relative;border-left:1px solid var(--line);background:repeating-linear-gradient(to bottom,transparent 0,transparent 47px,#e0e5ee 47px,#e0e5ee 48px);}.calendarTimeAxis{position:relative;}.calendarTimeAxis span{position:absolute;right:6px;font-size:.65rem;}
  .calendarWeekEvent{position:absolute;border:0;border-radius:5px;padding:4px;text-align:left;font-family:inherit;font-size:.7rem;line-height:1.25;white-space:pre-line;overflow:hidden;cursor:pointer;min-width:0;min-height:0;}.calendarWeekEvent.calendarRegular{background:#3f51b5;color:white;}.calendarWeekEvent.calendarApproved{background:#18865d;color:white;}.calendarWeekEvent:focus-visible{outline:3px solid #111;z-index:4;}
  .calendarEventDialog{width:min(460px,calc(100vw - 32px));max-height:85vh;overflow:auto;border:1px solid #dce2ec;border-radius:22px;padding:28px;box-shadow:0 12px 40px #17203333;background:#f5f8ff;color:var(--ink);}.calendarEventDialog::backdrop{background:#17203344;}.calendarEventDialog h2{font-size:1.3rem;line-height:1.5;margin:16px 20px 12px 0;}.calendarDialogClose{position:absolute;right:14px;top:10px;border:0;background:transparent;font-size:26px;cursor:pointer;}.calendarDialogDescription{white-space:pre-wrap;overflow-wrap:anywhere;margin:20px 0;padding-top:16px;border-top:1px solid #dce2ec;font-size:.9rem;}.calendarDialogTime,.calendarDialogSource{font-size:.85rem;}.calendarDialogSource{color:#667085;}
.calendarWeekColumn.selected{background-color:#f0f5ff;}.calendarWeekDate[aria-pressed=true]{box-shadow:inset 0 -3px #1a73e8;}.calendarWeekDate:disabled{opacity:.4;cursor:not-allowed;}
  .calendarWeek{min-width:1000px;}
  .calendarWeekBody{height:1440px;}
  .calendarWeekColumn{background-image:repeating-linear-gradient(to bottom,transparent 0,transparent 59px,#e0e5ee 59px,#e0e5ee 60px);}
  .calendarWeekEvent{font-size:.8rem;line-height:1.35;padding:5px;}
  .calendarTimeAxis span{font-size:.75rem;}
  .calendarWeekDate{font-size:.95rem;min-height:54px;}
  .calendarWeekScroll{overscroll-behavior:contain;-webkit-overflow-scrolling:touch;}