:root, [data-bs-theme=light] {
    --bs-blue: #3874ff;
    --bs-indigo: #5a55ff;
    --bs-purple: #7a5cff;
    --bs-pink: #d63384;
    --bs-red: #ef4444;
    --bs-orange: #fd7e14;
    --bs-yellow: #f59e0b;
    --bs-green: #22c55e;
    --bs-teal: #20c997;
    --bs-cyan: #06b6d4;
    --bs-black: #000;
    --bs-white: #fff;
    --bs-gray: #6c7a90;
    --bs-gray-dark: #2b3445;
    --bs-gray-100: #f5f7fa;
    --bs-gray-200: #eef2f6;
    --bs-gray-300: #e3e7ef;
    --bs-gray-400: #cfd6e4;
    --bs-gray-500: #a9b4c4;
    --bs-gray-600: #6c7a90;
    --bs-gray-700: #4b5668;
    --bs-gray-800: #2b3445;
    --bs-gray-900: #111827;
    --bs-primary: #0891B2;
    --bs-secondary: #6c7a90;
    --bs-success: #13a687;
    --bs-info: #06b6d4;
    --bs-warning: #f59e0b;
    --bs-danger: #d03c37;
    --bs-light: #f5f7fa;
    --bs-dark: #111827;
    --bs-primary-rgb: 8, 145, 178;
    --bs-secondary-rgb: 108, 122, 144;
    --bs-success-rgb: 19, 166, 135;
    --bs-info-rgb: 6, 182, 212;
    --bs-warning-rgb: 245, 158, 11;
    --bs-danger-rgb: 208, 60, 55;
    --bs-light-rgb: 245, 247, 250;
    --bs-dark-rgb: 17, 24, 39;
    --bs-primary-text-emphasis: #173a8a;
    --bs-secondary-text-emphasis: #2b3445;
    --bs-success-text-emphasis: #0a3b22;
    --bs-info-text-emphasis: #0b4a57;
    --bs-warning-text-emphasis: #6b4b05;
    --bs-danger-text-emphasis: #6b0f1a;
    --bs-light-text-emphasis: #4b5668;
    --bs-dark-text-emphasis: #4b5668;
    --bs-primary-bg-subtle: #e8efff;
    --bs-secondary-bg-subtle: #f0f3f8;
    --bs-success-bg-subtle: #e6f7ef;
    --bs-info-bg-subtle: #e6f8ff;
    --bs-warning-bg-subtle: #fff6dd;
    --bs-danger-bg-subtle: #ffe8ea;
    --bs-light-bg-subtle: #ffffff;
    --bs-dark-bg-subtle: #d6dbe6;
    --bs-primary-border-subtle: #c7d7ff;
    --bs-secondary-border-subtle: #e8eff5;
    --bs-success-border-subtle: #bfead4;
    --bs-info-border-subtle: #bfeaff;
    --bs-warning-border-subtle: #ffe6a3;
    --bs-danger-border-subtle: #ffbfc5;
    --bs-light-border-subtle: #e8eff5;
    --bs-dark-border-subtle: #a9b4c4;
    --bs-white-rgb: 255, 255, 255;
    --bs-black-rgb: 0, 0, 0;
    --bs-font-sans-serif: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Helvetica, Arial, "Noto Sans", "Liberation Sans", "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji", sans-serif;
    --bs-font-monospace: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
    --bs-gradient: linear-gradient(180deg, rgba(255,255,255,0.15), rgba(255,255,255,0));
    --bs-body-font-family: var(--bs-font-sans-serif);
    --bs-body-font-size: .875em;
    --bs-body-font-size-sm: .8125rem;
    --bs-body-font-size-n: .75rem;
    --bs-body-font-weight: 400;
    --bs-body-font-weight-b: 500;
    --bs-body-line-height: 1.5;
    --bs-body-color: #0D1F35;
    --bs-body-color-rgb: 13, 31, 53;
    --bs-body-bg: #ffffff;
    --bs-body-bg-rgb: 238, 242, 247;
    --bs-emphasis-color: #000d1a;
    --bs-emphasis-color-rgb: 13, 31, 53;
    --bs-secondary-color: #6c7a90;
    --bs-secondary-color-rgb: 108, 122, 144;
    --bs-secondary-bg: #FFFFFF;
    --bs-secondary-bg-rgb: 255, 255, 255;
    --bs-tertiary-bg: #f5f8fb;
    --bs-tertiary-bg-rgb: 232, 239, 245;
    --bs-fourth-bg: #eef2f7;
    --bs-heading-color: inherit;
    --bs-link-color: #3874ff;
    --bs-link-color-rgb: 56, 116, 255;
    --bs-link-decoration: none;
    --bs-link-hover-color: #1f5bff;
    --bs-link-hover-color-rgb: 31, 91, 255;
    --bs-code-color: #d63384;
    --bs-highlight-color: #111827;
    --bs-highlight-bg: #fff6dd;
    --bs-border-width: 1px;
    --bs-border-style: solid;
    --bs-border-color: #e3e7ef;
    --bs-border-color-translucent: rgba(17, 24, 39, 0.12);
    --bs-border-radius: 0.25rem;
    --bs-border-radius-sm: var(--bs-border-radius);
    --bs-border-radius-lg: var(--bs-border-radius);
    --bs-border-radius-xl: var(--bs-border-radius);
    --bs-border-radius-xxl: var(--bs-border-radius);
    --bs-border-radius-2xl: var(--bs-border-radius);
    --bs-border-radius-pill: var(--bs-border-radius);
    --bs-box-shadow: 0 2px 8px rgba(13, 31, 53, 0.08); /* was .05 */
    --bs-box-shadow-sm: 0 1px 4px rgba(13, 31, 53, 0.06); /* was .04 */
    --bs-box-shadow-lg: 0 8px 24px rgba(13, 31, 53, 0.12); /* was .08 */
    --bs-box-shadow-inset: inset 0 1px 2px rgba(0, 0, 0, 0.05);
    --bs-focus-ring-width: 0.2rem;
    --bs-focus-ring-opacity: 0.25;
    --bs-focus-ring-color: rgba(8, 145, 178, 0.25);
    --bs-form-valid-color: #22c55e;
    --bs-form-valid-border-color: #22c55e;
    --bs-form-invalid-color: #ef4444;
    --bs-form-invalid-border-color: #ef4444;
    --bs-table-color-type: initial;
    --bs-table-bg-type: initial;
    --bs-table-color-state: initial;
    --bs-table-bg-state: initial;
    --bs-table-color: var(--bs-emphasis-color);
    --bs-table-bg: transparent;
    --bs-table-border-color: var(--bs-border-color);
    --bs-table-accent-bg: transparent;
    --bs-table-striped-color: var(--bs-emphasis-color);
    --bs-table-striped-bg: var(--bs-secondary-bg);
    --bs-table-active-color: var(--bs-emphasis-color);
    --bs-table-active-bg: rgba(var(--bs-emphasis-color-rgb), 0.08);
    --bs-table-hover-color: var(--bs-emphasis-color);
    --bs-table-hover-bg: rgba(var(--bs-emphasis-color-rgb), 0.05);
    --form-control-bg: #FFFFFF;
    --gap-n: 4px;
    --gap-s: 8px;
    --gap-m: 12px;
    --gap-l: 24px;
}
.bg-primary {
    background-color: var(--bs-primary-bg-subtle)!important;
}
.bg-success {
    background-color: var(--bs-success-bg-subtle) !important;
}
.bg-secondary {
    background-color: var(--bs-secondary-bg-subtle) !important;
}
html,
body {
    min-height: 100%;
    font-family: var(--bs-font-sans-serif);
    background-color: rgb(var(--bs-body-bg-rgb));
}

