/* UXC Neutron SDK Theme for PECS */
/* Based on HCA Healthcare branding guidelines */

:root {
    /* Primary Colors - Blue (Main Brand Color) */
    --neu-blue-0: rgb(243, 247, 253);
    --neu-blue-10: rgb(211, 229, 242);
    --neu-blue-20: rgb(170, 204, 241);
    --neu-blue-30: rgb(111, 185, 242);
    --neu-blue-40: rgb(62, 164, 236);
    --neu-blue-50: rgb(24, 142, 211);
    --neu-blue-60: rgb(0, 119, 181);
    --neu-blue-70: rgb(0, 90, 141);
    --neu-blue-80: rgb(0, 60, 107);
    --neu-blue-90: rgb(0, 31, 73);
    --neu-blue-100: rgb(3, 23, 62);

    /* Support Colors - Orange */
    --neu-orange-0: rgb(254, 246, 238);
    --neu-orange-10: rgb(254, 233, 212);
    --neu-orange-20: rgb(253, 212, 169);
    --neu-orange-30: rgb(251, 188, 119);
    --neu-orange-40: rgb(242, 167, 78);
    --neu-orange-50: rgb(229, 146, 46);
    --neu-orange-60: rgb(194, 123, 29);
    --neu-orange-70: rgb(150, 95, 16);
    --neu-orange-80: rgb(105, 65, 6);
    --neu-orange-90: rgb(68, 41, 0);
    --neu-orange-100: rgb(51, 31, 0);

    /* Gray Scale */
    --neu-gray-0: rgb(246, 246, 246);
    --neu-gray-10: rgb(226, 226, 226);
    --neu-gray-20: rgb(200, 200, 200);
    --neu-gray-30: rgb(176, 176, 176);
    --neu-gray-40: rgb(155, 155, 155);
    --neu-gray-50: rgb(133, 133, 133);
    --neu-gray-60: rgb(111, 111, 111);
    --neu-gray-70: rgb(85, 85, 85);
    --neu-gray-80: rgb(57, 57, 57);
    --neu-gray-90: rgb(31, 31, 31);
    --neu-gray-100: rgb(25, 25, 25);

    /* Semantic Colors - Green (Success) */
    --neu-green-0: rgb(242, 249, 236);
    --neu-green-10: rgb(211, 233, 194);
    --neu-green-20: rgb(169, 212, 137);
    --neu-green-30: rgb(131, 193, 87);
    --neu-green-40: rgb(100, 172, 51);
    --neu-green-50: rgb(84, 148, 40);
    --neu-green-60: rgb(70, 125, 32);
    --neu-green-70: rgb(52, 95, 22);
    --neu-green-80: rgb(34, 64, 13);
    --neu-green-90: rgb(22, 35, 10);
    --neu-green-100: rgb(19, 27, 9);

    /* Semantic Colors - Red (Error) */
    --neu-red-0: rgb(253, 239, 239);
    --neu-red-10: rgb(248, 215, 218);
    --neu-red-20: rgb(240, 175, 181);
    --neu-red-30: rgb(231, 138, 147);
    --neu-red-40: rgb(220, 104, 117);
    --neu-red-50: rgb(202, 74, 90);
    --neu-red-60: rgb(172, 50, 68);
    --neu-red-70: rgb(134, 32, 48);
    --neu-red-80: rgb(95, 18, 30);
    --neu-red-90: rgb(63, 9, 17);
    --neu-red-100: rgb(49, 5, 11);

    /* Semantic Colors - Yellow (Warning) */
    --neu-yellow-0: rgb(254, 249, 233);
    --neu-yellow-10: rgb(254, 238, 194);
    --neu-yellow-20: rgb(252, 222, 138);
    --neu-yellow-30: rgb(246, 204, 86);
    --neu-yellow-40: rgb(231, 183, 46);
    --neu-yellow-50: rgb(207, 158, 17);
    --neu-yellow-60: rgb(167, 125, 0);
    --neu-yellow-70: rgb(108, 80, 0);
    --neu-yellow-80: rgb(73, 54, 0);
    --neu-yellow-90: rgb(41, 30, 2);
    --neu-yellow-100: rgb(31, 23, 3);

    /* Teal (Info) */
    --neu-teal-0: rgb(239, 248, 252);
    --neu-teal-10: rgb(211, 230, 237);
    --neu-teal-20: rgb(164, 207, 223);
    --neu-teal-30: rgb(119, 187, 210);
    --neu-teal-40: rgb(85, 167, 192);
    --neu-teal-50: rgb(50, 145, 172);
    --neu-teal-60: rgb(53, 121, 141);
    --neu-teal-70: rgb(43, 92, 107);
    --neu-teal-80: rgb(34, 61, 70);
    --neu-teal-90: rgb(11, 35, 42);
    --neu-teal-100: rgb(9, 27, 32);

    /* Purple (Secondary) */
    --neu-purple-0: rgb(246, 246, 250);
    --neu-purple-10: rgb(224, 225, 249);
    --neu-purple-20: rgb(193, 197, 250);
    --neu-purple-30: rgb(165, 172, 246);
    --neu-purple-40: rgb(140, 151, 232);
    --neu-purple-50: rgb(117, 129, 208);
    --neu-purple-60: rgb(93, 107, 185);
    --neu-purple-70: rgb(70, 81, 143);
    --neu-purple-80: rgb(47, 55, 99);
    --neu-purple-90: rgb(26, 30, 56);
    --neu-purple-100: rgb(20, 23, 44);

    /* Plain Colors */
    --neu-white: rgb(255, 255, 255);
    --neu-black: rgb(0, 0, 0);

    /* Spacing */
    --neu-spacing-xs: 0.5rem;
    --neu-spacing-sm: 0.75rem;
    --neu-spacing-md: 1rem;
    --neu-spacing-lg: 1.5rem;
    --neu-spacing-xl: 2rem;

    /* Border Radius */
    --neu-radius-small: 4px;
    --neu-radius-default: 8px;
    --neu-radius-circle: 999px;

    /* Shadows */
    --neu-shadow-1: 0px 2px 3px 0px rgba(0, 0, 0, 0.10);
    --neu-shadow-2: 0px 5px 8px 0px rgba(0, 0, 0, 0.13);
    --neu-shadow-3: 0px 8px 13px 0px rgba(0, 0, 0, 0.21);
    --neu-shadow-4: 0px 13px 21px 0px rgba(0, 0, 0, 0.34);

    /* Typography */
    --neu-font-family: 'HCA Mark', 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;
    --neu-font-weight-regular: 400;
    --neu-font-weight-medium: 500;
    --neu-font-weight-bold: 700;
    --neu-font-weight-heavy: 800;

    /* Animation */
    --neu-transition-short: 0.1s;
    --neu-transition-normal: 0.25s;
    --neu-transition-medium: 0.5s;
}

