/* ============================================================================
   HEIMDALL "Signal Blue" — Radzen remap (HEIMDALL.UI.Assets RCL).
   Loaded AFTER the Radzen theme and console-core.css by apps that use
   Radzen.Blazor (Server, Informant). Maps the standard-dark variable surface
   onto the console tokens and rethemes tabs/dialogs/toasts/forms/grids.
   ============================================================================ */

/* ---- Layer 2 · Radzen remap ----------------------------------------------- */
:root {
    --rz-text-font-family: var(--font-sans);

    /* Base ramp: standard-dark derives most component surfaces from these.
       Dark end → console surfaces, light end → ink levels, middle → hairlines. */
    --rz-base-900: var(--bg);
    --rz-base-800: var(--panel);
    --rz-base-700: var(--line);      /* hover surfaces + hairline borders */
    --rz-base-600: var(--line-2);
    --rz-base-500: rgba(255, 255, 255, .28);
    --rz-base-400: var(--ink-3);
    --rz-base-300: var(--ink-2);
    --rz-base-200: rgba(255, 255, 255, .75);
    --rz-base-100: var(--ink);
    --rz-base-50: var(--ink);
    --rz-base: var(--panel-2);
    --rz-base-light: var(--line-2);
    --rz-base-dark: var(--inset);

    /* Explicit surface vars (some don't route through the ramp) */
    --rz-body-background-color: var(--bg);
    --rz-base-background-color: var(--panel);
    --rz-card-background-color: var(--panel);
    --rz-panel-background-color: var(--panel);
    --rz-dialog-background-color: var(--panel);
    --rz-header-background-color: var(--panel);
    --rz-sidebar-background-color: var(--inset);
    --rz-border-color: var(--line);
    --rz-input-background-color: var(--inset);
    --rz-grid-header-background-color: var(--panel-2);
    --rz-grid-header-sorted-background-color: var(--panel-2);
    --rz-grid-header-font-size: 9px;
    --rz-grid-header-text-transform: uppercase;
    --rz-grid-header-color: var(--ink-3);
    --rz-tooltip-background-color: var(--panel-2);

    --rz-text-color: var(--ink);
    --rz-text-secondary-color: var(--ink-2);
    --rz-text-tertiary-color: var(--ink-3);
    --rz-text-title-color: var(--ink);
    --rz-text-disabled-color: var(--ink-3);
    --rz-input-placeholder-color: var(--ink-3);

    /* Accents → console palette */
    --rz-primary: var(--con-primary);
    --rz-primary-light: color-mix(in srgb, var(--con-primary) 78%, white);
    --rz-primary-lighter: color-mix(in srgb, var(--con-primary) 14%, transparent);
    --rz-primary-dark: color-mix(in srgb, var(--con-primary) 85%, black);
    --rz-primary-darker: color-mix(in srgb, var(--con-primary) 75%, black);
    --rz-on-primary-lighter: color-mix(in srgb, var(--con-primary) 55%, white);

    --rz-secondary: var(--con-orange);
    --rz-secondary-light: color-mix(in srgb, var(--con-orange) 78%, white);
    --rz-secondary-lighter: color-mix(in srgb, var(--con-orange) 14%, transparent);
    --rz-secondary-dark: color-mix(in srgb, var(--con-orange) 85%, black);
    --rz-secondary-darker: color-mix(in srgb, var(--con-orange) 75%, black);

    --rz-info: var(--con-sky);
    --rz-info-light: color-mix(in srgb, var(--con-sky) 78%, white);
    --rz-info-lighter: color-mix(in srgb, var(--con-sky) 14%, transparent);
    --rz-info-dark: color-mix(in srgb, var(--con-sky) 85%, black);
    --rz-info-darker: color-mix(in srgb, var(--con-sky) 75%, black);

    --rz-success: var(--con-green);
    --rz-success-light: color-mix(in srgb, var(--con-green) 78%, white);
    --rz-success-lighter: color-mix(in srgb, var(--con-green) 14%, transparent);
    --rz-success-dark: color-mix(in srgb, var(--con-green) 85%, black);
    --rz-success-darker: color-mix(in srgb, var(--con-green) 75%, black);

    --rz-warning: var(--con-yellow);
    --rz-warning-light: color-mix(in srgb, var(--con-yellow) 78%, white);
    --rz-warning-lighter: color-mix(in srgb, var(--con-yellow) 16%, transparent);
    --rz-warning-dark: color-mix(in srgb, var(--con-yellow) 85%, black);
    --rz-warning-darker: color-mix(in srgb, var(--con-yellow) 75%, black);

    --rz-danger: var(--con-red);
    --rz-danger-light: color-mix(in srgb, var(--con-red) 78%, white);
    --rz-danger-lighter: color-mix(in srgb, var(--con-red) 14%, transparent);
    --rz-danger-dark: color-mix(in srgb, var(--con-red) 85%, black);
    --rz-danger-darker: color-mix(in srgb, var(--con-red) 75%, black);

    --rz-link-color: var(--con-primary);
    --rz-link-hover-color: color-mix(in srgb, var(--con-primary) 78%, white);

    --rz-panel-menu-item-active-indicator: var(--con-primary);

    /* Tabs → borderless mono uppercase strip with a primary underline (rules below) */
    --rz-tabs-background-color: transparent;
    /* Tab buttons sit on the same --panel-3 well as the panel content below,
       so strip + well read as one construct (selected = ink + primary underline) */
    --rz-tabs-tab-background-color: var(--panel-3);
    --rz-tabs-tab-color: var(--ink-3);
    --rz-tabs-tab-hover-background-color: var(--panel-3);
    --rz-tabs-tab-hover-color: var(--ink);
    --rz-tabs-tab-selected-background-color: var(--panel-3);
    --rz-tabs-tab-selected-color: var(--ink);
    --rz-tabs-tab-font-size: 10px;
    --rz-tabs-tab-font-weight: 600;
    --rz-tabs-tab-letter-spacing: 1px;
    --rz-tabs-tab-padding-block: 9px;
    --rz-tabs-tab-padding-inline: 16px;
    --rz-tabs-shadow: none;

    /* Dialogs → console panels: panel-2 title strip, mono uppercase title, dark mask */
    --rz-dialog-border-radius: 8px;
    --rz-dialog-title-background-color: var(--panel-2);
    --rz-dialog-title-font-size: 11px;
    --rz-dialog-title-font-weight: 600;
    --rz-dialog-title-letter-spacing: 2px;
    --rz-dialog-title-padding-block: 14px;
    --rz-dialog-title-padding-inline: 20px;
    --rz-dialog-content-padding: 20px;
    --rz-dialog-shadow: 0 40px 100px -20px rgba(0, 0, 0, .8);
    --rz-dialog-mask-background-color: rgba(4, 7, 12, .62);

    /* Toasts → dark panel + severity accents (left border + icon color below) */
    --rz-notification-success-background-color: var(--panel-2);
    --rz-notification-success-color: var(--ink);
    --rz-notification-success-icon-color: var(--con-green);
    --rz-notification-error-background-color: var(--panel-2);
    --rz-notification-error-color: var(--ink);
    --rz-notification-error-icon-color: var(--con-red);
    --rz-notification-info-background-color: var(--panel-2);
    --rz-notification-info-color: var(--ink);
    --rz-notification-info-icon-color: var(--con-sky);
    --rz-notification-warning-background-color: var(--panel-2);
    --rz-notification-warning-color: var(--ink);
    --rz-notification-warning-icon-color: var(--con-yellow);
    --rz-notification-shadow: 0 12px 40px -12px rgba(0, 0, 0, .7);

    /* Chart series → console accents first, then distinct fallbacks */
    --rz-series-1: var(--con-primary);
    --rz-series-2: var(--con-green);
    --rz-series-3: var(--con-orange);
    --rz-series-4: var(--con-sky);
    --rz-series-5: var(--con-yellow);
    --rz-series-6: var(--con-red);
    --rz-series-7: #8b5cf6;
    --rz-series-8: #8aa0b4;
}