body {
    min-height: 100vh;
    margin: 0;
    display: flex;
    flex-direction: column;
}

.app-page {
    background-color: rgb(var(--bs-body-bg-rgb));
}

label,
.form-label {
    font-size: var(--bs-body-font-size-n);
    margin-bottom: .2rem;
    font-weight: var(--bs-body-font-weight-b);
    text-transform: none;
}

.font-control-sm, .form-select-sm {
    padding-top: .25rem;
    padding-bottom: .25rem;
    padding-left: .5rem;
    font-size: .875rem;
    border-radius: var(--bs-border-radius-sm);
}


/* ── CHECKBOX BASE ───────────────────────────────────────────── */
.form-check {
    display: flex;
    align-items: center;
    gap: .45rem;
    margin-bottom: 0;
    min-height: auto;
    padding-left: 0;
}

 
.form-check-label {
    margin: 0;
    font-weight: var(--bs-body-font-weight);
    font-size: var(--bs-body-font-size-sm);
    cursor: pointer;
}

.form-check .form-check-input {
    appearance: none;
    -webkit-appearance: none;
    flex-shrink: 0;
    margin: 0;
    cursor: pointer;
    border: var(--bs-border-width) solid var(--bs-border-color);
    border-radius: var(--bs-border-radius);
    background-color: var(--form-control-bg);
    transition: border-color .15s, background-color .15s;
    /* default size — inline/small usage */
    width: 15px;
    height: 15px;
}

    .form-check-input:checked {
        border-color: var(--bs-primary);
        background-color: var(--form-control-bg);
        background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath fill='none' stroke='%230891B2' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round' d='M3 8l3.5 3.5 6.5-6.5'/%3E%3C/svg%3E");
        background-size: 70%;
        background-repeat: no-repeat;
        background-position: center;
    }

    .form-check-input:focus {
        outline: none;
        box-shadow: 0 0 0 var(--bs-focus-ring-width) var(--bs-focus-ring-color);
    }

    .form-check-input:disabled {
        opacity: .5;
        cursor: not-allowed;
    }

/* ── SWITCH (form-switch stays Bootstrap-handled) ────────────── */
.form-check.form-switch .form-check-input {
    width: 2em;
    height: 1em;
    border-radius: 999px;
    appearance: auto;
    -webkit-appearance: auto;
}

/* ── LARGE — input-row size, use form-check--lg ─────────────── */
.form-check--lg .form-check-input {
    width: 32px;
    height: 32px;
}

.form-check--lg .form-check-label {
    font-size: var(--bs-body-font-size-sm);
    font-weight: var(--bs-body-font-weight-b);
}

.form-control,
.form-select,
.form-check .form-check-input {
    background-color: var(--form-control-bg);
    font-size: var(--bs-body-font-size-sm);
    border: var(--bs-border-width) solid var(--bs-border-color);
    border-radius: var(--bs-border-radius);
}

    .form-control:disabled, .form-check-input:disabled {
        background-color: var(--bs-body-bg);
    }


th {
    font-weight: var(--bs-body-font-weight-b);
    font-size: var(--bs-body-font-size-sm);
}

td {
    line-height: 15px;
}

.btn-sm {
    --bs-btn-padding-y: 6px;
    --bs-btn-padding-x: 12px;
    font-size: var(--bs-body-font-size-sm);
}

.badge {
    --bs-badge-font-weight: 400;
    --bs-badge-font-size: var(--bs-body-font-size-sm);
}

table {
    margin-bottom: 8px;
}

.table,
.table > :not(caption) > * > * {
    background-color: var(--bs-secondary-bg);
}

.table {
    --bs-table-accent-bg: transparent;
    --bs-table-active-color: var(--bs-emphasis-color);
    --bs-table-active-bg: rgba(var(--bs-emphasis-color-rgb), 0.08);
    --bs-table-hover-color: var(--bs-emphasis-color);
    --bs-table-hover-bg: rgba(var(--bs-emphasis-color-rgb), 0.05);
    margin-bottom: 8px;
}

.card-body {
    background-color: var(--bs-secondary-bg);
}

.apps-priority-stars {
    margin-left: 0.2rem;
}

.apps-header-row {
    min-width: 0;
}

.match-pill {
    display: inline-flex;
    flex-direction: column;
    border-radius: var(--bs-border-radius);
    font-size: 0.8rem;
    font-weight: 700;
    padding: 0.22rem 0.45rem;
}

