package com.jishisongfu.duobibi.ui.arena

import android.content.Context
import android.widget.Toast
import androidx.compose.foundation.BorderStroke
import androidx.compose.foundation.Image
import androidx.compose.foundation.background
import androidx.compose.foundation.border
import androidx.compose.foundation.clickable
import androidx.compose.foundation.horizontalScroll
import androidx.compose.foundation.layout.Arrangement
import androidx.compose.foundation.layout.Box
import androidx.compose.foundation.layout.Column
import androidx.compose.foundation.layout.PaddingValues
import androidx.compose.foundation.layout.Row
import androidx.compose.foundation.layout.Spacer
import androidx.compose.foundation.layout.WindowInsets
import androidx.compose.foundation.layout.fillMaxSize
import androidx.compose.foundation.layout.fillMaxWidth
import androidx.compose.foundation.layout.height
import androidx.compose.foundation.layout.padding
import androidx.compose.foundation.layout.size
import androidx.compose.foundation.layout.width
import androidx.compose.foundation.rememberScrollState
import androidx.compose.foundation.shape.CircleShape
import androidx.compose.foundation.shape.RoundedCornerShape
import androidx.compose.foundation.text.KeyboardOptions
import androidx.compose.foundation.verticalScroll
import androidx.compose.material.icons.Icons
import androidx.compose.material.icons.filled.Balance
import androidx.compose.material.icons.filled.EmojiEvents
import androidx.compose.material.icons.filled.HelpOutline
import androidx.compose.material.icons.filled.Search
import androidx.compose.material3.Button
import androidx.compose.material3.ButtonDefaults
import androidx.compose.material3.Card
import androidx.compose.material3.CardDefaults
import androidx.compose.material3.CircularProgressIndicator
import androidx.compose.material3.ExperimentalMaterial3Api
import androidx.compose.material3.Icon
import androidx.compose.material3.IconButton
import androidx.compose.material3.OutlinedButton
import androidx.compose.material3.OutlinedTextField
import androidx.compose.material3.Scaffold
import androidx.compose.material3.Text
import androidx.compose.material3.TextButton
import androidx.compose.runtime.Composable
import androidx.compose.runtime.getValue
import androidx.compose.runtime.remember
import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier
import androidx.compose.ui.draw.clip
import androidx.compose.ui.graphics.Color
import androidx.compose.ui.graphics.ColorFilter
import androidx.compose.ui.platform.LocalContext
import androidx.compose.ui.res.painterResource
import androidx.compose.ui.text.font.FontWeight
import androidx.compose.ui.text.input.ImeAction
import androidx.compose.ui.unit.dp
import androidx.compose.ui.unit.sp
import androidx.hilt.navigation.compose.hiltViewModel
import androidx.lifecycle.compose.collectAsStateWithLifecycle
import com.jishisongfu.duobibi.data.repo.ArenaOutcome
import com.jishisongfu.duobibi.data.repo.ArenaRow
import com.jishisongfu.duobibi.ui.ARENA_PLATFORMS
import com.jishisongfu.duobibi.ui.HeroBanner
import com.jishisongfu.duobibi.ui.PlatformChip
import com.jishisongfu.duobibi.ui.PriceGauge
import com.jishisongfu.duobibi.ui.ProductThumb
import com.jishisongfu.duobibi.ui.SummaryBar
import com.jishisongfu.duobibi.ui.TagChip
import com.jishisongfu.duobibi.ui.fmtYuan
import com.jishisongfu.duobibi.ui.rememberHaptics
import com.jishisongfu.duobibi.ui.theme.DbbColors
import com.jishisongfu.duobibi.ui.theme.DbbGradients
import com.jishisongfu.duobibi.util.PlatformSearch

