/**
 * Greenlight Icon System
 *
 * Uses CSS mask-image so icons inherit `currentColor` from their parent,
 * enabling seamless theme integration without multiple SVG color variants.
 * All icons are monochrome line-art optimized for the "Projeção 35mm" aesthetic.
 */

/* ── Base icon class ─────────────────────────────────────────────── */

.icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 1.25em;
  height: 1.25em;
  flex-shrink: 0;
  background: currentColor;
  -webkit-mask-size: contain;
  mask-size: contain;
  -webkit-mask-repeat: no-repeat;
  mask-repeat: no-repeat;
  -webkit-mask-position: center;
  mask-position: center;
  vertical-align: middle;
}

/* ── Size modifiers ──────────────────────────────────────────────── */

.icon-sm { width: 1em; height: 1em; }
.icon-lg { width: 1.75em; height: 1.75em; }
.icon-xl { width: 2.5em; height: 2.5em; }
.icon-2xl { width: 3.5em; height: 3.5em; }

/* ── Icon definitions ────────────────────────────────────────────── */

.icon-watched {
  -webkit-mask-image: url('/icons/ui/ic-watched.svg');
  mask-image: url('/icons/ui/ic-watched.svg');
}

.icon-unwatched {
  -webkit-mask-image: url('/icons/ui/ic-unwatched.svg');
  mask-image: url('/icons/ui/ic-unwatched.svg');
}

.icon-share {
  -webkit-mask-image: url('/icons/ui/ic-share.svg');
  mask-image: url('/icons/ui/ic-share.svg');
}

.icon-expand {
  -webkit-mask-image: url('/icons/ui/ic-expand.svg');
  mask-image: url('/icons/ui/ic-expand.svg');
}

.icon-collapse {
  -webkit-mask-image: url('/icons/ui/ic-collapse.svg');
  mask-image: url('/icons/ui/ic-collapse.svg');
}

.icon-close {
  -webkit-mask-image: url('/icons/ui/ic-close.svg');
  mask-image: url('/icons/ui/ic-close.svg');
}

.icon-chat {
  -webkit-mask-image: url('/icons/ui/ic-chat.svg');
  mask-image: url('/icons/ui/ic-chat.svg');
}

.icon-filter {
  -webkit-mask-image: url('/icons/ui/ic-filter.svg');
  mask-image: url('/icons/ui/ic-filter.svg');
}

.icon-search {
  -webkit-mask-image: url('/icons/ui/ic-search.svg');
  mask-image: url('/icons/ui/ic-search.svg');
}

.icon-streaming {
  -webkit-mask-image: url('/icons/ui/ic-streaming.svg');
  mask-image: url('/icons/ui/ic-streaming.svg');
}

.icon-episodes {
  -webkit-mask-image: url('/icons/ui/ic-episodes.svg');
  mask-image: url('/icons/ui/ic-episodes.svg');
}

.icon-film {
  -webkit-mask-image: url('/icons/ui/ic-film.svg');
  mask-image: url('/icons/ui/ic-film.svg');
}

.icon-star {
  -webkit-mask-image: url('/icons/ui/ic-star.svg');
  mask-image: url('/icons/ui/ic-star.svg');
}

.icon-fire {
  -webkit-mask-image: url('/icons/ui/ic-fire.svg');
  mask-image: url('/icons/ui/ic-fire.svg');
}

.icon-external {
  -webkit-mask-image: url('/icons/ui/ic-external.svg');
  mask-image: url('/icons/ui/ic-external.svg');
}

.icon-plus-badge {
  -webkit-mask-image: url('/icons/ui/ic-plus-badge.svg');
  mask-image: url('/icons/ui/ic-plus-badge.svg');
}

.icon-logout {
  -webkit-mask-image: url('/icons/ui/ic-logout.svg');
  mask-image: url('/icons/ui/ic-logout.svg');
}

.icon-empty-film {
  -webkit-mask-image: url('/icons/ui/ic-empty-film.svg');
  mask-image: url('/icons/ui/ic-empty-film.svg');
}

.icon-error {
  -webkit-mask-image: url('/icons/ui/ic-error.svg');
  mask-image: url('/icons/ui/ic-error.svg');
}

.icon-loading {
  -webkit-mask-image: url('/icons/ui/ic-loading.svg');
  mask-image: url('/icons/ui/ic-loading.svg');
  animation: icon-spin 1.5s linear infinite;
}

.icon-menu {
  -webkit-mask-image: url('/icons/ui/ic-menu.svg');
  mask-image: url('/icons/ui/ic-menu.svg');
}

/* ── Animations ──────────────────────────────────────────────────── */

@keyframes icon-spin {
  from { transform: rotate(0deg); }
  to { transform: rotate(360deg); }
}

/* ── Forced-colors fallback (Windows High Contrast) ──────────────── */

@media (forced-colors: active) {
  .icon {
    background: CanvasText;
    forced-color-adjust: auto;
  }
}
