/* ============================================================
   Helm icons — v0
   Editorial / legal-brief register. Single-weight stroke icons, no fill,
   no two-tone, no color. SVG sprites with currentColor so they inherit
   ink/muted/warning/citation from context.

   Source: Lucide (https://lucide.dev/) stripped to single-weight 1.5px stroke,
   color stripped (currentColor only). Used here as inline-data SVG mask-image
   so we can keep them as CSS classes without an icon-component runtime.

   Naming: short, function-not-form (`.icon-check`, `.icon-link`, NOT
   `.icon-checkmark-circle`). Add icons one-per-need; don't pre-build a library.
   ============================================================ */

.icon {
  display: inline-block;
  width: 16px;
  height: 16px;
  vertical-align: -3px;
  background-color: currentColor;
  -webkit-mask-repeat: no-repeat;
  mask-repeat: no-repeat;
  -webkit-mask-position: center;
  mask-position: center;
  -webkit-mask-size: contain;
  mask-size: contain;
}

.icon-sm { width: 12px; height: 12px; vertical-align: -2px; }
.icon-lg { width: 20px; height: 20px; vertical-align: -4px; }
.icon-xl { width: 24px; height: 24px; vertical-align: -5px; }

/* Status / state */
.icon-check     { -webkit-mask-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='black' stroke-width='1.5' stroke-linecap='square' stroke-linejoin='miter'><polyline points='3 8.5 6.5 12 13 5'/></svg>"); mask-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='black' stroke-width='1.5' stroke-linecap='square' stroke-linejoin='miter'><polyline points='3 8.5 6.5 12 13 5'/></svg>"); }
.icon-x         { -webkit-mask-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='black' stroke-width='1.5' stroke-linecap='square'><line x1='3' y1='3' x2='13' y2='13'/><line x1='13' y1='3' x2='3' y2='13'/></svg>"); mask-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='black' stroke-width='1.5' stroke-linecap='square'><line x1='3' y1='3' x2='13' y2='13'/><line x1='13' y1='3' x2='3' y2='13'/></svg>"); }
.icon-warning   { -webkit-mask-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='black' stroke-width='1.5' stroke-linecap='square' stroke-linejoin='miter'><path d='M8 2 L14 13 L2 13 Z'/><line x1='8' y1='6' x2='8' y2='9.5'/><circle cx='8' cy='11.5' r='0.6' fill='black' stroke='none'/></svg>"); mask-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='black' stroke-width='1.5' stroke-linecap='square' stroke-linejoin='miter'><path d='M8 2 L14 13 L2 13 Z'/><line x1='8' y1='6' x2='8' y2='9.5'/><circle cx='8' cy='11.5' r='0.6' fill='black' stroke='none'/></svg>"); }
.icon-info      { -webkit-mask-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='black' stroke-width='1.5'><circle cx='8' cy='8' r='6'/><line x1='8' y1='7' x2='8' y2='11.5'/><circle cx='8' cy='4.8' r='0.6' fill='black' stroke='none'/></svg>"); mask-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='black' stroke-width='1.5'><circle cx='8' cy='8' r='6'/><line x1='8' y1='7' x2='8' y2='11.5'/><circle cx='8' cy='4.8' r='0.6' fill='black' stroke='none'/></svg>"); }

/* Navigation / direction */
.icon-arrow-right { -webkit-mask-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='black' stroke-width='1.5' stroke-linecap='square'><line x1='3' y1='8' x2='13' y2='8'/><polyline points='9 4 13 8 9 12'/></svg>"); mask-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='black' stroke-width='1.5' stroke-linecap='square'><line x1='3' y1='8' x2='13' y2='8'/><polyline points='9 4 13 8 9 12'/></svg>"); }
.icon-arrow-left  { -webkit-mask-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='black' stroke-width='1.5' stroke-linecap='square'><line x1='13' y1='8' x2='3' y2='8'/><polyline points='7 4 3 8 7 12'/></svg>"); mask-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='black' stroke-width='1.5' stroke-linecap='square'><line x1='13' y1='8' x2='3' y2='8'/><polyline points='7 4 3 8 7 12'/></svg>"); }
.icon-chevron-down { -webkit-mask-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='black' stroke-width='1.5' stroke-linecap='square'><polyline points='4 6 8 10 12 6'/></svg>"); mask-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='black' stroke-width='1.5' stroke-linecap='square'><polyline points='4 6 8 10 12 6'/></svg>"); }
.icon-external    { -webkit-mask-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='black' stroke-width='1.5' stroke-linecap='square'><polyline points='7 3 13 3 13 9'/><line x1='13' y1='3' x2='6' y2='10'/><polyline points='12 13 3 13 3 4'/></svg>"); mask-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='black' stroke-width='1.5' stroke-linecap='square'><polyline points='7 3 13 3 13 9'/><line x1='13' y1='3' x2='6' y2='10'/><polyline points='12 13 3 13 3 4'/></svg>"); }