@OptIn(ExperimentalMaterial3Api::class)
@Composable
fun ArenaScreen(
    onOpenCluster: (Long) -> Unit,
    vm: ArenaViewModel = hiltViewModel(),
) {
    val state by vm.state.collectAsStateWithLifecycle()
    val input by vm.input.collectAsStateWithLifecycle()
    val selectedCategory by vm.selectedCategory.collectAsStateWithLifecycle()
    val activePlatforms = selectedCategory?.platforms ?: ARENA_PLATFORMS
    val placeholderText = selectedCategory?.placeholder ?: "输入商品名,如 iPhone 15 Pro 256G"
    val haptics = rememberHaptics()

    Scaffold(
        containerColor = DbbColors.Bg,
        contentWindowInsets = WindowInsets(0),
    ) { padding ->
        Column(
            modifier = Modifier
                .padding(padding)
                .fillMaxSize()
                .background(DbbColors.Bg)
                .verticalScroll(rememberScrollState()),
        ) {
            HeroBanner(
                title = "比价擂台",
                subtitle = "一个商品,多平台到手价同台 PK",
                icon = Icons.Filled.Balance,
                gradient = DbbGradients.Arena,
                trailing = {
                    IconButton(onClick = { /* TODO 帮助说明 */ }) {
                        Icon(Icons.Filled.HelpOutline, contentDescription = "帮助", tint = Color.White)
                    }
                },
            )
            HotSearchRow(onPick = { vm.setInput(it) })
            Column(Modifier.padding(horizontal = 14.dp, vertical = 10.dp)) {
            OutlinedTextField(
                value = input,
                onValueChange = vm::setInput,
                modifier = Modifier.fillMaxWidth(),
                placeholder = { Text(placeholderText) },
                leadingIcon = { Icon(Icons.Filled.Search, null, tint = DbbColors.Teal) },
                singleLine = true,
                shape = RoundedCornerShape(14.dp),
                keyboardOptions = KeyboardOptions(imeAction = ImeAction.Search),
            )
            Spacer(Modifier.height(6.dp))
            ComparePlatformsRow(platforms = activePlatforms)
            Spacer(Modifier.height(8.dp))
            Button(
                onClick = { haptics.confirm(); vm.submit() },
                enabled = state !is ArenaUiState.Loading && input.isNotBlank(),
                modifier = Modifier.fillMaxWidth().height(48.dp),
                shape = RoundedCornerShape(14.dp),
                colors = ButtonDefaults.buttonColors(containerColor = DbbColors.Teal),
            ) {
                Icon(Icons.Filled.EmojiEvents, null, modifier = Modifier.size(20.dp))
                Spacer(Modifier.width(8.dp))
                Text("开始比价", fontWeight = FontWeight.SemiBold, fontSize = 16.sp)
            }
            Spacer(Modifier.height(10.dp))

            when (val s = state) {
                ArenaUiState.Idle -> {
                    val cat = selectedCategory
                    if (cat == null) {
                        // 首屏:品类浏览(参考 shaguabijia 品类页)
                        CategoryBrowse(onSelect = vm::selectCategory)
                    } else {
                        // 已锁定品类:顶部色条提示 + 原有引导
                        CategoryActiveBanner(category = cat, onReset = { vm.selectCategory(null) })
                        Spacer(Modifier.height(10.dp))
                        IdleHint()
                    }
                }
                ArenaUiState.Loading -> LoadingHint()
                is ArenaUiState.Error -> ErrorHint(s.message)
                is ArenaUiState.Success -> ArenaResult(s.outcome, onOpenCluster, vm)
            }
            }
        }
    }
}

/**
 * 比价 Hero 下方"热搜词"横滑条 —— 解决 hero 与搜索框之间空荡问题。
 * 词条写死成主流比价 App 常见热词,不涉及网络/数据库;点击直接 prefill 搜索框。
 * 配色用 TealBg 浅胶囊,避免抢搜索框焦点。
 */
@Composable
private fun HotSearchRow(onPick: (String) -> Unit) {
    val hot = remember {
        listOf("iPhone 15 Pro", "MacBook Air 13", "戴森吹风机", "雅诗兰黛精华", "扫地机器人", "AirPods 4", "茅台飞天")
    }
    Row(
        modifier = Modifier
            .fillMaxWidth()
            .horizontalScroll(rememberScrollState())
            .padding(horizontal = 14.dp, vertical = 8.dp),
        verticalAlignment = Alignment.CenterVertically,
    ) {
        Text("🔥 热搜", color = DbbColors.Up, fontSize = 11.sp, fontWeight = FontWeight.Bold)
        Spacer(Modifier.width(6.dp))
        hot.forEachIndexed { idx, w ->
            Box(
                Modifier
                    .clip(RoundedCornerShape(11.dp))
                    .background(if (idx == 0) DbbColors.UpBg else DbbColors.TealBg)
                    .clickable { onPick(w) }
                    .padding(horizontal = 10.dp, vertical = 5.dp),
            ) {
                Text(
                    w,
                    color = if (idx == 0) DbbColors.Up else DbbColors.TealDark,
                    fontSize = 11.sp,
                    fontWeight = FontWeight.Medium,
                )
            }
            Spacer(Modifier.width(6.dp))
        }
    }
}

