/* Shared visual language for data-management pages. */
:is(.master-data-page, .settings-data-page) {
    --md-bg: #f4f6f9;
    --md-surface: #ffffff;
    --md-surface-subtle: #f8fafc;
    --md-border: #dfe3e8;
    --md-border-strong: #cbd2da;
    --md-text: #1d232d;
    --md-muted: #68707d;
    --md-primary: #1f2937;
    --md-primary-hover: #111827;
    --md-accent: #2563eb;
    --md-accent-soft: #eff6ff;
    --md-success: #15803d;
    --md-success-soft: #f0fdf4;
    --md-danger: #c62828;
    --md-danger-soft: #fff1f2;
    --md-warning: #a16207;
    --md-warning-soft: #fffbeb;
    --md-radius-sm: 6px;
    --md-radius: 10px;
    --md-radius-lg: 12px;
    --md-control-height: 40px;
    --md-shadow: 0 1px 2px rgba(16, 24, 40, .04);
    color: var(--md-text);
    display: flex;
    flex-direction: column;
    gap: 16px;
    min-width: 0;
    width: 100%;
}

.master-data-page :is(
    .day-supply-list-shell,
    .day-supply-detail-shell,
    .uph-detail-shell,
    .stdot-detail-shell,
    .eng-event-detail-shell,
    .lc-detail-shell,
    .priority-detail-shell) {
    display: flex;
    flex-direction: column;
    gap: 16px;
    min-width: 0;
}

/* Toolbars and tab navigation */
.master-data-page :is(
    .day-supply-toolbar,
    .uph-toolbar,
    .stdot-toolbar,
    .eng-event-toolbar,
    .eng-event-detail-toolbar,
    .lc-toolbar,
    .lc-detail-toolbar,
    .priority-toolbar,
    .priority-detail-toolbar) {
    align-items: center;
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    justify-content: flex-end;
    min-height: var(--md-control-height);
}

