/**
 * @name LunarCord (HyprLuna theme)
 * @description A dark, minimaldiscord theme with Material You colors.
 * @author Nixev
 * @version 2.0.0
 * @invite nAHD9keWr
 * @website https://hyprluna.vercel.app
*/

@import url("https://refact0r.github.io/midnight-discord/build/midnight.css");


/* color options */
:root {
    --colors: on; /* turn off to use discord default colors */

    /* text colors */
    --text-0: {{colors.background.default.hex}}; /* text on colored elements */
    --text-1: {{colors.on_background.default.hex}}; /* default text on colored elements */
    --text-2: {{colors.on_surface.default.hex}}; /* headings and important text */
    --text-3: {{colors.on_surface_variant.default.hex}}; /* normal text */
    --text-4: {{colors.outline.default.hex}}; /* icon buttons and channels */
    --text-5: {{colors.outline_variant.default.hex}}; /* muted channels/chats and timestamps */

    /* background and dark colors */
    --bg-1: {{colors.surface_container_lowest.default.hex}}; /* dark buttons when clicked */
    --bg-2: {{colors.surface_container_low.default.hex}}; /* dark buttons */
    --bg-3: {{colors.surface_container.default.hex}}; /* spacing, secondary elements */
    --bg-4: {{colors.surface.default.hex}}; /* main background color */
    --hover: {{colors.surface_container_high.default.hex}}; /* channels and buttons when hovered */
    --active: {{colors.surface_container_highest.default.hex}}; /* channels and buttons when clicked or selected */
    --active-2: {{colors.surface.default.hex}}; /* extra state for transparent buttons */
    --message-hover: {{colors.surface_variant.default.hex}}; /* messages when hovered */

    /* accent colors */
    --accent-1: {{colors.primary.default.hex}}; /* links and other accent text */
    --accent-2: {{colors.primary_container.default.hex}}; /* small accent elements */
    --accent-3: {{colors.secondary.default.hex}}; /* accent buttons */
    --accent-4: {{colors.secondary_container.default.hex}}; /* accent buttons when hovered */
    --accent-5: {{colors.tertiary.default.hex}}; /* accent buttons when clicked */
    --accent-new: {{colors.error.default.hex}}; /* stuff that's normally red like mute/deafen buttons */
    --mention: linear-gradient(
        to right,
        color-mix(in hsl, {{colors.primary_container.default.hex}}, transparent 70%) 60%,
        transparent
    ); /* background of messages that mention you */
    --mention-hover: linear-gradient(
        to right,
        color-mix(in hsl, {{colors.primary_container.default.hex}}, transparent 75%) 60%,
        transparent
    ); /* background of messages that mention you when hovered */
    --reply: linear-gradient(
        to right,
        color-mix(in hsl, {{colors.tertiary_container.default.hex}}, transparent 70%) 60%,
        transparent
    ); /* background of messages that reply to you */
    --reply-hover: linear-gradient(
        to right,
        color-mix(in hsl, {{colors.tertiary_container.default.hex}}, transparent 75%) 60%,
        transparent
    ); /* background of messages that reply to you when hovered */

    /* status indicator colors */
    --online: {{colors.primary.default.hex}}; /* change to #43a25a for default */
    --dnd: {{colors.error.default.hex}}; /* change to #d83a42 for default */
    --idle: {{colors.tertiary.default.hex}}; /* change to #ca9654 for default */
    --streaming: {{colors.secondary.default.hex}}; /* change to #593695 for default */
    --offline: {{colors.outline.default.hex}}; /* change to #83838b for default offline color */

    /* border colors */
    --border-light: {{colors.surface_container_high.default.hex}}; /* light border color */
    --border: {{colors.surface_container_highest.default.hex}}; /* normal border color */
    --button-border: {{colors.surface_container_high.default.hex}}; /* neutral border color of buttons */

    /* base colors */
    --red-1: {{colors.error.default.hex}};
    --red-2: {{colors.error_container.default.hex}};
    --red-3: {{colors.on_error.default.hex}};
    --red-4: {{colors.on_error_container.default.hex}};
    --red-5: {{colors.error.default.hex}};

    --green-1: {{colors.primary.default.hex}};
    --green-2: {{colors.primary_container.default.hex}};
    --green-3: {{colors.on_primary.default.hex}};
    --green-4: {{colors.on_primary_container.default.hex}};
    --green-5: {{colors.primary.default.hex}};

    --blue-1: {{colors.primary.default.hex}};
    --blue-2: {{colors.primary_container.default.hex}};
    --blue-3: {{colors.on_primary.default.hex}};
    --blue-4: {{colors.on_primary_container.default.hex}};
    --blue-5: {{colors.primary.default.hex}};

    --yellow-1: {{colors.tertiary.default.hex}};
    --yellow-2: {{colors.tertiary_container.default.hex}};
    --yellow-3: {{colors.on_tertiary.default.hex}};
    --yellow-4: {{colors.on_tertiary_container.default.hex}};
    --yellow-5: {{colors.tertiary.default.hex}};

    --purple-1: {{colors.secondary.default.hex}};
    --purple-2: {{colors.secondary_container.default.hex}};
    --purple-3: {{colors.on_secondary.default.hex}};
    --purple-4: {{colors.on_secondary_container.default.hex}};
    --purple-5: {{colors.secondary.default.hex}};
}