@Composable
private fun ComparePlatformsRow(platforms: List<String>) {
    Row(
        modifier = Modifier.fillMaxWidth().padding(horizontal = 2.dp),
        verticalAlignment = Alignment.CenterVertically,
    ) {
        Text("对比平台", color = DbbColors.InkTer, fontSize = 11.sp)
        Spacer(Modifier.width(6.dp))
        platforms.forEach { p ->
            PlatformChip(name = p)
            Spacer(Modifier.width(4.dp))
        }
        Text("· 到手价(不含大促)", color = DbbColors.InkTer, fontSize = 11.sp)
    }
}

@Composable
private fun IdleHint() {
    Card(
        modifier = Modifier.fillMaxWidth(),
        colors = CardDefaults.cardColors(containerColor = DbbColors.TealBg),
        elevation = CardDefaults.cardElevation(defaultElevation = 2.dp),
        shape = RoundedCornerShape(16.dp),
    ) {
        Column(Modifier.padding(18.dp)) {
            Text("🏆 多比比 · 一搜知全网", fontWeight = FontWeight.Bold, color = DbbColors.TealDark)
            Spacer(Modifier.height(8.dp))
            Text(
                "输入想买的东西,多比比帮你把 淘宝 / 京东 / 拼多多 / 抖音 的日常到手价拉到一张表里对比," +
                    "自动标出全网最低。你在购物 App 里点蓝色浮窗记过的真实价,会直接覆盖到对应平台。",
                color = DbbColors.InkSec, fontSize = 13.sp,
            )
        }
    }
}

@Composable
private fun LoadingHint() {
    Box(Modifier.fillMaxWidth().padding(top = 40.dp), contentAlignment = Alignment.Center) {
        Column(horizontalAlignment = Alignment.CenterHorizontally) {
            CircularProgressIndicator(color = DbbColors.Teal, strokeWidth = 3.dp)
            Spacer(Modifier.height(14.dp))
            Text("正在把全网价格拉上擂台…", color = DbbColors.InkSec, fontSize = 13.sp)
        }
    }
}

@Composable
private fun ErrorHint(msg: String) {
    Card(
        modifier = Modifier.fillMaxWidth(),
        colors = CardDefaults.cardColors(containerColor = DbbColors.UpBg),
        elevation = CardDefaults.cardElevation(defaultElevation = 2.dp),
        shape = RoundedCornerShape(14.dp),
    ) {
        Text(msg, modifier = Modifier.padding(16.dp), color = DbbColors.Up)
    }
}

@Composable
private fun ArenaResult(outcome: ArenaOutcome, onOpenCluster: (Long) -> Unit, vm: ArenaViewModel) {
    val ctx = LocalContext.current
    val minPrice = outcome.rows.minOfOrNull { it.price } ?: outcome.typicalPrice
    val maxPrice = outcome.rows.maxOfOrNull { it.price } ?: outcome.typicalPrice
    val savings = (outcome.typicalPrice - minPrice).coerceAtLeast(0.0)

    // Hero 渐变汇总条
    outcome.lowestPlatform?.let { lowest ->
        SummaryBar(
            label = "全网最低 · $lowest",
            bigText = "¥${fmtYuan(minPrice)}",
            subText = if (savings > 0) "较常见价省 ¥${fmtYuan(savings)}" else "与常见价持平",
        )
        Spacer(Modifier.height(10.dp))
    }

    // 标题 + 水位卡
    TitleGaugeCard(outcome, minPrice, maxPrice)
    Spacer(Modifier.height(10.dp))

    // 对比表
    CompareTableCard(outcome)
    Spacer(Modifier.height(10.dp))

    // 本机已记录提示
    if (outcome.matchedClusterId != null) {
        MatchedHintCard(outcome, onOpenCluster)
        Spacer(Modifier.height(10.dp))
    }

    // 两个底部按钮
    BottomActions(outcome, ctx, vm)
    Spacer(Modifier.height(6.dp))
    Text(
        "价格为各平台日常到手价估算(不含大促),仅供参考,以平台实际为准。",
        color = DbbColors.InkTer, fontSize = 10.sp,
    )
}

