/*
 * QMS P1 visual foundation.
 * Loaded after the legacy stylesheet so the visual refresh remains isolated
 * and can be rolled back by removing a single asset reference.
 */

:root {
    --qms-canvas: #edf2f3;
    --qms-surface: rgba(255, 255, 255, 0.9);
    --qms-surface-strong: #ffffff;
    --qms-surface-muted: #f5f8f9;
    --qms-ink: #14262f;
    --qms-text: #2b3f48;
    --qms-muted: #64757d;
    --qms-line: #d2dde1;
    --qms-line-strong: #b7c8ce;
    --qms-primary: #1f7184;
    --qms-primary-strong: #15596a;
    --qms-primary-soft: #e4f1f3;
    --qms-success: #277858;
    --qms-success-soft: #e8f5ee;
    --qms-warning: #a8691e;
    --qms-warning-soft: #fff3df;
    --qms-danger: #b34b50;
    --qms-danger-soft: #fff0f0;
    --qms-info: #496f9a;
    --qms-info-soft: #edf3fa;
    --qms-neutral-soft: #eef2f4;
    --qms-radius: 7px;
    --qms-control-height: 40px;
    --qms-shadow-1: 0 1px 2px rgba(20, 38, 47, 0.05), 0 7px 22px rgba(20, 38, 47, 0.045);
    --qms-shadow-2: 0 14px 34px rgba(20, 38, 47, 0.1);
    --qms-focus: 0 0 0 3px rgba(58, 145, 161, 0.2);
    --qms-motion-fast: 140ms;
    --qms-motion-base: 220ms;

    /* Compatibility aliases used by the existing modules. */
    --bg: var(--qms-canvas);
    --panel: var(--qms-surface-strong);
    --text: var(--qms-ink);
    --muted: var(--qms-muted);
    --line: var(--qms-line);
    --blue: var(--qms-primary);
    --blue-dark: var(--qms-primary-strong);
    --blue-soft: var(--qms-primary-soft);
    --accent: var(--qms-primary);
    --accent-strong: var(--qms-primary-strong);
    --accent-soft: var(--qms-primary-soft);
}

.complaint-form-panel .form-section-title {
    margin-top: 24px;
}

.complaint-edit-table {
    min-width: 1180px;
}

.complaint-edit-table :is(input, select, textarea) {
    min-width: 108px;
}

.complaint-investigation-grid {
    display: grid;
    grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr);
    gap: 24px;
}

.complaint-detail-list {
    display: grid;
    grid-template-columns: minmax(110px, 0.28fr) minmax(0, 1fr);
    margin: 0;
}