/* Base Styles */
html, body {
    font-family: var(--neu-font-family);
    color: var(--neu-gray-90);
    background-color: var(--neu-gray-0);
    font-weight: var(--neu-font-weight-regular);
    font-size: 16px;
    line-height: 1.5;
}

/* MudBlazor Overrides */
.mud-theme-primary {
    color: var(--neu-blue-50) !important;
}

.mud-theme-secondary {
    color: var(--neu-orange-50) !important;
}

.mud-theme-tertiary {
    color: var(--neu-purple-50) !important;
}

.mud-theme-info {
    color: var(--neu-white) !important;
}

.mud-theme-success {
    color: var(--neu-white) !important;
}

.mud-theme-warning {
    color: var(--neu-white) !important;
}

.mud-theme-error {
    color: var(--neu-white) !important;
}

.mud-selected.mud-theme-primary {
    color: white !important;
}

.mud-picker-toolbar.mud-theme-primary {
    color: white !important;
}

.mud-input.mud-input-outlined.mud-shrink .mud-input-outlined-border legend {
    padding: 0 10px;
}

.mud-input-control.mud-input-required > .mud-input-control-input-container > .mud-input-label::after {
    content: "*";
    color: red;
    font-weight: bold;
    padding-left: 2px;
}

/* Button Styles */
.mud-button-root {
    border-radius: var(--neu-radius-default);
    font-weight: var(--neu-font-weight-medium);
    transition: all var(--neu-transition-normal);
    text-transform: none;
}

.mud-button-filled.mud-primary {
    background-color: var(--neu-blue-60);
    color: var(--neu-white);
}

.mud-button-filled.mud-primary:hover {
    background-color: var(--neu-blue-70);
    box-shadow: var(--neu-shadow-2);
}

.mud-button-filled.mud-secondary {
    background-color: var(--neu-orange-60);
    color: var(--neu-white);
}

.mud-button-filled.mud-secondary:hover {
    background-color: var(--neu-orange-70);
    box-shadow: var(--neu-shadow-2);
}

.mud-button-filled.mud-success {
    background-color: var(--neu-green-60);
    color: var(--neu-white);
}

.mud-button-filled.mud-error {
    background-color: var(--neu-red-60);
    color: var(--neu-white);
}

.mud-button-filled.mud-warning {
    background-color: var(--neu-yellow-60);
    color: var(--neu-white);
}

.mud-button-filled.mud-info {
    background-color: var(--neu-teal-60);
    color: var(--neu-white);
}

.mud-button-outlined.mud-primary {
    border-color: var(--neu-blue-60);
    color: var(--neu-blue-60);
}

.mud-button-outlined.mud-primary:hover {
    background-color: var(--neu-blue-0);
}