.match-pill-success {
    --match-color: var(--bs-success);
    background-color: var(--bs-success-bg-subtle);
    color: var(--bs-success-text-emphasis);
}

.match-pill-warning {
    --match-color: var(--bs-warning);
    background-color: var(--bs-warning-bg-subtle);
    color: var(--bs-warning-text-emphasis);
}

.match-pill-danger {
    --match-color: var(--bs-danger);
    background-color: var(--bs-danger-bg-subtle);
    color: var(--bs-danger-text-emphasis);
}

.req-chip {
    display: inline-flex;
    align-items: center;
    gap: var(--gap-s);
    font-size: 0.72rem;
    padding: 0.18rem 0.45rem;
    border-radius: var(--bs-border-radius);
    background-color: var(--bs-tertiary-bg);
    color: var(--bs-secondary-color);
}

    .req-chip:focus-visible {
        outline: 2px solid var(--bs-focus-ring-color);
        outline-offset: 2px;
    }
.req-chip--fail {
    background-color: var(--bs-danger-bg-subtle);
    color: var(--bs-danger-text-emphasis);
}

.req-chip--partial {
    background-color: var(--bs-warning-bg-subtle);
    color: var(--bs-warning-text-emphasis);
}

.tooltip-icon {
    display: inline-flex;
    align-items: center;
    gap: var(--gap-s);
    font-size: 0.72rem;
    padding: 0.18rem 0.45rem;
    color: var(--bs-secondary-color);
}

.message-thread {
    background-color: var(--bs-secondary-bg);
    padding: 0.5rem;
    max-height: none;
}

.message-day {
    text-align: center;
    font-size: 0.75rem;
    color: var(--bs-secondary-color);
    margin: 0.75rem 0;
}

.message-row {
    display: flex;
    margin-bottom: 0.75rem;
}

    .message-row.message-out {
        justify-content: flex-end;
    }

.message-bubble {
    max-width: 75%;
    padding: 0.1rem 0.4rem 0.1rem 10px;
    border-radius: var(--bs-border-radius);
    background-color: var(--bs-tertiary-bg);
}

    .message-bubble.internal-note {
        background-color: var(--bs-warning-bg-subtle);
        border: 1px dashed var(--bs-warning-border-subtle);
    }

.message-body {
    margin-right: 10px;
}

.message-meta {
    display: flex;
    justify-content: flex-end;
    font-size: 0.7rem;
    margin-top: -5px;
}

.submission-item {
    padding: 11px 14px;
    border-bottom: 1px solid var(--bs-light-border-subtle);
}

    .submission-item.active {
        background-color: var(--bs-primary-bg-subtle);
        border-color: var(--bs-primary-border-subtle);
        color: var(--bs-body-color);
    }


.expiry-badge {
    display: inline-block;
    font-size: 10.5px;
    font-weight: 600;
    padding: 1px 6px;
    border-radius: 3px;
}

.expiry-badge--ok {
    color: var(--bs-success-text-emphasis);
    background: var(--bs-success-bg-subtle);
}

.expiry-badge--soon {
    color: var(--bs-warning-text-emphasis);
    background: var(--bs-warning-bg-subtle);
}

.expiry-badge--expired {
    color: var(--bs-danger-text-emphasis);
    background: var(--bs-danger-bg-subtle);
}
/* ── MatchRail – full underline style ───────────────────────────── */
.match-rail {
    display: flex;
    width: 100%;
    background: transparent;
}

.match-rail__seg {
    flex: 1;
    display: flex;
    flex-direction: column;
    align-items: center;
    padding: 5px 1px 4px;
    font-size: 11.5px;
    font-weight: var(--bs-body-font-weight-b);
    white-space: nowrap;
    cursor: default;
    user-select: none;
    min-width: 0;
}

.match-rail__seg--score {
    flex: 0 0 52px;
    padding: 0px;
}

.match-rail__label {
    overflow: hidden;
    text-overflow: ellipsis;
    max-width: 100%;
    text-align: center;
    line-height: 1;
    margin-bottom: 3px;
}

.match-rail__bar {
    height: 2px;
    width: 100%;
}

.match-rail__seg--match .match-rail__label {
    color: var(--bs-secondary-color);
}

.match-rail__seg--match .match-rail__bar {
    background: var(--bs-success);
}

.match-rail__seg--partial .match-rail__label {
    color: var(--bs-warning-text-emphasis);
}

.match-rail__seg--partial .match-rail__bar {
    background: var(--bs-warning);
}

.match-rail__seg--fail .match-rail__label {
    color: var(--bs-danger-text-emphasis);
}

.match-rail__seg--fail .match-rail__bar {
    background: var(--bs-danger);
}

.match-rail__seg--score .match-rail__label {
    font-size: 19px;
    font-weight: 700;
}

/* ── MatchRail – compact chip strip ─────────────────────────────── */
.match-rail-compact {
    display: flex;
    flex-wrap: nowrap;
    gap: var(--gap-n);
    overflow: hidden;
}

.match-rail-compact__chip {
    display: inline-flex;
    align-items: center;
    font-size: 10.5px;
    font-weight: var(--bs-body-font-weight-b);
    padding: 2px 6px;
    border-radius: var(--bs-border-radius);
    white-space: nowrap;
}

.match-rail-compact__chip--fail {
    background: var(--bs-danger-bg-subtle);
    color: var(--bs-danger-text-emphasis);
}

.match-rail-compact__chip--partial {
    background: var(--bs-warning-bg-subtle);
    color: var(--bs-warning-text-emphasis);
}

.match-rail-compact__all-pass {
    font-size: 11px;
    font-weight: var(--bs-body-font-weight-b);
    color: var(--bs-success-text-emphasis);
}

.candidate-meta {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
    gap: var(--gap-n) 1rem;
    font-size: var(--bs-body-font-size-sm);
    padding: 10px 12px;
    background: var(--bs-tertiary-bg);
}

/* ── CrewCandidateCard ───────────────────────────────────────────── */
.ccard__layout {
    display: flex;
    gap: 10px;
    align-items: flex-start;
}

