/* ============================================================================
   Tawazun Job Portal - Modern Recruitment Console Design System
   Project-owned CSS used by the authenticated administration workspace.
   Public Job Portal pages keep their own isolated visual styling.
   ============================================================================ */

:root {
    --ui-primary: #0C2679;
    --ui-primary-hover: #081D5F;
    --ui-primary-soft: #EEF3FB;
    --ui-primary-border: #C9D5EE;
    --ui-accent: #B6862D;
    --ui-success: #16a34a;
    --ui-warning: #d97706;
    --ui-danger: #dc2626;
    --ui-info: #0284c7;

    --ui-bg: #f6f7fb;
    --ui-surface: #ffffff;
    --ui-surface-soft: #f9fafb;
    --ui-surface-muted: #f3f4f6;
    --ui-sidebar: #ffffff;

    --ui-text: #111827;
    --ui-text-secondary: #4b5563;
    --ui-text-muted: #6b7280;
    --ui-border: #e5e7eb;
    --ui-border-strong: #d1d5db;

    --ui-radius-sm: 8px;
    --ui-radius-md: 12px;
    --ui-radius-lg: 16px;
    --ui-radius-xl: 22px;

    --ui-shadow-xs: 0 1px 2px rgba(15, 23, 42, .04);
    --ui-shadow-sm: 0 1px 3px rgba(15, 23, 42, .06), 0 1px 2px rgba(15, 23, 42, .04);
    --ui-shadow-md: 0 10px 30px rgba(15, 23, 42, .07);
    --ui-shadow-lg: 0 24px 60px rgba(15, 23, 42, .12);

    --ui-topbar-height: 72px;
    --ui-sidebar-width: 264px;
    --ui-transition: 160ms cubic-bezier(.2, .8, .2, 1);

    /* Keep old project variables compatible with the new design system. */
    --PrimaryColor: var(--ui-primary);
    --CompanyDefaultColor: var(--ui-primary);
    --AppBackgroundColor: var(--ui-bg);
    --AppPageBackgroundColor: var(--ui-bg);
}

html {
    background: var(--ui-bg);
}

html,
body {
    min-height: 100%;
}

body {
    margin: 0;
    background: var(--ui-bg);
    color: var(--ui-text);
    font-family: Montserrat, "Segoe UI", Arial, sans-serif;
    font-size: 14px;
    line-height: 1.55;
    -webkit-font-smoothing: antialiased;
    text-rendering: optimizeLegibility;
}

::selection {
    color: #fff;
    background: var(--ui-primary);
}

:focus-visible {
    outline: 3px solid rgba(12, 38, 121, .20);
    outline-offset: 2px;
}

a {
    color: var(--ui-primary);
    text-decoration: none;
    transition: color var(--ui-transition);
}

a:hover {
    color: var(--ui-primary-hover);
}

h1, h2, h3, h4, h5, h6 {
    color: var(--ui-text);
    letter-spacing: -.025em;
}

/* --------------------------------------------------------------------------
   Application shell
   -------------------------------------------------------------------------- */

.modern-app-shell,
.modern-mud-layout {
    min-height: 100vh;
    background: var(--ui-bg);
}

.modern-topbar.mud-appbar,
.mud-appbar.modern-topbar {
    min-height: var(--ui-topbar-height) !important;
    height: var(--ui-topbar-height) !important;
    padding-inline: 16px 22px !important;
    background: rgba(255, 255, 255, .94) !important;
    color: var(--ui-text) !important;
    border-bottom: 1px solid var(--ui-border) !important;
    box-shadow: none !important;
    backdrop-filter: blur(14px);
    -webkit-backdrop-filter: blur(14px);
}

.modern-topbar .mud-toolbar {
    min-height: var(--ui-topbar-height) !important;
    height: var(--ui-topbar-height) !important;
    gap: 10px;
}

.modern-drawer.mud-drawer {
    width: var(--ui-sidebar-width) !important;
    background: var(--ui-sidebar) !important;
    border-right: 1px solid var(--ui-border) !important;
    box-shadow: none !important;
}

.modern-drawer .mud-drawer-content {
    background: var(--ui-sidebar);
    overflow-x: hidden;
}

.modern-sidebar-content {
    min-height: 100%;
    display: flex;
    flex-direction: column;
}

.modern-sidebar-brand {
    display: flex;
    align-items: center;
    gap: 12px;
    min-height: 82px;
    padding: 16px 18px;
    border-bottom: 1px solid var(--ui-border);
}

