.calendar-main-tabs { position:relative; display:flex; gap:28px; margin:0 0 24px; border-bottom:1px solid #e8e8e8; }
.calendar-main-tabs>button { position:relative; padding:0 0 16px; border:0; background:none; font:inherit; font-size:18px; font-weight:650; color:#929292; cursor:pointer; }
.calendar-main-tabs>button[aria-selected=true] { color:#1c1c1c; }
.calendar-main-tabs::after { content:""; position:absolute; bottom:-1px; left:0; width:var(--calendar-tab-width,0px); height:2px; transform:translateX(var(--calendar-tab-x,0px)); background:var(--noondok-red,#fe2c55); }
body[data-view=following] main { overflow-x:clip; }
.calendar-preview { margin:0 0 28px; }
.calendar-preview-open { display:flex; align-items:center; justify-content:space-between; gap:20px; width:100%; padding:20px 24px; border:0; border-radius:16px; background:linear-gradient(115deg,#fff3f5,#fff9f6); text-align:left; font:inherit; cursor:pointer; }
.calendar-preview-open>span:first-child { min-width:0; display:grid; gap:8px; }
.calendar-preview-open strong { font-size:15px; }
.calendar-preview-open>span>span { display:block; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font-size:13px; color:#777; }
.calendar-preview-open>span:last-child { font-size:24px; }
#noondocCalendar { padding:2px 0 40px; }
.calendar-heading { display:flex; align-items:center; justify-content:space-between; gap:20px; margin-bottom:24px; }
.calendar-heading h2 { margin:0; font-size:23px; letter-spacing:-.8px; }
.calendar-layout { position:relative; display:grid; grid-template-columns:repeat(2,1fr); flex-shrink:0; padding:4px; border-radius:12px; background:#f4f4f4; }
.calendar-layout-indicator { position:absolute; left:4px; top:4px; bottom:4px; width:calc(50% - 4px); border-radius:9px; background:#fff; box-shadow:0 1px 4px #0000000a; transform:translateX(0); pointer-events:none; }
.calendar-layout[data-layout=month] .calendar-layout-indicator { transform:translateX(100%); }
.calendar-layout button { position:relative; z-index:1; border:0; border-radius:9px; min-height:40px; padding:10px 16px; background:none; color:#858585; font:inherit; font-size:13px; cursor:pointer; }
.calendar-layout button[aria-pressed=true] { color:#1c1c1c; font-weight:650; }
.calendar-scope { margin-bottom:32px; padding:0; }
.calendar-scope-toggle { display:flex; align-items:center; gap:8px; width:fit-content; min-height:44px; border:0; padding:4px 0; background:none; color:#555; font:inherit; font-size:14px; font-weight:600; text-align:left; cursor:pointer; }
.calendar-scope-addition { font-size:.9em; font-weight:500; opacity:.72; }
.calendar-scope-toggle svg { flex:none; display:block; width:20px; height:20px; color:inherit; }
.calendar-scope-toggle path { opacity:0; stroke-dasharray:1; stroke-dashoffset:1; }
.calendar-scope-toggle[aria-pressed=true] { color:var(--noondok-red,#fe2c55); }
.calendar-scope-toggle[aria-pressed=true] path { opacity:1; stroke-dashoffset:0; }
.calendar-scope p { margin:2px 0 0; color:#858585; font-size:12px; line-height:1.65; }
.calendar-text-link { border:0; padding:0; background:none; color:inherit; font:inherit; text-decoration:underline; cursor:pointer; }
.calendar-list-heading { display:flex; align-items:center; justify-content:space-between; gap:12px; margin:0 0 12px; }
.calendar-list-heading h3 { margin:0; font-size:17px; letter-spacing:-.4px; }
.calendar-list-count { font-weight:500; color:#777; }
.calendar-list-heading>span { color:#929292; font-size:12px; }
.calendar-event { display:grid; grid-template-columns:170px minmax(0,1fr); gap:28px; padding:24px 0; border-bottom:1px solid #eee; }
.calendar-event-date { display:flex; flex-wrap:wrap; align-content:flex-start; align-items:center; gap:8px; color:#707070; font-size:12px; }
.calendar-event-date time { flex-basis:100%; font-size:14px; color:#333; line-height:1.6; font-variant-numeric:tabular-nums; }
.calendar-badge { border-radius:5px; padding:4px 6px; background:#f3f3f3; color:#777; font-size:11px; }
.calendar-badge.is-today { color:#e0254a; background:#fff0f3; }
.calendar-event-main { min-width:0; }
.calendar-event-meta { display:flex; align-items:center; flex-wrap:wrap; gap:8px; margin-bottom:10px; }
.calendar-event-brand { color:#777; font-size:12px; line-height:1.5; }
.calendar-event-origin { border:1px solid #e9e9e9; border-radius:6px; padding:3px 7px; color:#8a8a8a; font-size:10px; line-height:1.35; }
.calendar-event-title { display:block; width:fit-content; max-width:100%; padding:0; border:0; background:none; color:#1c1c1c; font:inherit; font-size:18px; font-weight:650; line-height:1.55; letter-spacing:-.4px; text-align:left; overflow-wrap:anywhere; cursor:pointer; }
.calendar-event-title:hover { text-decoration:underline; text-underline-offset:4px; }
.calendar-event-links { display:flex; justify-content:flex-end; align-items:start; gap:16px; margin-top:12px; color:#999; font-size:12px; line-height:1.6; }
.calendar-event-links>a { flex-shrink:0; color:#686868; text-decoration:none; }
.calendar-event-links>a:hover { text-decoration:underline; }
.calendar-event-links details { min-width:0; margin-right:auto; }
.calendar-event-links summary { cursor:pointer; }
.calendar-event-links details button { display:block; border:0; background:none; padding:7px 0; color:#666; font:inherit; text-align:left; overflow-wrap:anywhere; cursor:pointer; }
.calendar-note { margin:8px 0 0; font-size:12px; color:#8a8a8a; line-height:1.6; }
.calendar-empty { text-align:center; padding:48px 20px; background:#fafafa; border-radius:18px; }
.calendar-empty-symbol { display:block; margin:0 auto 20px; font-size:36px; color:#bdbdbd; }
.calendar-empty h3 { margin:0 0 10px; font-size:19px; letter-spacing:-.5px; }
.calendar-empty p { max-width:440px; margin:0 auto; font-size:13px; line-height:1.8; color:#858585; word-break:keep-all; }
.calendar-empty .primary-button { display:inline-flex; margin-top:24px; }
.calendar-month-nav { display:flex; align-items:center; gap:8px; margin:24px 0 18px; }
.calendar-month-nav h3 { margin:0 8px; font-size:20px; letter-spacing:-.5px; }
.calendar-month-nav>button { min-width:40px; min-height:40px; border:1px solid #eee; border-radius:50%; background:white; font:inherit; font-size:23px; cursor:pointer; }
.calendar-month-nav>button.calendar-today { margin-left:auto; border-radius:9px; padding:0 14px; font-size:13px; }
.calendar-weekdays,.calendar-days { display:grid; grid-template-columns:repeat(7,minmax(0,1fr)); }
.calendar-weekdays { color:#929292; font-size:12px; text-align:center; padding:10px 0 14px; }
.calendar-weekdays>span:first-child { color:#d9687d; }
.calendar-days { border-top:1px solid #eee; }
.calendar-day { position:relative; display:flex; flex-direction:column; align-items:center; min-height:84px; gap:8px; padding:12px 3px; border:0; border-bottom:1px solid #eee; background:white; color:#454545; font:inherit; cursor:pointer; }
.calendar-day>span:first-child { display:grid; place-items:center; width:28px; height:28px; font-size:14px; border-radius:50%; }
.calendar-day.is-today>span:first-child { background:#f2f2f2; font-weight:700; }
.calendar-day[aria-pressed=true] { background:#fff6f7; }
.calendar-day[aria-pressed=true]>span:first-child { background:var(--noondok-red,#fe2c55); color:#fff; }
.calendar-day small { font-size:11px; color:#9a737b; }
.calendar-day-dot { display:none; width:4px; height:4px; border-radius:50%; background:var(--noondok-red,#fe2c55); }
.calendar-day-blank { border-bottom:1px solid #eee; }
.calendar-day-agenda { margin-top:30px; }
.calendar-waiting { margin-top:40px; border-top:1px solid #eee; padding-top:24px; }
.calendar-waiting h3 { margin:0 0 16px; font-size:17px; }
.calendar-waiting article { padding:12px 0; }
.calendar-waiting button { border:0; padding:0; background:none; font:inherit; font-size:15px; color:#333; text-align:left; cursor:pointer; }
.calendar-waiting p { margin:7px 0 0; font-size:12px; color:#929292; }
.calendar-more { display:block; margin:24px auto; border:1px solid #e5e5e5; background:white; border-radius:12px; padding:12px 24px; color:#555; font:inherit; font-size:14px; cursor:pointer; }
.calendar-footnote { margin:28px 0 0; font-size:12px; color:#999; line-height:1.8; }
[data-collection-mode=calendar] .collection-edit-tools,[data-collection-mode=calendar] .collection-batch-bar { display:none!important; }
.calendar-main-tabs [hidden],#noondocCalendar [hidden] { display:none!important; }
#noondocCalendar :focus-visible,.calendar-main-tabs :focus-visible,.calendar-preview :focus-visible { outline:2px solid #fe2c55; outline-offset:4px; }
@media(max-width:700px) {
  .calendar-main-tabs { margin-bottom:22px; gap:24px; }
  .calendar-main-tabs>button { font-size:17px; padding-bottom:13px; }
  .calendar-preview-open { padding:18px; }
  .calendar-heading { align-items:center; gap:12px; margin-bottom:20px; }
  .calendar-heading h2 { font-size:21px; }
  .calendar-layout button { padding:9px 11px; font-size:12px; }
  .calendar-scope-toggle { font-size:13px; }
  .calendar-scope p { font-size:11px; }
  .calendar-event { grid-template-columns:1fr; gap:13px; padding:22px 0; }
  .calendar-event-date { gap:7px; }
  .calendar-event-date time { flex-basis:auto; margin-left:auto; font-size:12px; }
  .calendar-event-title { font-size:17px; }
  .calendar-event-links { font-size:11px; }
  .calendar-empty { padding:40px 18px; }
  .calendar-list-heading h3 { font-size:16px; }
  .calendar-list-heading>span { font-size:11px; }
  .calendar-day { min-height:64px; padding:8px 2px; gap:5px; }
  .calendar-day small { display:none; }
  .calendar-day-dot { display:block; }
  .calendar-month-nav h3 { font-size:18px; margin:0 4px; }
  .calendar-event-date time { overflow-wrap:anywhere; }
}
@media(prefers-reduced-motion:no-preference) {
  .calendar-main-tabs::after { transition:transform .38s cubic-bezier(.22,1,.36,1),width .38s cubic-bezier(.22,1,.36,1); }
  .calendar-layout-indicator { transition:transform .38s cubic-bezier(.22,1,.36,1); }
  .calendar-scope-toggle.is-selecting { animation:calendar-scope-on .36s ease-out both; }
  .calendar-scope-toggle.is-selecting path { animation:calendar-check-on .4s cubic-bezier(.22,.8,.3,1) both; }
  .calendar-scope-toggle.is-clearing { animation:calendar-scope-off .24s ease-out both; }
  .calendar-scope-toggle.is-clearing path { animation:calendar-check-off .24s ease-out both; }
  @keyframes calendar-scope-on { from { color:#555; } to { color:var(--noondok-red,#fe2c55); } }
  @keyframes calendar-check-on { from { opacity:0; stroke-dashoffset:1; } 20% { opacity:1; } to { opacity:1; stroke-dashoffset:0; } }
  @keyframes calendar-scope-off { from { color:var(--noondok-red,#fe2c55); } to { color:#555; } }
  @keyframes calendar-check-off { from { opacity:1; stroke-dashoffset:0; } to { opacity:0; stroke-dashoffset:1; } }
}
