/* =========================
    GLOBAL STATUS INDICATORS
    ========================= */

:root {
    --success-indicator: hsl(140 85% 48%);
    --info-indicator: hsl(210 100% 55%);
    --warning-indicator: hsl(42 100% 50%);
    --error-indicator: hsl(0 85% 55%);
    --neutral-indicator: hsl(215 15% 60%);

    --ping-excellent: hsl(140 85% 48%);
    --ping-good: hsl(95 80% 50%);
    --ping-fair: hsl(48 95% 52%);
    --ping-poor: hsl(28 95% 55%);
    --ping-very-poor: hsl(0 85% 58%);
}


/* =========================
    DARK THEME
    ========================= */

[data-theme="dark"] {
    --page-bg: hsl(0 0% 6.7%);

    --surface: hsl(0 0% 10.6%);
    --surface-alt: hsl(0 0% 14.5%);
    --surface-raised: hsl(0 0% 17.6%);

    --text: hsl(0 0% 93.3%);
    --text-muted: hsl(0 0% 71.8%);
    --text-inverse: hsl(0 0% 6.7%);

    --border: hsl(0 0% 22.7%);
    --border-strong: hsl(0 0% 35.3%);

    --link: hsl(212.8 100% 74.5%);
    --link-hover: hsl(212.5 100% 83.7%);

    --focus: hsl(209.8 100% 70.8%);

    --accent: hsl(0 60.9% 45.1%);
    --accent-hover: hsl(0 64% 53.1%);
    --accent-text: hsl(0 0% 100%);

    --success-bg: hsl(138.8 43.2% 14.5%);
    --success-border: hsl(136.7 27.9% 42.9%);
    --success-text: hsl(135 57.1% 86.3%);

    --info-bg: hsl(210 53.5% 16.9%);
    --info-border: hsl(210 33.1% 49.8%);
    --info-text: hsl(210.7 100% 91.2%);

    --warning-bg: hsl(43 63.9% 14.1%);
    --warning-border: hsl(40.8 57.5% 41.6%);
    --warning-text: hsl(44 100% 81.6%);

    --error-bg: hsl(0 44.6% 16.3%);
    --error-border: hsl(0 32.8% 48.4%);
    --error-text: hsl(0 100% 91%);

    --danger: hsl(0 54% 49.4%);
    --danger-hover: hsl(0 67.1% 58.2%);
    --danger-text: hsl(0 0% 100%);

    --button-primary-bg: var(--accent);
    --button-primary-hover: var(--accent-hover);
    --button-primary-text: var(--accent-text);

    --button-secondary-bg: var(--surface-alt);
    --button-secondary-hover: hsl(0 0% 20%);
    --button-secondary-text: var(--text);

    --shadow-small: 0 1px 3px hsl(0 0% 0% / 0.35);
    --shadow-medium: 0 4px 12px hsl(0 0% 0% / 0.40);
    --shadow-large: 0 12px 30px hsl(0 0% 0% / 0.50);

    /* Status indicators */
    --success-indicator: hsl(140 85% 62%);
    --info-indicator: hsl(210 100% 68%);
    --warning-indicator: hsl(42 100% 64%);
    --error-indicator: hsl(0 90% 66%);
    --neutral-indicator: hsl(215 15% 72%);
}


/* =========================
    DARK BLOOD THEME
    ========================= */


[data-theme="dark-blood"] {
    --page-bg: hsl(350 25% 9.4%);

    --surface: hsl(350 18.2% 12.9%);
    --surface-alt: hsl(350 14.3% 16.5%);
    --surface-raised: hsl(345 12.2% 19.2%);

    --text: hsl(350 18.8% 87.5%);
    --text-muted: hsl(349.1 6.7% 68%);
    --text-inverse: hsl(350 25% 9.4%);

    --border: hsl(350 9.8% 23.9%);
    --border-strong: hsl(350 6.7% 35.3%);

    --link: hsl(217.2 73% 71%);
    --link-hover: hsl(219.1 62.3% 79.2%);

    --focus: hsl(213.1 75.8% 67.6%);

    --accent: hsl(358.7 61.6% 43.9%);
    --accent-hover: hsl(359.2 59.8% 51.2%);
    --accent-text: hsl(345 35.3% 93.3%);

    --success-bg: hsl(116.5 20.5% 16.3%);
    --success-border: hsl(128.4 20% 42.2%);
    --success-text: hsl(117.6 25.8% 81%);

    --info-bg: hsl(222.6 32% 19%);
    --info-border: hsl(216.4 26.6% 48.6%);
    --info-text: hsl(224.5 43.7% 86.1%);

    --warning-bg: hsl(31.8 60% 16.7%);
    --warning-border: hsl(36.3 56.4% 41.4%);
    --warning-text: hsl(38.3 81% 77.3%);

    --error-bg: hsl(357.3 48.4% 18.2%);
    --error-border: hsl(358.6 35% 47.1%);
    --error-text: hsl(357.7 70.7% 85.3%);

    --danger: hsl(359.1 54.9% 47.8%);
    --danger-hover: hsl(359.1 62.7% 55.9%);
    --danger-text: hsl(345 35.3% 93.3%);

    --button-primary-bg: var(--accent);
    --button-primary-hover: var(--accent-hover);
    --button-primary-text: var(--accent-text);

    --button-secondary-bg: var(--surface-alt);
    --button-secondary-hover: hsl(349.1 10.1% 21.4%);
    --button-secondary-text: var(--text);

    --shadow-small: 0 1px 3px hsl(350 66.7% 3.5% / 0.35);
    --shadow-medium: 0 4px 12px hsl(350 66.7% 3.5% / 0.40);
    --shadow-large: 0 12px 30px hsl(350 66.7% 3.5% / 0.50);

    /* Status indicators */
    --success-indicator: hsl(140 85% 62%);
    --info-indicator: hsl(210 100% 68%);
    --warning-indicator: hsl(42 100% 64%);
    --error-indicator: hsl(0 90% 66%);
    --neutral-indicator: hsl(215 15% 72%);
}