/* Document / file (citation-adjacent) */
.icon-file      { -webkit-mask-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='black' stroke-width='1.5' stroke-linejoin='miter'><path d='M4 2 L10 2 L13 5 L13 14 L4 14 Z'/><polyline points='10 2 10 5 13 5'/></svg>"); mask-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='black' stroke-width='1.5' stroke-linejoin='miter'><path d='M4 2 L10 2 L13 5 L13 14 L4 14 Z'/><polyline points='10 2 10 5 13 5'/></svg>"); }
.icon-link      { -webkit-mask-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='black' stroke-width='1.5' stroke-linecap='round'><path d='M7 4 L4 4 A3 3 0 0 0 4 10 L7 10'/><path d='M9 12 L12 12 A3 3 0 0 0 12 6 L9 6'/><line x1='6' y1='8' x2='10' y2='8'/></svg>"); mask-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='black' stroke-width='1.5' stroke-linecap='round'><path d='M7 4 L4 4 A3 3 0 0 0 4 10 L7 10'/><path d='M9 12 L12 12 A3 3 0 0 0 12 6 L9 6'/><line x1='6' y1='8' x2='10' y2='8'/></svg>"); }
.icon-download  { -webkit-mask-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='black' stroke-width='1.5' stroke-linecap='square'><line x1='8' y1='2' x2='8' y2='11'/><polyline points='4 8 8 12 12 8'/><line x1='2' y1='14' x2='14' y2='14'/></svg>"); mask-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='black' stroke-width='1.5' stroke-linecap='square'><line x1='8' y1='2' x2='8' y2='11'/><polyline points='4 8 8 12 12 8'/><line x1='2' y1='14' x2='14' y2='14'/></svg>"); }
.icon-print     { -webkit-mask-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='black' stroke-width='1.5' stroke-linejoin='miter'><polyline points='4 5 4 2 12 2 12 5'/><rect x='2' y='5' width='12' height='6'/><rect x='4' y='9' width='8' height='5'/></svg>"); mask-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='black' stroke-width='1.5' stroke-linejoin='miter'><polyline points='4 5 4 2 12 2 12 5'/><rect x='2' y='5' width='12' height='6'/><rect x='4' y='9' width='8' height='5'/></svg>"); }

/* Time */
.icon-clock     { -webkit-mask-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='black' stroke-width='1.5' stroke-linecap='square'><circle cx='8' cy='8' r='6'/><polyline points='8 4 8 8 11 10'/></svg>"); mask-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='black' stroke-width='1.5' stroke-linecap='square'><circle cx='8' cy='8' r='6'/><polyline points='8 4 8 8 11 10'/></svg>"); }
.icon-calendar  { -webkit-mask-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='black' stroke-width='1.5' stroke-linejoin='miter'><rect x='2' y='3' width='12' height='11'/><line x1='2' y1='6' x2='14' y2='6'/><line x1='5' y1='2' x2='5' y2='4'/><line x1='11' y1='2' x2='11' y2='4'/></svg>"); mask-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='black' stroke-width='1.5' stroke-linejoin='miter'><rect x='2' y='3' width='12' height='11'/><line x1='2' y1='6' x2='14' y2='6'/><line x1='5' y1='2' x2='5' y2='4'/><line x1='11' y1='2' x2='11' y2='4'/></svg>"); }

/* Currency / accounting */
.icon-dollar    { -webkit-mask-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='black' stroke-width='1.5' stroke-linecap='square'><line x1='8' y1='2' x2='8' y2='14'/><path d='M11 4 H6.5 A2.5 2.5 0 0 0 6.5 9 H9.5 A2.5 2.5 0 0 1 9.5 14 H5'/></svg>"); mask-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='black' stroke-width='1.5' stroke-linecap='square'><line x1='8' y1='2' x2='8' y2='14'/><path d='M11 4 H6.5 A2.5 2.5 0 0 0 6.5 9 H9.5 A2.5 2.5 0 0 1 9.5 14 H5'/></svg>"); }

/* Hamburger (mobile nav) */
.icon-menu      { -webkit-mask-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='black' stroke-width='1.5' stroke-linecap='square'><line x1='2' y1='4' x2='14' y2='4'/><line x1='2' y1='8' x2='14' y2='8'/><line x1='2' y1='12' x2='14' y2='12'/></svg>"); mask-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='black' stroke-width='1.5' stroke-linecap='square'><line x1='2' y1='4' x2='14' y2='4'/><line x1='2' y1='8' x2='14' y2='8'/><line x1='2' y1='12' x2='14' y2='12'/></svg>"); }

/* Print fallback — icons render via mask-image which has spotty print support.
   In print, show nothing (text-only). This is correct for legal-brief register:
   PDFs don't need decorative icons. */
@media print {
  .icon { display: none; }
}
