/*
 * Final Blade UI/UX governance layer.
 * Loaded after historical component styles so current SOT rules remain authoritative.
 */
:root {
    --tww-ui-caption-size: 0.75rem;
    --tww-ui-body-size: 0.875rem;
    --tww-ui-control-size: 0.875rem;
    --tww-ui-label-weight: 600;
    --tww-ui-action-weight: 600;
}

:is(.tww-admin-body, .tww-public-body) :is(.tww-label, label, legend) {
    font-weight: var(--tww-ui-label-weight);
    letter-spacing: 0.01em;
}

:is(.tww-admin-body, .tww-public-body) :is(
    input,
    select,
    textarea,
    button,
    .tww-input,
    .tww-select,
    .tww-textarea,
    .tww-action-primary,
    .tww-action-secondary,
    .tww-icon-action
) {
    font-size: var(--tww-ui-control-size);
}

:is(.tww-admin-body, .tww-public-body) :is(
    .tww-action-primary,
    .tww-action-secondary,
    .tww-icon-action,
    [role="button"]
) {
    font-weight: var(--tww-ui-action-weight);
}

:is(.tww-admin-body, .tww-public-body) :is(
    .tww-kicker,
    .tww-muted,
    .tww-help,
    .tww-error,
    small,
    figcaption,
    caption
) {
    font-size: max(var(--tww-ui-caption-size), 0.75rem);
    line-height: 1.45;
}

:is(.tww-admin-body, .tww-public-body) :is(th, td) {
    font-size: var(--tww-ui-body-size);
    line-height: 1.5;
}

:is(.tww-admin-body, .tww-public-body) :is(.tww-form-grid, .tww-filter-grid, [data-tww-auto-grid]) {
    min-width: 0;
}

:is(.tww-admin-body, .tww-public-body) :is(.tww-form-grid, .tww-filter-grid, [data-tww-auto-grid]) > * {
    min-width: 0;
}

:is(.tww-admin-body, .tww-public-body) :is(.tww-action-primary, .tww-action-secondary) {
    min-height: 2.75rem;
    align-items: center;
    justify-content: center;
    text-align: center;
    white-space: normal;
}

:is(.tww-admin-body, .tww-public-body) dialog[open] {
    max-width: min(92vw, 72rem);
    max-height: min(90vh, 64rem);
    overflow: auto;
}

@media (max-width: 639px) {
    :is(.tww-admin-body, .tww-public-body) :is(.tww-form-actions, .tww-table-actions, .tww-time-report-invoice-actions) > * {
        width: 100%;
    }
}
