/* Shared brand contract: Documentation/RCC-Web-App-Style-Guide.md.
   Loaded after component styles; legacy tokens remain aliases for existing pages. */
:root {
    --rcc-green-dark: var(--rcc-brand-dark);
    --rcc-green: var(--rcc-brand-primary);
    --rcc-green-medium: var(--rcc-brand-primary);
    --rcc-green-light: var(--rcc-brand-primary);
    --rcc-gold: var(--rcc-brand-primary);
    --rcc-font-family: Tahoma, Arial, sans-serif;
    --rcc-font-display: var(--rcc-font-family);
    --rcc-brand-primary: #1e4d2b;
    --rcc-brand-dark: #0f2616;
    --rcc-danger: #dc3545;
    --rcc-danger-dark: #b02a37;
    --rcc-header-footer-background: var(--rcc-brand-primary);
    --rcc-text: #343a40;
    --rcc-text-muted: #596168;
    --rcc-surface: #fff;
    --rcc-surface-muted: #ecebed;
    --rcc-surface-accent: #ebe4d0;
    --rcc-border: #ced4da;
    --rcc-border-strong: var(--rcc-border);
    --rcc-page-background: var(--rcc-surface);
    --rcc-surface-soft: #f5f5f6;
    --rcc-green-950: var(--rcc-brand-dark);
    --rcc-green-900: var(--rcc-brand-primary);
    --rcc-green-800: var(--rcc-brand-primary);
    --rcc-green-700: var(--rcc-brand-primary);
    --rcc-green-300: #b9cbbc;
    --rcc-green-100: #e8f0e9;
    --rcc-green-050: var(--rcc-surface-soft);
    --rcc-gold-700: var(--rcc-brand-dark);
    --rcc-gold-500: var(--rcc-brand-primary);
    --rcc-gold-100: var(--rcc-surface-accent);
    --rcc-gold-50: var(--rcc-surface-accent);
    --rcc-ink-900: var(--rcc-text);
    --rcc-ink-700: var(--rcc-text-muted);
    --rcc-ink-600: var(--rcc-text-muted);
    --rcc-ink-500: var(--rcc-text-muted);
    --rcc-ink-300: #687078;
    --rcc-ink-100: var(--rcc-surface-muted);
    --rcc-radius-control: 6px;
    --rcc-radius-button: 999px;
    --rcc-radius-sm: 6px;
    --rcc-radius-md: 6px;
    --rcc-radius-lg: 6px;
    --rcc-shadow-sm: none;
    --rcc-shadow-md: 0 4px 12px rgb(0 0 0 / 8%);
    --rcc-control-height: 44px;
    --rcc-gutter: 1rem;
    --bs-font-sans-serif: var(--rcc-font-family);
    --bs-font-monospace: var(--rcc-font-family);
    --bs-body-font-family: var(--rcc-font-family);
    --bs-body-color: var(--rcc-text);
    --bs-body-bg: var(--rcc-surface);
    --bs-primary: var(--rcc-brand-primary);
    --bs-primary-rgb: 30, 77, 43;
    --bs-link-color: var(--rcc-brand-primary);
    --bs-link-hover-color: var(--rcc-brand-dark);
}

body, h1, h2, h3, h4, h5, h6, .h1, .h2, .h3, .h4, .h5, .h6,
button, input, select, textarea, table, code, pre, kbd, samp {
    font-family: var(--rcc-font-family);
}
body { font-size: 1rem; line-height: 1.5; }
h1, h2, h3, h4, h5, h6, .h1, .h2, .h3, .h4, .h5, .h6,
.rcc-page-title, .rcc-card__heading, .rcc-empty-state__title,
.identity-dashboard-card h3 { font-weight: 400; color: var(--rcc-text); }
.rcc-page-title { font-size: clamp(1.75rem, 3vw, 2.25rem); line-height: 1.25; letter-spacing: normal; }
.rcc-card-header, .rcc-card__header { background: var(--rcc-surface); font-weight: 400; }
.rcc-page-description { font-size: 1rem; }
small, .small, .badge { font-size: .875rem; }
code { color: var(--rcc-brand-primary); overflow-wrap: anywhere; }
a:hover, a:focus-visible { text-decoration: underline; }
/* Shared navigation interaction styles for RCCIdentity and RCCInvitational. */
.identity-primary-link { border-radius: var(--rcc-radius-control); text-decoration: none; }
.identity-primary-link.is-active {
    background: transparent; border-bottom-color: transparent;
    border-left-color: transparent; text-decoration: none;
}
.identity-primary-link:hover,
.identity-primary-link:focus,
.identity-primary-link:focus-visible,
.identity-primary-link.show,
.identity-primary-link[aria-expanded="true"] {
    background: var(--rcc-brand-dark); color: #fff; text-decoration: none;
}
.identity-navigation-menu .dropdown-item {
    min-height: 44px; padding: 10px 12px; font-weight: 400;
    border-radius: var(--rcc-radius-control); white-space: normal; text-decoration: none;
}
.identity-navigation-menu .dropdown-item:hover,
.identity-navigation-menu .dropdown-item:focus,
.identity-navigation-menu .dropdown-item:focus-visible,
.identity-navigation-menu .dropdown-item.active {
    background: var(--rcc-brand-primary); color: #fff; text-decoration: none;
}
.identity-navigation-menu .dropdown-item:is(:hover, :focus, :focus-visible, .active) :is(strong, span) {
    color: inherit; text-decoration: none;
}
.rcc-page-header, .rcc-page-header__content, .rcc-card, .table-responsive { min-width: 0; }
.rcc-page-title, .identity-brand-text { overflow-wrap: anywhere; }

