/*
 * Семантические цвета активов CVC.
 *
 * Классы стоят на одном элементе в порядке «символ, сеть, протокол»:
 * `cnc-usdt cnc-bsc cnc-bep20`. Цвет назначается по нарастающей — палитра
 * символа задаёт основу, а класс сети её перекрывает. Поэтому любой токен в
 * BSC жёлто-оранжевый, как сама сеть, а не бирюзовый, как USDT, и не синий,
 * как ETH. Селекторы равны по специфичности, значит решает порядок: блок
 * сетей идёт после блока символов.
 *
 * Протокол собственной палитры не имеет. Цвет по `cnc-bep20` перекрыл бы
 * сеть и снова покрасил бы все BEP-20 одинаково, мимо сети; класс остаётся
 * зацепкой для правил, которым нужен сам факт токена.
 */

/* Символы монет и токенов. Основа, которую перекрывает сеть. */
.cnc-btc {
    --cnc-color: #F7931A;
    --cnc-color-active: #F8A035;
}

.cnc-ltc {
    --cnc-color: #837C7C;
    --cnc-color-active: #9A9393;
}

.cnc-bch {
    --cnc-color: #089B71;
    --cnc-color-active: #0AC18E;
}

.cnc-doge {
    --cnc-color: #C2A633;
    --cnc-color-active: #8B6914;
}

.cnc-dash {
    --cnc-color: #008DE4;
    --cnc-color-active: #012060;
}

.cnc-bnb {
    --cnc-color: #F3BA2F;
    --cnc-color-active: #D9A51F;
}

.cnc-eth {
    --cnc-color: #627EEA;
    --cnc-color-active: #8A92B2;
}

.cnc-sol {
    --cnc-color: #9945FF;
    --cnc-color-active: #14B87A;
}

.cnc-usdt {
    --cnc-color: #009393;
    --cnc-color-active: #007A7A;
}

.cnc-usdc {
    --cnc-color: #2775CA;
    --cnc-color-active: #1B5EA7;
}

.cnc-uni {
    --cnc-color: #FF007A;
    --cnc-color-active: #D60067;
}

/*
 * Остальные символы включённых монет каталога. Блок символьный, значит класс
 * сети его перекрывает: зеркала TRX, ZEC, GRAM и DOGE в BSC остаются жёлтыми
 * по сети, а свой цвет показывают на странице монеты и в списках каталога.
 *
 * Помеченные `// подбор` — у проекта нет общепризнанного фирменного цвета
 * (бренд чёрно-белый либо цвет нигде не зафиксирован). Там взят различимый
 * оттенок, а не угаданный фирменный; оператор может заменить, не трогая
 * структуру.
 */
.cnc-xrp {
    --cnc-color: #23292F;
    --cnc-color-active: #3E4750;
}

.cnc-trx {
    --cnc-color: #EF0027;
    --cnc-color-active: #C4001F;
}

.cnc-zec {
    --cnc-color: #F4B728;
    --cnc-color-active: #D89E12;
}

.cnc-xmr {
    --cnc-color: #FF6600;
    --cnc-color-active: #E05500;
}

.cnc-ada {
    --cnc-color: #0033AD;
    --cnc-color-active: #0A4BC9;
}

.cnc-xlm {
    --cnc-color: #08B5E5;
    --cnc-color-active: #0796C0;
}

.cnc-avax {
    --cnc-color: #E84142;
    --cnc-color-active: #C93334;
}

.cnc-dot {
    --cnc-color: #E6007A;
    --cnc-color-active: #C00066;
}

.cnc-etc {
    --cnc-color: #328332;
    --cnc-color-active: #46A346;
}

.cnc-pol {
    --cnc-color: #8247E5;
    --cnc-color-active: #6B32C4;
}

.cnc-fil {
    --cnc-color: #0090FF;
    --cnc-color-active: #0074CC;
}

.cnc-op {
    --cnc-color: #FF0420;
    --cnc-color-active: #D6031A;
}

.cnc-xtz {
    --cnc-color: #2C7DF7;
    --cnc-color-active: #1F63CE;
}

.cnc-bsv {
    --cnc-color: #EAB300;
    --cnc-color-active: #C99700;
}

.cnc-btg {
    --cnc-color: #EBA809;
    --cnc-color-active: #C88E06;
}

.cnc-dcr {
    --cnc-color: #2ED6A1;
    --cnc-color-active: #22B085;
}

.cnc-shib {
    --cnc-color: #FFA409;
    --cnc-color-active: #E08C00;
}

.cnc-pepe {
    --cnc-color: #4BA14A;
    --cnc-color-active: #3C823B;
}

.cnc-mon {
    --cnc-color: #836EF9;
    --cnc-color-active: #6A56D6;
}

.cnc-twt {
    --cnc-color: #3375BB;
    --cnc-color-active: #2A5F98;
}

.cnc-ens {
    --cnc-color: #5298FF;
    --cnc-color-active: #3E7FDB;
}

.cnc-gram {
    --cnc-color: #0098EA;
    --cnc-color-active: #0079BC;
}

.cnc-xaut {
    --cnc-color: #C4A052;
    --cnc-color-active: #A88742;
}

.cnc-trump {
    --cnc-color: #D4AF37;
    --cnc-color-active: #B4922A;
}

.cnc-btt { /* подбор: фирменный знак BitTorrent чёрно-белый */
    --cnc-color: #4A4A4A;
    --cnc-color-active: #6B6B6B;
}