.master-data-page :is(
    .day-supply-toolbar-actions,
    .eng-event-detail-actions,
    .lc-detail-actions,
    .priority-detail-actions) {
    align-items: center;
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

/* Shared detail workflow: Back stays on the card's left edge; contextual actions stay right. */
.aps-detail-workflow .aps-detail-toolbar {
    align-items: center;
    display: flex;
    flex-direction: row;
    flex-wrap: wrap;
    gap: 8px;
    justify-content: space-between;
    min-height: var(--md-control-height, 40px);
    width: 100%;
}

.aps-detail-workflow :is(.aps-detail-leading, .aps-detail-actions) {
    align-items: center;
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.aps-detail-workflow .aps-detail-leading,
.aps-detail-workflow .aps-detail-back {
    flex: 0 0 auto;
}

.aps-detail-workflow .aps-detail-actions {
    justify-content: flex-end;
    margin-left: auto;
    min-width: 0;
}

.aps-detail-workflow .aps-detail-card {
    width: 100%;
}

/* Keep both Engineering Event detail variants on the intended form width even
   if a browser briefly has mismatched scoped/global stylesheet cache versions. */
.master-data-page .eng-event-detail-shell.aps-detail-workflow {
    align-items: stretch;
    margin-inline: auto;
    max-width: 920px;
    width: min(100%, 920px);
}

.master-data-page :is(.stdot-tabs, .eng-event-tabs, .lc-tabs) {
    align-items: center;
    border-bottom: 1px solid var(--md-border);
    display: flex;
    gap: 4px;
    min-height: 42px;
    overflow-x: auto;
}

.master-data-page :is(.stdot-tabs, .lc-tabs) {
    -ms-overflow-style: none;
    scrollbar-width: none;
}

.master-data-page :is(.stdot-tabs, .lc-tabs)::-webkit-scrollbar {
    display: none;
}

.master-data-page :is(.stdot-tab, .eng-event-tab, .lc-tab) {
    background: transparent;
    border: 0;
    border-bottom: 2px solid transparent;
    border-radius: 0;
    color: var(--md-muted);
    cursor: pointer;
    font-size: 13px;
    font-weight: 650;
    min-height: 42px;
    padding: 0 16px;
    transition: border-color .15s ease, color .15s ease, background .15s ease;
    white-space: nowrap;
}

.master-data-page :is(.stdot-tab, .eng-event-tab, .lc-tab):hover {
    background: var(--md-surface-subtle);
    color: var(--md-text);
}

.master-data-page :is(.stdot-tab, .eng-event-tab, .lc-tab).is-active {
    background: transparent;
    border-bottom-color: var(--md-primary);
    color: var(--md-primary);
}

/* Cards and content surfaces */
.master-data-page :is(
    .day-supply-card,
    .uph-filter-card,
    .uph-table-card,
    .stdot-card,
    .eng-event-card,
    .lc-card,
    .priority-card) {
    background: var(--md-surface);
    border: 1px solid var(--md-border);
    border-radius: var(--md-radius-lg);
    box-shadow: var(--md-shadow);
    min-width: 0;
    overflow: hidden;
}

.master-data-page :is(
    .day-supply-filter-card,
    .uph-filter-card,
    .stdot-filter-card,
    .eng-event-filter-card,
    .lc-filter-card,
    .priority-filter-card) {
    background: var(--md-surface-subtle);
    padding: 16px 18px;
}

.master-data-page :is(
    .day-supply-detail-card,
    .eng-event-detail-card,
    .lc-detail-card,
    .priority-detail-card) {
    padding: 0;
}

.master-data-page :is(
    .day-supply-detail-head,
    .eng-event-detail-head,
    .lc-detail-head,
    .priority-detail-head,
    .eng-event-section-head,
    .stdot-calendar-head,
    .uph-modal-head) {
    background: var(--md-surface-subtle);
    border-bottom: 1px solid var(--md-border);
    padding: 16px 20px;
}

.master-data-page :is(
    .day-supply-detail-head,
    .eng-event-detail-head,
    .lc-detail-head,
    .priority-detail-head,
    .eng-event-section-head,
    .uph-modal-head) h3 {
    color: var(--md-text);
    font-size: 15px;
    font-weight: 750;
    line-height: 1.35;
    margin: 0;
}

.master-data-page :is(
    .day-supply-detail-head,
    .eng-event-detail-head,
    .lc-detail-head,
    .priority-detail-head,
    .eng-event-section-head,
    .uph-modal-head) p {
    color: var(--md-muted);
    font-size: 12px;
    margin: 4px 0 0;
}

/* Filter and form layout */
.master-data-page :is(
    .day-supply-filter-row,
    .uph-filter-row,
    .stdot-filter-row,
    .eng-event-filter-row,
    .lc-filter-row,
    .priority-filter-row) {
    align-items: end;
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
}

.master-data-page :is(
    .day-supply-form-grid,
    .eng-event-form-grid,
    .lc-detail-grid,
    .priority-form-grid) {
    gap: 18px 20px;
    padding: 20px;
}

.master-data-page :is(
    .day-supply-field,
    .uph-field,
    .stdot-field,
    .eng-event-field,
    .lc-field,
    .lc-day-field,
    .priority-field) {
    color: var(--md-text);
    font-size: 13px;
    min-width: 0;
}

.master-data-page :is(
    .day-supply-field,
    .uph-field,
    .stdot-field,
    .eng-event-field,
    .lc-field,
    .lc-day-field,
    .priority-field) > span {
    color: var(--md-muted);
    display: block;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: .01em;
    line-height: 1.35;
    margin-bottom: 6px;
}

.master-data-page :is(
    .day-supply-field,
    .uph-field,
    .stdot-field,
    .eng-event-field,
    .lc-field,
    .lc-day-field,
    .priority-field) :is(
    input:not([type="checkbox"]):not([type="radio"]):not([type="file"]),
    select,
    textarea) {
    background-color: var(--md-surface);
    border: 1px solid var(--md-border-strong);
    border-radius: var(--md-radius-sm);
    color: var(--md-text);
    font-family: inherit;
    font-size: 13px;
    min-height: var(--md-control-height);
    outline: none;
    padding: 8px 11px;
    transition: border-color .15s ease, box-shadow .15s ease, background .15s ease;
    width: 100%;
}

.master-data-page :is(
    .day-supply-field,
    .uph-field,
    .stdot-field,
    .eng-event-field,
    .lc-field,
    .lc-day-field,
    .priority-field) :is(
    input:not([type="checkbox"]):not([type="radio"]):not([type="file"]),
    select,
    textarea):hover:not(:disabled) {
    border-color: #aeb7c2;
}

.master-data-page :is(
    .day-supply-field,
    .uph-field,
    .stdot-field,
    .eng-event-field,
    .lc-field,
    .lc-day-field,
    .priority-field) :is(
    input:not([type="checkbox"]):not([type="radio"]):not([type="file"]),
    select,
    textarea):focus {
    border-color: var(--md-accent);
    box-shadow: 0 0 0 3px rgba(37, 99, 235, .14);
}

.master-data-page :is(
    .day-supply-field,
    .uph-field,
    .stdot-field,
    .eng-event-field,
    .lc-field,
    .lc-day-field,
    .priority-field) :is(input, select, textarea):disabled {
    background: #f2f4f7;
    color: #7c8490;
    cursor: not-allowed;
    opacity: 1;
}

.master-data-page .mud-input-control {
    margin-top: 0;
}

.master-data-page .mud-input-control .mud-input-root {
    background: var(--md-surface);
    border-radius: var(--md-radius-sm);
    color: var(--md-text);
    font-size: 13px;
    min-height: var(--md-control-height);
}

.master-data-page .mud-input-control .mud-input-outlined-border {
    border-color: var(--md-border-strong);
    border-radius: var(--md-radius-sm);
}

.master-data-page .mud-input-control:hover .mud-input-outlined-border {
    border-color: #aeb7c2;
}

.master-data-page .mud-input-control .mud-input-root.mud-input-root-focused .mud-input-outlined-border {
    border-color: var(--md-accent);
    border-width: 1px;
    box-shadow: 0 0 0 3px rgba(37, 99, 235, .14);
}

.master-data-page .mud-input-control .mud-input-adornment {
    color: var(--md-muted);
}

.master-data-page .mud-input-control .mud-input-helper-text {
    color: var(--md-muted);
    font-size: 11px;
    margin-top: 4px;
}

.master-data-page :is(.eng-event-required, .required) {
    color: var(--md-danger);
    margin-left: 2px;
}

/* Unified action buttons */
.master-data-page :is(
    .day-supply-btn,
    .uph-btn,
    .stdot-btn,
    .eng-event-btn,
    .lc-btn,
    .priority-btn) {
    align-items: center;
    border: 1px solid transparent;
    border-radius: var(--md-radius-sm);
    cursor: pointer;
    display: inline-flex;
    font-family: inherit;
    font-size: 12px;
    font-weight: 700;
    gap: 7px;
    justify-content: center;
    line-height: 1;
    min-height: var(--md-control-height);
    padding: 0 14px;
    transition: background .15s ease, border-color .15s ease, color .15s ease, box-shadow .15s ease, transform .08s ease;
    white-space: nowrap;
}

.master-data-page :is(
    .day-supply-btn-primary,
    .uph-btn-primary,
    .stdot-btn-primary,
    .eng-event-btn-primary,
    .lc-btn-primary,
    .priority-btn-primary) {
    background: var(--md-primary);
    border-color: var(--md-primary);
    color: #fff;
}

.master-data-page :is(
    .day-supply-btn-primary,
    .uph-btn-primary,
    .stdot-btn-primary,
    .eng-event-btn-primary,
    .lc-btn-primary,
    .priority-btn-primary):hover:not(:disabled) {
    background: var(--md-primary-hover);
    border-color: var(--md-primary-hover);
    box-shadow: 0 3px 8px rgba(17, 24, 39, .16);
}

.master-data-page :is(
    .day-supply-btn-secondary,
    .uph-btn-secondary,
    .stdot-btn-secondary,
    .eng-event-btn-secondary,
    .lc-btn-secondary,
    .priority-btn-secondary) {
    background: var(--md-surface);
    border-color: var(--md-border-strong);
    color: var(--md-text);
}

.master-data-page :is(
    .day-supply-btn-secondary,
    .uph-btn-secondary,
    .stdot-btn-secondary,
    .eng-event-btn-secondary,
    .lc-btn-secondary,
    .priority-btn-secondary):hover:not(:disabled) {
    background: var(--md-surface-subtle);
    border-color: #aeb7c2;
}

.master-data-page .master-data-excel-btn {
    background: var(--md-surface);
    border: 1px solid var(--md-border-strong);
    border-radius: var(--md-radius-sm);
    color: var(--md-text);
    cursor: pointer;
    font-size: 12px;
    font-weight: 700;
    gap: 7px;
    min-height: var(--md-control-height);
    min-width: 128px;
    padding: 0 14px;
}

.master-data-page .master-data-excel-btn .mud-icon-root {
    color: var(--md-muted);
    flex: 0 0 auto;
    font-size: 18px;
}

.master-data-page .master-data-excel-btn:hover:not(:disabled) {
    background: var(--md-accent-soft);
    border-color: #b7c9ec;
    color: #1d4ed8;
}

.master-data-page .master-data-excel-btn:hover:not(:disabled) .mud-icon-root {
    color: var(--md-accent);
}

.master-data-page .master-data-excel-btn:active:not(:disabled) {
    background: #e5edff;
    transform: translateY(1px);
}

.master-data-page .master-data-excel-btn:disabled {
    background: #f2f4f7;
    border-color: var(--md-border);
    color: #8b929c;
    cursor: not-allowed;
    opacity: 1;
}

.master-data-page .master-data-excel-btn:disabled .mud-icon-root {
    color: #a0a7b1;
}

.master-data-page :is(
    .day-supply-btn,
    .uph-btn,
    .stdot-btn,
    .eng-event-btn,
    .lc-btn,
    .priority-btn):active:not(:disabled) {
    transform: translateY(1px);
}

.master-data-page :is(
    .day-supply-btn,
    .uph-btn,
    .stdot-btn,
    .eng-event-btn,
    .lc-btn,
    .priority-btn):disabled {
    cursor: not-allowed;
    opacity: .52;
}

.master-data-page :is(
    .day-supply-view-btn,
    .uph-view-btn,
    .eng-event-view-btn,
    .priority-view-btn) {
    align-items: center;
    background: transparent;
    border: 0;
    border-radius: var(--md-radius-sm);
    color: var(--md-accent);
    cursor: pointer;
    display: inline-flex;
    font-size: 12px;
    font-weight: 700;
    gap: 5px;
    min-height: 32px;
    padding: 0 8px;
}

.master-data-page :is(
    .day-supply-view-btn,
    .uph-view-btn,
    .eng-event-view-btn,
    .priority-view-btn):hover {
    background: var(--md-accent-soft);
}

.master-data-page :is(
    .day-supply-icon-btn,
    .uph-close-btn,
    .lc-icon-btn,
    .priority-icon-btn) {
    align-items: center;
    background: var(--md-surface);
    border: 1px solid var(--md-border-strong);
    border-radius: var(--md-radius-sm);
    color: var(--md-muted);
    cursor: pointer;
    display: inline-flex;
    height: var(--md-control-height);
    justify-content: center;
    width: var(--md-control-height);
}

.master-data-page :is(
    .day-supply-icon-btn,
    .uph-close-btn,
    .lc-icon-btn,
    .priority-icon-btn):hover {
    background: var(--md-surface-subtle);
    border-color: #aeb7c2;
    color: var(--md-text);
}

.master-data-page button:focus-visible,
.master-data-page a:focus-visible {
    outline: 3px solid rgba(37, 99, 235, .22);
    outline-offset: 2px;
}

/* Tables */
.master-data-page :is(
    .day-supply-table-scroll,
    .uph-table-scroll,
    .stdot-table-scroll,
    .eng-event-table-scroll,
    .lc-table-scroll,
    .priority-table-scroll) {
    overflow: auto;
    scrollbar-gutter: stable;
}

.master-data-page :is(
    .day-supply-table,
    .uph-table,
    .stdot-table,
    .eng-event-table,
    .lc-table,
    .priority-table) {
    border-collapse: separate;
    border-spacing: 0;
    color: var(--md-text);
    font-size: 12px;
    width: 100%;
}

.master-data-page :is(
    .day-supply-table,
    .uph-table,
    .eng-event-table,
    .lc-table,
    .priority-table) thead th {
    background: #f3f5f7;
    border-bottom: 1px solid var(--md-border);
    color: #565f6b;
    font-size: 11px;
    font-weight: 750;
    letter-spacing: .015em;
    min-height: 42px;
    padding: 11px 12px;
    text-transform: none;
    white-space: nowrap;
}

.master-data-page :is(
    .day-supply-table,
    .uph-table,
    .eng-event-table,
    .lc-table,
    .priority-table) tbody td {
    border-bottom: 1px solid #edf0f2;
    color: var(--md-text);
    min-height: 44px;
    padding: 10px 12px;
    vertical-align: middle;
}

.master-data-page :is(
    .uph-table) thead th {
    padding: 1px 12px;
}

.master-data-page :is(
    .uph-table) tbody td {
    padding: 0px 12px;
}

.master-data-page :is(
    .stdot-table) thead th {
    min-height: 3cap;
    padding: 2px 2px;
}

.master-data-page :is(
    .stdot-table) tbody td {
    padding: 0px 1px;
}

.master-data-page :is(
    .day-supply-table,
    .uph-table,
    .stdot-table,
    .eng-event-table,
    .lc-table,
    .priority-table) tbody tr:last-child td {
    border-bottom: 0;
}

.master-data-page :is(
    .day-supply-table,
    .uph-table,
    .eng-event-table,
    .lc-table,
    .priority-table) tbody tr:hover td {
    background-color: #f8fafc;
}

.master-data-page :is(
    .day-supply-empty,
    .uph-empty,
    .stdot-empty,
    .stdot-empty-card,
    .eng-event-empty,
    .lc-empty,
    .priority-empty) {
    color: var(--md-muted);
    padding: 36px 20px;
    text-align: center;
}

/* Feedback, notes and status surfaces */
.master-data-page :is(
    .day-supply-banner,
    .uph-alert,
    .stdot-alert,
    .eng-event-alert,
    .lc-alert,
    .priority-alert) {
    border: 1px solid var(--md-border);
    border-radius: var(--md-radius);
    font-size: 12px;
    line-height: 1.45;
    padding: 11px 14px;
}

.master-data-page :is(.is-ok, .eng-event-alert-success) {
    background: var(--md-success-soft);
    border-color: #bbf7d0;
    color: var(--md-success);
}

.master-data-page :is(.is-error, .eng-event-alert-error) {
    background: var(--md-danger-soft);
    border-color: #fecdd3;
    color: var(--md-danger);
}

.master-data-page :is(
    .day-supply-note,
    .stdot-banner,
    .eng-event-note,
    .lc-note,
    .priority-note) {
    align-items: flex-start;
    background: var(--aps-brand-bg);
    border-left: 4px solid var(--aps-brand);
    border-radius: 10px;
    color: var(--aps-brand);
    display: flex;
    gap: 12px;
    padding: 14px 16px;
}

.master-data-page :is(
    .day-supply-note,
    .stdot-banner,
    .eng-event-note,
    .lc-note,
    .priority-note) p {
    color: inherit;
    margin: 0;
}

/* Modal consistency */
.master-data-page :is(.uph-modal, .eng-event-modal, .lc-modal, .priority-modal) {
    background: var(--md-surface);
    border: 1px solid var(--md-border);
    border-radius: var(--md-radius-lg);
    box-shadow: 0 18px 50px rgba(15, 23, 42, .18);
    overflow: hidden;
}

.master-data-page :is(.uph-modal-foot, .eng-event-modal-foot, .lc-modal-foot, .priority-modal-foot) {
    align-items: center;
    background: var(--md-surface-subtle);
    border-top: 1px solid var(--md-border);
    display: flex;
    gap: 8px;
    justify-content: flex-end;
    padding: 14px 20px;
}

@media (max-width: 960px) {
    .master-data-page {
        gap: 14px;
    }

    .master-data-page :is(
        .day-supply-filter-card,
        .uph-filter-card,
        .stdot-filter-card,
        .eng-event-filter-card,
        .lc-filter-card,
        .priority-filter-card) {
        padding: 14px;
    }

    .master-data-page :is(
        .day-supply-filter-row,
        .uph-filter-row,
        .stdot-filter-row,
        .eng-event-filter-row,
        .lc-filter-row,
        .priority-filter-row) > * {
        flex: 1 1 180px;
        max-width: none;
        width: auto;
    }
}

@media (max-width: 640px) {
    .master-data-page :is(
        .day-supply-toolbar,
        .uph-toolbar,
        .stdot-toolbar,
        .eng-event-toolbar,
        .eng-event-detail-toolbar,
        .lc-toolbar,
        .lc-detail-toolbar,
        .priority-toolbar,
        .priority-detail-toolbar) {
        align-items: stretch;
    }

    .aps-detail-workflow .aps-detail-toolbar {
        align-items: flex-start;
        flex-direction: row;
    }

    .aps-detail-workflow .aps-detail-actions {
        flex: 1 1 220px;
        justify-content: flex-end;
    }

    .master-data-page :is(
        .day-supply-toolbar,
        .uph-toolbar,
        .stdot-toolbar,
        .eng-event-toolbar,
        .lc-toolbar,
        .priority-toolbar) > :is(button, label) {
        flex: 1 1 auto;
    }

    .master-data-page :is(
        .day-supply-filter-row,
        .uph-filter-row,
        .stdot-filter-row,
        .eng-event-filter-row,
        .lc-filter-row,
        .priority-filter-row) > * {
        flex-basis: 100%;
        width: 100%;
    }

    .master-data-page :is(
        .day-supply-form-grid,
        .eng-event-form-grid,
        .lc-detail-grid,
        .priority-form-grid) {
        grid-template-columns: 1fr;
        padding: 16px;
    }

    .master-data-page :is(.stdot-tab, .eng-event-tab, .lc-tab) {
        flex: 1 0 auto;
        justify-content: center;
        padding-inline: 12px;
    }
}

@media (max-width: 480px) {
    .aps-detail-workflow .aps-detail-actions {
        flex-basis: 100%;
        justify-content: flex-end;
        margin-left: 0;
    }
}

@media (prefers-reduced-motion: reduce) {
    .master-data-page *,
    .master-data-page *::before,
    .master-data-page *::after {
        scroll-behavior: auto !important;
        transition-duration: .01ms !important;
    }
}

.aps-feedback,
.aps-validation-summary {
    border: 1px solid var(--md-border);
    border-radius: var(--md-radius);
    color: var(--md-text);
    font-size: 12px;
    line-height: 1.5;
}

.aps-feedback {
    align-items: flex-start;
    display: flex;
    gap: 8px;
    padding: 11px 14px;
}

.aps-feedback strong {
    font-weight: 750;
}

.aps-feedback-loading,
.aps-feedback-info {
    background: var(--md-accent-soft);
    border-color: #bfdbfe;
    color: #1d4ed8;
}

.aps-feedback-empty {
    background: var(--md-surface-subtle);
    color: var(--md-muted);
}

.aps-feedback-success {
    background: var(--md-success-soft);
    border-color: #bbf7d0;
    color: var(--md-success);
}

.aps-feedback-warning {
    background: #fff7ed;
    border-color: #fed7aa;
    color: #9a3412;
}

.aps-feedback-blocking,
.aps-feedback-error,
.aps-validation-summary {
    background: var(--md-danger-soft);
    border-color: #fecdd3;
    color: var(--md-danger);
}

.aps-field-error {
    color: var(--md-danger);
    font-size: 12px;
    line-height: 1.4;
    margin: 5px 0 0;
}

.master-data-page :is(input, select, textarea)[aria-invalid="true"] {
    background: #fff1f2;
    border-color: #e11d48 !important;
    box-shadow: 0 0 0 2px rgba(225, 29, 72, .1);
}

.aps-validation-summary {
    margin: 0 0 16px;
    padding: 14px;
}

.aps-validation-summary:focus {
    outline: 3px solid rgba(37, 99, 235, .28);
    outline-offset: 2px;
}

.aps-validation-summary-heading {
    align-items: flex-start;
    display: flex;
    gap: 12px;
    justify-content: space-between;
}

.aps-validation-summary-heading h3 {
    font-size: 14px;
    margin: 0;
}

.aps-validation-summary-heading p {
    color: inherit;
    margin: 4px 0 0;
}

.aps-validation-count {
    align-items: center;
    background: rgba(190, 18, 60, .12);
    border-radius: 999px;
    display: inline-flex;
    font-weight: 750;
    min-height: 26px;
    min-width: 26px;
    justify-content: center;
    padding: 0 7px;
}

.aps-validation-summary-list {
    display: grid;
    gap: 4px;
    margin: 12px 0;
    padding-left: 22px;
}

.aps-validation-summary-link {
    background: transparent;
    border: 0;
    color: inherit;
    cursor: pointer;
    display: grid;
    font: inherit;
    gap: 4px;
    padding: 4px 0;
    text-align: left;
    width: 100%;
}

.aps-validation-summary-link:hover,
.aps-validation-summary-link:focus-visible {
    text-decoration: underline;
}

.aps-validation-summary-link span:first-child {
    font-weight: 750;
}

.aps-import-error-table-wrap {
    max-width: 100%;
    overflow-x: auto;
}

.aps-import-error-table {
    border-collapse: collapse;
    min-width: 680px;
    width: 100%;
}

.aps-import-error-table caption {
    color: inherit;
    font-size: 12px;
    font-weight: 750;
    padding: 4px 0 8px;
    text-align: left;
}

.aps-import-error-table th,
.aps-import-error-table td {
    border-bottom: 1px solid rgba(190, 18, 60, .16);
    padding: 8px 9px;
    text-align: left;
    vertical-align: top;
}

.aps-import-error-table th {
    font-size: 11px;
    text-transform: uppercase;
}

.aps-import-error-table td {
    overflow-wrap: anywhere;
}

.aps-import-error-table code {
    color: inherit;
    font-size: 11px;
}

/* Settings management pages use the same control and surface contract as Master Data. */
.settings-data-page :is(
    .aps-user-detail,
    .aps-role-detail,
    .aps-approve-detail) {
    display: flex;
    flex-direction: column;
    gap: 16px;
    min-width: 0;
    width: 100%;
}

.settings-data-page :is(
    .aps-user-toolbar,
    .aps-role-toolbar,
    .aps-approve-toolbar) {
    align-items: center;
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    justify-content: flex-end;
    margin: 0;
    min-height: var(--md-control-height);
}

.settings-data-page :is(
    .aps-user-toolbar-actions,
    .aps-role-toolbar-actions,
    .aps-approve-toolbar-actions) {
    align-items: center;
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    justify-content: flex-end;
}

.settings-data-page :is(
    .aps-user-filter,
    .aps-role-filter,
    .aps-user-table-card,
    .aps-role-table-card,
    .aps-approve-table-card,
    .aps-user-detail-card,
    .aps-role-detail-card,
    .aps-approve-detail-card) {
    background: var(--md-surface);
    border: 1px solid var(--md-border);
    border-radius: var(--md-radius-lg);
    box-shadow: var(--md-shadow);
    min-width: 0;
}

.settings-data-page :is(.aps-user-filter, .aps-role-filter) {
    background: var(--md-surface-subtle);
    margin: 0;
    padding: 16px 18px;
}

.settings-data-page :is(
    .aps-user-table-card,
    .aps-role-table-card,
    .aps-approve-table-card,
    .aps-user-detail-card,
    .aps-role-detail-card,
    .aps-approve-detail-card) {
    margin: 0;
    overflow: hidden;
}

.settings-data-page :is(
    .aps-user-filter-row,
    .aps-role-filter-row) {
    align-items: end;
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
}

.settings-data-page :is(
    .aps-user-filter-row,
    .aps-role-filter-row) > label {
    flex: 0 1 200px;
    min-width: 150px;
}

.settings-data-page :is(
    .aps-user-filter label,
    .aps-role-filter label,
    .aps-user-field,
    .aps-role-field,
    .aps-approve-field) {
    color: var(--md-text);
    font-size: 13px;
    gap: 6px;
    min-width: 0;
}

.settings-data-page :is(
    .aps-user-filter label,
    .aps-role-filter label,
    .aps-user-field,
    .aps-role-field,
    .aps-approve-field) > span {
    color: var(--md-muted);
    display: block;
    font-size: 11px;
    font-weight: 700;
    line-height: 1.35;
}

.settings-data-page :is(
    .aps-user-filter,
    .aps-role-filter,
    .aps-user-field,
    .aps-role-field,
    .aps-approve-field) :is(
    input:not([type="checkbox"]):not([type="radio"]):not([type="file"]),
    select,
    textarea) {
    background: var(--md-surface);
    border: 1px solid var(--md-border-strong);
    border-radius: var(--md-radius-sm);
    color: var(--md-text);
    font-family: inherit;
    font-size: 13px;
    font-weight: 500;
    height: auto;
    min-height: var(--md-control-height);
    outline: none;
    padding: 8px 11px;
    transition: border-color .15s ease, box-shadow .15s ease, background .15s ease;
    width: 100%;
}

.settings-data-page :is(
    .aps-user-filter,
    .aps-role-filter,
    .aps-user-field,
    .aps-role-field,
    .aps-approve-field) :is(
    input:not([type="checkbox"]):not([type="radio"]):not([type="file"]),
    select,
    textarea):hover:not(:disabled) {
    border-color: #aeb7c2;
}

.settings-data-page :is(
    .aps-user-filter,
    .aps-role-filter,
    .aps-user-field,
    .aps-role-field,
    .aps-approve-field) :is(
    input:not([type="checkbox"]):not([type="radio"]):not([type="file"]),
    select,
    textarea):focus {
    border-color: var(--md-accent);
    box-shadow: 0 0 0 3px rgba(37, 99, 235, .14);
}

.settings-data-page :is(
    .aps-user-filter,
    .aps-role-filter,
    .aps-user-field,
    .aps-role-field,
    .aps-approve-field) :is(input, select, textarea):disabled {
    background: #f2f4f7;
    color: #7c8490;
    cursor: not-allowed;
    opacity: 1;
}

.settings-data-page :is(.required) {
    color: var(--md-danger);
    margin-left: 2px;
}

.settings-data-page :is(
    .aps-user-btn,
    .aps-role-btn,
    .aps-approve-btn) {
    align-items: center;
    border: 1px solid transparent;
    border-radius: var(--md-radius-sm);
    cursor: pointer;
    display: inline-flex;
    font-family: inherit;
    font-size: 12px;
    font-weight: 700;
    gap: 7px;
    height: auto;
    justify-content: center;
    line-height: 1;
    min-height: var(--md-control-height);
    padding: 0 14px;
    transition: background .15s ease, border-color .15s ease, color .15s ease, box-shadow .15s ease, transform .08s ease;
    white-space: nowrap;
}

.settings-data-page :is(
    .aps-user-btn-ink,
    .aps-role-btn-ink,
    .aps-approve-btn-ink) {
    background: var(--md-primary);
    border-color: var(--md-primary);
    color: #fff;
}

.settings-data-page :is(
    .aps-user-btn-ink,
    .aps-role-btn-ink,
    .aps-approve-btn-ink):hover:not(:disabled) {
    background: var(--md-primary-hover);
    border-color: var(--md-primary-hover);
    box-shadow: 0 3px 8px rgba(17, 24, 39, .16);
}

.settings-data-page :is(
    .aps-user-btn-light,
    .aps-role-btn-light,
    .aps-approve-btn-light) {
    background: var(--md-surface);
    border-color: var(--md-border-strong);
    color: var(--md-text);
}

.settings-data-page :is(
    .aps-user-btn-light,
    .aps-role-btn-light,
    .aps-approve-btn-light):hover:not(:disabled) {
    background: var(--md-surface-subtle);
    border-color: #aeb7c2;
}

.settings-data-page :is(.aps-user-btn, .aps-role-btn, .aps-approve-btn):active:not(:disabled) {
    transform: translateY(1px);
}

.settings-data-page :is(.aps-user-btn, .aps-role-btn, .aps-approve-btn):disabled {
    cursor: not-allowed;
    opacity: .52;
}

.settings-data-page :is(
    .aps-user-view,
    .aps-role-view,
    .aps-approve-view) {
    align-items: center;
    background: transparent;
    border: 0;
    border-radius: var(--md-radius-sm);
    color: var(--md-accent);
    cursor: pointer;
    display: inline-flex;
    font-size: 12px;
    font-weight: 700;
    gap: 5px;
    min-height: 32px;
    padding: 0 8px;
}

.settings-data-page :is(.aps-user-view, .aps-role-view, .aps-approve-view):hover {
    background: var(--md-accent-soft);
}

.settings-data-page :is(
    .aps-user-kebab-btn,
    .aps-role-kebab-btn,
    .aps-approve-kebab-btn) {
    background: var(--md-surface);
    border: 1px solid var(--md-border-strong);
    border-radius: var(--md-radius-sm);
    color: var(--md-muted);
    height: var(--md-control-height);
    width: var(--md-control-height);
}

.settings-data-page :is(
    .aps-user-kebab-btn,
    .aps-role-kebab-btn,
    .aps-approve-kebab-btn):hover {
    background: var(--md-surface-subtle);
    border-color: #aeb7c2;
    color: var(--md-text);
}

.settings-data-page button:focus-visible,
.settings-data-page a:focus-visible {
    outline: 3px solid rgba(37, 99, 235, .22);
    outline-offset: 2px;
}

.settings-data-page :is(
    .aps-user-table-scroll,
    .aps-role-table-scroll,
    .aps-approve-table-scroll) {
    overflow: auto;
    scrollbar-gutter: stable;
}

.settings-data-page :is(
    .aps-user-table,
    .aps-role-table,
    .aps-role-matrix,
    .aps-approve-table) {
    border-collapse: separate;
    border-spacing: 0;
    color: var(--md-text);
    font-size: 12px;
    width: 100%;
}

.settings-data-page :is(
    .aps-user-table,
    .aps-role-table,
    .aps-role-matrix,
    .aps-approve-table) thead th {
    background: #f3f5f7;
    border-bottom: 1px solid var(--md-border);
    color: #565f6b;
    font-size: 11px;
    font-weight: 750;
    letter-spacing: .015em;
    padding: 11px 12px;
    white-space: nowrap;
}

.settings-data-page :is(
    .aps-user-table,
    .aps-role-table,
    .aps-role-matrix,
    .aps-approve-table) tbody td {
    border-bottom: 1px solid #edf0f2;
    color: var(--md-text);
    padding: 10px 12px;
    vertical-align: middle;
}

.settings-data-page :is(
    .aps-user-table,
    .aps-role-table,
    .aps-role-matrix,
    .aps-approve-table) tbody tr:last-child td {
    border-bottom: 0;
}

.settings-data-page :is(
    .aps-user-table,
    .aps-role-table,
    .aps-role-matrix,
    .aps-approve-table) tbody tr:not(.aps-role-group-row):hover td {
    background: var(--md-surface-subtle);
}

.settings-data-page .aps-role-group-row td {
    background: #f3f5f7;
    border-bottom-color: var(--md-border);
    color: var(--md-muted);
}

.settings-data-page :is(
    .aps-user-empty,
    .aps-role-empty,
    .aps-approve-empty) {
    color: var(--md-muted);
    padding: 36px 20px !important;
    text-align: center;
}

.settings-data-page .aps-user-footer {
    background: var(--md-surface-subtle);
    border-top-color: var(--md-border);
    color: var(--md-muted);
    padding: 11px 12px;
}

.settings-data-page :is(
    .aps-user-detail-head,
    .aps-role-detail-head,
    .aps-approve-detail-head) {
    background: var(--md-surface-subtle);
    border-bottom: 1px solid var(--md-border);
    padding: 16px 20px;
}

.settings-data-page :is(
    .aps-user-detail-head,
    .aps-role-detail-head,
    .aps-approve-detail-head) h3 {
    color: var(--md-text);
    font-size: 15px;
    font-weight: 750;
    line-height: 1.35;
    margin: 0;
}

.settings-data-page :is(
    .aps-user-detail-head,
    .aps-role-detail-head,
    .aps-approve-detail-head) p {
    color: var(--md-muted);
    font-size: 12px;
    margin: 4px 0 0;
}

.settings-data-page :is(
    .aps-user-form-grid,
    .aps-role-edit-fields,
    .aps-approve-form-grid,
    .aps-approve-add-body) {
    gap: 18px 20px;
    padding: 20px;
}

.settings-data-page :is(.aps-user-field, .aps-role-field, .aps-approve-field) p {
    color: var(--md-text);
    font-size: 13px;
    margin: 0;
}

.settings-data-page :is(
    .aps-user-role-options label,
    .aps-approve-selected,
    .aps-approve-search-empty) {
    background: var(--md-surface-subtle);
    border: 1px solid var(--md-border);
    border-radius: var(--md-radius-sm);
}

.settings-data-page .aps-user-role-options label:hover {
    background: var(--md-accent-soft);
    border-color: #b7c9ec;
}

.settings-data-page :is(
    .aps-user-role-options input,
    .aps-user-radio-row input,
    .aps-role-radio-row input,
    .aps-role-matrix input,
    .aps-approve-radio-row input) {
    accent-color: var(--md-accent);
}

.settings-data-page .aps-role-stats {
    border-bottom-color: var(--md-border);
    gap: 18px 20px;
    padding: 20px;
}

.settings-data-page .aps-role-matrix-wrap {
    padding: 20px;
}

.settings-data-page .aps-role-section-title {
    color: var(--md-muted);
    font-weight: 700;
}

.settings-data-page :is(
    .aps-user-message,
    .aps-role-message,
    .aps-approve-message) {
    border: 1px solid var(--md-border);
    border-radius: var(--md-radius);
    font-size: 12px;
    line-height: 1.45;
    margin: 0;
    padding: 11px 14px;
}

.settings-data-page :is(
    .aps-user-message.ok,
    .aps-role-message.ok,
    .aps-approve-message.ok) {
    background: var(--md-success-soft);
    border-color: #bbf7d0;
    color: var(--md-success);
}

.settings-data-page :is(
    .aps-user-message.warn,
    .aps-role-message.warn,
    .aps-approve-message.warn) {
    background: var(--md-danger-soft);
    border-color: #fecdd3;
    color: var(--md-danger);
}

.settings-data-page .aps-approve-info {
    background: var(--md-accent-soft);
    border: 1px solid #bfdbfe;
    border-left: 4px solid var(--md-accent);
    border-radius: var(--md-radius);
    color: #1d4ed8;
    margin: 0;
    padding: 12px 14px;
}

.settings-data-page .aps-approve-search-list {
    background: var(--md-surface);
    border: 1px solid var(--md-border);
    border-radius: var(--md-radius-sm);
    box-shadow: 0 12px 30px rgba(16, 24, 40, .12);
}

.settings-data-page .aps-approve-search-list button:hover {
    background: var(--md-accent-soft);
}

.settings-data-page :is(
    .aps-user-menu,
    .aps-role-menu,
    .aps-approve-menu) {
    background: var(--md-surface);
    border: 1px solid var(--md-border);
    border-radius: var(--md-radius-sm);
}

@media (max-width: 960px) {
    .settings-data-page {
        gap: 14px;
    }

    .settings-data-page :is(.aps-user-filter, .aps-role-filter) {
        padding: 14px;
    }

    .settings-data-page :is(.aps-user-filter-row, .aps-role-filter-row) > label {
        flex: 1 1 180px;
        max-width: none;
    }
}

@media (max-width: 640px) {
    .settings-data-page :is(.aps-user-filter-row, .aps-role-filter-row) > label {
        flex-basis: 100%;
        min-width: 0;
        width: 100%;
    }

    .settings-data-page .aps-detail-workflow .aps-detail-toolbar {
        align-items: flex-start;
        flex-direction: row;
    }

    .settings-data-page .aps-detail-workflow .aps-detail-actions {
        flex: 1 1 220px;
        justify-content: flex-end;
    }

    .settings-data-page :is(
        .aps-user-form-grid,
        .aps-approve-form-grid) {
        grid-template-columns: 1fr;
        padding: 16px;
    }

    .settings-data-page .aps-user-role-picker {
        grid-column: auto;
    }

    .settings-data-page :is(
        .aps-role-edit-fields,
        .aps-role-matrix-wrap,
        .aps-approve-add-body,
        .aps-role-stats) {
        padding: 16px;
    }

    .settings-data-page .aps-role-stats {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 480px) {
    .settings-data-page .aps-detail-workflow .aps-detail-actions {
        flex-basis: 100%;
        justify-content: flex-end;
        margin-left: 0;
    }
}

@media (prefers-reduced-motion: reduce) {
    .settings-data-page *,
    .settings-data-page *::before,
    .settings-data-page *::after {
        scroll-behavior: auto !important;
        transition-duration: .01ms !important;
    }
}