/* Improve timestamp/clock readability */
/* Target timestamps with various selector patterns to work across Discord versions */
[class*="timestamp"] time,
[class*="timestamp"] time[id*="message-timestamp"],
[id*="message-timestamp"] time,
span[class*="timestamp"] time {
    color: var(--text-3) !important; /* Use normal text color for better contrast */
    opacity: 0.85 !important; /* Slightly muted but still readable */
}

/* Hover state for timestamps - make them fully visible */
[class*="timestamp"]:hover time,
[id*="message-timestamp"]:hover time,
span[class*="timestamp"]:hover time {
    color: var(--text-2) !important; /* Use heading color on hover */
    opacity: 1 !important;
}

/* Improve slowmode cooldown and typing indicator readability */
[class*="cooldownText"],
[class*="cooldownWrapper"],
[class*="cooldownText"] svg,
.cooldownText_b21699,
.cooldownWrapper_b21699 {
    color: var(--text-3) !important; /* Use normal text color for better contrast */
    opacity: 0.85 !important; /* Slightly muted but still readable */
}

/* Slowmode icon color */
[class*="slowModeIcon"],
.slowModeIcon_b21699 {
    color: var(--text-3) !important;
    opacity: 0.85 !important;
}

/* Typing indicator text */
[class*="typing"] [class*="text"],
[class*="typingDots"] [class*="text"],
.typing_b88801 .text_b88801 {
    color: var(--text-3) !important;
    opacity: 0.85 !important;
}

[class*="postTitleText"],
[class*="postTitleText"] span,
h3[class*="postTitleText"],
[class*="heading-lg"][class*="postTitleText"],
[data-text-variant*="heading"] [class*="postTitleText"] {
    color: var(--text-2) !important;
    opacity: 0.9 !important;
}

[class*="postTitleText"]:hover,
[class*="postTitleText"]:hover span,
h3[class*="postTitleText"]:hover {
    color: var(--text-2) !important;
    opacity: 1 !important;
}

[class*="messageContent"],
[class*="markup"] {
    line-height: 1.35 !important;
    color: var(--text-3) !important;
    opacity: 0.85 !important;
}

/* Improve message input/editor text readability */
[class*="editor"] [class*="markup"],
[class*="slateTextArea"] [class*="markup"],
[class*="slateTextArea"],
[role="textbox"][class*="markup"],
[role="textbox"][class*="editor"],
[class*="editor"] [class*="slateTextArea"],
[data-slate-editor="true"] {
    color: var(--text-3) !important;
    opacity: 0.9 !important;
    line-height: 1.4 !important;
}

/* Empty/placeholder text in message input */
[class*="emptyText"],
[class*="emptyText"] span,
[data-slate-zero-width] {
    color: var(--text-4) !important;
    opacity: 0.7 !important;
}

[class*="messageContent"][class*="deleted"],
[class*="text-sm"][class*="messageContent"][class*="deleted"],
[data-text-variant*="text-sm"][class*="messageContent"][class*="deleted"] {
    color: var(--text-3) !important;
    opacity: 0.85 !important;
}

[class*="messageContent"][class*="deleted"]:hover,
[class*="messageContent"][class*="deleted"]:hover span {
    color: var(--text-2) !important;
    opacity: 1 !important;
}

/* Improve tooltip readability */
[class*="tooltip"],
[class*="tooltip"] *,
[role="tooltip"],
[role="tooltip"] * {
    color: var(--text-2) !important;
}

[class*="tooltipText"],
[class*="tooltipContent"],
[class*="tooltip"] span,
[class*="tooltip"] div {
    color: var(--text-2) !important;
    opacity: 1 !important;
}

/* Improve link readability - ONLY target link callout containers (not channels or other UI) */
/* Override CSS variables only within link callout containers */
div[class*="linkCalloutContainer"] {
    --text-muted: var(--text-3) !important;
    --text-default: var(--accent-1) !important;
}

/* Make muted parts (protocol, path) more readable - only direct child spans in link containers */
div[class*="linkCalloutContainer"] > span[class*="normal"][data-text-variant*="normal"][style*="--text-muted"],
div[class*="linkCalloutContainer"] > span[class*="normal"][style*="color: var(--text-muted)"] {
    color: var(--text-3) !important;
    opacity: 0.9 !important;
}

/* Make the domain (semibold part) stand out with accent color - only direct child spans in link containers */
div[class*="linkCalloutContainer"] > span[class*="semibold"],
div[class*="linkCalloutContainer"] > span[data-text-variant*="semibold"],
div[class*="linkCalloutContainer"] > span[style*="color: var(--text-default)"] {
    color: var(--accent-1) !important;
    font-weight: 600 !important;
    opacity: 1 !important;
}

/* Hover state for link containers - only affects spans inside link containers */
div[class*="linkCalloutContainer"]:hover > span[class*="normal"][data-text-variant*="normal"] {
    color: var(--text-2) !important;
    opacity: 1 !important;
}

div[class*="linkCalloutContainer"]:hover > span[class*="semibold"],
div[class*="linkCalloutContainer"]:hover > span[data-text-variant*="semibold"] {
    color: var(--accent-1) !important;
    opacity: 1 !important;
}