@Composable
private fun TitleGaugeCard(outcome: ArenaOutcome, minPrice: Double, maxPrice: Double) {
    Card(
        modifier = Modifier.fillMaxWidth(),
        colors = CardDefaults.cardColors(containerColor = DbbColors.Card),
        elevation = CardDefaults.cardElevation(defaultElevation = 2.dp),
        shape = RoundedCornerShape(16.dp),
    ) {
        Column(Modifier.padding(12.dp)) {
            // 标题 + 商品略缩图(按品类剪影)
            Row(verticalAlignment = Alignment.CenterVertically) {
                ProductThumb(
                    title = outcome.normalizedTitle,
                    size = 54.dp,
                    containerColor = DbbColors.TealBg,
                )
                Spacer(Modifier.width(11.dp))
                Text(
                    outcome.normalizedTitle,
                    fontWeight = FontWeight.Bold,
                    color = DbbColors.Ink,
                    fontSize = 15.sp,
                    modifier = Modifier.weight(1f),
                )
            }
            Spacer(Modifier.height(10.dp))
            Row(verticalAlignment = Alignment.CenterVertically) {
                Text(
                    "市场常见价 ¥${fmtYuan(outcome.typicalPrice)}",
                    color = DbbColors.InkSec, fontSize = 12.sp,
                )
                Spacer(Modifier.weight(1f))
                val spread = (maxPrice - minPrice).coerceAtLeast(0.0)
                Text("价差区间 ¥${fmtYuan(spread)}", color = DbbColors.InkTer, fontSize = 11.sp)
            }
            Spacer(Modifier.height(10.dp))
            PriceGauge(min = minPrice, max = maxPrice, marker = outcome.typicalPrice)
            Spacer(Modifier.height(5.dp))
            Row(verticalAlignment = Alignment.CenterVertically) {
                Text(
                    "最低 ¥${fmtYuan(minPrice)}",
                    color = DbbColors.Save, fontSize = 11.sp, fontWeight = FontWeight.SemiBold,
                )
                Spacer(Modifier.weight(1f))
                Text(
                    "¥${fmtYuan(outcome.typicalPrice)}",
                    color = DbbColors.InkTer, fontSize = 11.sp,
                )
                Spacer(Modifier.weight(1f))
                Text("最高 ¥${fmtYuan(maxPrice)}", color = DbbColors.Up, fontSize = 11.sp)
            }
        }
    }
}

@Composable
private fun CompareTableCard(outcome: ArenaOutcome) {
    Card(
        modifier = Modifier.fillMaxWidth(),
        colors = CardDefaults.cardColors(containerColor = DbbColors.Card),
        elevation = CardDefaults.cardElevation(defaultElevation = 2.dp),
        shape = RoundedCornerShape(16.dp),
    ) {
        Column(Modifier.padding(vertical = 4.dp)) {
            outcome.rows.forEachIndexed { i, row ->
                ArenaRowItem(row, isLowest = row.platform == outcome.lowestPlatform)
                if (i < outcome.rows.lastIndex) {
                    Box(
                        Modifier
                            .padding(horizontal = 14.dp)
                            .fillMaxWidth()
                            .height(1.dp)
                            .background(DbbColors.Border),
                    )
                }
            }
        }
    }
}

@Composable
private fun ArenaRowItem(row: ArenaRow, isLowest: Boolean) {
    Row(
        modifier = Modifier
            .fillMaxWidth()
            .background(if (isLowest) DbbColors.TealBg else Color.Transparent)
            .padding(horizontal = 14.dp, vertical = 11.dp),
        verticalAlignment = Alignment.CenterVertically,
    ) {
        // 最低用品牌色实心胶囊"最低"+ 后跟平台名;非最低直接平台名胶囊。参考主流比价 App 的"chip 在前"布局。
        if (isLowest) {
            TagChip("最低", bg = DbbColors.Teal, fg = Color.White)
            Spacer(Modifier.width(6.dp))
        }
        PlatformChip(name = row.platform)
        Spacer(Modifier.width(6.dp))
        if (row.isLocal) {
            TagChip("本机", bg = DbbColors.SaveBg, fg = DbbColors.Save)
            Spacer(Modifier.width(6.dp))
        }
        Text(
            row.note.ifBlank { if (row.isLocal) "记录最低" else "AI 估算" },
            color = DbbColors.InkTer,
            fontSize = 11.sp,
            modifier = Modifier.weight(1f),
        )
        Spacer(Modifier.width(6.dp))
        Text(
            "¥${fmtYuan(row.price)}",
            fontWeight = FontWeight.ExtraBold,
            fontSize = 18.sp,
            letterSpacing = (-0.5).sp,
            color = if (isLowest) DbbColors.Teal else DbbColors.Ink,
        )
    }
}

