/* Check-Beam icon set — drawn in-house, replaces the former icon font.

   Usage: <i class="ico ico-trash"></i>. The icon takes 1em of space and the text
   colour (currentColor), so font-size and color size and tint it like a glyph.

   How it works: every icon is an SVG line drawing used as a CSS mask on ::before.
   The <i> itself stays a normal box — styles that give it a background, a size or
   a radius (icon chips) keep working, the glyph sits centred inside.

   Drawing rules for new icons: viewBox 0 0 24 24, lines only (fill none, stroke 2,
   round caps and joins), keep the drawing between 2 and 22 so the stroke stays
   inside the box. Fill only what has no line form: dots (r 1–2) and the one half
   of circle-half-stroke. The stroke colour is irrelevant (a mask only reads alpha);
   '#' must be written as %23 inside the data URI. */

.ico {
    --ico: linear-gradient(transparent, transparent);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    /* Same box as a text glyph: 1em tall, reaching .125em below the baseline. */
    vertical-align: -.125em;
    font-style: normal;
    line-height: 1;
}

    /* Drawn 1.2em large on a 1em footprint: line icons need the extra size to match
       the visual weight of filled glyphs, and the negative margin keeps every layout
       that was tuned for 1em exactly as it was. */
    .ico::before {
        content: "";
        display: inline-block;
        flex: none;
        width: 1.2em;
        height: 1.2em;
        margin: -.1em;
        /* Only matters where a stylesheet turns the <i> into a block. */
        vertical-align: middle;
        background-color: currentColor;
        -webkit-mask: var(--ico) center / contain no-repeat;
        mask: var(--ico) center / contain no-repeat;
    }

.ico-spin {
    animation: ico-spin 1s linear infinite;
}

@keyframes ico-spin {
    to {
        transform: rotate(360deg);
    }
}

@media (prefers-reduced-motion: reduce) {
    .ico-spin {
        animation-duration: 3s;
    }
}