/* Card Styles */
.mud-paper {
    border-radius: var(--neu-radius-default);
    box-shadow: var(--neu-shadow-1);
}

.mud-paper.mud-elevation-1 {
    box-shadow: var(--neu-shadow-1);
}

.mud-paper.mud-elevation-2 {
    box-shadow: var(--neu-shadow-2);
}

.mud-paper.mud-elevation-3 {
    box-shadow: var(--neu-shadow-3);
}

.mud-paper.mud-elevation-4 {
    box-shadow: var(--neu-shadow-4);
}

/* Input Fields */
.mud-input-root {
    border-radius: var(--neu-radius-default);
}

.mud-input-outlined .mud-input-outlined-border {
    border-color: var(--neu-gray-30);
    border-width: 2px;
}

.mud-input-outlined:hover .mud-input-outlined-border {
    border-color: var(--neu-blue-50);
}

.mud-input-outlined.mud-input-focused .mud-input-outlined-border {
    border-color: var(--neu-blue-60);
    border-width: 2px;
}

/* Table Styles */
.mud-table {
    border-radius: var(--neu-radius-default);
}

.mud-table-head {
    background-color: var(--neu-gray-10);
}

.mud-table-row:hover {
    background-color: var(--neu-blue-0);
}

/* Chip Styles */
.mud-chip {
    border-radius: var(--neu-radius-circle);
    font-weight: var(--neu-font-weight-medium);
}

.mud-chip.mud-chip-color-success {
    background-color: var(--neu-green-50);
    color: var(--neu-white);
}

.mud-chip.mud-chip-color-error {
    background-color: var(--neu-red-50);
    color: var(--neu-white);
}

.mud-chip.mud-chip-color-warning {
    background-color: var(--neu-yellow-50);
    color: var(--neu-white);
}

.mud-chip.mud-chip-color-info {
    background-color: var(--neu-teal-50);
    color: var(--neu-white);
}

.mud-chip.mud-chip-color-primary {
    background-color: var(--neu-blue-50);
    color: var(--neu-white);
}

/* Badge Styles - High Contrast Text */
.mud-badge-dot.mud-badge-color-error,
.mud-badge.mud-badge-color-error .mud-badge-dot {
    background-color: var(--neu-red-60);
}

.mud-badge-dot.mud-badge-color-warning,
.mud-badge.mud-badge-color-warning .mud-badge-dot {
    background-color: var(--neu-yellow-60);
}

.mud-badge-dot.mud-badge-color-info,
.mud-badge.mud-badge-color-info .mud-badge-dot {
    background-color: var(--neu-teal-60);
}

.mud-badge-dot.mud-badge-color-success,
.mud-badge.mud-badge-color-success .mud-badge-dot {
    background-color: var(--neu-green-60);
}

/* Badge Content (text) - Ensure high contrast on colored backgrounds */
.mud-badge.mud-badge-color-error .mud-badge-content {
    background-color: var(--neu-red-60);
    color: var(--neu-white);
}

.mud-badge.mud-badge-color-warning .mud-badge-content {
    background-color: var(--neu-yellow-60);
    color: var(--neu-gray-100);
}

.mud-badge.mud-badge-color-info .mud-badge-content {
    background-color: var(--neu-teal-60);
    color: var(--neu-white);
}

.mud-badge.mud-badge-color-success .mud-badge-content {
    background-color: var(--neu-green-60);
    color: var(--neu-white);
}

.mud-badge.mud-badge-color-primary .mud-badge-content {
    background-color: var(--neu-blue-60);
    color: var(--neu-white);
}

/* Progress Indicators */
.mud-progress-linear .mud-progress-linear-bar {
    background-color: var(--neu-blue-60);
}

.mud-progress-circular-svg {
    color: var(--neu-blue-60);
}

/* AppBar / Toolbar */
.mud-appbar {
    background-color: var(--neu-blue-80);
    color: var(--neu-white);
    box-shadow: var(--neu-shadow-2);
}

.mud-drawer {
    box-shadow: var(--neu-shadow-3);
}

.mud-drawer-paper {
    background-color: var(--neu-white);
}

.mud-nav-link {
    border-radius: var(--neu-radius-default);
    transition: all var(--neu-transition-normal);
}

.mud-nav-link:hover {
    background-color: var(--neu-blue-0);
}

.mud-nav-link.active {
    background-color: var(--neu-blue-10);
    color: var(--neu-blue-70);
    font-weight: var(--neu-font-weight-medium);
}

/* Alerts */
.mud-alert {
    border-radius: var(--neu-radius-default);
    border-left-width: 4px;
}

.mud-alert.mud-alert-filled-success {
    background-color: var(--neu-green-10);
    color: var(--neu-green-80);
    border-left-color: var(--neu-green-60);
}