.cnc-zro { /* подбор: фирменный знак LayerZero чёрно-белый */
    --cnc-color: #35343A;
    --cnc-color-active: #55545C;
}

.cnc-jst { /* подбор */
    --cnc-color: #2B4EC7;
    --cnc-color-active: #213D9E;
}

/*
 * Жетоны TON. Класса сети `cnc-ton` нет, поэтому жетон в TON окрашен
 * цветом своего символа, а не сети.
 */
.cnc-not { /* фирменный знак Notcoin чёрно-белый */
    --cnc-color: #000000;
    --cnc-color-active: #404040;
}

.cnc-ecor { /* синий круг знака Ecorpay */
    --cnc-color: #0837FF;
    --cnc-color-active: #062CCC;
}

/*
 * Стейблкоины. USDT и USDC выше, у них цвет фирменный. Ниже — те, у кого
 * устоявшегося цвета нет: взяты различимые оттенки своих семейств, чтобы
 * доллары не сливались друг с другом в одном списке.
 */
.cnc-usdd {
    --cnc-color: #1BA27A;
    --cnc-color-active: #148063;
}

.cnc-tusd {
    --cnc-color: #1E5AFF;
    --cnc-color-active: #1745CC;
}

.cnc-eurc { /* подбор: семейство Circle, сдвинуто от USDC ради различимости */
    --cnc-color: #1552B0;
    --cnc-color-active: #10408C;
}

.cnc-usd1 { /* подбор */
    --cnc-color: #C0A062;
    --cnc-color-active: #A4864F;
}

.cnc-ausd { /* подбор */
    --cnc-color: #2E7D6B;
    --cnc-color-active: #236053;
}

/*
 * Безопасные обозначения неизвестного токена из TokenDisplay: `UNKNOWN` до
 * личного добавления и `TOKENS` при коллизии символа с другой монетой
 * каталога. Оба приходят в позиции символа и обязаны выглядеть нейтрально —
 * непроверенный контракт не должен занимать цвет чужой монеты. Класс сети их
 * перекрывает, как и любой другой символ.
 */
.cnc-unknown,
.cnc-tokens {
    --cnc-color: #6C757D;
    --cnc-color-active: #8A9198;
}

/*
 * Сети. Идут после символов и потому выигрывают при равной специфичности.
 *
 * Внутри блока первыми стоят коды сетей, совпадающие с символом монеты:
 * сеть Ethereum ходит под кодом `eth`, и ровно этот класс получает токен ETH
 * в чужой сети. Сеть, стоящая ниже, перекрывает его — иначе ETH в BSC остался
 * бы синим. Новую сеть с таким же именем-двойником добавлять сюда же, наверх.
 */
.cnc-eth,
.cnc-eth-sepolia {
    --cnc-color: #627EEA;
    --cnc-color-active: #8A92B2;
}

.cnc-bitcoin-mainnet,
.cnc-bitcoin-testnet {
    --cnc-color: #F7931A;
    --cnc-color-active: #F8A035;
}

.cnc-litecoin-mainnet,
.cnc-litecoin-testnet {
    --cnc-color: #837C7C;
    --cnc-color-active: #9A9393;
}

.cnc-bitcoin-cash-mainnet {
    --cnc-color: #089B71;
    --cnc-color-active: #0AC18E;
}

.cnc-dogecoin-mainnet {
    --cnc-color: #C2A633;
    --cnc-color-active: #8B6914;
}

.cnc-dash-mainnet {
    --cnc-color: #008DE4;
    --cnc-color-active: #012060;
}

.cnc-bsc,
.cnc-bsc-testnet {
    --cnc-color: #F3BA2F;
    --cnc-color-active: #D9A51F;
}

.cnc-polygon {
    --cnc-color: #8247E5;
    --cnc-color-active: #6B32C4;
}

.cnc-solana,
.cnc-solana-devnet {
    --cnc-color: #9945FF;
    --cnc-color-active: #14B87A;
}

/* Токены TRON (USDT TRC20 и др.) — цветом сети, как TRX, а не бирюзой USDT. */
.cnc-tron {
    --cnc-color: #EF0027;
    --cnc-color-active: #C4001F;
}

/*
 * Цвет получают только явно помеченные текстовые элементы. Контейнеры
 * section/article/tr/div сохраняют cnc-классы как контекст для будущих
 * правил, но не перекрашивают целую страницу по наследованию.
 */
:where(
    a:not(.btn), h1, h2, h3, h4, h5, h6, strong, span, option, dd,
    .h1, .h2, .h3, .h4, .h5, .h6, .fs-1, .fs-2, .fs-3, .fs-4, .fs-5,
    .text-big, .cnc-color
):where([class^="cnc-"], [class*=" cnc-"]) {
    color: var(--cnc-color, #101321);
}

/* Ссылка на страницу монеты в таблице курсов: общий цвет выше обёрнут в :where
   и проигрывает `a { color }` из init.css, поэтому непосещённая ссылка была
   бы зелёной. Класс даёт правилу вес ровно одного класса. */
.titiles:where([class^="cnc-"], [class*=" cnc-"]) {
    color: var(--cnc-color, #101321);
}

a:not(.btn):where([class^="cnc-"], [class*=" cnc-"]):visited {
    color: var(--cnc-color, #101321);
}

a:not(.btn):where([class^="cnc-"], [class*=" cnc-"]):hover,
a:not(.btn):where([class^="cnc-"], [class*=" cnc-"]):active {
    color: var(--cnc-color-active, var(--cnc-color, #101321));
}