.ccard__left {
    flex: 1;
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 0px;
}

.ccard__right {
    flex-shrink: 0;
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    justify-content: space-between;
    gap: 6px;
    min-width: 64px;
}

.ccard__name {
    font-size: var(--bs-body-font-size-sm);
    font-weight: var(--bs-body-font-weight-b);
    line-height: 1.3;
    color: var(--bs-body-color);
}

.ccard__meta {
    font-size: var(--bs-body-font-size-n);
    color: var(--bs-secondary-color);
    display: flex;
    align-items: center;
    gap: 4px;
}

.ccard__sep {
    color: var(--bs-gray-400);
}

.ccard__agency {
    font-size: var(--bs-body-font-size-n);
    color: var(--bs-secondary-color);
    opacity: .8;
}

.ccard__gaps {
    font-size: var(--bs-body-font-size-n);
    line-height: 1.5;
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    margin-top: 1px;
}

.ccard__gaps-fail {
    color: var(--bs-danger-text-emphasis);
    font-weight: var(--bs-body-font-weight-b);
}

.ccard__gaps-partial {
    color: var(--bs-warning-text-emphasis);
}

.ccard__all-pass {
    font-size: var(--bs-body-font-size-n);
    color: var(--bs-success-text-emphasis);
    font-weight: var(--bs-body-font-weight-b);
    margin-top: 1px;
}

.ccard__status {
    line-height: 1;
}

.ccard__score {
    font-size: 18px;
    font-weight: 700;
    line-height: 1;
    text-align: right;
    font-family: var(--bs-font-monospace);
}

.ccard__score--success {
    color: var(--bs-success-text-emphasis);
}

.ccard__score--warning {
    color: var(--bs-warning-text-emphasis);
}

.ccard__score--danger {
    color: var(--bs-danger-text-emphasis);
}

.ccard__bottom {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-top: 7px;
}

.ccard__stars {
    display: inline-flex;
    gap: 0;
}

.ccard__star-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 18px;
    height: 18px;
    padding: 0;
    border: 0;
    background: transparent;
    cursor: pointer;
    line-height: 1;
}

    .ccard__star-btn .bi {
        font-size: 13px;
        transition: color .1s ease;
    }

.ccard__star--on {
    color: var(--bs-warning);
}

.ccard__star--off {
    color: var(--bs-gray-400);
}

.ccard__star-btn:hover .bi {
    color: var(--bs-warning);
}

.ccard__activity {
    display: flex;
    align-items: center;
    gap: 7px;
    font-size: var(--bs-body-font-size-n);
    color: var(--bs-secondary-color);
}

.ccard__note-dot {
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: var(--bs-warning);
    flex-shrink: 0;
    display: inline-block;
}

.ccard__msgs {
    display: inline-flex;
    align-items: center;
    gap: 3px;
}

    .ccard__msgs .bi {
        font-size: 11px;
    }

.ccard__time {
    font-size: var(--bs-body-font-size-n);
    color: var(--bs-secondary-color);
    white-space: nowrap;
}

.cv-header {
    padding-top: 4px;
    padding-bottom: 10px;
}

.cv-header__main {
    display: flex;
    align-items: flex-start;
    gap: var(--gap-m);
}

.cv-header__identity {
    flex: 1 1 auto;
    min-width: 0;
}

.cv-header__name {
    font-size: 0.95rem;
    line-height: 1.25;
    color: var(--bs-heading-color);
}

.cv-header__company {
    margin-top: 2px;
    font-size: 0.75rem;
    color: var(--bs-secondary-color);
}

.cv-header__rate {
    flex-shrink: 0;
    padding-left: var(--gap-s);
}

.cv-header__rate .fw-bold {
    color: var(--bs-heading-color);
    font-family: var(--bs-font-monospace);
    font-size: 0.85rem;
}

.cv-header__rate-unit {
    color: var(--bs-secondary-color);
    font-family: var(--bs-font-sans-serif);
    font-weight: var(--bs-body-font-weight);
}

.cv-item {
    display: flex;
    align-items: baseline;
    gap: var(--gap-s);
    min-width: 0;
}

.cv-item--full {
    grid-column: 1 / -1;
}

.cv-label {
    width: 70px;
    min-width: 70px;
    font-size: 12px;
}
.cv-value {
    font-weight: 500;
    font-size: 12px;
}

.col-100,
.col-date {
    width: 100px;
}

.col-date {
    text-align: right;
}

.app-page {
    width: 100%;
}

.app-page-pad-x {
    padding-inline: 24px;
}

.body-narrow {
    max-width: 1080px;
    margin-inline: auto;
    padding-top: 12px;
    padding-bottom: 88px;
}

.company-settings-sidebar-col,
.company-settings-content {
    min-width: 0;
}

.sidebar-nav {
    gap: var(--gap-m);
    padding: 0.25rem;
    background: var(--bs-secondary-bg);
    border: 1px solid var(--bs-light-border-subtle);
    border-radius: var(--bs-border-radius);
}

.sidebar-nav__item {
    display: flex;
    align-items: center;
    gap: var(--gap-m);
    padding: 0.78rem 0.9rem;
    border: 1px solid transparent !important;
    border-radius: var(--bs-border-radius) !important;
    background: transparent;
    color: var(--bs-secondary-color);
    font-size: 0.875rem;
    font-weight: var(--bs-body-font-weight-b);
    transition: background-color 0.15s ease, border-color 0.15s ease, color 0.15s ease, box-shadow 0.15s ease;
}

    .sidebar-nav__item:hover,
    .sidebar-nav__item:focus {
        background: var(--bs-tertiary-bg);
        color: var(--bs-body-color);
    }

    .sidebar-nav__item.active {
        background: rgba(var(--bs-primary-rgb), 0.08);
        border-color: rgba(var(--bs-primary-rgb), 0.16) !important;
        color: var(--bs-primary);
    }

.company-settings-form {
    min-width: 0;
}

