/* V3.10: meaningful selected states; only the changing strokes carry light. */
.nav-item .semantic-icon {
  fill: none;
  stroke: currentColor;
  stroke-width: 1.6;
  stroke-linecap: round;
  stroke-linejoin: round;
}
.theme-switch { position: relative; overflow: hidden; }
.theme-switch svg { position: absolute; width: 18px; height: 18px; fill: none; stroke: currentColor; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; transition: transform 460ms cubic-bezier(.2,.8,.2,1), opacity 240ms ease; }
.theme-switch .theme-sun { opacity: 1; transform: rotate(0) scale(1); }
.theme-switch .theme-moon { opacity: 0; transform: rotate(-70deg) scale(.55); }
:root[data-theme="graphite"] .theme-switch .theme-sun { opacity: 0; transform: rotate(70deg) scale(.55); }
:root[data-theme="graphite"] .theme-switch .theme-moon { opacity: 1; transform: rotate(0) scale(1); }
.theme-switch:active svg { transform: scale(.82); }
.rail-bottom .theme-switch { min-height: 38px; justify-content: flex-start; gap: 9px; }
.rail-bottom .theme-switch::before { content: ""; width: 18px; height: 18px; flex: none; }
.rail-bottom .theme-switch > svg { left: 0; top: 50%; margin-top: -9px; }
.rail-compact-actions .theme-switch { position: relative; }
.rail-compact-actions .theme-switch > svg { left: 50%; top: 50%; margin: -9px 0 0 -9px; }
.nav-item[data-page="backups"] .semantic-storage-layer path,
.nav-item[data-page="backups"] .semantic-storage-glow path { display: none; }
.nav-item[data-page="backups"] .semantic-storage-layer ellipse {
  transform: scaleY(1.18);
  transform-box: fill-box;
  transform-origin: center;
}
.nav-item .semantic-bar-glow,
.nav-item .semantic-trend-glow,
.nav-item .semantic-person-glow,
.nav-item .semantic-overview-glow,
.nav-item .semantic-patient-glow,
.nav-item .semantic-storage-glow {
  stroke: var(--nav-icon-beam);
  opacity: 0;
  pointer-events: none;
  filter: drop-shadow(0 0 1.2px var(--nav-icon-glow));
}
.nav-item .semantic-overview-draw,
.nav-item .semantic-trend { stroke-dasharray: 100 100; }
.nav-item .semantic-overview-glow,
.nav-item .semantic-trend-glow { stroke-dasharray: 0 100; }
@media (prefers-reduced-motion: reduce), (forced-colors: active) {
  .nav-item .semantic-bar-glow,
  .nav-item .semantic-trend-glow,
  .nav-item .semantic-person-glow,
  .nav-item .semantic-overview-glow,
  .nav-item .semantic-patient-glow,
  .nav-item .semantic-storage-glow { display: none; filter: none; }
}