/* --- Arrows, chevrons, movement --- */
.ico-arrow-up { --ico: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='M12 19V5M6 11l6-6 6 6'/></svg>"); }
.ico-arrow-down { --ico: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='M12 5v14M6 13l6 6 6-6'/></svg>"); }
.ico-arrow-left { --ico: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='M19 12H5M11 6l-6 6 6 6'/></svg>"); }
.ico-arrow-right { --ico: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='M5 12h14M13 6l6 6-6 6'/></svg>"); }
.ico-arrow-up-long { --ico: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='M12 21V3M7.5 7.5L12 3l4.5 4.5'/></svg>"); }
.ico-arrow-up-wide-short { --ico: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='M6 20V4M2.5 7.5L6 4l3.5 3.5M12.5 6H21M12.5 11.5h6M12.5 17h3'/></svg>"); }
.ico-arrows-left-right { --ico: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='M3 12h18M7 8l-4 4 4 4M17 8l4 4-4 4'/></svg>"); }
.ico-arrows-left-right-to-line { --ico: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='M3 5v14M21 5v14M7 12h10M10 9l-3 3 3 3M14 9l3 3-3 3'/></svg>"); }
.ico-right-left { --ico: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='M4 8h15.5M16 4.5L19.5 8 16 11.5M20 16H4.5M8 12.5L4.5 16 8 19.5'/></svg>"); }
.ico-chevron-up { --ico: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='M6 15l6-6 6 6'/></svg>"); }
.ico-chevron-down { --ico: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='M6 9l6 6 6-6'/></svg>"); }
.ico-chevron-left { --ico: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='M15 6l-6 6 6 6'/></svg>"); }
.ico-chevron-right { --ico: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='M9 6l6 6-6 6'/></svg>"); }
.ico-arrows-rotate { --ico: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='M4.95 9.43A7.5 7.5 0 0 1 19.5 12M19.05 14.57A7.5 7.5 0 0 1 4.5 12M17 9.5l2.5 2.5 2.5-2.5M2 14.5L4.5 12 7 14.5'/></svg>"); }
.ico-rotate-left { --ico: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='M4 13A8 8 0 1 0 12 5M14.5 2.5L12 5l2.5 2.5'/></svg>"); }
.ico-rotate-right { --ico: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='M20 13A8 8 0 1 1 12 5M9.5 2.5L12 5 9.5 7.5'/></svg>"); }
.ico-clock-rotate-left { --ico: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='M4 13A8 8 0 1 0 12 5M14.5 2.5L12 5l2.5 2.5M12 9.5V13l2.5 1.75'/></svg>"); }
.ico-expand { --ico: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='M4 9V4h5M20 9V4h-5M4 15v5h5M20 15v5h-5'/></svg>"); }
.ico-compress { --ico: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='M9 4v5H4M15 4v5h5M9 20v-5H4M15 20v-5h5'/></svg>"); }
.ico-up-right-from-square { --ico: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='M14 3.5h6.5V10M20.5 3.5L11 13M18 14v4.5a2 2 0 0 1-2 2H5.5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2H10'/></svg>"); }
.ico-right-to-bracket { --ico: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='M14 4h4a2 2 0 0 1 2 2v12a2 2 0 0 1-2 2h-4M3 12h11.5M10.5 8l4 4-4 4'/></svg>"); }
.ico-right-from-bracket { --ico: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='M10 4H6a2 2 0 0 0-2 2v12a2 2 0 0 0 2 2h4M9.5 12H21M17 8l4 4-4 4'/></svg>"); }
.ico-download { --ico: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='M12 3.5V15M7 10l5 5 5-5M4 15v4a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-4'/></svg>"); }
.ico-print { --ico: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='M7 8V3h10v5M7 17H4a2 2 0 0 1-2-2v-5a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2v5a2 2 0 0 1-2 2h-3M7 13.5h10V21H7z'/></svg>"); }
.ico-upload { --ico:url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='M12 15V3.5M7 8.5l5-5 5 5M4 15v4a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-4'/></svg>"); }
.ico-cloud-arrow-up { --ico: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='M8 19H6.5a4.5 4.5 0 0 1-.5-8.97A6.5 6.5 0 0 1 18.4 8.6 5.25 5.25 0 0 1 17.5 19H16M12 21v-8.5M8.75 15.75L12 12.5l3.25 3.25'/></svg>"); }

/* --- Basic actions --- */
.ico-plus { --ico: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='M12 5v14M5 12h14'/></svg>"); }
.ico-minus { --ico: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='M5 12h14'/></svg>"); }
.ico-xmark { --ico: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='M6 6l12 12M18 6L6 18'/></svg>"); }
.ico-check { --ico: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='M4.5 12.5l5 5 10-11'/></svg>"); }
.ico-pencil { --ico: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='M4 20l1-4.5L16.3 4.2a2 2 0 0 1 2.8 0l.7.7a2 2 0 0 1 0 2.8L8.5 19zM14.5 6l3.5 3.5'/></svg>"); }
.ico-trash { --ico: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='M4 7h16M9.5 7V4.5a1 1 0 0 1 1-1h3a1 1 0 0 1 1 1V7M6 7l.9 12.1a2 2 0 0 0 2 1.9h6.2a2 2 0 0 0 2-1.9L18 7M10 11v6M14 11v6'/></svg>"); }
.ico-copy { --ico: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><rect x='8' y='8' width='13' height='13' rx='2'/><path d='M16 8V5a2 2 0 0 0-2-2H5a2 2 0 0 0-2 2v9a2 2 0 0 0 2 2h3'/></svg>"); }
.ico-window-restore { --ico: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><rect x='3' y='8' width='13' height='13' rx='2'/><path d='M8 8V5a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v9a2 2 0 0 1-2 2h-3'/></svg>"); }
.ico-floppy-disk { --ico: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='M5 3h11.2a2 2 0 0 1 1.4.6l2.8 2.8a2 2 0 0 1 .6 1.4V19a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2zM7.5 3v4a1 1 0 0 0 1 1h6a1 1 0 0 0 1-1V3M7 21v-6a1 1 0 0 1 1-1h8a1 1 0 0 1 1 1v6'/></svg>"); }
.ico-link { --ico: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='M10 7.5H7a4.5 4.5 0 0 0 0 9h3M14 7.5h3a4.5 4.5 0 0 1 0 9h-3M8.5 12h7'/></svg>"); }
.ico-magnifying-glass { --ico: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><circle cx='10.5' cy='10.5' r='6.5'/><path d='M15.3 15.3l5.2 5.2'/></svg>"); }
.ico-magnifying-glass-plus { --ico: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><circle cx='10.5' cy='10.5' r='6.5'/><path d='M15.3 15.3l5.2 5.2M10.5 8v5M8 10.5h5'/></svg>"); }
.ico-magnifying-glass-minus { --ico: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><circle cx='10.5' cy='10.5' r='6.5'/><path d='M15.3 15.3l5.2 5.2M8 10.5h5'/></svg>"); }
.ico-ellipsis-vertical { --ico: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><circle cx='12' cy='5' r='2'/><circle cx='12' cy='12' r='2'/><circle cx='12' cy='19' r='2'/></svg>"); }
.ico-bars { --ico: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='M4 6h16M4 12h16M4 18h16'/></svg>"); }
.ico-grip-lines { --ico: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='M4 9.5h16M4 14.5h16'/></svg>"); }
.ico-sliders { --ico: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='M3 6h9M16 6h5M3 12h3M10 12h11M3 18h11M18 18h3'/><circle cx='14' cy='6' r='2'/><circle cx='8' cy='12' r='2'/><circle cx='16' cy='18' r='2'/></svg>"); }
.ico-gear { --ico: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='M18.79 10.31L21.38 10.51 21.38 13.49 18.79 13.69A7 7 0 0 1 18 15.6L19.69 17.58 17.58 19.69 15.6 18A7 7 0 0 1 13.69 18.79L13.49 21.38 10.51 21.38 10.31 18.79A7 7 0 0 1 8.4 18L6.42 19.69 4.31 17.58 6 15.6A7 7 0 0 1 5.21 13.69L2.62 13.49 2.62 10.51 5.21 10.31A7 7 0 0 1 6 8.4L4.31 6.42 6.42 4.31 8.4 6A7 7 0 0 1 10.31 5.21L10.51 2.62 13.49 2.62 13.69 5.21A7 7 0 0 1 15.6 6L17.58 4.31 19.69 6.42 18 8.4A7 7 0 0 1 18.79 10.31z'/><circle cx='12' cy='12' r='3'/></svg>"); }
.ico-key { --ico: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><circle cx='7.5' cy='15.5' r='4.5'/><path d='M10.7 12.3L20 3M16.5 6.5L19 9M14 9l2 2'/></svg>"); }
.ico-lock { --ico: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><rect x='4.5' y='10.5' width='15' height='10.5' rx='2'/><path d='M8 10.5V7a4 4 0 0 1 8 0v3.5'/></svg>"); }
.ico-lock-open { --ico: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><rect x='4.5' y='10.5' width='15' height='10.5' rx='2'/><path d='M8 10.5V7a4 4 0 0 1 7.75-1.4'/></svg>"); }
.ico-eye { --ico: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='M2.5 12S6 5 12 5s9.5 7 9.5 7-3.5 7-9.5 7-9.5-7-9.5-7z'/><circle cx='12' cy='12' r='3'/></svg>"); }
.ico-eye-slash { --ico: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='M10.6 5.1A9.6 9.6 0 0 1 12 5c6 0 9.5 7 9.5 7a16.5 16.5 0 0 1-2.3 3.3M6.6 6.6C3.9 8.4 2.5 12 2.5 12s3.5 7 9.5 7c1.8 0 3.4-.6 4.8-1.5M9.9 9.9a3 3 0 0 0 4.2 4.2M3 3l18 18'/></svg>"); }
.ico-qrcode { --ico: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><rect x='3' y='3' width='7' height='7' rx='1'/><rect x='14' y='3' width='7' height='7' rx='1'/><rect x='3' y='14' width='7' height='7' rx='1'/><path d='M14 14h3v3h-3zM18 18h3v3h-3zM14 21h.01M21 14h.01M6.5 6.5h.01M17.5 6.5h.01M6.5 17.5h.01'/></svg>"); }

/* --- Status and notices --- */
.ico-circle { --ico: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><circle cx='12' cy='12' r='9'/></svg>"); }
.ico-circle-check { --ico: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><circle cx='12' cy='12' r='9'/><path d='M8 12.5l2.75 2.75L16 9.75'/></svg>"); }
.ico-circle-info { --ico: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><circle cx='12' cy='12' r='9'/><path d='M12 11v5.5'/><circle cx='12' cy='7.75' r='1.25' fill='black' stroke='none'/></svg>"); }
.ico-circle-exclamation { --ico: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><circle cx='12' cy='12' r='9'/><path d='M12 7.5v5'/><circle cx='12' cy='16.25' r='1.25' fill='black' stroke='none'/></svg>"); }
.ico-circle-half-stroke { --ico: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><circle cx='12' cy='12' r='9'/><path d='M12 3a9 9 0 0 0 0 18z' fill='black'/></svg>"); }
.ico-triangle-exclamation { --ico: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='M10.3 4.2a2 2 0 0 1 3.4 0l7.8 13.5a2 2 0 0 1-1.7 3H4.2a2 2 0 0 1-1.7-3zM12 9.5v4'/><circle cx='12' cy='17' r='1.25' fill='black' stroke='none'/></svg>"); }
.ico-info { --ico: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='M12 10.5V20M9.5 10.5H12M9.5 20h5'/><circle cx='12' cy='5.5' r='1.5' fill='black' stroke='none'/></svg>"); }
.ico-ban { --ico: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><circle cx='12' cy='12' r='9'/><path d='M5.6 5.6l12.8 12.8'/></svg>"); }
.ico-square-check { --ico: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><rect x='3' y='3' width='18' height='18' rx='3'/><path d='M7.5 12.5l3 3 6-6.5'/></svg>"); }
.ico-square-plus { --ico: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><rect x='3' y='3' width='18' height='18' rx='3'/><path d='M12 8v8M8 12h8'/></svg>"); }
.ico-spinner { --ico: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='M12 3a9 9 0 1 0 9 9'/></svg>"); }
.ico-hourglass-half { --ico: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='M6 3h12M6 21h12M7.5 3v3.2a4 4 0 0 0 1.6 3.2L12 12l2.9-2.6a4 4 0 0 0 1.6-3.2V3M7.5 21v-3.2a4 4 0 0 1 1.6-3.2L12 12l2.9 2.6a4 4 0 0 1 1.6 3.2V21M9.5 18.5h5'/></svg>"); }
.ico-heart-pulse { --ico: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='M12 20.5C6 16.5 3 13 3 9.25A4.75 4.75 0 0 1 12 7a4.75 4.75 0 0 1 9 2.25c0 3.75-3 7.25-9 11.25zM3.5 12.5h4L9 10l2.5 5 2-3.5 1 1h6'/></svg>"); }
.ico-star { --ico: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='M12 3.4l2.35 6.26 6.68.3-5.23 4.18 1.78 6.45L12 16.9l-5.58 3.69 1.78-6.45-5.23-4.18 6.68-.3z'/></svg>"); }
.ico-fire { --ico: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='M12 21.5a7 7 0 0 0 7-7c0-3.5-2.2-5.6-3.8-7.6-.4 1.9-1.4 3.1-2.7 3.6.3-3.2-1-5.8-3.2-7.5.1 2.9-1.4 5-2.8 6.6C5.4 11.1 5 12.7 5 14.5a7 7 0 0 0 7 7z'/></svg>"); }
.ico-flag { --ico: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='M5 21V3.5M5 4.5h13l-3 4.25 3 4.25H5'/></svg>"); }

/* --- Media, playback, screens --- */
.ico-play { --ico: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='M6 4.8v14.4a1 1 0 0 0 1.5.86l11.6-7.2a1 1 0 0 0 0-1.72L7.5 3.94A1 1 0 0 0 6 4.8z'/></svg>"); }
.ico-pause { --ico: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><rect x='6' y='4' width='4' height='16' rx='1'/><rect x='14' y='4' width='4' height='16' rx='1'/></svg>"); }
.ico-stop { --ico: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><rect x='5' y='5' width='14' height='14' rx='2'/></svg>"); }
.ico-forward-step { --ico: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='M5 5.6v12.8a1 1 0 0 0 1.6.8l8.5-6.4a1 1 0 0 0 0-1.6L6.6 4.8A1 1 0 0 0 5 5.6zM19 5v14'/></svg>"); }
.ico-backward-step { --ico: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='M19 5.6v12.8a1 1 0 0 1-1.6.8l-8.5-6.4a1 1 0 0 1 0-1.6l8.5-6.4a1 1 0 0 1 1.6.8zM5 5v14'/></svg>"); }
.ico-tv { --ico: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><rect x='2' y='4' width='20' height='14' rx='2'/><path d='M7 21h10'/></svg>"); }
.ico-desktop { --ico: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><rect x='2' y='3.5' width='20' height='13.5' rx='2'/><path d='M12 17v4M8 21h8'/></svg>"); }
.ico-video { --ico: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><rect x='2' y='6' width='14' height='12' rx='2'/><path d='M16 10.5l6-3.5v10l-6-3.5'/></svg>"); }
.ico-tower-broadcast { --ico: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><circle cx='12' cy='10' r='1.75'/><path d='M12 12v9M8.5 6.5a5 5 0 0 0 0 7M15.5 6.5a5 5 0 0 1 0 7M5.5 3.5a9.2 9.2 0 0 0 0 13M18.5 3.5a9.2 9.2 0 0 1 0 13'/></svg>"); }
.ico-rss { --ico: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='M4 11a9 9 0 0 1 9 9M4 4a16 16 0 0 1 16 16'/><circle cx='5' cy='19' r='1.5' fill='black' stroke='none'/></svg>"); }
.ico-microphone { --ico: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><rect x='9' y='3' width='6' height='11' rx='3'/><path d='M5.5 11a6.5 6.5 0 0 0 13 0M12 17.5V21M9 21h6'/></svg>"); }
.ico-microphone-slash { --ico: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='M15 9.5V6a3 3 0 0 0-5.7-1.3M9 9v2a3 3 0 0 0 4.6 2.5M18.5 11a6.5 6.5 0 0 1-1 3.4M15.4 16.7A6.5 6.5 0 0 1 5.5 11M12 17.5V21M9 21h6M3 3l18 18'/></svg>"); }
.ico-closed-captioning { --ico: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><rect x='2' y='5' width='20' height='14' rx='3'/><path d='M10.9 10.2a2.5 2.5 0 1 0 0 3.6M17.4 10.2a2.5 2.5 0 1 0 0 3.6'/></svg>"); }
.ico-wave-square { --ico: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='M2 12h2.5V6.5h5v11h5v-11h5V12H22'/></svg>"); }
.ico-music { --ico: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='M9 18V5.5L20 3v13'/><circle cx='6' cy='18' r='3'/><circle cx='17' cy='16' r='3'/></svg>"); }
.ico-image { --ico: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><rect x='3' y='4' width='18' height='16' rx='2'/><circle cx='8.5' cy='9.5' r='1.75'/><path d='M21 15l-5-5L5 20'/></svg>"); }
.ico-images { --ico: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><rect x='2.5' y='7' width='15' height='13' rx='2'/><circle cx='7' cy='11' r='1.25'/><path d='M6.5 3.5h13a2 2 0 0 1 2 2V16M2.5 17l4-4 3 3 2-2 6 5'/></svg>"); }
.ico-crop-simple { --ico: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='M6 2.5V16a2 2 0 0 0 2 2h13.5M2.5 6H16a2 2 0 0 1 2 2v13.5'/></svg>"); }
.ico-layer-group { --ico: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='M12 3l9 4.5-9 4.5-9-4.5zM3 12l9 4.5 9-4.5M3 16.5l9 4.5 9-4.5'/></svg>"); }

/* --- Music notation (score editor) --- */
.ico-note-whole { --ico: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><ellipse cx='12' cy='12' rx='6' ry='4' transform='rotate(-20 12 12)'/></svg>"); }
.ico-note-half { --ico: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><ellipse cx='10' cy='17.5' rx='4' ry='2.8' transform='rotate(-25 10 17.5)'/><path d='M13.6 16.4V3'/></svg>"); }
.ico-note-quarter { --ico: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><ellipse cx='10' cy='17.5' rx='4' ry='2.8' fill='black' transform='rotate(-25 10 17.5)'/><path d='M13.6 16.4V3'/></svg>"); }
.ico-note-eighth { --ico: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><ellipse cx='8.5' cy='17.5' rx='4' ry='2.8' fill='black' transform='rotate(-25 8.5 17.5)'/><path d='M12.1 16.4V3c.4 3 6 4.2 5 10'/></svg>"); }
.ico-note-sixteenth { --ico: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><ellipse cx='8.5' cy='17.5' rx='4' ry='2.8' fill='black' transform='rotate(-25 8.5 17.5)'/><path d='M12.1 16.4V3c.4 2.5 5.5 3.2 4.8 7.5M12.1 8c.4 2.5 5.5 3.2 4.8 7.5'/></svg>"); }
.ico-note-dot { --ico: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><circle cx='12' cy='12' r='2' fill='black'/></svg>"); }
.ico-rest { --ico: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='M10 2.5l4.5 5-4 4.5 4.5 4.5c-3-1.2-5.5.3-3.5 4.5'/></svg>"); }
.ico-tie { --ico: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='M3 10c3.5 6 14.5 6 18 0'/></svg>"); }
.ico-barline { --ico: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='M2.5 7h19M2.5 12h19M2.5 17h19M12 4v16'/></svg>"); }
.ico-chevrons-up { --ico: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='M6 12l6-6 6 6M6 18l6-6 6 6'/></svg>"); }
.ico-chevrons-down { --ico: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='M6 6l6 6 6-6M6 12l6 6 6-6'/></svg>"); }
.ico-sharp { --ico: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='M9.5 3.5v17M14.5 3.5v17M6 10l12-2.5M6 16.5l12-2.5'/></svg>"); }
.ico-flat { --ico: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='M8.5 2.5v18c4-1.8 8.5-4.6 8.5-7.8 0-2.6-3.6-3.4-8.5.3'/></svg>"); }
.ico-natural { --ico: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='M8.5 2.5v14l7-2M15.5 21.5v-14l-7 2'/></svg>"); }

/* --- Text and design properties --- */
.ico-font { --ico: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='M5 20L12 4l7 16M7.6 14h8.8'/></svg>"); }
.ico-bold { --ico: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='M7 4h6.5a4 4 0 0 1 0 8H7zM7 12h7.5a4 4 0 0 1 0 8H7z'/></svg>"); }
.ico-text-height { --ico: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='M3 7V5h11v2M8.5 5v14M6.5 19h4M18.5 5v14M16 7.5L18.5 5 21 7.5M16 16.5l2.5 2.5 2.5-2.5'/></svg>"); }
.ico-text-width { --ico: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='M5 6V4h14v2M12 4v10M10 14h4M4 19.5h16M6.5 17L4 19.5 6.5 22M17.5 17l2.5 2.5-2.5 2.5'/></svg>"); }
.ico-align-left { --ico: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='M4 6h16M4 10h10M4 14h16M4 18h10'/></svg>"); }
.ico-align-center { --ico: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='M4 6h16M7 10h10M4 14h16M7 18h10'/></svg>"); }
.ico-align-right { --ico: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='M4 6h16M10 10h10M4 14h16M10 18h10'/></svg>"); }
.ico-align-justify { --ico: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='M4 6h16M4 10h16M4 14h16M4 18h16'/></svg>"); }
.ico-palette { --ico: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='M12 3a9 9 0 0 0 0 18c1 0 1.75-.8 1.75-1.75 0-.47-.18-.9-.47-1.21a1.73 1.73 0 0 1-.43-1.16c0-.97.79-1.75 1.75-1.75h2.1A4.3 4.3 0 0 0 21 10.8C21 6.5 17 3 12 3z'/><circle cx='7.5' cy='11.5' r='1.25' fill='black' stroke='none'/><circle cx='9' cy='7.5' r='1.25' fill='black' stroke='none'/><circle cx='13.5' cy='6.5' r='1.25' fill='black' stroke='none'/><circle cx='17' cy='9' r='1.25' fill='black' stroke='none'/></svg>"); }
.ico-fill-drip { --ico: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='M11 5l7 7-6.3 6.3a1 1 0 0 1-1.4 0l-5.6-5.6a1 1 0 0 1 0-1.4zM8.5 7.5L6 5M4.5 12H18M20.5 15.5c.8 1.1 1.5 2 1.5 2.9a1.5 1.5 0 0 1-3 0c0-.9.7-1.8 1.5-2.9z'/></svg>"); }
.ico-droplet { --ico: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='M12 3s-6.5 7-6.5 11.5a6.5 6.5 0 0 0 13 0C18.5 10 12 3 12 3z'/></svg>"); }
.ico-border-top-left { --ico: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='M4 20V10a6 6 0 0 1 6-6h10M20 10v.01M20 15v.01M20 20v.01M15 20h.01M10 20h.01'/></svg>"); }
.ico-ruler-combined { --ico: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='M4 3h5a1 1 0 0 1 1 1v10h10a1 1 0 0 1 1 1v5a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1zM10 7H7.5M10 10.5H7.5M14 14v2.5M17.5 14v2.5'/></svg>"); }

/* --- Lists, documents, organisation --- */
.ico-list { --ico: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='M9 6h11M9 12h11M9 18h11'/><circle cx='4.5' cy='6' r='1.25' fill='black' stroke='none'/><circle cx='4.5' cy='12' r='1.25' fill='black' stroke='none'/><circle cx='4.5' cy='18' r='1.25' fill='black' stroke='none'/></svg>"); }
.ico-list-ol { --ico: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='M10.5 6H20M10.5 12H20M10.5 18H20'/><path d='M4 4.5l1.5-1V9M4 9h3M3.75 15.6a1.75 1.75 0 0 1 3.4.6c0 1.4-3.15 2.1-3.15 4.3h3.25' stroke-width='1.6'/></svg>"); }
.ico-rectangle-list { --ico: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><rect x='2.5' y='4' width='19' height='16' rx='2'/><path d='M10 9h7.5M10 12h7.5M10 15h7.5'/><circle cx='6.75' cy='9' r='1' fill='black' stroke='none'/><circle cx='6.75' cy='12' r='1' fill='black' stroke='none'/><circle cx='6.75' cy='15' r='1' fill='black' stroke='none'/></svg>"); }
.ico-clipboard-list { --ico: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='M9 4.5H7a2 2 0 0 0-2 2V19a2 2 0 0 0 2 2h10a2 2 0 0 0 2-2V6.5a2 2 0 0 0-2-2h-2M12 11h4M12 15.5h4'/><rect x='9' y='3' width='6' height='3.5' rx='1'/><circle cx='8.75' cy='11' r='1' fill='black' stroke='none'/><circle cx='8.75' cy='15.5' r='1' fill='black' stroke='none'/></svg>"); }
.ico-file { --ico: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='M14 3H7a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h10a2 2 0 0 0 2-2V8zM14 3v5h5'/></svg>"); }
.ico-calendar-day { --ico: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><rect x='3' y='4.5' width='18' height='16.5' rx='2'/><path d='M3 9.5h18M8 2.5v4M16 2.5v4'/><rect x='7' y='13' width='4' height='4' rx='.75'/></svg>"); }
.ico-clock { --ico: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><circle cx='12' cy='12' r='9'/><path d='M12 7v5l3.5 2'/></svg>"); }
.ico-clock-digital { --ico: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><rect x='2' y='6' width='20' height='12' rx='2.5'/><rect x='5.5' y='9.5' width='4' height='5' rx='1'/><rect x='14.5' y='9.5' width='4' height='5' rx='1'/><circle cx='12' cy='10.5' r='.9' fill='black' stroke='none'/><circle cx='12' cy='13.5' r='.9' fill='black' stroke='none'/></svg>"); }
.ico-stopwatch { --ico: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><circle cx='12' cy='13.5' r='7.5'/><path d='M12 13.5V10M9.5 2.5h5M12 2.5V6M17.5 8l1.75-1.75'/></svg>"); }
.ico-keyboard { --ico: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><rect x='2' y='5.5' width='20' height='13' rx='2'/><path d='M6 9.5h.01M10 9.5h.01M14 9.5h.01M18 9.5h.01M6 12.5h.01M10 12.5h.01M14 12.5h.01M18 12.5h.01M8 15.5h8'/></svg>"); }
.ico-puzzle-piece { --ico: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='M3.5 7.5h5a2.25 2.25 0 1 1 3.5 0h4.5V11a2.25 2.25 0 1 1 0 3.5v6h-13z'/></svg>"); }

/* --- People, places, communication --- */
.ico-user { --ico: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><circle cx='12' cy='8' r='4'/><path d='M4.5 21a7.5 7.5 0 0 1 15 0'/></svg>"); }
.ico-user-plus { --ico: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><circle cx='9.5' cy='8' r='4'/><path d='M2.5 21a7 7 0 0 1 14 0M19 8v6M16 11h6'/></svg>"); }
.ico-users { --ico: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><circle cx='9' cy='8' r='3.75'/><path d='M2.5 20.5a6.5 6.5 0 0 1 13 0M15.5 4.5a3.75 3.75 0 0 1 0 7M17.5 14.4a6.5 6.5 0 0 1 4 6.1'/></svg>"); }
.ico-house { --ico: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='M3 10.5L12 3l9 7.5M5 9v10a2 2 0 0 0 2 2h10a2 2 0 0 0 2-2V9M10 21v-5.5a1 1 0 0 1 1-1h2a1 1 0 0 1 1 1V21'/></svg>"); }
.ico-comments { --ico: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='M15.5 11V5a2 2 0 0 0-2-2H4a2 2 0 0 0-2 2v6a2 2 0 0 0 2 2h1v3l3.5-3h5a2 2 0 0 0 2-2zM18.5 8H20a2 2 0 0 1 2 2v6a2 2 0 0 1-2 2h-1v3l-3.5-3h-5a2 2 0 0 1-2-2v-1'/></svg>"); }
.ico-paper-plane { --ico: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='M21 3L3 10.5l7 3 3 7zM10 13.5L21 3'/></svg>"); }