.card-header {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 8px 14px;
    border-bottom: 1px solid var(--bs-light-border-subtle);
    background: var(--bs-tertiary-bg);
    font-size: 13px;
    font-weight: 500;
    color: var(--bs-heading-color);
}
.card-header__meta {
    margin-left: auto;
    font-size: 11px;
    font-weight: 600;
    color: var(--bs-secondary-color);
    border: 1px solid var(--bs-light-border-subtle);
    background: var(--bs-secondary-bg);
    border-radius: 999px;
    padding: 2px 8px;
}

.card-header__action {
    margin-left: auto;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 26px;
    height: 26px;
    padding: 0;
    line-height: 1;
}

    .card-header__action .bi {
        font-size: 14px;
    }

    .company-settings-page .card-header .fw-semibold {
        font-size: 0.9rem;
        letter-spacing: 0.01em;
    }

.manager__chips {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: var(--gap-m);
    margin-top: var(--gap-n);
}

.manager__chip {
    display: inline-flex;
    align-items: center;
    gap: 0.25rem;
    padding: 0.16rem 0.55rem;
    border: 1px solid var(--bs-border-color);
    border-radius: var(--bs-border-radius);
    background: var(--bs-body-bg);
    color: var(--bs-body-color);
    font-size: var(--bs-body-font-size-sm);
    line-height: 1.5;
}

.manager__chip-remove {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 1rem;
    height: 1rem;
    padding: 0;
    border: 0;
    border-radius: 999px;
    background: transparent;
    color: var(--bs-secondary-color);
    line-height: 1;
}

    .manager__chip-remove:hover {
        color: var(--bs-danger-text-emphasis);
    }

    .manager__chip-remove:focus-visible {
        outline: 2px solid var(--bs-focus-ring-color);
        outline-offset: 1px;
    }

.manager__add {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0.16rem 0.65rem;
    border: 1px dashed var(--bs-primary-border-subtle);
    border-radius: 999px;
    background: var(--bs-body-bg);
    color: var(--bs-primary-text-emphasis);
    font-size: 0.78rem;
    line-height: 1.2;
}

    .manager__add:hover:not(:disabled) {
        border-color: var(--bs-primary);
        background: var(--bs-primary-bg-subtle);
        color: var(--bs-primary-text-emphasis);
    }

    .manager__add:disabled {
        opacity: 0.65;
        cursor: not-allowed;
    }

.manager__editor-row {
    margin-top: 0.5rem;
}


.card-collapsible {
    overflow: hidden;
}

.card-collapsible__head {
    width: 100%;
    border: 0;
    border-bottom: 1px solid var(--bs-light-border-subtle);
    background: var(--bs-tertiary-bg);
    color: var(--bs-heading-color);
    display: flex;
    align-items: center;
    gap: 10px;
    justify-content: space-between;
    padding: 10px 14px;
    font-size: 13px;
    font-weight: 700;
    text-align: left;
}

    .card-collapsible__head:hover {
        background: var(--bs-secondary-bg-subtle);
    }

    .card-collapsible__head i {
        color: var(--bs-primary);
    }



.card-collapsible__meta {
    margin-left: auto;
    margin-right: 6px;
    font-size: 11px;
    font-weight: 600;
    color: var(--bs-secondary-color);
    white-space: nowrap;
}

.card-collapsible__body {
    padding-top: 12px;
}

    .card-collapsible__body ::deep .card {
        box-shadow: none;
    }


.page-action-footer {
    position: fixed;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 20;
    border-top: 1px solid var(--bs-light-border-subtle);
    background: rgba(255, 255, 255, 0.97);
    backdrop-filter: blur(8px);
}

.page-action-footer__inner {
    min-height: 56px;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px;
    padding-top: 8px;
    padding-bottom: 8px;
}

.page-action-footer__left,
.page-action-footer__middle,
.page-action-footer__right {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    flex-wrap: wrap;
}

.page-action-footer__middle {
    margin-left: auto;
    margin-right: auto;
}

.page-action-footer__right {
    margin-left: auto;
}

.page-action-footer__select {
    min-width: 110px;
}


.company-settings-page .row.g-3 {
    --bs-gutter-x: 1rem;
    --bs-gutter-y: 1rem;
}

.app-workspace {
    display: grid;
    grid-template-columns: minmax(300px, 360px) minmax(0, 1fr) minmax(300px, 360px);
    height: calc(100vh - 110px);
    min-height: calc(100vh - 110px);
}

.app-workspace__left,
.app-workspace__center,
.app-workspace__right {
    min-width: 0;
    min-height: 0;
    display: flex;
    flex-direction: column;
    background: transparent;
    border-left: 0;
    border-right: 0;
    overflow-y: auto;
}

.app-workspace__left {
    border-right: 1px solid var(--bs-light-border-subtle);
}

.app-workspace__center {
    background: var(--bs-fourth-bg);
}

.app-workspace__right {
    background: var(--bs-secondary-bg);
    border-left: 1px solid var(--bs-light-border-subtle);
}

.app-panel {
    min-height: 0;
    height: 100%;
    display: flex;
    flex-direction: column;
    box-shadow: none;
    background: var(--bs-secondary-bg);
    border-radius: var(--bs-border-radius);
}

.app-workspace__center .app-panel--main {
    background: var(--bs-secondary-bg);
    min-height: 0;
}

.app-center-empty {
    align-items: center;
    justify-content: center;
}

.app-workspace__left .app-panel--soft,
.app-workspace__right .app-panel--soft {
    background: var(--bs-secondary-bg);
    border: 0;
    border-radius: 0;
}

.app-rail {
    display: flex;
    flex-direction: column;
    height: 100%;
    min-height: 0;
    min-width: 0;
}

.app-rail--left > .border-bottom {
    padding: 10px 14px !important;
    background: var(--bs-tertiary-bg);
    border-bottom: 1px solid var(--bs-light-border-subtle) !important;
}

.apps-left-filters {
    padding: 10px 12px !important;
    background: var(--bs-tertiary-bg);
    border-bottom: 1px solid var(--bs-light-border-subtle) !important;
}

.app-rail-content {
    flex: 1;
    overflow-y: auto;
    padding: 12px 14px;
}

