/* Lucide Animated-style icon layer. No emoji glyphs, no runtime CDN. */
.la-icon{
  width:1em;
  height:1em;
  display:inline-grid;
  place-items:center;
  flex:0 0 auto;
  color:currentColor;
  line-height:0;
  transform-origin:center;
}
.la-icon svg{
  width:100%;
  height:100%;
  display:block;
  fill:none;
  stroke:currentColor;
  stroke-width:2;
  stroke-linecap:round;
  stroke-linejoin:round;
  overflow:visible;
}
.button .la-icon{width:13px;height:13px}
.demo-fire-button .la-icon{width:14px;height:14px}
.demo-icon-button .la-icon{width:15px;height:15px}
.demo-nav-item .la-icon{width:16px;height:16px;color:#8b8792}
.toast-icon .la-icon{width:15px;height:15px}
.action-card-icon .la-icon{width:19px;height:19px}
.alert-badge .la-icon{width:10px;height:10px}
.demo-badge .la-icon,.demo-chip .la-icon{width:12px;height:12px}
.stat-label-with-icon{display:inline-flex;align-items:center;gap:6px}
.stat-label-with-icon .la-icon{width:13px;height:13px;color:#77737f}

/* Bell: matches lucide-animated's characteristic ringing rotation. */
.la-icon[data-la-icon="bell"].la-animate svg{animation:la-bell .5s ease-in-out}
@keyframes la-bell{0%,100%{transform:rotate(0)}25%{transform:rotate(-10deg)}50%{transform:rotate(10deg)}75%{transform:rotate(-10deg)}}

/* Check: draw + settle, adapted from lucide-animated CheckIcon. */
.la-icon[data-la-icon="check"] .la-draw,
.la-icon[data-la-icon="shieldCheck"] .la-draw{stroke-dasharray:1;stroke-dashoffset:0;transform-origin:center}
.la-icon[data-la-icon="check"].la-animate .la-draw,
.la-icon[data-la-icon="shieldCheck"].la-animate .la-draw{animation:la-check .42s cubic-bezier(.2,.8,.2,1)}
@keyframes la-check{0%{stroke-dashoffset:1;opacity:0;transform:scale(.6)}20%{opacity:1}100%{stroke-dashoffset:0;opacity:1;transform:scale(1)}}

.la-icon[data-la-icon="copy"].la-animate .la-copy-back{animation:la-copy-back .38s cubic-bezier(.2,.8,.2,1)}
.la-icon[data-la-icon="copy"].la-animate .la-copy-front{animation:la-copy-front .38s cubic-bezier(.2,.8,.2,1)}
@keyframes la-copy-back{0%{transform:translate(-2px,-2px);opacity:.45}100%{transform:translate(0,0);opacity:1}}
@keyframes la-copy-front{0%{transform:translate(2px,2px)}100%{transform:translate(0,0)}}

.la-icon[data-la-icon="pause"].la-animate .la-pause-a{animation:la-pause-a .42s ease}
.la-icon[data-la-icon="pause"].la-animate .la-pause-b{animation:la-pause-b .42s ease}
@keyframes la-pause-a{50%{transform:translateX(-1.5px) scaleY(.72)}}
@keyframes la-pause-b{50%{transform:translateX(1.5px) scaleY(.72)}}
.la-icon[data-la-icon="play"].la-animate .la-play{animation:la-play .42s cubic-bezier(.2,.8,.2,1)}
@keyframes la-play{50%{transform:translateX(2px) scale(1.08)}}

.la-icon[data-la-icon="refresh"].la-animate svg{animation:la-refresh .52s cubic-bezier(.25,.8,.25,1)}
@keyframes la-refresh{to{transform:rotate(360deg)}}

.la-icon[data-la-icon="zap"] .la-zap{stroke-dasharray:1;stroke-dashoffset:0;transform-origin:center}
.la-icon[data-la-icon="zap"].la-animate .la-zap{animation:la-zap .52s cubic-bezier(.16,1,.3,1)}
@keyframes la-zap{0%{stroke-dashoffset:1;transform:scale(.72);opacity:.25}65%{stroke-dashoffset:0;transform:scale(1.12);opacity:1}100%{transform:scale(1)}}

.la-icon[data-la-icon="wifi"].la-animate .la-wifi-1{animation:la-wifi .5s ease 0ms both}
.la-icon[data-la-icon="wifi"].la-animate .la-wifi-2{animation:la-wifi .5s ease 70ms both}
.la-icon[data-la-icon="wifi"].la-animate .la-wifi-3{animation:la-wifi .5s ease 140ms both}
.la-icon[data-la-icon="wifi"].la-animate .la-wifi-dot{animation:la-wifi-dot .35s ease 210ms both}
@keyframes la-wifi{0%{opacity:.1;transform:translateY(2px) scale(.86)}100%{opacity:1;transform:translateY(0) scale(1)}}
@keyframes la-wifi-dot{0%{opacity:0;transform:scale(0)}100%{opacity:1;transform:scale(1)}}

.la-icon[data-la-icon="sparkles"].la-animate .la-spark-1{animation:la-spark .55s ease 0ms}
.la-icon[data-la-icon="sparkles"].la-animate .la-spark-2{animation:la-spark .55s ease 90ms}
.la-icon[data-la-icon="sparkles"].la-animate .la-spark-3{animation:la-spark .55s ease 170ms}
@keyframes la-spark{0%,100%{transform:scale(1);opacity:1}45%{transform:scale(.35) rotate(-14deg);opacity:.25}70%{transform:scale(1.18) rotate(5deg);opacity:1}}

.la-icon[data-la-icon="cpu"].la-animate .la-cpu-core{animation:la-cpu .52s cubic-bezier(.2,.8,.2,1)}
@keyframes la-cpu{40%{transform:scale(.82);transform-origin:center;opacity:.45}70%{transform:scale(1.08);transform-origin:center;opacity:1}}

.la-icon[data-la-icon="gauge"] .la-needle{transform-origin:12px 14px}
.la-icon[data-la-icon="gauge"].la-animate .la-needle{animation:la-gauge .58s cubic-bezier(.22,1,.36,1)}
@keyframes la-gauge{0%{transform:rotate(-50deg)}65%{transform:rotate(18deg)}100%{transform:rotate(0)}}

.la-icon[data-la-icon="list"].la-animate .la-list-1{animation:la-list .42s ease 0ms}
.la-icon[data-la-icon="list"].la-animate .la-list-2{animation:la-list .42s ease 55ms}
.la-icon[data-la-icon="list"].la-animate .la-list-3{animation:la-list .42s ease 110ms}
@keyframes la-list{0%{transform:translateX(-3px);opacity:.25}100%{transform:translateX(0);opacity:1}}

.la-icon[data-la-icon="x"] .la-x-a,.la-icon[data-la-icon="x"] .la-x-b{stroke-dasharray:1;stroke-dashoffset:0}
.la-icon[data-la-icon="x"].la-animate .la-x-a{animation:la-x .34s ease}
.la-icon[data-la-icon="x"].la-animate .la-x-b{animation:la-x .34s ease 55ms both}
@keyframes la-x{0%{stroke-dashoffset:1;opacity:0}100%{stroke-dashoffset:0;opacity:1}}

.la-icon[data-la-icon="alert"].la-animate .la-alert-triangle{animation:la-alert .48s cubic-bezier(.2,.8,.2,1)}
@keyframes la-alert{35%{transform:scale(.9);transform-origin:center}70%{transform:scale(1.07);transform-origin:center}}

.la-icon[data-la-icon="power"].la-animate .la-power-arc{animation:la-power .52s ease}
.la-icon[data-la-icon="power"].la-animate .la-power-line{animation:la-power-line .42s ease}
@keyframes la-power{50%{transform:rotate(18deg);transform-origin:center;opacity:.55}}
@keyframes la-power-line{50%{transform:translateY(2px)}}

.la-icon[data-la-icon="activity"] .la-activity{stroke-dasharray:1;stroke-dashoffset:0}
.la-icon[data-la-icon="activity"].la-animate .la-activity{animation:la-activity .62s ease}
@keyframes la-activity{0%{stroke-dashoffset:1;opacity:.35}100%{stroke-dashoffset:0;opacity:1}}

.la-icon[data-la-icon="shieldCheck"].la-animate .la-shield{animation:la-shield .5s ease}
@keyframes la-shield{45%{transform:scale(.92);transform-origin:center}75%{transform:scale(1.04);transform-origin:center}}

.la-icon[data-la-icon="download"].la-animate .la-download-arrow{animation:la-download .48s cubic-bezier(.2,.8,.2,1)}
@keyframes la-download{0%{transform:translateY(-3px);opacity:.35}70%{transform:translateY(2px);opacity:1}100%{transform:translateY(0)}}

.la-icon[data-la-icon="settings"].la-animate .la-settings{animation:la-settings .62s cubic-bezier(.2,.8,.2,1);transform-origin:center}
@keyframes la-settings{to{transform:rotate(120deg)}}

@media (prefers-reduced-motion: reduce){
  .la-icon,.la-icon *{animation:none!important;transition:none!important}
}

/* v3.5 icon polish */
.la-icon{
  vertical-align:middle;
  opacity:.96;
}
.la-icon svg{
  stroke-width:1.85;
}
.button .la-icon{width:14px;height:14px}
.spec-copy .la-icon{width:13px;height:13px}
.demo-fire-button .la-icon{width:15px;height:15px}
.demo-icon-button .la-icon{width:16px;height:16px}
.toast-icon .la-icon{width:16px;height:16px}
.action-card-icon .la-icon{width:20px;height:20px;position:relative;z-index:2}
.alert-badge{gap:5px}
.alert-badge .la-icon{width:11px;height:11px}
.demo-badge .la-icon,.demo-chip .la-icon{width:13px;height:13px}
.demo-nav-item .la-icon{width:17px;height:17px}
.demo-action-card>button .la-icon,.alert-actions button .la-icon{width:12px;height:12px}

.demo-icon-button:hover .la-icon,
.demo-fire-button:hover .la-icon,
.spec-copy:hover .la-icon,
.demo-nav-item:hover .la-icon,
.demo-action-card:hover .action-card-icon .la-icon,
.demo-stat-card:hover .la-icon{
  color:var(--accent-text-strong);
}

.la-icon[data-la-icon="bell"] .la-bell-body{transform-origin:12px 5px}
.la-icon[data-la-icon="bell"].la-animate .la-bell-body{animation:la-bell-body .56s cubic-bezier(.36,.07,.19,.97)}
@keyframes la-bell-body{0%,100%{transform:rotate(0)}20%{transform:rotate(-9deg)}40%{transform:rotate(8deg)}60%{transform:rotate(-5deg)}80%{transform:rotate(3deg)}}

.la-icon[data-la-icon="refresh"].la-animate .la-refresh-a,
.la-icon[data-la-icon="refresh"].la-animate .la-refresh-b{
  transform-origin:12px 12px;
  animation:la-refresh-v34 .58s cubic-bezier(.2,.8,.2,1)
}
@keyframes la-refresh-v34{to{transform:rotate(360deg)}}

.la-icon[data-la-icon="cpu"].la-animate .la-cpu-inner{animation:la-cpu-inner .52s cubic-bezier(.2,.8,.2,1)}
.la-icon[data-la-icon="cpu"].la-animate .la-cpu-pins{animation:la-cpu-pins .52s ease}
@keyframes la-cpu-inner{0%,100%{transform:scale(1);transform-origin:center}45%{transform:scale(.72);transform-origin:center}72%{transform:scale(1.08);transform-origin:center}}
@keyframes la-cpu-pins{45%{opacity:.42}100%{opacity:1}}

.la-icon[data-la-icon="download"].la-animate .la-download-head{animation:la-download-head .48s cubic-bezier(.2,.8,.2,1)}
@keyframes la-download-head{50%{transform:translateY(2px)}}
.la-icon[data-la-icon="bell"].la-animate svg,
.la-icon[data-la-icon="refresh"].la-animate svg{animation:none}


/* v3.5 — never let icon wrappers stretch inside navigation/content rows. */
[data-la-icon].la-icon{
  box-sizing:border-box;
  aspect-ratio:1 / 1;
  min-width:0;
  min-height:0
}
.demo-nav-item>[data-la-icon].la-icon{
  flex:0 0 28px !important;
  width:28px !important;
  height:28px !important;
  aspect-ratio:1 / 1;
}
.demo-nav-item>[data-la-icon].la-icon>svg{
  width:15px !important;
  height:15px !important;
  max-width:15px;
  max-height:15px;
}


/* v3.5 — icon isolation: host/component span rules must never deform SVG icons. */
[data-la-icon].la-icon{
  display:inline-grid !important;
  place-items:center;
  margin:0 !important;
  padding:0 !important;
  line-height:0 !important;
  letter-spacing:0 !important;
  text-indent:0 !important;
  vertical-align:middle;
  overflow:visible;
  flex-grow:0 !important;
  flex-shrink:0 !important;
}
[data-la-icon].la-icon>svg{
  display:block !important;
  flex:none !important;
  margin:0 !important;
  padding:0 !important;
  transform-box:view-box;
  transform-origin:center;
}
.toast-icon>[data-la-icon].la-icon,
.demo-icon-button>[data-la-icon].la-icon,
.action-card-icon>[data-la-icon].la-icon{
  color:inherit !important;
}
.demo-nav-item>[data-la-icon].la-icon{
  position:relative;
  z-index:2;
  flex-basis:28px !important;
}
.demo-nav-item>.nav-item-label,
.demo-nav-item>small{
  position:relative;
  z-index:2;
}
.la-icon[data-la-icon="gauge"].la-animate .la-gauge-arc{
  animation:la-gauge-arc-v35 .52s cubic-bezier(.2,.8,.2,1)
}
@keyframes la-gauge-arc-v35{
  0%{stroke-dasharray:44;stroke-dashoffset:44;opacity:.35}
  100%{stroke-dasharray:44;stroke-dashoffset:0;opacity:1}
}
.la-icon[data-la-icon="list"].la-animate .la-list-dot-1{animation:la-list-dot-v35 .38s ease 0ms both}
.la-icon[data-la-icon="list"].la-animate .la-list-dot-2{animation:la-list-dot-v35 .38s ease 55ms both}
.la-icon[data-la-icon="list"].la-animate .la-list-dot-3{animation:la-list-dot-v35 .38s ease 110ms both}
@keyframes la-list-dot-v35{0%{opacity:0;transform:scale(0)}100%{opacity:1;transform:scale(1)}}