/* Tab strip: mono uppercase, hairline base line, primary underline on the active tab */
.rz-tabview-nav {
    font-family: var(--font-mono);
    text-transform: uppercase;
    border-bottom: 1px solid var(--line);
}

.rz-tabview-top > .rz-tabview-nav li {
    border-bottom: 2px solid transparent;
    margin-bottom: -1px;
}

.rz-tabview-top > .rz-tabview-nav li.rz-tabview-selected {
    border-bottom-color: var(--con-primary);
}

.rz-tabview-panels {
    background: var(--panel-3);
    border: 1px solid var(--line);
    border-top: none; /* the tab strip's bottom hairline closes the well */
    border-radius: 0 0 6px 6px;
    padding: 16px;
}

/* Form-field labels: console label voice (sizes stay Radzen-managed so the
   floating-label shrink animation keeps working) */
.rz-form-field-label {
    font-family: var(--font-mono);
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

/* Dialog chrome: hairline border + primary top accent, console title voice */
.rz-dialog {
    border: 1px solid var(--line);
    border-top: 2px solid var(--con-primary);
}

.rz-dialog-titlebar {
    border-bottom: 1px solid var(--line);
}

.rz-dialog-title {
    font-family: var(--font-mono);
    text-transform: uppercase;
}

/* Toast chrome: hairline border + severity left accent */
.rz-notification-item {
    border: 1px solid var(--line);
    border-left: 3px solid var(--line-2);
}

.rz-notification-success .rz-notification-item { border-left-color: var(--con-green); }
.rz-notification-error .rz-notification-item { border-left-color: var(--con-red); }
.rz-notification-info .rz-notification-item { border-left-color: var(--con-sky); }
.rz-notification-warning .rz-notification-item { border-left-color: var(--con-yellow); }

/* Radzen DataGrid inside console shells: kill the card chrome, keep the grid */
.console-table .rz-data-grid {
    border: none;
    background: transparent;
}

/* Grid header voice (family/letter-spacing have no --rz vars; sizes set in console-tokens) */
.rz-grid-table thead th .rz-column-title {
    font-family: var(--font-mono);
    letter-spacing: 1.5px;
}
