/* Shared page heading, usable without a task-sheet wrapper. */
.page-hero {
    color: var(--bs-body-color, #22364b);
    overflow-wrap: anywhere;
    overflow: hidden;
    margin-bottom: 24px;
    border: 1px solid var(--bs-border-color, #e3eaf1);
    border-radius: 20px;
    background: linear-gradient(115deg, rgba(42, 118, 210, .07), transparent 75%), var(--bs-body-bg, #fff);
    box-shadow: 0 8px 28px rgba(24, 52, 85, .04);
}
.page-heading {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-start;
    gap: 18px;
    padding: 30px;
}
.page-heading > div { min-width: 0; }
.page-heading > div:not(.page-heading-actions) { flex: 1 1 220px; }
.page-heading-actions {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-end;
    gap: 10px;
    margin-left: auto;
    max-width: 100%;
}
.page-heading-actions form { margin: 0; }
.page-heading-actions .btn { display: inline-flex; align-items: center; justify-content: center; gap: 6px; white-space: normal; }
.page-eyebrow { color: var(--bs-secondary-color, #62748a); font-size: .75rem; font-weight: 700; text-transform: uppercase; letter-spacing: .09em; margin: 0 0 8px; }
.page-heading h1 { font-size: clamp(1.4rem, 2.2vw, 2rem); line-height: 1.3; margin: 0 0 16px; }
.page-heading-icon { display: grid; place-items: center; flex-shrink: 0; width: 54px; height: 54px; border-radius: 16px; color: #1760b5; background: rgba(42, 118, 210, .1); font-size: 28px; }
@media (max-width: 575.98px) {
    .page-heading { padding: 20px; gap: 12px; }
    .page-heading-actions { width: 100%; }
    .page-heading-actions .btn { flex: 0 1 auto; }
    .page-heading-icon { width: 42px; height: 42px; border-radius: 12px; font-size: 24px; }
}

.page-metrics {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
    gap: 24px;
    border-top: 1px solid var(--bs-border-color, #e3eaf1);
    padding: 22px 30px;
    background: var(--bs-body-bg, #fff);
    border-radius: 0 0 20px 20px;
}
.page-metrics > div { min-width: 0; }
.page-metrics > div + div { border-left: 1px solid var(--bs-border-color, #e3eaf1); padding-left: 24px; }
.page-metric-label { display: block; color: var(--bs-secondary-color, #62748a); font-size: .8rem; margin-bottom: 7px; }
.page-metrics strong { display: block; font-size: 1rem; }
@media (max-width: 991.98px) {
    .page-metrics { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .page-metrics > div + div { border-left: 0; padding-left: 0; }
}
@media (max-width: 575.98px) {
    .page-metrics { grid-template-columns: 1fr; padding: 20px; gap: 16px; }
    .page-metrics > div + div { border-top: 1px solid var(--bs-border-color, #e3eaf1); padding-top: 16px; }
}