.identity-site-header, .rcc-site-header { background: var(--rcc-header-footer-background); border-bottom: 0; box-shadow: none; }
.identity-logo-wrap { background: transparent; padding: 0; width: 80px; height: 80px; flex-basis: 80px; }
.identity-logo { width: 100%; height: 100%; object-fit: contain; }
.identity-brand-title, .identity-user-name, .identity-primary-link { font-weight: 400; }
.identity-brand-subtitle, .identity-user-role { color: #fff; }
.identity-primary-link { font-size: 1rem; letter-spacing: .02em; }
.identity-primary-link.is-active { border-bottom-color: transparent; }
.identity-navigation-menu { max-width: calc(100vw - 2rem); box-shadow: var(--rcc-shadow-md); }
.identity-global-search input { min-height: 44px; padding-right: 5.75rem; }
.identity-global-search kbd { display: none; }
.identity-global-search button, .identity-signout-button, .identity-dashboard-card a {
    border-radius: var(--rcc-radius-button); font-weight: 400;
}
.identity-global-search input:focus { border-color: var(--rcc-brand-primary); box-shadow: none; }
.rcc-site-footer { background: var(--rcc-header-footer-background); color: #fff; border-top: 0; }
.rcc-site-footer a { color: #fff; }

.btn {
    border-radius: var(--rcc-radius-button); min-height: 44px;
    font-size: 1rem; font-weight: 400; padding: .55rem 1.25rem;
}
.btn:hover { transform: none; box-shadow: none; text-decoration: none; }
.btn-sm { min-height: 36px; padding: .35rem .85rem; font-size: .875rem; }
.btn-primary {
    --bs-btn-bg: var(--rcc-brand-primary);
    --bs-btn-border-color: var(--rcc-brand-primary);
    --bs-btn-hover-bg: var(--rcc-brand-dark);
    --bs-btn-hover-border-color: var(--rcc-brand-dark);
    --bs-btn-active-bg: var(--rcc-brand-dark);
    --bs-btn-active-border-color: var(--rcc-brand-dark);
    --bs-btn-disabled-bg: var(--rcc-brand-primary);
    --bs-btn-disabled-border-color: var(--rcc-brand-primary);
    --bs-btn-focus-shadow-rgb: 30, 77, 43;
}
.btn-primary:hover, .btn-primary:focus, .btn-primary:active {
    background: var(--rcc-brand-dark); border-color: var(--rcc-brand-dark); box-shadow: none;
}
.btn-outline-primary {
    --bs-btn-color: var(--rcc-brand-primary);
    --bs-btn-border-color: var(--rcc-brand-primary);
    --bs-btn-hover-color: #fff;
    --bs-btn-hover-bg: var(--rcc-brand-primary);
    --bs-btn-hover-border-color: var(--rcc-brand-primary);
    --bs-btn-active-bg: var(--rcc-brand-dark);
    --bs-btn-active-border-color: var(--rcc-brand-dark);
    --bs-btn-disabled-color: var(--rcc-brand-primary);
    --bs-btn-disabled-border-color: var(--rcc-brand-primary);
    --bs-btn-focus-shadow-rgb: 30, 77, 43;
}
.btn-outline-secondary { color: var(--rcc-text); border-color: #687078; }
.btn-outline-secondary:hover, .btn-outline-secondary:active { color: #fff; }
.btn:disabled, .btn.disabled { opacity: .6; }
.rcc-dbdoc-overview__action .btn-primary { background: #fff; border-color: #fff; color: var(--rcc-brand-primary); }
.workflow-step.is-current .workflow-step-number { color: #fff; }

.form-control, .form-select { padding: .6rem .75rem; border-radius: var(--rcc-radius-control); }
.form-control:disabled, .form-control[readonly], .form-select:disabled { background-color: var(--rcc-surface-muted); }
.form-control:focus, .form-select:focus { border-color: var(--rcc-brand-primary); box-shadow: none; }
:is(a, button, input, select, textarea, [tabindex]):focus-visible {
    outline: 2px solid var(--rcc-brand-primary); outline-offset: 3px;
}
.identity-site-header :is(a, button, input):focus-visible, .rcc-site-footer a:focus-visible { outline-color: #fff; }
.identity-navigation-menu :is(a, button):focus-visible { outline-color: var(--rcc-brand-primary); }
.form-check-input[type="checkbox"] { border: 2px solid var(--rcc-text-muted); }
.form-check-input[type="checkbox"]:hover:not(:disabled),
.form-check-input[type="checkbox"]:focus { border-color: var(--rcc-brand-dark); }
.form-check-input:checked, .security-matrix-checkbox:checked { background-color: var(--rcc-brand-primary); border-color: var(--rcc-brand-primary); }
.security-matrix-checkbox:hover { border-color: var(--rcc-brand-dark); }
.form-check-input:focus, .security-matrix-checkbox:focus { box-shadow: 0 0 0 .2rem rgb(75 113 85 / 18%); }

.table { --bs-table-hover-bg: #f5f5f6; --bs-table-striped-bg: #f5f5f6; color: var(--rcc-text); border-color: var(--rcc-border); }
.table thead th, .rcc-table th, .rcc-admin-table thead th {
    background: var(--rcc-surface-muted); color: var(--rcc-text);
    font-size: .875rem; font-weight: 700; text-transform: none; letter-spacing: normal;
}
.rcc-table-primary-link { font-weight: 400; }
.table code { white-space: nowrap; }
.nav-pills .nav-link.active, .page-item.active .page-link { background: var(--rcc-brand-primary); border-color: var(--rcc-brand-primary); }
.page-link { color: var(--rcc-brand-primary); }
@media (max-width: 767.98px) {
    .identity-primary-link.is-active { border-left-color: transparent; }
    .identity-global-search { min-width: 0; width: 100%; flex: 0 1 auto; }
    .identity-user-area { flex-wrap: wrap; }
    .rcc-page { width: calc(100% - 2rem); }
}
@media (prefers-reduced-motion: reduce) {
    *, *::before, *::after { scroll-behavior: auto !important; transition: none !important; }
}

/* One header row; summary search occupies the former breadcrumb strip. */
.identity-header-inner { flex-wrap: wrap; }
.identity-primary-nav { border: 0; flex: 1 1 auto; }
.identity-primary-nav-inner { align-items: center; justify-content: center; min-height: 0; }
.identity-primary-link { min-height: 44px; padding: .65rem .75rem; white-space: nowrap; }
.identity-user-area { gap: .75rem; }
.identity-user-role { max-width: 220px; overflow-wrap: anywhere; }
.identity-search-bar { border-bottom: 1px solid var(--rcc-border); background: var(--rcc-surface); padding: .75rem 0; }
.identity-search-bar .rcc-admin-toolbar { margin: 0; padding: 0; border: 0; box-shadow: none; }
.identity-search-bar .rcc-admin-toolbar__grid { display: flex; flex-wrap: wrap; align-items: end; gap: .75rem; }
.identity-search-bar .rcc-admin-toolbar__search { flex: 1 1 500px; min-width: 0; }
.identity-search-bar .rcc-admin-toolbar__actions { flex: 0 0 auto; }
.identity-search-bar .rcc-admin-toolbar__filter { flex: 0 1 200px; }
@media (max-width: 1199.98px) {
    .identity-header-inner { gap: .75rem; }
    .identity-primary-nav { order: 3; flex-basis: 100%; }
    .identity-primary-nav-inner { justify-content: flex-start; }
    .identity-user-area { margin-left: auto; }
}
@media (max-width: 767.98px) {
    .identity-header-inner { flex-direction: row; align-items: center; }
    .identity-primary-nav-inner { flex-direction: column; align-items: stretch; }
    .identity-primary-nav-inner > .dropdown { width: 100%; }
    .identity-user-area { flex-wrap: wrap; }
    .identity-user-summary { align-items: flex-start; }
    .identity-search-bar .rcc-admin-toolbar__search { flex-basis: 100%; }
}