@Composable
private fun MatchedHintCard(outcome: ArenaOutcome, onOpenCluster: (Long) -> Unit) {
    Card(
        modifier = Modifier
            .fillMaxWidth()
            .clickable { outcome.matchedClusterId?.let(onOpenCluster) },
        colors = CardDefaults.cardColors(containerColor = DbbColors.SaveBg),
        elevation = CardDefaults.cardElevation(defaultElevation = 2.dp),
        shape = RoundedCornerShape(14.dp),
    ) {
        Text(
            "✓ 你已在本机记录过同款,本机最低 ¥${fmtYuan(outcome.localMinPrice ?: 0.0)} · 点击查看记录详情 ›",
            modifier = Modifier.padding(horizontal = 14.dp, vertical = 12.dp),
            color = DbbColors.Save,
            fontSize = 13.sp,
            fontWeight = FontWeight.Medium,
        )
    }
}

@Composable
private fun BottomActions(outcome: ArenaOutcome, ctx: Context, vm: ArenaViewModel) {
    val haptics = rememberHaptics()
    Row(modifier = Modifier.fillMaxWidth(), horizontalArrangement = Arrangement.spacedBy(10.dp)) {
        Button(
            onClick = {
                haptics.confirm()
                outcome.lowestPlatform?.let {
                    PlatformSearch.copyAndSearch(ctx, it, outcome.normalizedTitle)
                }
            },
            enabled = outcome.lowestPlatform != null,
            modifier = Modifier.weight(1f).height(44.dp),
            shape = RoundedCornerShape(14.dp),
            colors = ButtonDefaults.buttonColors(containerColor = DbbColors.Teal),
        ) {
            Text(
                "去${outcome.lowestPlatform ?: "京东"}搜一下",
                fontWeight = FontWeight.SemiBold, fontSize = 15.sp,
            )
        }
        OutlinedButton(
            onClick = {
                // 把擂台当下"全网最低"作为心理价直接加入"想买的"雷达,加完 Toast 反馈。
                // 用户后续可去雷达 Tab 改心理价 / 平台 / 删除。
                haptics.confirm()
                val target = outcome.rows.minOfOrNull { it.price } ?: outcome.typicalPrice
                if (target > 0) {
                    vm.addToAlert(outcome.normalizedTitle, target) {
                        Toast.makeText(
                            ctx,
                            "已加入降价雷达 · 心理价 ¥${fmtYuan(target)}",
                            Toast.LENGTH_SHORT,
                        ).show()
                    }
                }
            },
            modifier = Modifier.weight(1f).height(44.dp),
            shape = RoundedCornerShape(14.dp),
            border = BorderStroke(1.5.dp, DbbColors.Teal),
        ) {
            Text(
                "加入降价雷达",
                color = DbbColors.TealDark,
                fontWeight = FontWeight.SemiBold,
                fontSize = 15.sp,
            )
        }
    }
}

// ==================== 品类浏览 (参考 shaguabijia 品类首页) ====================

/**
 * 比价擂台 Idle 态的品类浏览:按 group 分两组(餐饮外卖 / 网上购物),每组列出
 * 对应 [ArenaCategory]。点击任一项 → vm.selectCategory(it) 锁定平台集合。
 *
 * 配色是这一屏专属的"分类编码",故意打破其它屏的 3 色约束。
 */
