"""
SSoT màu sắc & mật độ Control Center.
Mọi widget Python đọc token từ Config.THEME — cấm hex rải rác lệch Core HUD.
"""

from __future__ import annotations

from src.assistant_tool.config import Config


def c(key: str, default: str = "#94a3b8") -> str:
    return str(Config.THEME.get(key, default))


def window_geometry() -> str:
    return f"{Config.CONTROL_CENTER_WIDTH}x{Config.CONTROL_CENTER_HEIGHT}"


REQUIRED_THEME_KEYS = (
    "bg_dark", "bg_header", "card_bg", "hp", "es", "ward", "mana", "spirit",
    "start", "start_hover", "alert_red", "warn", "info_cyan", "text_primary",
    "text_muted",
)

# Kích thước chuẩn thương mại 2026 (High Density)
HUD_STRIP_HEIGHT = 44
HEADER_HEIGHT = 44
ROW_HEIGHT = 26
SECTION_PAD_Y = (4, 2)
CARD_PAD_Y = (0, 6)
CARD_CORNER_RADIUS = 6


def font_title() -> tuple[str, int, str]:
    return ("Segoe UI", 13, "bold")


def font_section() -> tuple[str, int, str]:
    return ("Segoe UI", 11, "bold")


def font_label(bold: bool = False) -> tuple[str, int, str]:
    return ("Segoe UI", 11, "bold" if bold else "normal")


def font_badge() -> tuple[str, int, str]:
    return ("Segoe UI", 10, "bold")


def font_xs() -> tuple[str, int, str]:
    return ("Segoe UI", 9, "normal")


def font_code(size: int = 11) -> tuple[str, int, str]:
    return ("Consolas", size, "normal")