.mud-alert.mud-alert-filled-error {
    background-color: var(--neu-red-10);
    color: var(--neu-red-80);
    border-left-color: var(--neu-red-60);
}

.mud-alert.mud-alert-filled-warning {
    background-color: var(--neu-yellow-10);
    color: var(--neu-yellow-80);
    border-left-color: var(--neu-yellow-60);
}

.mud-alert.mud-alert-filled-info {
    background-color: var(--neu-teal-10);
    color: var(--neu-teal-80);
    border-left-color: var(--neu-teal-60);
}

/* Dialog */
.mud-dialog {
    border-radius: var(--neu-radius-default);
}

.mud-dialog-title {
    background-color: var(--neu-blue-10);
    color: var(--neu-blue-80);
    font-weight: var(--neu-font-weight-bold);
}

/* Snackbar */
.mud-snackbar {
    border-radius: var(--neu-radius-default);
    box-shadow: var(--neu-shadow-3);
}

.mud-snackbar.mud-snackbar-success {
    background-color: var(--neu-green-60);
}

.mud-snackbar.mud-snackbar-error {
    background-color: var(--neu-red-60);
}

.mud-snackbar.mud-snackbar-warning {
    background-color: var(--neu-yellow-60);
}

.mud-snackbar.mud-snackbar-info {
    background-color: var(--neu-teal-60);
}

/* Pagination */
.mud-pagination .mud-pagination-item-selected {
    background-color: var(--neu-blue-60);
    color: var(--neu-white);
}

.mud-pagination .mud-button-root:hover {
    background-color: var(--neu-blue-10);
}

/* Tabs */
.mud-tabs .mud-tab-active {
    color: var(--neu-blue-60);
    border-bottom-color: var(--neu-blue-60);
    font-weight: var(--neu-font-weight-medium);
}

.mud-tabs .mud-tab:hover {
    background-color: var(--neu-blue-0);
}

/* Form Validation */
.valid.modified:not([type=checkbox]) {
    outline: 2px solid var(--neu-green-60);
}

.invalid {
    outline: 2px solid var(--neu-red-60);
}

.validation-message {
    color: var(--neu-red-60);
    font-size: 0.875rem;
    margin-top: 0.25rem;
}

/* Custom Classes */
.neu-card {
    background: var(--neu-white);
    border-radius: var(--neu-radius-default);
    padding: var(--neu-spacing-lg);
    box-shadow: var(--neu-shadow-1);
}

.neu-card:hover {
    box-shadow: var(--neu-shadow-2);
    transition: box-shadow var(--neu-transition-normal);
}

.neu-text-primary {
    color: var(--neu-blue-60);
}

.neu-text-secondary {
    color: var(--neu-orange-60);
}

.neu-bg-primary {
    background-color: var(--neu-blue-60);
    color: var(--neu-white);
}

.neu-bg-secondary {
    background-color: var(--neu-orange-60);
    color: var(--neu-white);
}

/* Badge / Status Indicators */
.neu-badge-success {
    background-color: var(--neu-green-50);
    color: var(--neu-white);
    padding: 0.25rem 0.75rem;
    border-radius: var(--neu-radius-circle);
    font-size: 0.875rem;
    font-weight: var(--neu-font-weight-medium);
}

.neu-badge-error {
    background-color: var(--neu-red-50);
    color: var(--neu-white);
    padding: 0.25rem 0.75rem;
    border-radius: var(--neu-radius-circle);
    font-size: 0.875rem;
    font-weight: var(--neu-font-weight-medium);
}

.neu-badge-warning {
    background-color: var(--neu-yellow-50);
    color: var(--neu-white);
    padding: 0.25rem 0.75rem;
    border-radius: var(--neu-radius-circle);
    font-size: 0.875rem;
    font-weight: var(--neu-font-weight-medium);
}

/* Utility Classes */
.neu-shadow-sm {
    box-shadow: var(--neu-shadow-1);
}

.neu-shadow-md {
    box-shadow: var(--neu-shadow-2);
}

.neu-shadow-lg {
    box-shadow: var(--neu-shadow-3);
}

.neu-shadow-xl {
    box-shadow: var(--neu-shadow-4);
}

.neu-rounded {
    border-radius: var(--neu-radius-default);
}

.neu-rounded-sm {
    border-radius: var(--neu-radius-small);
}

.neu-rounded-full {
    border-radius: var(--neu-radius-circle);
}

/* Loading Progress (for Blazor startup) */
.loading-progress circle:last-child {
    stroke: var(--neu-blue-60);
}

#blazor-error-ui {
    background: var(--neu-red-10);
    color: var(--neu-red-80);
    border-top: 3px solid var(--neu-red-60);
}

.blazor-error-boundary {
    background: var(--neu-red-60);
    color: var(--neu-white);
}