.modern-sidebar-brand__mark {
    width: 42px;
    height: 42px;
    display: grid;
    place-items: center;
    flex: 0 0 42px;
    border-radius: 13px;
    background: linear-gradient(135deg, #0C2679 0%, #173D91 100%);
    box-shadow: 0 8px 20px rgba(12, 38, 121, .20);
    overflow: hidden;
}

.modern-sidebar-brand__mark img {
    width: 34px;
    height: 34px;
    object-fit: contain;
    filter: saturate(.95) brightness(1.05);
}

.modern-sidebar-brand__text {
    min-width: 0;
}

.modern-sidebar-brand__title {
    display: block;
    color: var(--ui-text);
    font-size: 14px;
    font-weight: 750;
    line-height: 1.25;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.modern-sidebar-brand__subtitle {
    display: block;
    margin-top: 2px;
    color: var(--ui-text-muted);
    font-size: 11px;
    font-weight: 600;
    letter-spacing: .025em;
}

.modern-sidebar-scroll {
    flex: 1;
    min-height: 0;
    padding: 14px 12px 18px;
    overflow-y: auto;
    scrollbar-width: thin;
    scrollbar-color: #d1d5db transparent;
}

.modern-nav-section-label {
    margin: 16px 10px 7px;
    color: #9ca3af;
    font-size: 10px;
    font-weight: 800;
    letter-spacing: .12em;
    text-transform: uppercase;
}

.modern-nav-menu.mud-navmenu,
.modern-nav-menu .mud-navmenu {
    padding: 0 !important;
}

.modern-nav-menu .mud-nav-link,
.modern-nav-menu button.mud-nav-link {
    min-height: 43px;
    margin: 3px 0;
    padding: 9px 11px !important;
    gap: 10px;
    border-radius: 11px;
    color: var(--ui-text-secondary) !important;
    font-weight: 600;
    font-size: 13px;
    letter-spacing: -.005em;
    transition: background-color var(--ui-transition), color var(--ui-transition), transform var(--ui-transition);
}

.modern-nav-menu .mud-nav-link:hover,
.modern-nav-menu button.mud-nav-link:hover {
    color: var(--ui-text) !important;
    background: var(--ui-surface-muted) !important;
    transform: translateX(1px);
}

.modern-nav-menu .mud-nav-link.active,
.modern-nav-menu .mud-nav-link.mud-nav-link-active,
.modern-nav-menu .mud-nav-link[aria-current="page"] {
    color: var(--ui-primary) !important;
    background: var(--ui-primary-soft) !important;
    box-shadow: inset 3px 0 0 var(--ui-accent);
}

.modern-nav-menu .mud-nav-link .mud-icon-root {
    color: #6b7280 !important;
    font-size: 20px !important;
}

.modern-nav-menu .mud-nav-link.active .mud-icon-root,
.modern-nav-menu .mud-nav-link.mud-nav-link-active .mud-icon-root,
.modern-nav-menu .mud-nav-link[aria-current="page"] .mud-icon-root {
    color: var(--ui-primary) !important;
}

.modern-nav-logout-form {
    margin: 0;
}

.modern-nav-logout-form button {
    width: 100%;
    border: 0;
    background: transparent;
    text-align: left;
}

.modern-main-content {
    background: var(--ui-bg);
}

.modern-content-container {
    width: min(calc(100% - 56px), 1580px);
    min-height: calc(100vh - var(--ui-topbar-height));
    margin: 0 auto;
    padding: 30px 0 44px;
}

/* Give every first-level administration page consistent breathing room. */
.modern-content-container > .mud-stack {
    gap: 20px !important;
}

.modern-content-container > .mud-stack > .mud-stack:first-child {
    margin-bottom: 2px;
}

.modern-content-container > .mud-stack > .mud-paper.pa-4 {
    padding: 20px !important;
}

.modern-main-content .mr-16 {
    margin-right: 0 !important;
}

.modern-main-content > .mud-container,
.modern-main-content .mud-container-maxwidth-false {
    max-width: none !important;
}

/* Top bar */
.modern-drawer-toggle {
    width: 40px !important;
    height: 40px !important;
    border-radius: 11px !important;
    color: var(--ui-text-secondary) !important;
    background: var(--ui-surface-soft) !important;
    border: 1px solid var(--ui-border) !important;
}

.modern-topbar-context {
    min-width: 0;
    display: flex;
    flex-direction: column;
    justify-content: center;
    margin-left: 2px;
}

.modern-topbar-context__eyebrow {
    color: var(--ui-text-muted);
    font-size: 10px;
    font-weight: 800;
    line-height: 1.2;
    letter-spacing: .1em;
    text-transform: uppercase;
}

.modern-topbar-context__title {
    max-width: 380px;
    margin-top: 2px;
    color: var(--ui-text);
    font-size: 15px;
    font-weight: 750;
    line-height: 1.25;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.modern-topbar-home-link {
    color: inherit !important;
    text-decoration: none !important;
    cursor: pointer;
}

.modern-topbar-home-link:hover .modern-topbar-context__title {
    color: var(--ui-primary);
}

.modern-topbar-actions {
    display: flex;
    align-items: center;
    gap: 7px;
}

.modern-topbar-icon.mud-icon-button {
    width: 40px;
    height: 40px;
    border: 1px solid var(--ui-border);
    border-radius: 11px;
    color: var(--ui-text-secondary) !important;
    background: var(--ui-surface) !important;
}

.modern-topbar-icon.mud-icon-button:hover {
    color: var(--ui-primary) !important;
    background: var(--ui-primary-soft) !important;
    border-color: var(--ui-primary-border);
}

.modern-user-chip {
    display: flex;
    align-items: center;
    gap: 9px;
    min-height: 42px;
    margin-left: 3px;
    padding: 4px 8px 4px 5px;
    border: 1px solid var(--ui-border);
    border-radius: 12px;
    color: var(--ui-text) !important;
    background: var(--ui-surface);
    transition: border-color var(--ui-transition), box-shadow var(--ui-transition), background-color var(--ui-transition);
}

.modern-user-chip:hover {
    background: var(--ui-surface-soft);
    border-color: var(--ui-border-strong);
    box-shadow: var(--ui-shadow-xs);
}

.modern-user-avatar {
    width: 32px;
    height: 32px;
    display: grid;
    place-items: center;
    flex: 0 0 32px;
    border-radius: 10px;
    background: linear-gradient(135deg, #EEF3FB, #E7EDF8);
    color: var(--ui-primary);
}

.modern-user-meta {
    min-width: 0;
    max-width: 180px;
}

.modern-user-name {
    display: block;
    overflow: hidden;
    color: var(--ui-text);
    font-size: 12px;
    font-weight: 750;
    line-height: 1.2;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.modern-user-role {
    display: block;
    margin-top: 2px;
    color: var(--ui-text-muted);
    font-size: 10px;
    line-height: 1.2;
}

/* --------------------------------------------------------------------------
   Page structure
   -------------------------------------------------------------------------- */

.modern-page-heading {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 16px;
    min-height: auto !important;
    margin: 0 0 18px !important;
    padding: 0 !important;
    color: var(--ui-text) !important;
    background: transparent !important;
    background-image: none !important;
}

.modern-page-heading__eyebrow {
    margin-bottom: 4px;
    color: var(--ui-text-muted);
    font-size: 10px;
    font-weight: 800;
    letter-spacing: .12em;
    text-transform: uppercase;
}

.modern-page-heading h1 {
    margin: 0;
    color: var(--ui-text);
    font-size: clamp(22px, 2vw, 29px);
    font-weight: 760;
    letter-spacing: -.035em;
}

.modern-page-intro {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 16px;
    margin: 0 0 20px;
}

.modern-page-intro h1 {
    margin: 0;
    font-size: clamp(24px, 2vw, 31px);
    font-weight: 780;
}

.modern-page-intro p {
    max-width: 720px;
    margin: 5px 0 0;
    color: var(--ui-text-muted);
    font-size: 13px;
}

.modern-dashboard-surface {
    padding: 0 !important;
    background: transparent !important;
}

.PageStart,
.ViewContainer:not(.UsersManagementContainer .ViewContainer) {
    margin-top: 0;
}

.PageHeader {
    color: var(--ui-text);
    font-size: 28px;
    font-weight: 760;
    letter-spacing: -.035em;
}

/* --------------------------------------------------------------------------
   Surfaces / cards / panels
   -------------------------------------------------------------------------- */

.modern-main-content .mud-paper,
.modern-main-content .card,
.modern-main-content .EditView,
.modern-main-content .SearchContainer .card {
    border: 1px solid var(--ui-border);
    border-radius: var(--ui-radius-lg);
    background: var(--ui-surface);
    box-shadow: var(--ui-shadow-sm);
}

.modern-main-content .mud-paper.mud-elevation-0 {
    box-shadow: var(--ui-shadow-sm);
}

.modern-main-content > .modern-content-container > .mud-paper:first-child,
.modern-main-content .modern-dashboard-surface {
    border: 0;
    background: transparent;
    box-shadow: none;
}

.modern-main-content .card {
    overflow: hidden;
}

.modern-main-content .card-header {
    min-height: 56px;
    display: flex;
    align-items: center;
    padding: 14px 18px;
    border-bottom: 1px solid var(--ui-border);
    background: var(--ui-surface);
    color: var(--ui-text);
    font-weight: 700;
}

.modern-main-content .card-header h1,
.modern-main-content .card-header h2,
.modern-main-content .card-header h3,
.modern-main-content .card-header h4,
.modern-main-content .card-header h5,
.modern-main-content .card-header h6 {
    margin: 0;
}

.modern-main-content .card-body {
    padding: 18px;
}

.modern-main-content .SearchContainer {
    margin-bottom: 18px;
}

.modern-main-content .SearchContainer .card-body {
    padding: 16px;
}

.modern-main-content .SearchContainer .mud-divider {
    margin-block: 14px !important;
}

.modern-main-content .mud-divider {
    border-color: var(--ui-border) !important;
}

/* --------------------------------------------------------------------------
   Buttons
   -------------------------------------------------------------------------- */

.btn,
.mud-button-root {
    border-radius: 10px !important;
    font-weight: 650 !important;
    letter-spacing: 0 !important;
    text-transform: none !important;
    transition: transform var(--ui-transition), background-color var(--ui-transition), border-color var(--ui-transition), box-shadow var(--ui-transition) !important;
}

.mud-button-root {
    min-height: 38px;
    padding-inline: 14px !important;
}

.mud-button-root:hover:not(:disabled) {
    transform: translateY(-1px);
}

.mud-button-filled-primary,
.btn-primary,
.AddButton,
.SaveButton {
    border-color: var(--ui-primary) !important;
    background: var(--ui-primary) !important;
    color: #fff !important;
    box-shadow: 0 5px 14px rgba(12, 38, 121, .16) !important;
}

.mud-button-filled-primary:hover,
.btn-primary:hover,
.AddButton:hover,
.SaveButton:hover {
    border-color: var(--ui-primary-hover) !important;
    background: var(--ui-primary-hover) !important;
}

.mud-button-outlined {
    background: var(--ui-surface) !important;
}

.mud-button-outlined-primary {
    color: var(--ui-primary) !important;
    border-color: #C9D5EE !important;
}

.mud-button-filled-success {
    background: var(--ui-success) !important;
}

.mud-button-filled-error,
.DeleteButton {
    background: var(--ui-danger) !important;
}

.mud-icon-button {
    border-radius: 10px !important;
}

.modern-main-content .mud-icon-button-filled {
    box-shadow: none !important;
}

/* --------------------------------------------------------------------------
   Inputs and forms
   -------------------------------------------------------------------------- */

.form-control,
.form-select,
.mud-input-control .mud-input-outlined,
.mud-input-control .mud-input-filled,
.mud-input-control .mud-input-text {
    transition: border-color var(--ui-transition), box-shadow var(--ui-transition), background-color var(--ui-transition) !important;
}

.form-control,
.form-select {
    min-height: 44px;
    border-color: var(--ui-border-strong);
    border-radius: 10px;
    color: var(--ui-text);
    background-color: var(--ui-surface);
    box-shadow: none;
}

.form-control:hover,
.form-select:hover {
    border-color: #aeb6c3;
}

.form-control:focus,
.form-select:focus {
    border-color: var(--ui-primary);
    box-shadow: 0 0 0 3px rgba(12, 38, 121, .11);
}

.form-label,
.FormLabel,
.mud-input-label {
    color: var(--ui-text-secondary) !important;
    font-weight: 600 !important;
}

.mud-input-control .mud-input-outlined-border {
    border-color: var(--ui-border-strong) !important;
    border-radius: 10px !important;
}

.mud-input-control:hover .mud-input-outlined-border {
    border-color: #aeb6c3 !important;
}

.mud-input-control .mud-input-outlined.mud-input-focused .mud-input-outlined-border,
.mud-input-control .mud-input-outlined:focus-within .mud-input-outlined-border {
    border-color: var(--ui-primary) !important;
    border-width: 1.5px !important;
}

.mud-input-control .mud-input-outlined {
    border-radius: 10px !important;
    background: var(--ui-surface) !important;
}

.mud-input-control .mud-input-slot {
    color: var(--ui-text) !important;
}

.mud-input-helper-text {
    color: var(--ui-text-muted) !important;
}

.mud-checkbox .mud-icon-root,
.mud-radio .mud-icon-root {
    color: var(--ui-primary);
}

.validation-message,
.validation-summary-errors,
.text-danger {
    color: var(--ui-danger) !important;
}

/* --------------------------------------------------------------------------
   Tables / grids
   -------------------------------------------------------------------------- */

.modern-main-content .mud-table-container {
    border: 1px solid var(--ui-border);
    border-radius: 14px;
    background: var(--ui-surface);
    overflow: auto;
}

.modern-main-content .mud-table {
    background: transparent !important;
    box-shadow: none !important;
}

.modern-main-content .mud-table-head .mud-table-cell {
    height: 46px;
    padding-block: 10px;
    border-bottom: 1px solid var(--ui-border) !important;
    background: #f8fafc;
    color: #475569;
    font-size: 11px;
    font-weight: 800;
    letter-spacing: .045em;
    text-transform: uppercase;
    white-space: nowrap;
}

.modern-main-content .mud-table-body .mud-table-row {
    transition: background-color var(--ui-transition);
}

.modern-main-content .mud-table-body .mud-table-row:hover {
    background: #fafbff !important;
}

.modern-main-content .mud-table-body .mud-table-cell {
    padding-block: 11px;
    border-bottom: 1px solid #eef0f3 !important;
    color: var(--ui-text-secondary);
    vertical-align: middle;
}

.modern-main-content .mud-table-body .mud-table-row:last-child .mud-table-cell {
    border-bottom: 0 !important;
}

.modern-main-content .mud-table-sort-label:hover,
.modern-main-content .mud-table-sort-label.mud-table-sort-label-active {
    color: var(--ui-primary) !important;
}

.modern-main-content .mud-table-pagination {
    min-height: 58px;
    border-top: 1px solid var(--ui-border);
    color: var(--ui-text-muted);
    background: var(--ui-surface);
}

.RecordsTable {
    border: 1px solid var(--ui-border);
    border-radius: 14px;
    border-collapse: separate !important;
    border-spacing: 0;
    overflow: hidden;
    background: var(--ui-surface);
}

.RecordsTable th {
    padding: 11px 12px !important;
    border: 0 !important;
    border-bottom: 1px solid var(--ui-border) !important;
    background: #f8fafc !important;
    color: #475569 !important;
    font-size: 11px;
    font-weight: 800;
    letter-spacing: .045em;
    text-transform: uppercase;
}

.RecordsTable td {
    padding: 11px 12px !important;
    border: 0 !important;
    border-bottom: 1px solid #eef0f3 !important;
}

.RecordsTable tr:nth-child(even) {
    background: transparent !important;
}

.RecordsTable tr:hover {
    background: #fafbff !important;
}


/* Recruitment administration lists use Bootstrap tables inside MudPaper. */
.modern-main-content .table {
    margin-bottom: 0;
}

.modern-main-content .table > :not(caption) > * > * {
    padding: 13px 16px;
    border-bottom-color: var(--ui-border);
    vertical-align: middle;
}

.modern-main-content .table thead th {
    padding-top: 12px;
    padding-bottom: 12px;
    color: #475569;
    background: #f8fafc;
    font-size: 11px;
    font-weight: 800;
    letter-spacing: .025em;
    white-space: nowrap;
}

.modern-main-content .table tbody tr:last-child > * {
    border-bottom: 0;
}

/* --------------------------------------------------------------------------
   Tabs, chips, menus and dialogs
   -------------------------------------------------------------------------- */

.modern-main-content .mud-tabs {
    border: 1px solid var(--ui-border);
    border-radius: var(--ui-radius-lg) !important;
    background: var(--ui-surface);
    box-shadow: var(--ui-shadow-sm) !important;
    overflow: hidden;
}

.modern-main-content .mud-tabs-toolbar {
    min-height: 54px;
    padding-inline: 9px;
    border-bottom: 1px solid var(--ui-border);
    background: var(--ui-surface);
}

.modern-main-content .mud-tab {
    min-height: 42px;
    margin-block: 5px;
    border-radius: 9px;
    color: var(--ui-text-muted);
    font-size: 12px;
    font-weight: 700;
    text-transform: none !important;
}

.modern-main-content .mud-tab.mud-tab-active {
    color: var(--ui-primary) !important;
    background: var(--ui-primary-soft);
}

.modern-main-content .mud-tabs-slider {
    display: none;
}

.mud-popover,
.mud-menu-list,
.mud-picker-container,
.mud-select-popover {
    border: 1px solid var(--ui-border) !important;
    border-radius: 12px !important;
    box-shadow: var(--ui-shadow-lg) !important;
}

.mud-list-item {
    border-radius: 8px;
}

.mud-dialog {
    border: 1px solid var(--ui-border);
    border-radius: 18px !important;
    box-shadow: var(--ui-shadow-lg) !important;
}

.mud-dialog-title {
    padding: 20px 22px 14px !important;
    color: var(--ui-text);
    font-weight: 750;
}

.mud-dialog-content {
    padding: 10px 22px 20px !important;
}

.mud-dialog-actions {
    padding: 14px 22px 20px !important;
}

.mud-chip {
    border-radius: 999px !important;
    font-weight: 650 !important;
}

.mud-alert {
    border-radius: 12px !important;
}

/* --------------------------------------------------------------------------
   Home / tile viewers (including shared BlockTilesViewer/PrivateTiles markup)
   -------------------------------------------------------------------------- */

.HomeContainer,
.LinksContainer {
    width: 100%;
}

.modern-main-content .LinksContainer {
    padding: 0;
}

.modern-main-content .Tile,
.modern-main-content .LinksContainer .Tile {
    position: relative;
    height: 158px !important;
    min-height: 158px;
    width: 100% !important;
    max-width: none;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    justify-content: space-between;
    padding: 18px !important;
    overflow: hidden;
    border: 1px solid var(--ui-border) !important;
    border-radius: 16px !important;
    color: var(--ui-text) !important;
    background: var(--ui-surface) !important;
    box-shadow: var(--ui-shadow-sm);
    text-align: left;
    transition: transform var(--ui-transition), border-color var(--ui-transition), box-shadow var(--ui-transition) !important;
}

.modern-main-content .Tile::after {
    content: "";
    position: absolute;
    right: -34px;
    top: -42px;
    width: 110px;
    height: 110px;
    border-radius: 999px;
    background: var(--ui-primary-soft);
    opacity: .72;
    pointer-events: none;
}

.modern-main-content .Tile:hover {
    transform: translateY(-3px);
    border-color: var(--ui-primary-border) !important;
    box-shadow: var(--ui-shadow-md);
}

.modern-main-content .Tile a,
.modern-main-content a.TileLink {
    color: inherit !important;
    text-decoration: none !important;
}

.modern-main-content .TileIcon,
.modern-main-content .Tile .TileIcon {
    position: relative;
    z-index: 1;
    color: var(--ui-primary) !important;
    font-size: 34px !important;
}

.modern-main-content .TileText,
.modern-main-content .Tile .TileText {
    position: relative;
    z-index: 1;
    margin-top: 10px;
    color: var(--ui-text) !important;
    font-size: 14px;
    font-weight: 720;
    line-height: 1.35;
}

/* --------------------------------------------------------------------------
   Authentication - shared pages
   -------------------------------------------------------------------------- */

.UsersManagementContainer {
    min-height: 100vh;
    color: var(--ui-text);
    background: #f5f7fb;
}

.UsersManagementContainer .ViewContainer {
    min-height: 100vh;
    width: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 28px;
    overflow: auto;
    background:
        radial-gradient(circle at 10% 12%, rgba(12, 38, 121, .08), transparent 28%),
        radial-gradient(circle at 90% 88%, rgba(14, 165, 233, .06), transparent 30%),
        #f7f8fc;
}

.UsersManagementContainer .MainRow {
    width: 100%;
    max-width: 1160px;
    margin: 0;
}

.UsersManagementContainer .MainColumnSection,
.UsersManagementContainer .ExternalLoginSection {
    position: relative;
    width: 100%;
    max-width: 470px;
    margin-inline: auto;
    padding: 34px;
    border: 1px solid var(--ui-border);
    border-radius: 20px;
    background: rgba(255, 255, 255, .97);
    box-shadow: var(--ui-shadow-lg);
    backdrop-filter: none;
    -webkit-backdrop-filter: none;
    animation: modern-auth-enter 420ms ease-out both;
}

.UsersManagementContainer .MainColumnSection::before {
    display: none;
}

.UsersManagementContainer .MainColumnSection:hover,
.UsersManagementContainer .ExternalLoginSection:hover {
    transform: none;
    box-shadow: var(--ui-shadow-lg);
}

.UsersManagementContainer .ViewEditForm {
    position: relative;
    z-index: 1;
    width: 100%;
}

.UsersManagementContainer h1 {
    margin: 0 0 8px;
    color: var(--ui-text);
    font-size: 27px;
    font-weight: 780;
    line-height: 1.18;
    text-align: left;
    letter-spacing: -.035em;
}

.UsersManagementContainer h2 {
    margin: 0 0 24px;
    color: var(--ui-text-muted);
    font-size: 13px;
    font-weight: 450;
    line-height: 1.55;
    text-align: left;
}

.UsersManagementContainer h3 {
    color: var(--ui-text);
    font-size: 16px;
    font-weight: 720;
}

.UsersManagementContainer hr {
    display: none;
}

.UsersManagementContainer .form-floating {
    margin-bottom: 15px !important;
}

.UsersManagementContainer .form-control {
    min-height: 52px;
    border: 1px solid var(--ui-border-strong);
    border-radius: 11px;
    background: #fff;
    font-size: 14px;
}

.UsersManagementContainer .form-control:focus {
    border-color: var(--ui-primary);
    background: #fff;
    box-shadow: 0 0 0 4px rgba(12, 38, 121, .10);
}

.UsersManagementContainer .form-floating > label {
    color: var(--ui-text-muted);
}

.UsersManagementContainer .btn-primary {
    min-height: 48px;
    border-radius: 11px !important;
    background: var(--ui-primary) !important;
    color: #fff !important;
    box-shadow: 0 8px 20px rgba(12, 38, 121, .18) !important;
}

.UsersManagementContainer .btn-primary:hover {
    transform: translateY(-1px);
    background: var(--ui-primary-hover) !important;
    box-shadow: 0 10px 24px rgba(12, 38, 121, .22) !important;
}

.UsersManagementContainer a,
.UsersManagementContainer .btn-link {
    color: var(--ui-primary) !important;
    font-weight: 650;
}

.UsersManagementContainer a:hover {
    color: var(--ui-primary-hover) !important;
    text-decoration: none;
}

.UsersManagementContainer .LinksContainer {
    margin-top: 20px;
    padding: 0;
    text-align: center;
}

.UsersManagementContainer .LinksContainer p {
    margin: 7px 0;
}

/* NexLink-inspired cover login */
.UsersManagementContainer.LoginPage .ViewContainer {
    padding: 20px;
    background: #eef1f7;
}

.modern-auth-shell {
    width: min(100%, 1180px);
    min-height: min(760px, calc(100vh - 40px));
    display: grid;
    grid-template-columns: minmax(0, 1.08fr) minmax(420px, .92fr);
    overflow: hidden;
    border: 1px solid rgba(255, 255, 255, .7);
    border-radius: 24px;
    background: var(--ui-surface);
    box-shadow: 0 30px 80px rgba(15, 23, 42, .13);
}

.modern-auth-hero {
    position: relative;
    min-height: 100%;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    padding: 36px 40px 42px;
    overflow: hidden;
    isolation: isolate;
    background:
        linear-gradient(140deg, rgba(14, 20, 48, .96), rgba(51, 48, 135, .94)),
        url('../Images/MainBackground.png') center/cover no-repeat;
    color: #fff;
}

.modern-auth-hero::before,
.modern-auth-hero::after {
    content: "";
    position: absolute;
    z-index: -1;
    border-radius: 999px;
    filter: blur(2px);
    pointer-events: none;
}

.modern-auth-hero::before {
    width: 360px;
    height: 360px;
    right: -130px;
    top: -95px;
    background: rgba(99, 102, 241, .34);
}

.modern-auth-hero::after {
    width: 280px;
    height: 280px;
    left: -100px;
    bottom: -110px;
    background: rgba(14, 165, 233, .18);
}

.modern-auth-brand {
    width: fit-content;
    display: inline-flex;
    align-items: center;
    gap: 11px;
    color: #fff !important;
}

.modern-auth-brand__mark {
    width: 42px;
    height: 42px;
    display: grid;
    place-items: center;
    border: 1px solid rgba(255, 255, 255, .16);
    border-radius: 13px;
    background: rgba(255, 255, 255, .11);
    backdrop-filter: blur(10px);
}

.modern-auth-brand__mark img {
    width: 34px;
    height: 34px;
    object-fit: contain;
}

.modern-auth-brand__name {
    max-width: 340px;
    overflow: hidden;
    font-size: 14px;
    font-weight: 750;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.modern-auth-hero__content {
    max-width: 530px;
    margin-block: auto;
    padding-block: 50px;
}

.modern-auth-badge {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    margin-bottom: 20px;
    padding: 7px 10px;
    border: 1px solid rgba(255, 255, 255, .16);
    border-radius: 999px;
    color: rgba(255, 255, 255, .88);
    background: rgba(255, 255, 255, .08);
    font-size: 10px;
    font-weight: 800;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.modern-auth-badge::before {
    content: "";
    width: 7px;
    height: 7px;
    border-radius: 50%;
    background: #4ade80;
    box-shadow: 0 0 0 4px rgba(74, 222, 128, .12);
}

.modern-auth-hero h1 {
    max-width: 520px;
    margin: 0;
    color: #fff;
    font-size: clamp(34px, 4vw, 52px);
    font-weight: 780;
    line-height: 1.06;
    letter-spacing: -.05em;
}

.modern-auth-hero p {
    max-width: 520px;
    margin: 20px 0 0;
    color: rgba(255, 255, 255, .72);
    font-size: 14px;
    line-height: 1.75;
}

.modern-auth-points {
    display: flex;
    flex-wrap: wrap;
    gap: 9px;
    margin-top: 28px;
}

.modern-auth-point {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    padding: 8px 10px;
    border: 1px solid rgba(255, 255, 255, .14);
    border-radius: 10px;
    color: rgba(255, 255, 255, .86);
    background: rgba(255, 255, 255, .07);
    font-size: 11px;
    font-weight: 650;
}

.modern-auth-point i {
    color: #a5b4fc;
    font-size: 14px;
}

.modern-auth-hero__footer {
    color: rgba(255, 255, 255, .5);
    font-size: 11px;
}

.modern-auth-panel {
    min-height: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 44px 54px;
    background: #fff;
}

.modern-auth-card {
    width: 100%;
    max-width: 430px;
}

.modern-auth-mobile-brand {
    display: none;
    margin-bottom: 28px;
}

.modern-auth-eyebrow {
    margin-bottom: 7px;
    color: var(--ui-primary);
    font-size: 10px;
    font-weight: 850;
    letter-spacing: .11em;
    text-transform: uppercase;
}

.modern-auth-card h1 {
    margin-bottom: 8px;
    font-size: 30px;
}

.modern-auth-card__subtitle {
    margin: 0 0 28px;
    color: var(--ui-text-muted);
    font-size: 13px;
    line-height: 1.65;
}

.modern-auth-field-label {
    display: block;
    margin-bottom: 7px;
    color: var(--ui-text-secondary);
    font-size: 12px;
    font-weight: 700;
}

.modern-auth-input-wrap {
    position: relative;
    margin-bottom: 16px;
}

.modern-auth-input-wrap .form-control {
    min-height: 48px;
    padding: 10px 42px 10px 40px;
}

.modern-auth-input-icon {
    position: absolute;
    z-index: 2;
    left: 13px;
    top: 50%;
    transform: translateY(-50%);
    color: #9ca3af;
    font-size: 16px;
    pointer-events: none;
}

.modern-auth-password-toggle {
    position: absolute !important;
    z-index: 3;
    right: 7px;
    top: 50%;
    width: 34px;
    height: 34px;
    display: grid !important;
    place-items: center;
    padding: 0 !important;
    transform: translateY(-50%);
    border: 0 !important;
    border-radius: 9px !important;
    color: var(--ui-text-muted) !important;
    background: transparent !important;
    box-shadow: none !important;
}

.modern-auth-password-toggle:hover {
    color: var(--ui-primary) !important;
    background: var(--ui-primary-soft) !important;
}

.modern-auth-options {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    margin: 1px 0 20px;
    font-size: 12px;
}

.modern-auth-remember {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    margin: 0;
    color: var(--ui-text-secondary);
    font-weight: 550;
}

.modern-auth-remember .form-check-input {
    width: 16px;
    height: 16px;
    margin: 0;
    border-color: var(--ui-border-strong);
}

.modern-auth-submit {
    width: 100%;
    min-height: 48px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
}

.modern-auth-divider {
    display: flex;
    align-items: center;
    gap: 12px;
    margin: 22px 0;
    color: #9ca3af;
    font-size: 10px;
    font-weight: 750;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.modern-auth-divider::before,
.modern-auth-divider::after {
    content: "";
    flex: 1;
    height: 1px;
    background: var(--ui-border);
}

.modern-auth-passkey {
    width: 100%;
    min-height: 44px;
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
    border: 1px solid var(--ui-border) !important;
    border-radius: 10px !important;
    color: var(--ui-text-secondary) !important;
    background: var(--ui-surface) !important;
}

.modern-auth-passkey:hover {
    border-color: var(--ui-primary-border) !important;
    color: var(--ui-primary) !important;
    background: var(--ui-primary-soft) !important;
}

.modern-auth-footer-links {
    margin-top: 22px;
    color: var(--ui-text-muted);
    font-size: 12px;
    text-align: center;
}

.modern-auth-footer-links p {
    margin: 8px 0;
}

.modern-auth-external {
    margin-top: 18px;
}

@keyframes modern-auth-enter {
    from { opacity: 0; transform: translateY(10px); }
    to { opacity: 1; transform: translateY(0); }
}

/* --------------------------------------------------------------------------
   Loading and error states
   -------------------------------------------------------------------------- */

#blazor-error-ui {
    left: 18px !important;
    right: 18px !important;
    bottom: 18px !important;
    width: auto !important;
    padding: 12px 44px 12px 16px !important;
    border: 1px solid #fecaca;
    border-radius: 12px;
    color: #991b1b;
    background: #fff7f7;
    box-shadow: var(--ui-shadow-lg);
}

/* --------------------------------------------------------------------------
   Responsive
   -------------------------------------------------------------------------- */

@media (max-width: 1100px) {
    .modern-auth-shell {
        grid-template-columns: minmax(0, .9fr) minmax(410px, 1.1fr);
    }

    .modern-auth-hero {
        padding-inline: 30px;
    }

    .modern-auth-panel {
        padding-inline: 38px;
    }
}

@media (max-width: 900px) {
    .modern-content-container {
        width: calc(100% - 32px);
        padding: 22px 0 32px;
    }

    .modern-user-meta {
        display: none;
    }

    .modern-user-chip {
        padding-right: 5px;
    }

    .modern-auth-shell {
        min-height: 0;
        grid-template-columns: 1fr;
        max-width: 560px;
    }

    .modern-auth-hero {
        display: none;
    }

    .modern-auth-panel {
        min-height: calc(100vh - 40px);
        padding: 40px;
    }

    .modern-auth-mobile-brand {
        display: flex;
        align-items: center;
        gap: 10px;
    }

    .modern-auth-mobile-brand .modern-sidebar-brand__mark {
        width: 38px;
        height: 38px;
        flex-basis: 38px;
    }
}

@media (max-width: 600px) {
    :root {
        --ui-topbar-height: 64px;
    }

    .modern-topbar.mud-appbar,
    .modern-topbar .mud-toolbar {
        min-height: 64px !important;
        height: 64px !important;
    }

    .modern-topbar-context__eyebrow {
        display: none;
    }

    .modern-topbar-context__title {
        max-width: 170px;
        font-size: 13px;
    }

    .modern-topbar-actions .modern-topbar-icon:first-child {
        display: none;
    }

    .modern-content-container {
        width: calc(100% - 20px);
        padding: 16px 0 24px;
    }

    .modern-main-content .mud-paper,
    .modern-main-content .card,
    .modern-main-content .EditView,
    .modern-main-content .SearchContainer .card {
        border-radius: 13px;
    }

    .modern-main-content .mud-paper.pa-4,
    .modern-main-content .mud-container.pa-4 {
        padding: 12px !important;
    }

    .modern-page-intro {
        align-items: flex-start;
        flex-direction: column;
    }

    .UsersManagementContainer .ViewContainer,
    .UsersManagementContainer.LoginPage .ViewContainer {
        padding: 0;
    }

    .modern-auth-shell {
        width: 100%;
        min-height: 100vh;
        border: 0;
        border-radius: 0;
        box-shadow: none;
    }

    .modern-auth-panel {
        min-height: 100vh;
        align-items: flex-start;
        padding: 28px 22px 36px;
    }

    .modern-auth-card {
        margin-block: auto;
    }

    .modern-auth-card h1 {
        font-size: 27px;
    }

    .modern-auth-options {
        align-items: flex-start;
        flex-direction: column;
    }

    .UsersManagementContainer .MainColumnSection,
    .UsersManagementContainer .ExternalLoginSection {
        padding: 26px 22px;
        border-radius: 16px;
    }
}

@media (prefers-reduced-motion: reduce) {
    *, *::before, *::after {
        scroll-behavior: auto !important;
        animation-duration: .01ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: .01ms !important;
    }
}

/* Nested edit/detail papers should read as sections inside their parent card,
   not as stacked cards inside cards. */
.modern-main-content .card-body > .mud-paper.mud-elevation-0,
.modern-main-content .mud-paper .mud-paper.mud-elevation-0 {
    border: 0;
    background: transparent;
    box-shadow: none;
}


/* =========================================================
   Account settings
   ========================================================= */
.modern-settings-panel,
.modern-settings-content {
    height: 100%;
}

.modern-settings-panel__label {
    padding: 0.35rem 0.65rem;
    color: var(--modern-text-muted);
    font-size: 0.75rem !important;
    font-weight: 700 !important;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.modern-settings-nav .mud-nav-link {
    min-height: 44px;
    margin: 0.15rem 0;
    border-radius: 10px;
}

.modern-settings-nav .mud-nav-link.active {
    background: var(--modern-primary-soft);
    color: var(--modern-primary);
}

.modern-settings-content > h1,
.modern-settings-content > h2,
.modern-settings-content > h3,
.modern-settings-content > .mud-typography-h6 {
    margin-top: 0;
}


/* =========================================================
   Public / account-only layout
   ========================================================= */
.modern-empty-layout {
    min-height: 100vh;
    width: 100%;
    overflow-x: hidden;
    color: var(--ui-text);
    background:
        radial-gradient(circle at 10% 10%, rgba(12, 38, 121, .06), transparent 28%),
        radial-gradient(circle at 90% 90%, rgba(14, 165, 233, .05), transparent 30%),
        #f7f8fc;
}

.modern-empty-layout > .mud-paper {
    width: min(calc(100% - 32px), 720px);
    margin: clamp(32px, 9vh, 96px) auto;
    border: 1px solid var(--ui-border);
    border-radius: 18px;
    background: var(--ui-surface);
    box-shadow: var(--ui-shadow-lg);
}

/* App brand is a home link in the recruitment console. */
a.modern-sidebar-brand { color: inherit; text-decoration: none; }
a.modern-sidebar-brand:hover { color: inherit; text-decoration: none; background: rgba(79,70,229,.025); }

/* ======================================================================
   Job Portal public popup layering
   ----------------------------------------------------------------------
   Public Job Portal pages host MudBlazorProviders inside the page, while
   the page itself contains several adjacent form cards. Keep autocomplete
   popovers and date-picker dialogs above those cards so dropdown/calendar
   content never appears underneath labels or input controls.
   ====================================================================== */
.job-portal-public-layout .mud-overlay {
    /* Keep the click-outside/backdrop layer below autocomplete/date popovers. */
    z-index: 21400 !important;
}

.job-portal-public-layout .mud-popover-provider {
    /* The provider must sit above the overlay or its options cannot receive clicks. */
    z-index: 21500 !important;
}

.job-portal-public-layout .mud-popover {
    z-index: 21510 !important;
    background-color: var(--mud-palette-surface, #ffffff) !important;
    pointer-events: auto !important;
}

.job-portal-public-layout .mud-popover .mud-list,
.job-portal-public-layout .mud-popover .mud-list-item,
.job-portal-public-layout .mud-picker-container {
    background-color: var(--mud-palette-surface, #ffffff) !important;
    pointer-events: auto !important;
}

.job-portal-public-layout .mud-dialog-container {
    /* Modal calendars/dialogs remain above both overlays and normal popovers. */
    z-index: 22000 !important;
}