.app-list-scroll {
    flex: 1;
    overflow-y: auto;
    min-height: 0;
}

.cv-section {
    padding: 8px 4px;
}

.cv-section-label {
    background: var(--bs-tertiary-bg);
    border-bottom: 1px solid var(--bs-light-border-subtle);
    padding: 7px 14px;
}

.cv-section table,
.app-workspace__right table {
    background: var(--bs-secondary-bg);
}

    .cv-section table tr:nth-child(even),
    .app-workspace__right table tr:nth-child(even) {
        background: var(--bs-tertiary-bg);
    }

    .cv-section table th,
    .app-workspace__right table th {
        background: var(--bs-tertiary-bg);
        padding: 7px 14px;
        border-bottom: 1px solid var(--bs-light-border-subtle);
    }

    .cv-section table td,
    .app-workspace__right table td {

        border-bottom: 1px solid var(--bs-light-border-subtle);
    }

.submission-panel {
    display: flex;
    flex-direction: column;
    height: 100%;
    min-height: 0;
    background: var(--bs-secondary-bg);
    border: 0;
    border-radius: 0;
}

    .submission-panel > .app-flex-fill {
        flex: 1;
        min-height: 0;
        overflow: hidden;
        padding: 0;
    }

.app-submission-tabs {
    display: flex;
    width: 100%;
    margin: 0;
    padding: 0;
    list-style: none;
    border-bottom: 1px solid var(--bs-light-border-subtle);
    background: var(--bs-tertiary-bg);
}

    .app-submission-tabs .nav-item {
        flex: 1 1 0;
        margin: 0;
        padding: 0;
        min-width: 0;
        display: flex;
    }

    .app-submission-tabs .nav-link {
        width: 100%;
        margin: 0;
        padding: 11px 6px;
        border: 0;
        border-bottom: 2px solid transparent;
        border-radius: 0;
        background: var(--bs-tertiary-bg);
        color: var(--bs-secondary-color);
        font-size: 13px;
        font-weight: var(--bs-body-font-weight-b);
        line-height: 1;
        display: inline-flex;
        align-items: center;
        justify-content: center;
        white-space: nowrap;
    }

        .app-submission-tabs .nav-link.active {
            background: var(--bs-secondary-bg);
            color: var(--bs-primary);
            border-bottom-color: var(--bs-primary);
        }

.submission-panel .message-thread {
    flex: 1;
    min-height: 0;
    overflow-y: auto;
    background: var(--bs-secondary-bg);
    padding: 12px;
}

    .submission-panel .message-thread + .mt-2 {
        margin-top: 0 !important;
        padding: 10px 12px;
        border-top: 1px solid var(--bs-light-border-subtle);
    }

.mob-tab-bar {
    display: none;
    background: var(--bs-secondary-bg);
    border-bottom: 1px solid var(--bs-light-border-subtle);
    flex-shrink: 0;
}

.mob-tab {
    flex: 1;
    padding: 11px 6px;
    font-size: 13px;
    font-weight: 500;
    font-family: inherit;
    border: none;
    border-bottom: 2px solid transparent;
    background: var(--bs-tertiary-bg);
    color: var(--bs-secondary-color);
    cursor: pointer;
    transition: color 0.12s, border-color 0.12s;
}

    .mob-tab.active {
        font-weight: 700;
        color: var(--bs-body-color);
        background: var(--bs-secondary-bg);
        border-bottom: 2px solid var(--bs-primary);
    }

.submission-priority-star {
    gap: 1px;
}

.submission-priority-star__btn,
.submission-priority-star__display {
    width: 15px;
    height: 15px;
}

    .submission-priority-star__btn.btn-link {
        --bs-btn-color: inherit;
        --bs-btn-hover-color: inherit;
        --bs-btn-active-color: inherit;
    }

.submission-priority-star__icon {
    font-size: 13px;
    line-height: 1;
    transition: color 0.1s ease;
}

.submission-priority-star__icon--filled {
    color: var(--bs-warning);
}

.submission-priority-star__icon--empty {
    color: var(--bs-gray-400);
}


.text-xs {
    font-size: 11px;
}

.text-sm {
    font-size: 12px;
}

.page-body {
    padding-top: calc(var(--gap-m) + 2px);
}

.portal-pager {
    background: var(--bs-secondary-bg);
}

.status-badge {
    display: inline-flex;
    align-items: center;
    gap: var(--gap-n);
    border: 1px solid var(--status-badge-border, var(--bs-light-border-subtle));
    border-radius: var(--bs-border-radius);
    background: var(--status-badge-bg, var(--bs-body-bg));
    color: var(--status-badge-color, var(--bs-body-color));
    padding: 4px 8px;
    line-height: 1;
    font-size: 12px;
    font-weight: 500;
    white-space: nowrap;
}

.status-badge__label {
    line-height: 1;
}

.status-badge__icon {
    font-size: 12px;
}

.status-badge__count {
    font-family: var(--bs-font-monospace);
    font-weight: 700;
}

.status-badge--neutral {
    --status-badge-bg: var(--bs-secondary-bg-subtle);
    --status-badge-border: var(--bs-secondary-border-subtle);
    --status-badge-color: var(--bs-secondary-text-emphasis);
}

.status-badge--primary {
    --status-badge-bg: var(--bs-primary-bg-subtle);
    --status-badge-border: var(--bs-primary-border-subtle);
    --status-badge-color: var(--bs-primary-text-emphasis);
}

.status-badge--info {
    --status-badge-bg: var(--bs-info-bg-subtle);
    --status-badge-border: var(--bs-info-border-subtle);
    --status-badge-color: var(--bs-info-text-emphasis);
}

.status-badge--success {
    --status-badge-bg: var(--bs-success-bg-subtle);
    --status-badge-border: var(--bs-success-border-subtle);
    --status-badge-color: var(--bs-success-text-emphasis);
}

.status-badge--warning {
    --status-badge-bg: var(--bs-warning-bg-subtle);
    --status-badge-border: var(--bs-warning-border-subtle);
    --status-badge-color: var(--bs-warning-text-emphasis);
}