/* =========================
    LIGHT THEME
    ========================= */

[data-theme="light"] {
    --page-bg: hsl(0 0% 96.1%);

    --surface: hsl(0 0% 100%);
    --surface-alt: hsl(0 0% 93.3%);
    --surface-raised: hsl(0 0% 100%);

    --text: hsl(0 0% 12.5%);
    --text-muted: hsl(0 0% 40%);
    --text-inverse: hsl(0 0% 100%);

    --border: hsl(0 0% 81.6%);
    --border-strong: hsl(0 0% 65.9%);

    --link: hsl(0 63.8% 29.2%);
    --link-hover: hsl(0 65.2% 22.5%);

    --focus: hsl(208.9 100% 42%);

    --accent: hsl(0 64.5% 33.1%);
    --accent-hover: hsl(0 65% 26.9%);
    --accent-text: hsl(0 0% 100%);

    --success-bg: hsl(137.1 38.9% 92.9%);
    --success-border: hsl(133.4 24.8% 54.1%);
    --success-text: hsl(135 48.4% 24.3%);

    --info-bg: hsl(211.6 70.4% 94.7%);
    --info-border: hsl(210.6 48% 61.6%);
    --info-text: hsl(208.5 67.8% 28%);

    --warning-bg: hsl(43.9 100% 92%);
    --warning-border: hsl(42.4 57.4% 48.8%);
    --warning-text: hsl(42.6 100% 21%);

    --error-bg: hsl(0 84% 95.1%);
    --error-border: hsl(0 44.5% 59%);
    --error-text: hsl(0 69.3% 29.4%);

    --danger: hsl(0 70.1% 38%);
    --danger-hover: hsl(0 70.7% 30.8%);
    --danger-text: hsl(0 0% 100%);

    --button-primary-bg: var(--accent);
    --button-primary-hover: var(--accent-hover);
    --button-primary-text: var(--accent-text);

    --button-secondary-bg: var(--surface-alt);
    --button-secondary-hover: hsl(0 0% 87.8%);
    --button-secondary-text: var(--text);

    --shadow-small: 0 1px 3px hsl(0 0% 0% / 0.12);
    --shadow-medium: 0 4px 12px hsl(0 0% 0% / 0.16);
    --shadow-large: 0 12px 30px hsl(0 0% 0% / 0.20);
}



/* =========================
    LIGHT FROST THEME
    ========================= */

[data-theme="light-frost"] {
    --page-bg: hsl(218.6 43.8% 93.7%);

    --surface: hsl(218.6 100% 97.3%);
    --surface-alt: hsl(216 33.3% 91.2%);
    --surface-raised: hsl(218.6 100% 97.3%);

    --text: hsl(214.3 14.9% 18.4%);
    --text-muted: hsl(214.3 6.4% 43.1%);
    --text-inverse: hsl(218.6 100% 97.3%);

    --border: hsl(216 15.2% 80.6%);
    --border-strong: hsl(216 8.8% 66.5%);

    --link: hsl(353.2 49.4% 31.8%);
    --link-hover: hsl(351.3 47% 25.9%);

    --focus: hsl(209.3 90.4% 44.9%);

    --accent: hsl(354.8 51.1% 35.3%);
    --accent-hover: hsl(352.8 49.7% 29.6%);
    --accent-text: hsl(218.6 100% 97.3%);

    --success-bg: hsl(180 32.1% 89%);
    --success-border: hsl(146.9 24.8% 54.1%);
    --success-text: hsl(148 42.9% 27.5%);

    --info-bg: hsl(212.9 79.5% 92.4%);
    --info-border: hsl(211.5 51.8% 62.5%);
    --info-text: hsl(209.4 61.4% 32.5%);

    --warning-bg: hsl(47 45.1% 90%);
    --warning-border: hsl(43.3 46.2% 51.2%);
    --warning-text: hsl(43.2 61.2% 26.3%);

    --error-bg: hsl(323.1 28.9% 91.2%);
    --error-border: hsl(353.8 36.5% 58.6%);
    --error-text: hsl(354.5 53.7% 32.2%);

    --danger: hsl(355.4 57.6% 39.8%);
    --danger-hover: hsl(354.9 55.3% 33.3%);
    --danger-text: hsl(218.6 100% 97.3%);

    --button-primary-bg: var(--accent);
    --button-primary-hover: var(--accent-hover);
    --button-primary-text: var(--accent-text);

    --button-secondary-bg: var(--surface-alt);
    --button-secondary-hover: hsl(218.6 20% 86.3%);
    --button-secondary-text: var(--text);

    --shadow-small: 0 1px 3px hsl(216 40.5% 7.3% / 0.12);
    --shadow-medium: 0 4px 12px hsl(216 40.5% 7.3% / 0.16);
    --shadow-large: 0 12px 30px hsl(216 40.5% 7.3% / 0.20);
}