@Composable
private fun CategoryBrowse(onSelect: (ArenaCategory) -> Unit) {
    val grouped = ArenaCategory.entries.groupBy { it.group }
    Column(modifier = Modifier.fillMaxWidth()) {
        ArenaCategory.ORDERED_GROUPS.forEachIndexed { idx, groupName ->
            if (idx > 0) Spacer(Modifier.height(14.dp))
            val emoji = if (groupName == "餐饮外卖") "🍱 " else "🛍 "
            Text(
                "$emoji$groupName",
                color = DbbColors.Ink,
                fontWeight = FontWeight.Bold,
                fontSize = 14.sp,
                modifier = Modifier.padding(start = 2.dp, bottom = 7.dp),
            )
            grouped[groupName].orEmpty().forEachIndexed { i, c ->
                if (i > 0) Spacer(Modifier.height(8.dp))
                CategoryCard(c, onClick = { onSelect(c) })
            }
        }
        Spacer(Modifier.height(10.dp))
        Text(
            "挑品类后会自动锁定对比的平台集合,也可在结果页里增删",
            color = DbbColors.InkTer,
            fontSize = 10.sp,
            modifier = Modifier.fillMaxWidth(),
            textAlign = androidx.compose.ui.text.style.TextAlign.Center,
        )
    }
}

@Composable
private fun CategoryCard(c: ArenaCategory, onClick: () -> Unit) {
    Row(
        modifier = Modifier
            .fillMaxWidth()
            .clip(RoundedCornerShape(13.dp))
            .background(DbbColors.Card)
            .border(1.dp, DbbColors.Border, RoundedCornerShape(13.dp))
            .clickable(onClick = onClick)
            .padding(horizontal = 13.dp, vertical = 11.dp),
        verticalAlignment = Alignment.CenterVertically,
    ) {
        Box(
            Modifier
                .size(42.dp)
                .clip(CircleShape)
                .background(c.tintBg),
            contentAlignment = Alignment.Center,
        ) {
            Image(
                painter = painterResource(c.iconRes),
                contentDescription = null,
                modifier = Modifier.size(22.dp),
                colorFilter = ColorFilter.tint(c.tintFg),
            )
        }
        Spacer(Modifier.width(11.dp))
        Column(Modifier.weight(1f)) {
            Row(verticalAlignment = Alignment.CenterVertically) {
                Text(
                    c.title,
                    color = DbbColors.Ink,
                    fontWeight = FontWeight.Bold,
                    fontSize = 15.sp,
                )
                Spacer(Modifier.width(6.dp))
                Box(
                    Modifier
                        .clip(RoundedCornerShape(5.dp))
                        .background(c.tintBg)
                        .padding(horizontal = 7.dp, vertical = 2.dp),
                ) {
                    Text(
                        "${c.platforms.size} 个平台",
                        color = c.tintFg,
                        fontWeight = FontWeight.SemiBold,
                        fontSize = 10.sp,
                    )
                }
            }
            Spacer(Modifier.height(2.dp))
            Text(c.subtitle, color = DbbColors.InkTer, fontSize = 11.sp)
        }
        Text("›", color = DbbColors.InkTer, fontSize = 18.sp)
    }
}

/** 已锁定品类时显示的顶部色条,带"切换"按钮回到品类首屏。 */
@Composable
private fun CategoryActiveBanner(category: ArenaCategory, onReset: () -> Unit) {
    Row(
        modifier = Modifier
            .fillMaxWidth()
            .clip(RoundedCornerShape(12.dp))
            .background(category.tintBg)
            .padding(horizontal = 12.dp, vertical = 9.dp),
        verticalAlignment = Alignment.CenterVertically,
    ) {
        Image(
            painter = painterResource(category.iconRes),
            contentDescription = null,
            modifier = Modifier.size(18.dp),
            colorFilter = ColorFilter.tint(category.tintFg),
        )
        Spacer(Modifier.width(8.dp))
        Column(Modifier.weight(1f)) {
            Text(
                "已锁定品类 · ${category.title}",
                color = category.tintFg,
                fontWeight = FontWeight.SemiBold,
                fontSize = 12.sp,
            )
            Text(
                category.platforms.joinToString(" / "),
                color = category.tintFg.copy(alpha = 0.8f),
                fontSize = 10.sp,
            )
        }
        TextButton(
            onClick = onReset,
            contentPadding = PaddingValues(horizontal = 10.dp, vertical = 4.dp),
        ) {
            Text(
                "切换品类 ›",
                color = category.tintFg,
                fontSize = 12.sp,
                fontWeight = FontWeight.SemiBold,
            )
        }
    }
}
