/* PLANORA icons are small foreground glyphs; charts and pass codes keep their own geometry.
   Explicit bounds also protect legacy SVGs whose presentation dimensions were omitted. */
:is(
  .planora-icon,
  [class*="icon"] > svg[viewBox="0 0 24 24"],
  button > svg[viewBox="0 0 24 24"],
  .btn > svg[viewBox="0 0 24 24"],
  .btn-soft > svg[viewBox="0 0 24 24"],
  nav svg[viewBox="0 0 24 24"],
  [class*="chip"] > svg[viewBox="0 0 24 24"],
  .eg-kpi-icon > svg
) {
  width: 20px !important;
  height: 20px !important;
  min-width: 20px !important;
  max-width: 20px !important;
  min-height: 20px !important;
  max-height: 20px !important;
  flex: 0 0 20px !important;
  vertical-align: middle;
}
/* Preserve an explicit helper size outside legacy slots, including 16/24px icons. */
svg.planora-icon {
  display: inline-block;
  flex-shrink: 0;
  vertical-align: middle;
  fill: none !important;
  stroke: currentColor !important;
}
/* Keep a requested helper size while overriding retired solid-fill role rules. */
html body svg.planora-icon[data-planora-icon] {
  width: var(--planora-icon-size, 20px) !important;
  height: var(--planora-icon-size, 20px) !important;
  min-width: var(--planora-icon-size, 20px) !important;
  max-width: var(--planora-icon-size, 20px) !important;
  min-height: var(--planora-icon-size, 20px) !important;
  max-height: var(--planora-icon-size, 20px) !important;
  flex: 0 0 var(--planora-icon-size, 20px) !important;
  fill: none !important;
  stroke: currentColor !important;
}
svg.planora-icon[width="14"] { --planora-icon-size: 14px; }
svg.planora-icon[width="15"] { --planora-icon-size: 15px; }
svg.planora-icon[width="16"] { --planora-icon-size: 16px; }
svg.planora-icon[width="17"] { --planora-icon-size: 17px; }
svg.planora-icon[width="18"] { --planora-icon-size: 18px; }
svg.planora-icon[width="19"] { --planora-icon-size: 19px; }
svg.planora-icon[width="20"] { --planora-icon-size: 20px; }
svg.planora-icon[width="21"] { --planora-icon-size: 21px; }
svg.planora-icon[width="22"] { --planora-icon-size: 22px; }
svg.planora-icon[width="23"] { --planora-icon-size: 23px; }
svg.planora-icon[width="24"] { --planora-icon-size: 24px; }
svg.planora-icon[width="25"] { --planora-icon-size: 25px; }
svg.planora-icon[width="26"] { --planora-icon-size: 26px; }
svg.planora-icon[width="27"] { --planora-icon-size: 27px; }
svg.planora-icon[width="28"] { --planora-icon-size: 28px; }
svg.planora-icon[width="29"] { --planora-icon-size: 29px; }
svg.planora-icon[width="30"] { --planora-icon-size: 30px; }
svg.planora-icon[width="31"] { --planora-icon-size: 31px; }
svg.planora-icon[width="32"] { --planora-icon-size: 32px; }
:is(.analytics-donut, .eg-dashboard-donut, .task-pie-svg) {
  display: block;
  width: min(100%, 240px) !important;
  height: auto !important;
  min-width: 0 !important;
  max-width: 240px !important;
  min-height: 0 !important;
  max-height: 240px !important;
  aspect-ratio: 1;
  flex: 0 1 240px;
  margin-inline: auto;
}
:is(.analytics-line-chart, .eg-dashboard-line, .monitor-trend-svg, #monitorSparkline > svg, [data-pl-depth-visual] > svg) {
  height: auto !important;
  max-height: 280px !important;
  min-height: 0 !important;
}
/* The lamp is a separate 40px-grid theme symbol, still a bounded control glyph. */
.pl-theme-switch svg {
  width: 28px !important;
  height: 28px !important;
  flex-shrink: 0;
}
