/* Task 147 authoritative per-occurrence size contracts.
   Loaded after all shared and page-specific styles. EX controls have no rule. */
@media (min-width: 768px) {
    .t147-c28 {
        box-sizing: border-box !important;
        min-height: 28px !important;
        height: 28px !important;
        padding-top: 0 !important;
        padding-bottom: 0 !important;
        padding-left: 8px !important;
        padding-right: 8px !important;
        line-height: 26px !important;
        white-space: nowrap !important;
    }
    body.employee-portal .week-day-tab.t147-c28 {
        display: inline-flex !important;
        align-items: center;
        justify-content: center;
        gap: 4px;
        min-width: max-content !important;
        padding: 0 8px !important;
        white-space: nowrap;
    }
    body.employee-portal .week-day-tab.t147-c28 > div {
        display: inline-block;
    }
    body.employee-portal .week-day-tab.t147-c28 .week-day-count {
        margin-top: 0 !important;
    }
    body.public-page .pf-service-grid {
        grid-template-columns: 1fr !important;
        gap: 6px;
    }
    body.public-page .pf-service-card.t147-c28 {
        gap: 8px;
        padding: 3px 8px !important;
        white-space: nowrap;
    }
    body.public-page .pf-service-card.t147-c28 .pf-service-icon {
        width: 20px;
        height: 20px;
        border-radius: 5px;
    }
    body.public-page .pf-service-card.t147-c28 .pf-service-icon svg {
        width: 14px;
        height: 14px;
    }
    body.public-page .pf-service-card.t147-c28 .pf-service-name {
        font-size: 0.82rem;
        line-height: 1.2;
    }
    body.public-page .pf-service-card.t147-c28.pf-disabled .pf-service-name {
        display: flex;
        align-items: center;
        justify-content: space-between;
        gap: 8px;
    }
    body.public-page .pf-service-card.t147-c28.pf-disabled .pf-unavail-badge {
        display: inline-flex !important;
        align-items: center;
        flex: 0 0 auto;
        width: auto !important;
        margin-top: 0;
        padding: 2px 7px;
        font-size: 0.58rem;
        line-height: 1;
    }
    body.public-page .pf-service-card.t147-c28 .pf-price-badge {
        padding: 1px 7px;
        font-size: 0.72rem;
    }
    body.public-page .pf-service-card.t147-c28 .pf-card-check {
        width: 18px;
        height: 18px;
    }
}

@media (max-width: 767px) {
    .t147-c28 {
        box-sizing: border-box;
        min-height: 44px;
    }
}

.t147-m44,
.t147-cta {
    box-sizing: border-box;
    min-height: 44px !important;
}

.t147-i44 {
    box-sizing: border-box !important;
    display: inline-flex !important;
    width: 44px !important;
    min-width: 44px !important;
    height: 44px !important;
    min-height: 44px !important;
    align-items: center;
    justify-content: center;
}

/* Explicit prior-approval invariants override the raw source classification. */
body.admin-page .migrated-admin .payslip-filter-tab {
    min-height: 43px !important;
    height: 43px !important;
}
body.admin-page .migrated-admin .payslip-list-action {
    min-height: 28px !important;
    height: 28px !important;
}
body.admin-page .migrated-admin.financial-page .fin-period-btn,
body.admin-page .migrated-admin.financial-page .fin-custom-range .btn {
    min-height: 44px !important;
    height: 44px !important;
}

/* Rendered semantic context outranks a source-level compact marker.
   A submit/destructive action or any action inside a real dialog remains M44,
   even where the same source occurrence was approved as compact elsewhere. */
.t147-c28:is(button[type="submit"], input[type="submit"], .ops-reset),
:is([role="dialog"], dialog, .modal, .sched-modal-overlay, .ci-modal) .t147-c28 {
    box-sizing: border-box !important;
    min-height: 44px !important;
    height: auto !important;
    padding-top: 8px !important;
    padding-bottom: 8px !important;
    line-height: 1.2 !important;
}

/* Public carousel controls are icon actions, not compact text controls. */
body.public-page .pbx-carousel-btn.t147-c28 {
    box-sizing: border-box !important;
    display: inline-flex !important;
    width: 44px !important;
    min-width: 44px !important;
    height: 44px !important;
    min-height: 44px !important;
    padding: 0 !important;
    align-items: center;
    justify-content: center;
}