.bfe-app,
.bfe-admin {
    --bfe-navy: #052a4f;
    --bfe-blue: #0067b1;
    --bfe-blue-dark: #004d86;
    --bfe-cyan: #0b8bd3;
    --bfe-yellow: #f2b544;
    --bfe-green: #23865b;
    --bfe-red: #c94848;
    --bfe-orange: #ce7a1b;
    --bfe-ink: #17324d;
    --bfe-muted: #60758a;
    --bfe-border: #d8e2eb;
    --bfe-surface: #ffffff;
    --bfe-background: #f3f7fa;
    --bfe-radius: 12px;
    --bfe-shadow: 0 8px 24px rgba(5, 42, 79, 0.08);
}

.bfe-button {
    align-items: center;
    border: 1px solid transparent;
    border-radius: 8px;
    box-sizing: border-box;
    cursor: pointer;
    display: inline-flex;
    font-size: 14px;
    font-weight: 700;
    gap: 8px;
    justify-content: center;
    line-height: 1.2;
    min-height: 40px;
    padding: 10px 16px;
    text-decoration: none;
    transition: background-color .16s ease, border-color .16s ease, transform .16s ease, box-shadow .16s ease;
}

.bfe-button:hover,
.bfe-button:focus {
    box-shadow: 0 4px 14px rgba(5, 42, 79, .14);
    transform: translateY(-1px);
}

.bfe-button:focus-visible {
    outline: 3px solid rgba(11, 139, 211, .3);
    outline-offset: 2px;
}

.bfe-button:disabled {
    cursor: wait;
    opacity: .62;
    transform: none;
}

.bfe-button--primary { background: var(--bfe-blue); color: #fff; }
.bfe-button--primary:hover,
.bfe-button--primary:focus { background: var(--bfe-blue-dark); color: #fff; }
.bfe-button--secondary { background: #fff; border-color: #8eb7d3; color: var(--bfe-blue-dark); }
.bfe-button--secondary:hover,
.bfe-button--secondary:focus { background: #eef7fc; color: var(--bfe-blue-dark); }
.bfe-button--ghost { background: transparent; border-color: var(--bfe-border); color: var(--bfe-ink); }
.bfe-button--warning { background: var(--bfe-yellow); color: #503000; }
.bfe-button--success { background: var(--bfe-green); color: #fff; }
.bfe-button--danger { background: var(--bfe-red); color: #fff; }
.bfe-button--small { min-height: 32px; padding: 7px 12px; font-size: 13px; }

.bfe-alert {
    border: 1px solid var(--bfe-border);
    border-left-width: 5px;
    border-radius: 9px;
    box-sizing: border-box;
    margin: 14px 0;
    padding: 14px 16px;
}
.bfe-alert--success { background: #eef9f4; border-color: #8bc8ad; border-left-color: var(--bfe-green); color: #174c35; }
.bfe-alert--error { background: #fff1f1; border-color: #e1abab; border-left-color: var(--bfe-red); color: #752c2c; }
.bfe-alert--warning { background: #fff8e8; border-color: #e7ca84; border-left-color: var(--bfe-yellow); color: #654612; }
.bfe-alert--info { background: #eef7fc; border-color: #9dc7e2; border-left-color: var(--bfe-cyan); color: #184f70; }

.bfe-eyebrow {
    color: var(--bfe-blue);
    display: block;
    font-size: 12px;
    font-weight: 800;
    letter-spacing: .12em;
    margin-bottom: 6px;
    text-transform: uppercase;
}

.bfe-status {
    border-radius: 999px;
    display: inline-flex;
    font-size: 12px;
    font-weight: 800;
    line-height: 1;
    padding: 7px 11px;
    white-space: nowrap;
}
.bfe-status--submitted { background: #e4f2fb; color: #145c86; }
.bfe-status--under_review,
.bfe-status--resubmitted { background: #fff2cf; color: #7a5511; }
.bfe-status--returned { background: #fce8cf; color: #8c4f0b; }
.bfe-status--approved { background: #dff3e9; color: #236b4c; }
.bfe-status--rejected { background: #f8dddd; color: #922f2f; }
.bfe-status--no-proceed { background: #e7e9ed; color: #4e5965; }
.bfe-status--cancelled { background: #eef0f2; color: #606b76; }

.bfe-grid { display: grid; gap: 16px; }
.bfe-grid--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.bfe-grid--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }

.bfe-check {
    align-items: flex-start;
    display: flex;
    gap: 10px;
    margin: 10px 0;
}
.bfe-check input { margin-top: 3px; }

@media (max-width: 760px) {
    .bfe-grid--2,
    .bfe-grid--3 { grid-template-columns: 1fr; }
}
