/* *****************************************************

    ** Custom Stylesheet **

    Any custom styling you want to apply should be
    defined here.

***************************************************** */

/* Custom CSS for Nexus Theme
 *
 * This file allows you to customize the theme colors and styles for the entire Nexus template.
 * Customized heavily to match Awakenode's brand colors (Dark theme with vibrant green accent).
 */

:root {
    --white: #fff;

    /* Base Awakenode Palette (from globals.css) */
    --awakenode-background: oklch(0.14 0.015 220);
    --awakenode-foreground: oklch(0.96 0.01 160);
    --awakenode-card: oklch(0.18 0.02 215);
    --awakenode-card-foreground: oklch(0.96 0.01 160);
    --awakenode-popover: oklch(0.16 0.018 220);
    --awakenode-popover-foreground: oklch(0.96 0.01 160);

    --awakenode-primary: oklch(0.78 0.16 155);
    --awakenode-primary-foreground: oklch(0.15 0.02 160);

    --awakenode-secondary: oklch(0.22 0.025 210);
    --awakenode-secondary-foreground: oklch(0.85 0.08 155);

    --awakenode-muted: oklch(0.20 0.02 215);
    --awakenode-muted-foreground: oklch(0.68 0.03 180);

    --awakenode-accent: oklch(0.85 0.12 150);
    --awakenode-accent-foreground: oklch(0.18 0.03 160);

    --awakenode-destructive: oklch(0.5 0.18 25);
    --awakenode-destructive-foreground: oklch(0.98 0.01 160);

    --awakenode-border: oklch(0.25 0.02 210);
    --awakenode-input: oklch(0.22 0.02 215);
    --awakenode-ring: oklch(0.78 0.16 155);

    /* WHMCS Variables mapped to Awakenode Palette */

    /* Primary and Success -> Accent Green */
    --success: var(--awakenode-primary);
    --success-lifted: var(--awakenode-accent);
    --success-accented: var(--awakenode-primary);

    /* Primary colors defaults */
    --primary: var(--awakenode-primary);
    --primary-lifted: var(--awakenode-accent);
    --primary-accented: var(--awakenode-primary);

    /* Secondary colors */
    --secondary: var(--awakenode-secondary);
    --secondary-lifted: var(--awakenode-muted);
    --secondary-accented: var(--awakenode-popover);

    /* Info colors */
    --info: #155dfc;
    --info-lifted: #1447e6;
    --info-accented: #193cb8;

    /* Notice colors */
    --notice: #7f22fe;
    --notice-lifted: #7008e7;
    --notice-accented: #5d0ec0;

    /* Warning colors */
    --warning: #f54a00;
    --warning-lifted: #ca3500;
    --warning-accented: #9f2d00;

    /* Error colors */
    --error: var(--awakenode-destructive);
    --error-lifted: oklch(0.55 0.18 25);
    --error-accented: oklch(0.45 0.18 25);

    /* Grayscale colors */
    --grayscale: var(--awakenode-secondary);
    --grayscale-lifted: var(--awakenode-muted);
    --grayscale-accented: var(--awakenode-popover);

    /* Neutral colors */
    --neutral: var(--awakenode-muted);
    --neutral-lifted: var(--awakenode-secondary);
    --neutral-accented: var(--awakenode-border);

    /* Text neutral colors */
    --text-inverted: var(--awakenode-background);
    --text-muted: var(--awakenode-muted-foreground);
    --text-lifted: var(--awakenode-secondary-foreground);
    --text-accented: var(--awakenode-primary-foreground);
    --text: var(--awakenode-foreground);

    /* Border colors */
    --border-muted: var(--awakenode-input);
    --border: var(--awakenode-border);
    --border-lifted: var(--awakenode-border);
    --border-accented: var(--awakenode-ring);

    /* Background colors */
    --bg: var(--awakenode-background);
    --bg-muted: var(--awakenode-muted);
    --bg-lifted: var(--awakenode-card);
    --bg-accented: var(--awakenode-popover);
    --bg-inverted: var(--awakenode-foreground);

    /* Additional colors */
    --yellow-200: #fff085;
    --yellow-300: #ffdf20;
    --teal-300: #46edd5;
    --teal-400: #00d5be;
    --emerald-300: #5ee9b5;
    --pink-400: #fb64b6;

    /* Font sizes */
    --text-xs: 0.625rem;
    --text-sm: 0.75rem;
    --text-md: 0.875rem;
    --text-lg: 1rem;

    /* Spacing */
    --outline-sm: 1px;
    --outline-md: 2px;
    --outline-lg: 3px;

    /* Rounding */
    --rounding-sm: 0.5rem;
    --rounding-md: 0.5rem;
    --rounding-lg: 0.5rem;

    /* Other */
    --letter-spacing: 0em;
    --disabled-opacity: 25%;
}

body {
    background-color: var(--bg);
    color: var(--text);
    font-family: 'Inter', 'Roboto', -apple-system, sans-serif;
}

/* Base Cards and Structure */
.card,
.panel {
    background-color: var(--bg-lifted);
    border: 1px solid var(--border);
    border-radius: var(--rounding-md);
    box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.2);
}

.card-header,
.panel-heading {
    background-color: var(--bg-accented);
    border-bottom: 1px solid var(--border);
    color: var(--text-accented);
}

/* Form Inputs */
.form-control {
    background-color: var(--bg-muted);
    border: 1px solid var(--border-lifted);
    color: var(--text-accented);
    border-radius: var(--rounding-md);
}

.form-control:focus {
    background-color: var(--bg-muted);
    border-color: var(--success);
    color: var(--white);
    box-shadow: 0 0 0 2px rgba(92, 225, 170, 0.2);
}

/* Primary Button / Complete Order Button */
.btn-primary,
.btn-success,
.checkout-button {
    background-color: var(--success);
    border-color: var(--success);
    color: var(--text-inverted) !important;
    font-weight: 600;
    transition: all 0.2s ease;
}

.btn-primary:hover,
.btn-success:hover,
.checkout-button:hover {
    background-color: var(--success-lifted);
    border-color: var(--success-lifted);
    filter: brightness(1.1);
}

/* Interactive Cards / Selection boxes */
.selection-card {
    background-color: var(--bg-muted);
    border: 1px solid var(--border);
    border-radius: var(--rounding-md);
    cursor: pointer;
    transition: all 0.2s ease;
}

.selection-card:hover {
    border-color: var(--border-lifted);
    background-color: var(--bg-lifted);
}

.selection-card.selected,
.selection-card.active {
    border-color: var(--success);
    background-color: rgba(92, 225, 170, 0.05);
}

/* Sidebar Specifics */
.sidebar .panel {
    background-color: var(--bg-lifted);
    border: 1px solid var(--border);
}