.status-badge--danger {
    --status-badge-bg: var(--bs-danger-bg-subtle);
    --status-badge-border: var(--bs-danger-border-subtle);
    --status-badge-color: var(--bs-danger-text-emphasis);
}

.status-badge--muted {
    --status-badge-bg: var(--bs-secondary-bg);
    --status-badge-border: var(--bs-light-border-subtle);
    --status-badge-color: var(--bs-secondary-color);
}


.page-toolbar {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: var(--gap-m);
    min-height: 60px;
    padding-inline: 24px;
    border-bottom: 1px solid var(--bs-light-border-subtle);
    background: var(--bs-secondary-bg);
}

.page-toolbar__title {
    font-weight: 700;
    font-size: 0.9rem;
    line-height: 1;
}

.page-toolbar__divider {
    width: 1px;
    height: 24px;
    background: var(--bs-light-border-subtle);
}

.page-toolbar__pills {
    display: inline-flex;
    align-items: center;
    flex-wrap: wrap;
    gap: var(--gap-n);
}

.page-toolbar__left {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    min-width: 0;
    flex: 1 1 auto;
}

.page-toolbar__left-row {
    display: flex;
    align-items: center;
    flex-wrap: nowrap;
    gap: var(--gap-m);
    min-width: 0;
}
.page-toolbar_facts {
    display: flex;
    align-items: center;
    gap: var(--gap-l);
    flex: 1 1 auto;
    min-width: 0;
    flex-wrap: nowrap;
}

.page-toolbar__right {
    display: inline-flex;
    align-items: center;
    gap: var(--gap-s);
    min-width: 0;
    margin-left: auto;
}
.page-toolbar__subline {
    margin-top: 2px;
    font-size: 12px;
    color: var(--bs-secondary-color);
}
.page-toolbar__meta {
    color: var(--bs-secondary-color);
    white-space: nowrap;
    font-size: 13px;
}
.page-toolbar-details-label {
    font-weight: var(--bs-body-font-weight-b);
    margin-bottom: 0.1rem;
}

.page-toolbar__budget {
    font-size: 14px;
    font-weight: 700;
    color: var(--bs-heading-color);
    padding-right: 4px;
    white-space: nowrap;
}
.page-toolbar-toggle {
    display: inline-flex;
    align-items: center;
    text-decoration: none;
    font-weight: 600;
    color: var(--bs-secondary-color);
    padding-inline: 0.35rem;
}

.page-toolbar-details {
    max-height: 0;
    opacity: 0;
    overflow: hidden;
    transition: all 0.18s ease;
    background-color: var(--bs-tertiary-bg);
    border-bottom: 1px solid var(--bs-secondary-border-subtle);
}

    .page-toolbar-details.is-expanded {
        max-height: 2000px;
        opacity: 1;
    }
.toolbar-select {
    min-width: 140px;
}

.btn-toolbar-clear {
    display: inline-flex;
    align-items: center;
    gap: var(--gap-n);
    border: 1px solid var(--bs-light-border-subtle);
    border-radius: var(--bs-border-radius-sm);
    background: var(--bs-body-bg);
    color: var(--bs-secondary-color);
    padding: 4px 8px;
    font-size: 12px;
}

.btn-toolbar-clear:hover {
    background: var(--bs-tertiary-bg);
    color: var(--bs-body-color);
}

.data-table-card {
    border: 1px solid var(--bs-light-border-subtle);
    border-radius: var(--bs-border-radius);
    overflow: hidden;
    background: var(--bs-secondary-bg);
}

.data-table-scroll {
    overflow-x: auto;
}

.data-table {
    width: 100%;
    border-collapse: collapse;
    margin: 0;
}

.data-table thead th {
    position: sticky;
    top: 0;
    z-index: 1;
    background: var(--bs-tertiary-bg);
    color: var(--bs-secondary-color);
    font-size: 12px;
    font-weight: 700;
    white-space: nowrap;
    border-bottom: 1px solid var(--bs-light-border-subtle);
    padding: 8px 10px;
}

.data-table tbody td {
    border-bottom: 1px solid var(--bs-light-border-subtle);
    padding: 10px;
    padding-top: 11px;
    vertical-align: top;
}

/* Schedule / Planning page */
.schedule-gantt-wrap {
    flex: 1;
    overflow: auto;
    min-height: 0;
    background: var(--bs-secondary-bg);
}

.schedule-detail-overlay {
    position: fixed;
    inset: 0;
    z-index: 40;
    background: var(--bs-dark-bg-subtle);
    backdrop-filter: blur(2px);
    display: flex;
    align-items: stretch;
    justify-content: flex-end;
}

.schedule-detail-panel {
    width: 320px;
    max-width: 100vw;
    height: 100vh;
    background: var(--bs-secondary-bg);
    border-left: 1px solid var(--bs-light-border-subtle);
    box-shadow: var(--bs-box-shadow-lg);
    display: flex;
    flex-direction: column;
    overflow-y: auto;
    animation: slideInRight 0.22s cubic-bezier(.4, 0, .2, 1);
}

@keyframes slideInRight {
    from {
        transform: translateX(100%);
    }

    to {
        transform: translateX(0);
    }
}

.mob-card {
    border: 1px solid var(--bs-light-border-subtle);
    border-radius: var(--bs-border-radius);
    background: var(--bs-secondary-bg);
    padding: 0.75rem;
    margin: 0.5rem 0.75rem;
    cursor: pointer;
}

.mob-card:hover {
    background: var(--bs-primary-bg-subtle);
}

.mob-cv-head {
    display: flex;
    align-items: flex-start;
    gap: 9px;
    margin-bottom: 7px;
}

.mob-cv-name {
    font-size: 0.82rem;
    font-weight: 600;
    color: var(--bs-body-color);
    line-height: 1.2;
}

