/* Icons inherit control/annotation colors; themes, focus and disabled rules stay owned
   by existing components. Only the artwork and its inline footprint change here. */
.sc-icon{display:inline-block;width:20px;height:20px;flex:0 0 auto;vertical-align:middle;fill:none;stroke:none;pointer-events:none;overflow:visible;--icon-shade:color-mix(in srgb,currentColor 85%,#000);--icon-highlight:color-mix(in srgb,currentColor 72%,#fff)}
.sc-has-icon > .sc-icon{margin-inline-end:5px}
.sc-has-icon > .sc-icon:only-child{margin:0}
.em-bottom-nav .sc-icon,.application-rail .sc-icon{width:24px;height:24px}
.em-more-row > .sc-icon:first-child{width:22px;height:22px}
.em-more-row > .sc-icon:last-child,.em-card-arrow .sc-icon{margin:0}
.em-directory-actions .sc-icon{width:24px;height:24px;margin:0}
.week-actions .week-calendar{width:20px;height:20px;color:var(--theme-warm,var(--brand))}
.week-actions .week-chevron{width:14px;height:14px;margin:0}
.icon-button > .sc-icon,.collapse-button > .sc-icon,#prevRange > .sc-icon,#nextRange > .sc-icon{width:22px;height:22px;margin:0}
.annotation-label.sc-has-icon::before{content:none}
.annotation-label > .sc-icon,.day-head .event > .sc-icon,.legend-annotation > .sc-icon{width:14px;height:14px;color:var(--event-color,var(--brand));margin-inline-end:3px}
.legend-annotation.sc-has-icon{display:inline-flex;align-items:center}
.sc-has-icon:disabled .sc-icon{opacity:.55}

/* Labeled actions: scale the detailed artwork to its text, not navigation size.
   Inline alignment retains existing multi-line button layouts and dimensions. */
:is(.secondary,.primary).sc-has-icon > .sc-icon{width:clamp(14px,1.15em,18px);height:clamp(14px,1.15em,18px);margin-inline-end:6px;vertical-align:-.15em}
.template-new.sc-has-icon > .sc-icon{width:14px;height:14px;margin:0;vertical-align:middle}
.template-heading-row .template-new{display:inline-flex;align-items:center;justify-content:center;gap:4px;line-height:1.2}
#dialogClose{display:inline-grid;place-items:center;padding:0}
#dialogClose > .sc-icon{width:27px;height:27px}
.ed-date-events .annotation-label > .sc-icon{flex:0 0 14px;align-self:flex-start;margin-top:1px}
.template-actions button.sc-has-icon > .sc-icon{width:16px;height:16px;margin-inline-end:6px;vertical-align:-.15em}
.history-button.secondary{display:inline-grid;place-items:center;width:44px;min-width:44px;height:44px;min-height:44px;padding:0;flex:0 0 44px}
.history-button.secondary > .sc-icon{width:24px;height:24px;margin:0;vertical-align:middle}
.history-button.secondary:disabled{opacity:1}
.history-button.secondary:disabled > .sc-icon{opacity:.3}
.collapse-button{background:transparent;border:0;box-shadow:none}
.collapse-button:hover{color:var(--text)}
.template-sidebar.collapsed .collapse-button{transform:none}
.template-sidebar.collapsed .collapse-button > .sc-icon{rotate:180deg}
:is(.history-button,.collapse-button):focus-visible{outline:2px solid var(--brand);outline-offset:3px}

/* Native title provides hover fallback. CSS also exposes it to keyboard users.
   Anchor-positioned fixed tips escape the collapsed sidebar's overflow clip. */
.control-tip{position:relative}
.control-tip::after{content:attr(title);position:absolute;z-index:100;top:100%;left:50%;translate:-50% 6px;display:none;width:max-content;max-width:260px;padding:6px 9px;border:1px solid var(--line);border-radius:6px;background:var(--panel-2);color:var(--text);font:500 12px/1.4 system-ui,sans-serif;text-align:left;white-space:normal;pointer-events:none}
.control-tip:is(:hover,:focus-visible)::after{display:block}
.history-button::after{top:auto;bottom:100%;left:100%;translate:-100% -6px}
#undoBtn{anchor-name:--undo-control;--tip-anchor:--undo-control}
#redoBtn{anchor-name:--redo-control;--tip-anchor:--redo-control}
#collapseSidebar{anchor-name:--sidebar-control;--tip-anchor:--sidebar-control}
@supports(position-anchor:--sidebar-control){
  .control-tip::after{position:fixed;position-anchor:var(--tip-anchor);top:anchor(bottom);left:anchor(center)}
  .history-button::after{top:auto;bottom:anchor(top);left:anchor(right);translate:-100% -6px}
  #collapseSidebar::after{left:anchor(left);translate:0 6px}
}

/* Week stepping only: keep the existing positions, colors and artwork across
   themes, with unpainted 44px targets. Disclosure/detail arrows are untouched. */
:root .em-week-navigation button:is([data-mobile-action],[data-ms-week]){width:44px;height:44px;min-width:44px;min-height:44px;flex-basis:44px;background:transparent;border:0;border-radius:0;box-shadow:none}
:root .em-week-navigation button:is([data-mobile-action],[data-ms-week]):is(:hover,:active,:disabled){background:transparent}
.segmented.week-range-navigation{border:0;border-radius:0;overflow:visible}
#prevRange,#nextRange{width:44px;height:44px;min-width:44px;min-height:44px;padding:0;background:transparent;border:0;border-radius:0;box-shadow:none}
.week-range-navigation #todayBtn{border:1px solid var(--line);border-radius:8px}
.dialog-actions:not(:has(> button:not([hidden]))){display:none}

/* Midnight icon illumination — presentation only; other comparison themes keep
   their exact inherited colors. Semantic/data-colored artwork is excluded. */
:root[data-theme="midnight"]{
  --icon-navigation:#4DBBBE;
  --icon-action:#6DB9BD;
  --icon-quiet:#69979F;
  --icon-hover:#87D7D7;
  --icon-selected:#8AEBE4;
  --icon-selected-hover:#A1F4ED;
  --icon-pressed:#B4F6EF;
  --icon-disabled:#526D75;
  --icon-selected-light:drop-shadow(0 0 1.5px #02a0a052);
}
:root[data-theme="midnight"] :where(button,a,summary).sc-has-icon:not(:where(.primary,.em-back,.em-directory-actions a,.em-open-actions button)) > .sc-icon{
  color:var(--icon-control-color,var(--icon-action));
  transition:color 120ms ease-out,filter 120ms ease-out;
}
:root[data-theme="midnight"] :is(.application-rail a,.ar-toggle,.em-bottom-nav button){--icon-control-color:var(--icon-navigation)}
:root[data-theme="midnight"] :is(.em-more-row > .sc-icon:last-child,.em-card-arrow > .sc-icon){color:var(--icon-quiet)}
:root[data-theme="midnight"] :where(button,a,summary).sc-has-icon:not(:where(.primary,.em-back,.em-directory-actions a,.em-open-actions button)):where(:not(:disabled):not([aria-disabled="true"]):is(:hover,:focus-visible)) > .sc-icon{color:var(--icon-hover)}
:root[data-theme="midnight"] :is(.sc-has-icon[aria-current],.sc-has-icon[aria-pressed="true"],.sc-has-icon.selected) > .sc-icon{color:var(--icon-selected)}
:root[data-theme="midnight"] :is(.application-rail a[aria-current],.em-bottom-nav button[aria-current]) > .sc-icon{filter:var(--icon-selected-light)}
:root[data-theme="midnight"] :is(.sc-has-icon[aria-current],.sc-has-icon[aria-pressed="true"],.sc-has-icon.selected):where(:not(:disabled):not([aria-disabled="true"])):is(:hover,:focus-visible) > .sc-icon{color:var(--icon-selected-hover)}
:root[data-theme="midnight"] :where(button,a,summary).sc-has-icon:not(:where(.primary,.em-back,.em-directory-actions a,.em-open-actions button)):not(:disabled):not([aria-disabled="true"]):active > .sc-icon{color:var(--icon-pressed)}
/* Existing active surfaces stay intact; the underline supplies a non-color cue
   on mobile without changing text size, weight, card geometry or navigation. */
:root[data-theme="midnight"] .em-bottom-nav button[aria-current] > span{text-decoration:underline;text-underline-offset:3px;text-decoration-thickness:1px}
/* Preserve existing emphasized actions and foreground contrast on filled buttons. */
:root[data-theme="midnight"] :is(.primary,.em-back,.em-directory-actions a,.em-open-actions button) > .sc-icon{color:inherit;filter:none}
:root[data-theme="midnight"] .week-actions .week-calendar{color:var(--theme-warm);filter:none}
:root[data-theme="midnight"] :is(button:disabled,[aria-disabled="true"]).sc-has-icon > .sc-icon{color:var(--icon-disabled);filter:none}
@media(prefers-reduced-motion:reduce){
  :root[data-theme="midnight"] :is(button,a,summary).sc-has-icon > .sc-icon{transition:none}
}
