/* LiveLocalVibes icon system — styles. Pairs with /icons/llv-icons.js */
:root{
  --llv-purple:#9b5cff;
  --llv-lime:#c9ff62;
  --llv-cyan:#5ee0f0;
  --llv-error:#ff4d6d;
  --llv-success:#c9ff62;
  --llv-muted:#8b88a0;
}
/* Sized to the text around it (1.15em), so it slots in wherever an emoji was */
llv-icon{display:inline-flex;align-items:center;justify-content:center;width:1.15em;height:1.15em;flex-shrink:0;vertical-align:-.2em;line-height:1;color:var(--llv-icon-color,var(--llv-purple));}
llv-icon svg{width:100%;height:100%;display:block;overflow:visible;}
llv-icon.llv-lead{margin-right:.45em;}
llv-icon[tone="live"]{--llv-icon-color:var(--llv-lime);}
llv-icon[tone="cyan"]{--llv-icon-color:var(--llv-cyan);}
llv-icon[tone="error"]{--llv-icon-color:var(--llv-error);}
llv-icon[tone="success"]{--llv-icon-color:var(--llv-success);}
llv-icon[tone="amber"]{--llv-icon-color:#FFB547;}
llv-icon[tone="muted"]{--llv-icon-color:var(--llv-muted);}
llv-icon[tone="inherit"]{--llv-icon-color:currentColor;}
llv-icon.is-filled svg{fill:currentColor;}

/* Filled / colored surfaces: icon follows the text color so it stays visible */
.btn-primary llv-icon,.bg-\[\#A259FF\] llv-icon,.active-tab llv-icon{--llv-icon-color:currentColor;}

/* Icon container — cards, feature callouts, dashboard tiles only */
.llv-icon-box{width:38px;height:38px;display:inline-flex;align-items:center;justify-content:center;border-radius:9px;background:rgba(139,92,246,.07);border:1px solid rgba(139,92,246,.16);color:#9b5cff;--llv-icon-color:currentColor;flex-shrink:0;font-size:1rem;line-height:1;}
.llv-icon-box svg,.llv-icon-box llv-icon{width:21px;height:21px;}
.llv-icon-box.is-live{color:#c9ff62;border-color:rgba(201,255,98,.32);background:rgba(201,255,98,.08);animation:llvLivePulse 2.8s ease-in-out infinite;}
/* Discovery / location accent (cyan) for cards */
.llv-icon-box.is-discover{color:var(--llv-cyan);border-color:rgba(94,224,240,.3);background:rgba(94,224,240,.07);}
@keyframes llvLivePulse{0%,100%{box-shadow:0 0 0 0 rgba(201,255,98,0);}50%{box-shadow:0 0 0 4px rgba(201,255,98,.09);}}

/* Vibe-level scale: unlit bars stay faint */
llv-icon .llv-bar-off{opacity:.28;}

/* Star ratings (inputs + review cards) */
.star llv-icon{width:1em;height:1em;vertical-align:-.1em;--llv-icon-color:currentColor;}
.star.on llv-icon svg,.star.hover llv-icon svg{fill:currentColor;}
.llv-stars{display:inline-flex;gap:2px;align-items:center;}
.llv-stars llv-icon{--llv-icon-color:currentColor;}
.llv-stars llv-icon.is-empty{opacity:.35;}

/* Spinners */
llv-icon[name="loader"] svg{animation:llvSpin .9s linear infinite;}
@keyframes llvSpin{to{transform:rotate(360deg);}}

/* Selected vibe level lights up lime (vibe-rating + homepage demo) */
.emoji-btn.on llv-icon,.vibe-demo-options button[aria-pressed="true"] llv-icon{--llv-icon-color:var(--llv-lime);}

@media (prefers-reduced-motion:reduce){
  .llv-icon-box.is-live{animation:none;}
  llv-icon[name="loader"] svg{animation-duration:2.4s;}
}
