/* Calendar v4: local aliases for the pinned v2.3.6 contract, no host-wide skin. */
html[data-calendar-wave="v4"] .sota-calendar-root {
  --ink:var(--sota33-ink);--muted:var(--sota33-muted);--line:var(--sota33-border);--paper:var(--sota33-glass);--bg:var(--sota33-canvas);--green:var(--sota33-primary);--mint:var(--sota33-primary-soft);
  --status-planned:var(--sota33-faint);--status-progress:var(--sota33-warning);--status-completed:var(--sota33-success);--status-cancelled:var(--sota33-danger);
  margin:0;padding:0 0 0 72px;min-width:0;color:var(--sota33-text);font-family:var(--sota33-font);font-weight:300;
  --sota-wave-bottom-reserve:12px;
}
html[data-calendar-wave="v4"] .sota-calendar-root>main {max-width:1540px;padding:28px;min-width:0}
html[data-calendar-wave="v4"] :is(#calendar-overview,#calendar-filters,#calendar-agenda){scroll-margin-top:20px}
html[data-calendar-wave="v4"] main :is(.hero,.calendar-shell,.status-card,.agenda),
html[data-calendar-wave="v4"] dialog.modal {
  color:var(--sota33-text);background:var(--sota33-glass);border:1px solid var(--sota33-border);border-radius:18px;
  box-shadow:var(--sota33-shadow);backdrop-filter:blur(14px) saturate(124%);-webkit-backdrop-filter:blur(14px) saturate(124%);
}
html[data-calendar-wave="v4"] main .hero{padding:24px;flex-wrap:wrap;gap:18px}
html[data-calendar-wave="v4"] main .hero h1{font:300 clamp(32px,4vw,50px)/1.1 var(--sota33-font);color:var(--sota33-ink)}
html[data-calendar-wave="v4"] main .hero p{color:var(--sota33-muted)}
html[data-calendar-wave="v4"] main .hero-actions{flex-wrap:wrap;flex-shrink:1;min-width:0}
html[data-calendar-wave="v4"] :is(main,dialog.modal) :is(.eyebrow,label,small,.legend,.day.outside,.agenda-date,.agenda-item span){color:var(--sota33-muted)}
html[data-calendar-wave="v4"] :is(main,dialog.modal) .sota33-button{font:300 14px/1.3 var(--sota33-font);min-height:44px;border-radius:12px;border-color:var(--sota33-border-strong);background:var(--sota33-glass-raised);color:var(--sota33-ink);white-space:normal}
html[data-calendar-wave="v4"] :is(main,dialog.modal) .sota33-button-primary{background:var(--sota33-primary);color:var(--sota33-on-primary)}
html[data-calendar-wave="v4"] :is(main,dialog.modal) .sota33-button-primary:hover{background:var(--sota33-primary-hover)}
html[data-calendar-wave="v4"] :is(main,dialog.modal) .danger{background:var(--sota33-danger);color:var(--sota33-on-primary);border-color:var(--sota33-danger)}
html[data-calendar-wave="v4"] :is(main,dialog.modal) .sota33-input{font:300 14px/1.3 var(--sota33-font);min-height:44px;border-radius:12px;border-color:var(--sota33-border-strong);background:var(--sota33-glass-raised);color:var(--sota33-ink)}
html[data-calendar-wave="v4"] :is(main,dialog.modal) :is(input,textarea)::placeholder{color:var(--sota33-muted)}
html[data-calendar-wave="v4"] :is(main,dialog.modal) :is(a,button,input,select,textarea):focus-visible{outline:3px solid var(--sota33-focus);outline-offset:3px}
html[data-calendar-wave="v4"] main .analytics-tabs{flex-wrap:wrap;border-color:var(--sota33-border)}
html[data-calendar-wave="v4"] main .analytics-tabs a{color:var(--sota33-text);background:var(--sota33-glass);font-weight:300}
html[data-calendar-wave="v4"] main .analytics-tabs a[aria-current="page"]{background:var(--sota33-primary);color:var(--sota33-on-primary)}
html[data-calendar-wave="v4"] main :is(.calendar-filters,.status-summary,.weekdays,.calendar-toolbar){background:transparent;border-color:var(--sota33-border)}
html[data-calendar-wave="v4"] main .calendar-filters{grid-template-columns:repeat(4,minmax(0,1fr))}
html[data-calendar-wave="v4"] main .calendar-period{grid-column:span 2;min-width:0}
html[data-calendar-wave="v4"] .calendar-period[hidden],html[data-calendar-wave="v4"] #calendar-filters label[hidden],html[data-calendar-wave="v4"] #event-form label[hidden]{display:none}
html[data-calendar-wave="v4"] main :is(.day,.day.outside,.day.today){background:transparent;border-color:var(--sota33-border);color:var(--sota33-text)}
html[data-calendar-wave="v4"] main .day.today:before{border-color:var(--sota33-calendar-selected)}
html[data-calendar-wave="v4"] main .day .day-number{width:34px;min-height:34px;padding:0;border:0;background:transparent;color:var(--sota33-ink);font-weight:300}
html[data-calendar-wave="v4"] main .day.today .day-number{background:var(--sota33-calendar-selected);color:var(--sota33-calendar-selected-text)}
html[data-calendar-wave="v4"] main .day-number:hover{background:var(--sota33-primary-soft)}
html[data-calendar-wave="v4"] main .sota33-button.event-pill{min-height:32px;padding:6px;font-size:12px;border:1px solid var(--sota33-border);border-left:3px solid var(--status-planned);background:var(--sota33-glass-raised);color:var(--sota33-text);font-weight:300}
html[data-calendar-wave="v4"] main .event-pill.status-in_progress{border-left-color:var(--sota33-warning)}
html[data-calendar-wave="v4"] main .event-pill.status-completed{border-left-color:var(--sota33-success)}
html[data-calendar-wave="v4"] main .event-pill.status-cancelled{border-left-color:var(--sota33-danger);opacity:.8}
html[data-calendar-wave="v4"] main .sota33-button.agenda-item{background:var(--sota33-glass-raised);color:var(--sota33-text);border-color:var(--sota33-border);border-left:3px solid var(--status-planned)}
html[data-calendar-wave="v4"] main .agenda-item :is(b,strong){color:var(--sota33-ink)}
html[data-calendar-wave="v4"] main :is(.status-card span,.status-card small,.calendar-toolbar span,.weekdays span,.more){color:var(--sota33-muted);font-size:12px}
html[data-calendar-wave="v4"] main :is(.status-card strong,.status-card.result b,.agenda h2){color:var(--sota33-ink)}
html[data-calendar-wave="v4"] main :is(.legend span,.event-state,.access-status){background:var(--sota33-glass-raised);color:var(--sota33-text);border:1px solid var(--sota33-border);font-size:12px;font-weight:300}
/* Source state/access labels carry important colors and size; narrowly cancel those legacy roles. */
html[data-calendar-wave="v4"] main :is(.event-state,.access-status){color:var(--sota33-text)!important;font-size:12px!important}
html[data-calendar-wave="v4"] main :is(.agenda>header>strong){background:var(--sota33-primary);color:var(--sota33-on-primary)}
html[data-calendar-wave="v4"] :is(main,dialog.modal) :is(.notice,.form-section,.progress-editor,.detail-meta div,.plan-fact div,.series-note,.detail-links a,.detail-links span,.link-row){background:var(--sota33-glass-raised);color:var(--sota33-text);border-color:var(--sota33-border)}
html[data-calendar-wave="v4"] :is(main,dialog.modal) :is(.calendar-loading,.calendar-load-error,.form-error,.notice.error){padding:14px;margin:14px;border:1px solid var(--sota33-border);border-radius:12px;background:var(--sota33-glass-raised);color:var(--sota33-text)}
html[data-calendar-wave="v4"] :is(main,dialog.modal) :is(.calendar-load-error,.form-error,.notice.error){border-color:var(--sota33-danger);color:var(--sota33-text)}
html[data-calendar-wave="v4"] main :is(.calendar-loading,.calendar-load-error){display:flex;flex-wrap:wrap;gap:12px;align-items:center;justify-content:space-between}
html[data-calendar-wave="v4"] main :is(.calendar-loading,.calendar-load-error)[hidden]{display:none}
html[data-calendar-wave="v4"] main .filters-empty{color:var(--sota33-muted);border-color:var(--sota33-border-strong)}
html[data-calendar-wave="v4"] main .filters-empty button{display:block;margin:12px auto}
html[data-calendar-wave="v4"] dialog.modal{max-height:calc(100dvh - 28px);overflow:auto;background:var(--sota33-popover-calendar)}
html[data-calendar-wave="v4"] dialog.modal::backdrop{background:color-mix(in srgb,var(--sota33-canvas-deep) 55%,transparent);backdrop-filter:blur(6px)}
html[data-calendar-wave="v4"] dialog .detail-description{color:var(--sota33-text)}
@media(min-width:721px) and (max-width:1100px){html[data-calendar-wave="v4"] main .hero-actions>*{white-space:normal}}
@media(max-width:900px){html[data-calendar-wave="v4"] main .calendar-toolbar{grid-template-columns:1fr;gap:12px}html[data-calendar-wave="v4"] main .calendar-toolbar>div{justify-self:center;text-align:center}}
@media(max-width:720px){
  html[data-calendar-wave="v4"] .sota-calendar-root{padding-left:0;padding-bottom:calc(74px + env(safe-area-inset-bottom,0px));--sota-wave-bottom-reserve:calc(74px + env(safe-area-inset-bottom,0px))}
  html[data-calendar-wave="v4"] .sota-calendar-root>main{padding:14px}
  html[data-calendar-wave="v4"] main .hero{padding:18px}
  html[data-calendar-wave="v4"] main .hero-actions>*{width:100%;flex:auto}
  html[data-calendar-wave="v4"] main .calendar-filters{grid-template-columns:repeat(2,minmax(0,1fr));padding:12px}
  html[data-calendar-wave="v4"] main .hero h1{font-size:32px}
  html[data-calendar-wave="v4"] main .day .day-number{width:100%;min-height:44px}
  html[data-calendar-wave="v4"] main .sota33-button.event-pill{min-height:44px}
  html[data-calendar-wave="v4"] main .analytics-tabs a{font-size:13px;padding:9px}
}
@media(prefers-reduced-transparency:reduce){html[data-calendar-wave="v4"] main :is(.hero,.calendar-shell,.status-card,.agenda),html[data-calendar-wave="v4"] dialog.modal{background:var(--sota33-surface-solid);backdrop-filter:none;-webkit-backdrop-filter:none}}
@media(prefers-reduced-motion:reduce){html[data-calendar-wave="v4"] .sota-calendar-root{scroll-behavior:auto}}
html[data-calendar-wave="v4"] main .status-card{min-width:0;overflow-wrap:anywhere;background:var(--sota33-glass-raised);backdrop-filter:blur(22px) saturate(130%);-webkit-backdrop-filter:blur(22px) saturate(130%);box-shadow:var(--sota33-raised-shadow);border-color:var(--sota33-border-strong)}
html[data-calendar-wave="v4"] dialog :is(.detail-badge,.detail-meta strong,.plan-fact strong){color:var(--sota33-ink)}
html[data-calendar-wave="v4"] dialog .detail-badge{background:var(--sota33-glass-raised)}
html[data-calendar-wave="v4"] dialog .link-row{grid-template-columns:repeat(2,minmax(0,1fr))}
html[data-calendar-wave="v4"] dialog .link-row label:nth-child(3),html[data-calendar-wave="v4"] dialog .link-row label:nth-child(4),html[data-calendar-wave="v4"] dialog .link-remove{grid-column:1/-1}
html[data-calendar-wave="v4"] :is(main,dialog) :is(h2,b,strong,p){overflow-wrap:anywhere}
@media(prefers-reduced-transparency:reduce){html[data-calendar-wave="v4"] main .status-card{background:var(--sota33-surface-solid);backdrop-filter:none;-webkit-backdrop-filter:none}}
/* Keep fixed picker portals outside any backdrop containing block in the native top layer. */
html[data-calendar-wave="v4"] dialog.modal{backdrop-filter:none;-webkit-backdrop-filter:none}
html[data-calendar-wave="v4"] dialog.modal>form,html[data-calendar-wave="v4"] dialog.modal>article{background:var(--sota33-glass-raised);backdrop-filter:blur(22px) saturate(130%);-webkit-backdrop-filter:blur(22px) saturate(130%)}
@media(prefers-reduced-transparency:reduce){html[data-calendar-wave="v4"] dialog.modal>form,html[data-calendar-wave="v4"] dialog.modal>article{background:var(--sota33-surface-solid);backdrop-filter:none;-webkit-backdrop-filter:none}}