.complaint-detail-list :is(dt, dd) {
    margin: 0;
    padding: 10px 0;
    border-bottom: 1px solid var(--line, #d8e2e5);
}

.complaint-detail-list dt {
    color: var(--muted, #60737b);
    font-weight: 700;
}

.complaint-attachment-groups {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
    gap: 12px;
}

.complaint-attachment-groups .attachment-group {
    min-width: 0;
}

.complaint-link-plan {
    margin-top: 14px;
}

@media (max-width: 900px) {
    .complaint-investigation-grid {
        grid-template-columns: 1fr;
    }

    .complaint-edit-table {
        min-width: 0;
    }
}

.qms-p1 {
    color: var(--qms-text);
    background: var(--qms-canvas);
}

.qms-p1:not(.login-body):not(.setup-body) {
    background:
        linear-gradient(180deg, #e8eff1 0, #f3f6f7 420px, #edf1f2 100%);
    background-attachment: fixed;
}

.qms-p1 a:focus-visible,
.qms-p1 button:focus-visible,
.qms-p1 summary:focus-visible,
.qms-p1 input:focus-visible,
.qms-p1 select:focus-visible,
.qms-p1 textarea:focus-visible {
    outline: 2px solid var(--qms-primary);
    outline-offset: 2px;
}

/* Header and workspace shell */
.qms-p1 .command-header {
    border-bottom: 1px solid rgba(151, 181, 190, 0.22);
    background: rgba(18, 32, 39, 0.97);
    box-shadow: 0 7px 22px rgba(13, 28, 35, 0.18);
}

.qms-p1 .command-topline {
    min-height: 62px;
    padding: 10px 24px;
}

.qms-p1 .brand {
    min-width: 0;
    gap: 11px;
}

.qms-p1 .brand-logo,
.qms-p1 .brand-mark {
    width: 36px;
    height: 36px;
    flex: 0 0 36px;
    border-radius: 6px;
}

.qms-p1 .brand-title {
    color: #f5f8f9;
    font-size: 16px;
    font-weight: 780;
    line-height: 1.25;
}

.qms-p1 .brand-subtitle {
    margin-top: 2px;
    color: #93aab3;
    font-size: 9px;
    letter-spacing: 0;
}

.qms-p1 .command-tools {
    gap: 10px;
}

.qms-p1 .command-search {
    width: clamp(260px, 30vw, 430px);
}

.qms-p1 .command-search input,
.qms-p1 .command-search button,
.qms-p1 .notification-trigger {
    min-height: 36px;
}

.qms-p1 .command-nav-row {
    min-height: 47px;
    padding: 0 24px;
    border-top-color: rgba(155, 183, 191, 0.16);
}

.qms-p1 .command-nav-row .nav > a,
.qms-p1 .command-nav-row .nav-accordion > summary {
    min-height: 46px;
    padding: 12px 16px;
    font-size: 14px;
    font-weight: 760;
}

.qms-p1 .command-nav-row .nav-menu {
    min-width: 190px;
    padding: 6px;
    border: 1px solid #31474f;
    border-radius: 6px;
    background: #17272e;
    box-shadow: 0 18px 40px rgba(7, 18, 23, 0.28);
}

.qms-p1 .command-nav-row .nav-menu a,
.qms-p1 .command-nav-row .nav-group a {
    min-height: 38px;
    padding: 9px 11px;
    border-radius: 4px;
    color: #dbe7ea;
}

.qms-p1 .command-nav-row .nav-menu a:hover,
.qms-p1 .command-nav-row .nav-menu a:focus-visible,
.qms-p1 .command-nav-row .nav-group a:hover,
.qms-p1 .command-nav-row .nav-group a:focus-visible {
    background: #243b44;
    color: #ffffff;
}

.qms-p1 .command-nav-row .nav-menu a.active,
.qms-p1 .command-nav-row .nav-group a.active {
    background: #e6f2f4;
    color: #15596a;
}

.qms-p1 .topbar {
    min-height: 78px;
    padding: 16px 24px;
    border-bottom: 1px solid rgba(186, 204, 210, 0.72);
    background: rgba(249, 251, 251, 0.9);
    -webkit-backdrop-filter: blur(12px) saturate(120%);
    backdrop-filter: blur(12px) saturate(120%);
}

.qms-p1 .topbar-title h1 {
    margin: 0 0 4px;
    color: var(--qms-ink);
    font-size: 22px;
    font-weight: 790;
}

.qms-p1 .topbar-title p {
    margin: 0;
    color: var(--qms-muted);
    font-size: 12px;
}

.qms-p1 .content {
    width: 100%;
    max-width: 1920px;
    margin: 0 auto;
    padding: 22px 24px 52px;
}

/* Surfaces, hierarchy and common controls */
.qms-p1 .panel,
.qms-p1 .metric-card,
.qms-p1 .command-kpi,
.qms-p1 .profile-identity-band,
.qms-p1 .profile-kpi-grid > div,
.qms-p1 .profile-kpi-grid > a,
.qms-p1 .notification-summary-grid > a {
    border: 1px solid var(--qms-line);
    border-radius: var(--qms-radius);
    background: var(--qms-surface);
    -webkit-backdrop-filter: blur(12px) saturate(118%);
    backdrop-filter: blur(12px) saturate(118%);
    box-shadow: var(--qms-shadow-1);
}

.qms-p1 .panel {
    margin-bottom: 16px;
    padding: 18px;
}

.qms-p1 .panel:hover {
    border-color: var(--qms-line-strong);
}

.qms-p1 .module-head,
.qms-p1 .command-section-head,
.qms-p1 .monthly-hours-editor-head {
    align-items: flex-start;
    gap: 18px;
    margin-bottom: 14px;
}

.qms-p1 .module-head::before,
.qms-p1 .dashboard-domain-head::before {
    left: -18px;
    width: 3px;
    background: var(--qms-primary);
}

.qms-p1 .module-head h2,
.qms-p1 .command-section-head h2,
.qms-p1 .monthly-hours-editor-head h2 {
    margin-bottom: 4px;
    color: var(--qms-ink);
    font-size: 17px;
    line-height: 1.35;
}

.qms-p1 .module-head p,
.qms-p1 .command-section-head p,
.qms-p1 .monthly-hours-editor-head p {
    margin-bottom: 0;
    color: var(--qms-muted);
    font-size: 12px;
    line-height: 1.55;
}

.qms-p1 .button:not(.button-link),
.qms-p1 button:not(.button-link):not(.workflow-port) {
    min-height: 38px;
    padding: 8px 14px;
    border-radius: 5px;
    background: var(--qms-primary);
    color: #ffffff;
    box-shadow: 0 1px 2px rgba(17, 76, 89, 0.14);
    font-weight: 730;
}

.qms-p1 .button:not(.button-link):hover,
.qms-p1 button:not(.button-link):not(.workflow-port):hover {
    background: var(--qms-primary-strong);
    box-shadow: 0 6px 14px rgba(17, 76, 89, 0.16);
    transform: translateY(-1px);
}

.qms-p1 .button.secondary,
.qms-p1 button.secondary {
    border-color: #c3d0d5;
    background: rgba(255, 255, 255, 0.92);
    color: #304951;
}

.qms-p1 .button.secondary:hover,
.qms-p1 button.secondary:hover {
    border-color: #93aeb7;
    background: #f1f7f8;
    color: var(--qms-primary-strong);
}

.qms-p1 .batch-record-review-actions button.secondary,
.qms-p1 .batch-record-manual-actions button.secondary {
    border-color: #9fb4bc;
    background: #ffffff;
    color: #355a66;
}

.qms-p1 .batch-record-review-actions button.secondary:hover,
.qms-p1 .batch-record-manual-actions button.secondary:hover {
    border-color: #7799a4;
    background: #eef4f5;
    color: #183f4c;
}

.qms-p1 .button.danger,
.qms-p1 button.danger,
.qms-p1 .danger-button {
    border-color: var(--qms-danger);
    color: #ffffff;
    background: var(--qms-danger);
}

.qms-p1 .button.danger:hover,
.qms-p1 button.danger:hover,
.qms-p1 .danger-button:hover {
    border-color: #913d42;
    color: #ffffff;
    background: #913d42;
}

.qms-p1 .warning-button {
    border-color: #d5a660;
    color: #774814;
    background: var(--qms-warning-soft);
}

.qms-p1 .warning-button:hover {
    border-color: var(--qms-warning);
    color: #ffffff;
    background: var(--qms-warning);
}

.qms-p1 .tabs,
.qms-p1 .tab-row,
.qms-p1 .module-tabs {
    gap: 5px;
    margin-bottom: 16px;
}

.qms-p1 .tabs a,
.qms-p1 .tab-row a,
.qms-p1 .module-tabs a {
    min-height: 36px;
    padding: 8px 12px;
    border-color: transparent;
    border-radius: 5px;
    color: #54666e;
    background: rgba(255, 255, 255, 0.55);
}

.qms-p1 .tabs a:hover,
.qms-p1 .tab-row a:hover,
.qms-p1 .module-tabs a:hover {
    border-color: #bed0d5;
    background: rgba(255, 255, 255, 0.9);
    color: var(--qms-primary-strong);
}

.qms-p1 .tabs a.active,
.qms-p1 .tab-row a.active,
.qms-p1 .module-tabs a.active {
    border-color: #8fb7c1;
    background: var(--qms-primary-soft);
    color: var(--qms-primary-strong);
    box-shadow: inset 0 -2px 0 var(--qms-primary);
}

/* KPI cards and feedback states */
.qms-p1 .metric-grid,
.qms-p1 .record-summary-grid,
.qms-p1 .workflow-metric-grid,
.qms-p1 .cause-metric-grid,
.qms-p1 .qa-cause-domain-metrics,
.qms-p1 .qc-domain-metrics {
    gap: 12px;
}

.qms-p1 .metric-card,
.qms-p1 .command-kpi {
    min-height: 104px;
    padding: 15px 16px;
}

.qms-p1 .metric-card::before,
.qms-p1 .command-kpi::before,
.qms-p1 .metric-card::after,
.qms-p1 .command-kpi::after {
    height: 3px;
    background: var(--qms-primary);
}

.qms-p1 .metric-card strong,
.qms-p1 .command-kpi strong {
    color: var(--qms-ink);
    font-size: clamp(25px, 2vw, 31px);
    font-variant-numeric: tabular-nums;
}

.qms-p1 .metric-card span,
.qms-p1 .metric-card small,
.qms-p1 .command-kpi span,
.qms-p1 .command-kpi small {
    color: var(--qms-muted);
}

.qms-p1 .flash,
.qms-p1 .notice-banner,
.qms-p1 .license-banner {
    width: min(calc(100% - 48px), 1872px);
    margin-right: auto;
    margin-left: auto;
    border-radius: var(--qms-radius);
    box-shadow: var(--qms-shadow-1);
}

.qms-p1 .empty-cell,
.qms-p1 .empty-state {
    padding: 28px 18px;
    color: var(--qms-muted);
    text-align: center;
}

.qms-p1 .status-chip,
.qms-p1 .module-chip,
.qms-p1 .notification-level-chip,
.qms-p1 .record-flag,
.qms-p1 .role-badge,
.qms-p1 .major-badge {
    min-height: 24px;
    padding: 3px 7px;
    border: 1px solid #d2dce0;
    border-radius: 4px;
    color: #50626a;
    background: var(--qms-neutral-soft);
    box-shadow: none;
    font-size: 11px;
    font-weight: 760;
    line-height: 1.35;
}

.qms-p1 .status-chip.success-chip {
    border-color: #b9ddca;
    color: var(--qms-success);
    background: var(--qms-success-soft);
}

.qms-p1 .status-chip.warning-chip,
.qms-p1 .major-badge {
    border-color: #ead2a9;
    color: var(--qms-warning);
    background: var(--qms-warning-soft);
}

.qms-p1 .status-chip.danger-chip {
    border-color: #e7bfc1;
    color: var(--qms-danger);
    background: var(--qms-danger-soft);
}

.qms-p1 .status-chip.info-chip {
    border-color: #c8d8e8;
    color: var(--qms-info);
    background: var(--qms-info-soft);
}

/* Forms and filters */
.qms-p1 .form,
.qms-p1 .settings-disclosure-body {
    gap: 16px;
}

.qms-p1 .form-grid {
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 14px;
}

.qms-p1 .filter-bar,
.qms-p1 .filter-grid {
    grid-template-columns: repeat(auto-fit, minmax(min(100%, 164px), 1fr));
    align-items: end;
    gap: 12px;
}

.qms-p1 .form-grid > label,
.qms-p1 .filter-bar > label,
.qms-p1 .filter-grid > label,
.qms-p1 .form > label {
    display: grid;
    min-width: 0;
    align-content: start;
    gap: 6px;
    color: #4d616a;
    font-size: 12px;
    font-weight: 690;
    line-height: 1.35;
}

.qms-p1 input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]):not([type="button"]):not([type="submit"]),
.qms-p1 select,
.qms-p1 textarea,
.qms-p1 .read-only-field {
    width: 100%;
    min-width: 0;
    min-height: var(--qms-control-height);
    padding: 8px 10px;
    border: 1px solid #c4d0d5;
    border-radius: 5px;
    color: var(--qms-text);
    background: rgba(255, 255, 255, 0.96);
    box-shadow: inset 0 1px 1px rgba(20, 38, 47, 0.025);
    font: inherit;
    font-weight: 500;
}

.qms-p1 textarea {
    min-height: 88px;
    resize: vertical;
    line-height: 1.55;
}

.qms-p1 input:hover,
.qms-p1 select:hover,
.qms-p1 textarea:hover {
    border-color: #97afb7;
}

.qms-p1 input:focus,
.qms-p1 select:focus,
.qms-p1 textarea:focus {
    outline: 0;
    border-color: #4d94a5;
    box-shadow: var(--qms-focus);
}

.qms-p1 input:disabled,
.qms-p1 select:disabled,
.qms-p1 textarea:disabled,
.qms-p1 .read-only-field {
    border-color: #d7e0e3;
    color: #52656d;
    background: #f0f4f5;
}

.qms-p1 [aria-invalid="true"],
.qms-p1 .field-error input,
.qms-p1 .field-error select,
.qms-p1 .field-error textarea {
    border-color: var(--qms-danger);
    background: #fffafa;
    box-shadow: 0 0 0 3px rgba(179, 75, 80, 0.12);
}

.qms-p1 label:has(> :required) {
    position: relative;
}

.qms-p1 label:has(> :required)::after {
    position: absolute;
    top: 0;
    right: 1px;
    color: var(--qms-danger);
    content: " *";
    font-weight: 800;
    pointer-events: none;
}

.qms-p1 .form-section-title {
    margin-top: 10px;
    padding: 9px 11px;
    border-left: 3px solid var(--qms-primary);
    border-radius: 3px;
    color: #224c58;
    background: #eaf3f4;
    font-size: 13px;
    font-weight: 780;
}

.qms-p1 .form-actions {
    gap: 8px;
    padding-top: 4px;
}

/* Operational tables */
.qms-p1 .table-wrap,
.qms-p1 .table-scroll-region {
    border: 1px solid #d7e1e4;
    border-radius: 6px;
    background: rgba(255, 255, 255, 0.82);
}

.qms-p1 .data-table {
    color: var(--qms-text);
    font-size: 12px;
}

.qms-p1 .data-table th,
.qms-p1 .data-table td {
    height: 46px;
    min-width: 72px;
    padding: 8px 9px;
    border-bottom-color: #dbe3e6;
    vertical-align: middle;
    line-height: 1.4;
}

.qms-p1 .data-table th,
.qms-p1 .data-table thead th {
    color: #52666e;
    background: #edf3f4;
    font-size: 11px;
    font-weight: 780;
}

.qms-p1 .data-table tbody tr:nth-child(even):not(.row-warning):not(.row-danger):not(.row-marked) td {
    background: rgba(248, 250, 250, 0.88);
}

.qms-p1 .data-table tbody tr:not(.row-warning):not(.row-danger):not(.row-marked):hover td {
    background: #eaf3f4;
}

.qms-p1 .data-table .qms-col-compact {
    width: 48px;
    min-width: 48px;
}

.qms-p1 .data-table .qms-col-date {
    width: 102px;
    min-width: 94px;
}

.qms-p1 .data-table .qms-col-number {
    width: 92px;
    min-width: 82px;
}

.qms-p1 .data-table .qms-col-status {
    width: 88px;
    min-width: 78px;
    max-width: 104px;
}

.qms-p1 .data-table .qms-col-owner {
    width: 116px;
    min-width: 98px;
    max-width: 150px;
}

.qms-p1 .data-table .qms-col-person {
    width: 102px;
    min-width: 88px;
    max-width: 124px;
}

.qms-p1 .data-table .qms-col-copy {
    width: 184px;
    min-width: 150px;
    max-width: 260px;
}

.qms-p1 .data-table .qms-col-name {
    width: 174px;
    min-width: 146px;
}

.qms-p1 .data-table .qms-col-actions {
    width: 116px;
    min-width: 104px;
    max-width: 132px;
}

.qms-p1 .data-table td.table-actions > a,
.qms-p1 .data-table td.table-actions > form,
.qms-p1 .data-table td.table-actions > span {
    margin: 2px 7px 2px 0;
}

.qms-p1 .qms-table-density-toolbar {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 10px;
    margin: 0 0 8px;
}

.qms-p1 .qms-table-density-toolbar span {
    color: var(--qms-muted);
    font-size: 11px;
}

.qms-p1 .qms-table-density-toggle {
    min-height: 32px !important;
    padding: 5px 10px !important;
    font-size: 11px;
}

@media (min-width: 901px) {
    .qms-p1 .qms-density-table:not(.is-density-expanded) .qms-secondary-column {
        display: none;
    }
}

.qms-p1 .data-table.qms-wide-table .qms-col-actions {
    background: rgba(255, 255, 255, 0.97);
    box-shadow: -1px 0 0 #d5dfe3, -10px 0 18px rgba(26, 49, 58, 0.075);
}

.qms-p1 .data-table.qms-wide-table thead .qms-col-actions,
.qms-p1 .data-table.qms-wide-table thead .qms-key-column {
    background: #e8eff1;
}

.qms-p1 .qms-floating-table-head {
    border-color: #b9c9ce;
    background: rgba(237, 243, 244, 0.98);
    box-shadow: 0 9px 22px rgba(20, 38, 47, 0.14);
}

.qms-p1 .qms-table-scroll-host.has-overflow::after {
    border-color: #c0d0d5;
    color: #536971;
    background: rgba(255, 255, 255, 0.95);
}

.qms-p1 .pagination {
    align-items: center;
    gap: 5px;
    margin-top: 14px;
}

.qms-p1 .pagination a,
.qms-p1 .pagination span {
    min-width: 34px;
    min-height: 34px;
    border-radius: 4px;
}

/* Login keeps the same brand but uses the shared foundation. */
.qms-p1.login-body,
.qms-p1.setup-body {
    background: #eaf0f2;
}

.qms-p1 .login-card,
.qms-p1 .setup-card {
    border-color: #c7d5da;
    border-radius: 8px;
    background: rgba(255, 255, 255, 0.94);
    box-shadow: 0 24px 60px rgba(20, 38, 47, 0.15);
}

@media (max-width: 1180px) {
    .qms-p1 .form-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .qms-p1 .command-search {
        width: clamp(220px, 28vw, 340px);
    }
}

@media (max-width: 900px) {
    .qms-p1 .command-header {
        -webkit-backdrop-filter: none;
        backdrop-filter: none;
    }

    .qms-p1 .command-topline {
        min-height: 62px;
        padding: calc(9px + env(safe-area-inset-top)) 14px 9px;
    }

    .qms-p1 .command-nav-row {
        min-height: 44px;
        padding: 5px 14px 7px;
    }

    .qms-p1 .command-nav-row .nav {
        top: var(--qms-mobile-header-offset, 106px);
        width: min(88vw, 350px);
        height: calc(100dvh - var(--qms-mobile-header-offset, 106px));
        max-height: calc(100dvh - var(--qms-mobile-header-offset, 106px));
        padding: 12px;
        overflow-y: auto;
    }

    .qms-p1 .profile-side-rail {
        top: var(--qms-mobile-header-offset, 106px);
    }

    .qms-p1 .profile-drawer-backdrop:not([hidden]) {
        inset: var(--qms-mobile-header-offset, 106px) 0 0;
    }

    .qms-p1 .command-nav-row .nav > a,
    .qms-p1 .command-nav-row .nav-accordion > summary {
        min-height: 43px;
        padding: 11px 12px;
    }

    .qms-p1 .command-nav-row .nav-menu {
        min-width: 0;
        padding: 4px 0 8px 12px;
        border: 0;
        background: transparent;
        box-shadow: none;
    }

    .qms-p1 .topbar {
        min-height: 70px;
        padding: 13px 16px;
    }

    .qms-p1 .content {
        padding: 16px 14px 40px;
    }

    .qms-p1 .qms-table-density-toolbar {
        display: none;
    }

    .qms-p1 .flash,
    .qms-p1 .notice-banner,
    .qms-p1 .license-banner {
        width: calc(100% - 28px);
    }
}

@media (max-width: 680px) {
    .qms-p1 .brand-subtitle,
    .qms-p1 .command-search,
    .qms-p1 .command-tools .user-menu {
        display: none;
    }

    .qms-p1 .brand-title {
        max-width: 190px;
        overflow: hidden;
        text-overflow: ellipsis;
        white-space: nowrap;
    }

    .qms-p1 .topbar {
        align-items: flex-start;
        gap: 10px;
    }

    .qms-p1 .topbar-title h1 {
        font-size: 20px;
    }

    .qms-p1 .panel {
        margin-bottom: 12px;
        padding: 14px;
    }

    .qms-p1 .module-head,
    .qms-p1 .command-section-head,
    .qms-p1 .monthly-hours-editor-head {
        flex-direction: column;
        align-items: stretch;
        gap: 10px;
    }

    .qms-p1 .module-actions {
        width: 100%;
        overflow-x: auto;
        flex-wrap: nowrap;
        scrollbar-width: none;
    }

    .qms-p1 .module-actions::-webkit-scrollbar {
        display: none;
    }

    .qms-p1 .module-actions .button {
        flex: 0 0 auto;
    }

    .qms-p1 .form-actions {
        width: 100%;
        overflow: visible;
        flex-wrap: wrap;
    }

    .qms-p1 .form-actions .button,
    .qms-p1 .form-actions > button {
        flex: 0 1 auto;
    }

    .qms-p1 .form-grid,
    .qms-p1 .filter-bar,
    .qms-p1 .filter-grid {
        grid-template-columns: 1fr;
    }

    .qms-p1 .metric-card,
    .qms-p1 .command-kpi {
        min-height: 92px;
        padding: 13px 14px;
    }

    .qms-p1 .data-table th,
    .qms-p1 .data-table td {
        height: 44px;
        padding: 8px;
        font-size: 12px;
    }

    .qms-p1 .data-table .button-link,
    .qms-p1 .data-table td.table-actions > a,
    .qms-p1 .data-table td.table-actions > button,
    .qms-p1 .data-table td.table-actions > form > button {
        display: inline-flex;
        min-width: 32px;
        min-height: 32px;
        align-items: center;
        justify-content: center;
        padding: 6px 7px;
        line-height: 1.25;
    }

    .qms-p1 .qms-table-scroll-host.has-overflow::after {
        content: "左右滑动";
    }
}

@media (prefers-reduced-motion: reduce) {
    .qms-p1 *,
    .qms-p1 *::before,
    .qms-p1 *::after {
        scroll-behavior: auto !important;
        animation-duration: 0.01ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: 0.01ms !important;
    }
}

/* Mobile operational editing: dense tables become field cards instead of clipping controls. */
.qms-p1 .brand-home {
    display: inline-flex;
    flex: 0 0 auto;
    color: inherit;
}

.qms-p1 .brand-copy {
    min-width: 0;
}

.qms-p1 .brand-title,
.qms-p1 .brand-subtitle {
    display: block;
    text-decoration: none;
}

.qms-p1 .brand-title:hover,
.qms-p1 .brand-title:focus-visible {
    color: #ffffff;
}

.qms-p1 .brand-subtitle:hover,
.qms-p1 .brand-subtitle:focus-visible {
    color: #d6f2f6;
    text-decoration: underline;
}

.qms-p1 .table-wrap,
.qms-p1 .table-scroll-region {
    -webkit-overflow-scrolling: touch;
    touch-action: pan-x pan-y;
}

@media (max-width: 680px) {
    .qms-p1 .brand-subtitle {
        display: block;
        max-width: 190px;
        overflow: hidden;
        color: #b7c8ce;
        font-size: 10px;
        line-height: 1.35;
        text-overflow: ellipsis;
        white-space: nowrap;
    }

    .qms-p1 .release-notes-trigger {
        display: none;
    }

    .qms-p1 .form:not(.filter-bar) .form-actions:last-child {
        position: sticky;
        right: 0;
        bottom: 0;
        left: 0;
        z-index: 10;
        margin-top: 18px;
        padding: 12px 0 calc(12px + env(safe-area-inset-bottom));
        border-top: 1px solid #d5e0e3;
        background: linear-gradient(180deg, rgba(249, 252, 252, 0.9), rgba(249, 252, 252, 0.99));
        box-shadow: 0 -10px 20px rgba(31, 55, 64, 0.08);
    }

    .qms-p1 .form:not(.filter-bar) > .form-actions:last-child > .button,
    .qms-p1 .form:not(.filter-bar) > .form-actions:last-child > button {
        min-height: 44px;
    }

    .qms-p1 .data-table.qms-edit-table,
    .qms-p1 .data-table.qms-edit-table.qms-wide-table,
    .qms-p1 .data-table.qms-adaptive-list,
    .qms-p1 .data-table.qms-adaptive-list.qms-wide-table {
        display: block;
        width: 100%;
        min-width: 0 !important;
        table-layout: auto;
    }

    .qms-p1 .data-table.qms-edit-table thead,
    .qms-p1 .data-table.qms-adaptive-list thead {
        position: absolute;
        width: 1px;
        height: 1px;
        overflow: hidden;
        clip: rect(0 0 0 0);
        clip-path: inset(50%);
        white-space: nowrap;
    }

    .qms-p1 .data-table.qms-edit-table tbody,
    .qms-p1 .data-table.qms-edit-table tr,
    .qms-p1 .data-table.qms-adaptive-list tbody,
    .qms-p1 .data-table.qms-adaptive-list tr {
        display: block;
        width: 100%;
    }

    .qms-p1 .data-table.qms-edit-table tr,
    .qms-p1 .data-table.qms-adaptive-list tr {
        margin: 0 0 10px;
        padding: 5px 12px;
        border: 1px solid #d8e2e5;
        border-radius: 6px;
        background: #ffffff;
        box-shadow: 0 2px 7px rgba(21, 45, 54, 0.05);
    }

    .qms-p1 .data-table.qms-edit-table td,
    .qms-p1 .data-table.qms-adaptive-list td {
        display: grid;
        grid-template-columns: minmax(84px, 0.72fr) minmax(0, 1.28fr);
        width: 100%;
        min-width: 0 !important;
        max-width: none;
        min-height: 42px;
        height: auto;
        padding: 9px 0;
        border: 0;
        border-bottom: 1px solid #edf1f2;
        background: transparent !important;
        gap: 10px;
        align-items: start;
        text-align: left;
    }

    .qms-p1 .data-table.qms-edit-table td:last-child,
    .qms-p1 .data-table.qms-adaptive-list td:last-child {
        border-bottom: 0;
    }

    .qms-p1 .data-table.qms-edit-table td::before,
    .qms-p1 .data-table.qms-adaptive-list td::before {
        min-width: 0;
        color: #60737b;
        content: attr(data-qms-column-label);
        font-size: 11px;
        font-weight: 760;
        line-height: 1.45;
    }

    .qms-p1 .data-table.qms-edit-table td[colspan],
    .qms-p1 .data-table.qms-adaptive-list td[colspan] {
        display: block;
        text-align: center;
    }

    .qms-p1 .data-table.qms-edit-table td[colspan]::before,
    .qms-p1 .data-table.qms-adaptive-list td[colspan]::before {
        display: none;
    }

    .qms-p1 .data-table.qms-edit-table td > :is(input, select, textarea, .button-link, .check-row),
    .qms-p1 .data-table.qms-adaptive-list td > :is(input, select, textarea, .button-link, .check-row) {
        min-width: 0;
        max-width: 100%;
    }

    .qms-p1 .data-table.qms-edit-table .qms-col-name,
    .qms-p1 .data-table.qms-edit-table .qms-col-actions,
    .qms-p1 .data-table.qms-edit-table .qms-col-copy,
    .qms-p1 .data-table.qms-edit-table .qms-col-owner,
    .qms-p1 .data-table.qms-adaptive-list .qms-col-name,
    .qms-p1 .data-table.qms-adaptive-list .qms-col-actions,
    .qms-p1 .data-table.qms-adaptive-list .qms-col-copy,
    .qms-p1 .data-table.qms-adaptive-list .qms-col-owner {
        width: 100%;
        min-width: 0;
        max-width: none;
    }

    .qms-p1 .data-table.qms-edit-table .button-link,
    .qms-p1 .data-table.qms-adaptive-list .button-link {
        justify-self: start;
        min-height: 38px;
        padding: 8px 10px;
    }

}
.qms-p1 .batch-record-trend-form {
    grid-template-columns: minmax(180px, 240px) max-content minmax(280px, 1fr);
    align-items: end;
}

.qms-p1 .batch-record-trend-form .filter-summary {
    align-self: center;
    color: var(--muted, #60727a);
    line-height: 1.55;
}

@media (max-width: 760px) {
    .qms-p1 .batch-record-trend-form {
        grid-template-columns: 1fr;
    }

    .qms-p1 .batch-record-trend-form button {
        width: 100%;
    }
}