.mob-cv-sub {
    font-size: 0.7rem;
    color: var(--bs-secondary-color);
    margin-top: 2px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.mob-cv-right {
    flex-shrink: 0;
    text-align: right;
}

.mob-cv-status {
    margin-bottom: 3px;
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 4px;
}

.mob-cv-dates {
    font-size: 0.65rem;
    font-family: var(--bs-font-monospace);
    color: var(--bs-secondary-color);
}

.mob-bar-track {
    position: relative;
    height: 6px;
    background: var(--bs-gray-200);
    border-radius: 3px;
    overflow: hidden;
}

.mob-bar {
    position: absolute;
    top: 0;
    height: 100%;
    border-radius: 2px;
}

.mob-bar--onboard {
    background: var(--bs-gray-700);
}

.mob-bar--ending {
    background: var(--bs-warning);
}

.mob-bar--joining {
    background: var(--bs-primary);
    opacity: 0.35;
}

.mob-bar--leave {
    background: var(--bs-gray-400);
}

.mob-today {
    position: absolute;
    top: 0;
    bottom: 0;
    width: 2px;
    background: var(--bs-danger);
    z-index: 2;
}

.has-cert-warn {
    border-left: 3px solid var(--bs-danger) !important;
}

.vis-phase-tile {
    height: 100%;
    padding: 10px 12px;
    border-radius: var(--bs-border-radius);
  border: 1px solid var(--bs-light-border-subtle);
    background: var(--bs-secondary-bg);
    border-left-width: 3px;
}

.vis-phase-tile--priority {
    border-left-color: var(--bs-purple);
}

.vis-phase-tile--connected {
    border-left-color: var(--bs-success);
}

.vis-phase-tile--public {
    border-left-color: var(--bs-primary);
}

.vis-phase-tile--disabled {
    opacity: .5;
    pointer-events: none;
}

.vis-phase-tile__head {
    display: flex;
    align-items: center;
    gap: 6px;
    margin-bottom: 2px;
}

.vis-phase-tile__label {
    font-size: 10px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .05em;
    color: var(--bs-secondary-color);
}

.vis-phase-tile__who {
    font-size: 11px;
    color: var(--bs-secondary-color);
    margin-bottom: 10px;
}

.vis-phase-tile__input {
    width: 70px;
    text-align: right;
}

.vis-phase-tile__footer {
    margin-top: 8px;
    padding-top: 8px;
    border-top: 1px solid var(--bs-light-border-subtle);
}

.vis-phase-dot {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    flex-shrink: 0;
    display: inline-block;
}

.vis-phase-dot--priority {
    background: var(--bs-purple);
}

.vis-phase-dot--connected {
    background: var(--bs-success);
}

.vis-phase-dot--public {
    background: var(--bs-primary);
}

@media (max-width: 768px) {
    .schedule-gantt-wrap {
        display: none;
    }

    .schedule-detail-panel {
        width: 100vw;
        border-left: none;
    }
}

.data-table tbody tr {
    cursor: pointer;
}

.data-table tbody tr:hover {
    background: rgba(var(--bs-primary-rgb), 0.04);
}

.data-table th.sortable {
    cursor: pointer;
    user-select: none;
}

.data-table th.sortable::after {
    content: "||";
    margin-left: 4px;
    color: var(--bs-secondary-color);
    font-size: 11px;
}

.data-table th.sortable.sortable--asc::after {
    content: "^";
}

.data-table th.sortable.sortable--desc::after {
    content: "v";
}

.data-table tbody tr.row--has-activity {
    border-left: 3px solid var(--bs-primary);
}

.data-table tbody tr.row--has-activity td:first-child {
    padding-left: 11px;
}

.vis-cell {
    display: inline-flex;
    align-items: center;
    gap: var(--gap-n);
    font-size: 12px;
    white-space: nowrap;
}

.vis-countdown {
    font-size: 11px;
    font-weight: 700;
    font-family: var(--bs-font-monospace);
    color: var(--bs-secondary-color);
    background: var(--bs-tertiary-bg);
    border: 1px solid var(--bs-light-border-subtle);
    border-radius: 4px;
    padding: 1px 5px;
}

.vis-countdown--urgent {
    color: var(--bs-warning-text-emphasis);
    background: var(--bs-warning-bg-subtle);
    border-color: var(--bs-warning-border-subtle);
}

.vis-countdown--overdue {
    color: var(--bs-danger-text-emphasis);
    background: var(--bs-danger-bg-subtle);
    border-color: var(--bs-danger-border-subtle);
}

.submissions-list {
    max-height: calc(100vh - 320px);
    overflow-y: auto;
}

@media (max-width: 900px) {
    .page-toolbar__left-row {
        width: 100%;
        min-width: 0;
    }

    .page-toolbar_facts {
        overflow-x: auto;
        overflow-y: hidden;
        -webkit-overflow-scrolling: touch;
        padding-bottom: 2px;
    }

    .page-toolbar_facts > * {
        flex: 0 0 auto;
    }

    .page-action-footer__middle {
        margin: 0;
        order: 3;
        width: 100%;
    }

    .page-action-footer__right {
        margin-left: 0;
    }

    .app-page-pad-x {
        padding-inline: 12px;
    }

    .sidebar-nav {
        gap: var(--gap-s);
    }

    .sidebar-nav__item {
        padding: 0.72rem 0.8rem;
    }

    .mob-tab-bar {
        display: flex;
    }

    .desktop-layout {
        --bs-gutter-x: 0;
        --bs-gutter-y: 0;
    }

    .app-workspace.desktop-layout {
        grid-template-columns: minmax(0, 1fr) !important;
    }

        .app-workspace.desktop-layout > .mob-panel {
            grid-column: 1 / -1;
        }

    .mob-panel {
        display: none !important;
        flex-direction: column;
        flex: 1;
        overflow: hidden;
        width: 100% !important;
        max-width: 100% !important;
        padding-left: 0 !important;
        padding-right: 0 !important;
    }

        .mob-panel.active {
            display: flex !important;
        }

    .submissions-list {
        max-height: none;
    }

    .page-toolbar {
        gap: var(--gap-s);
        padding-inline: var(--gap-s);
        font-size: 0.8rem;
    }

    .page-toolbar__divider {
        display: none;
    }

    .page-toolbar__right {
        margin-left: 0;
    }

    .page-toolbar__meta {
        white-space: normal;
    }
}

