
/* AG Grid owns its own horizontal scrolling. Prevent the former jqGrid wrapper
   from adding a second page-level scrollbar around every grid. */
.grid-scroll {
    overflow: visible;
}

.ag-theme-picker {
    display: inline-grid;
    grid-template-columns: auto minmax(138px, 1fr);
    align-items: center;
    gap: 7px;
    color: #444;
    font-size: 13px;
    white-space: nowrap;
}

.ag-theme-picker span {
    font-weight: 600;
}

.ag-theme-picker select {
    min-height: 32px;
    padding: 4px 28px 4px 8px;
    border: 1px solid #9fc4e5;
    border-radius: 4px;
    color: #202020;
    background: #fff;
    font: inherit;
    cursor: pointer;
}

.ag-theme-picker select:focus {
    outline: 2px solid rgb(8 118 201 / 25%);
    border-color: #0876c9;
}

@media (max-width: 900px) {
    .ag-theme-picker {
        grid-template-columns: 1fr;
        gap: 2px;
    }

    .ag-theme-picker span {
        font-size: 11px;
    }
}

/* Shared AG Grid Enterprise presentation for every SHE Online grid. */
.efiles-ag-grid {
    width: 100%;
    min-width: 340px;
    min-height: 292px;
    border: 0;
    resize: both;
    overflow: hidden;
}

.efiles-ag-grid .ag-root-wrapper {
    width: 100%;
    height: 100%;
    border: 0;
    border-radius: 0;
}

.efiles-ag-grid .ag-header-cell,
.efiles-ag-grid .ag-header-group-cell {
    font-weight: 600;
}

.efiles-ag-grid .ag-header-cell-label {
    justify-content: center;
}

.efiles-ag-grid .ag-floating-filter-input input,
.efiles-ag-grid .ag-floating-filter-input select,
.efiles-ag-grid .ag-input-field-input {
    min-height: 26px;
    border-radius: 3px;
}

.efiles-ag-grid .ag-cell {
    display: flex;
    align-items: center;
    line-height: 1.25;
}

.efiles-ag-grid .ag-paging-panel {
    min-height: 38px;
}

.efiles-ag-grid .ag-paging-page-size select {
    min-height: 28px;
}

.efiles-ag-grid .ag-cell a {
    color: var(--ag-accent-color, #0b6bd3);
    text-decoration: underline;
}

.efiles-ag-cell-content {
    display: inline-flex;
    width: 100%;
    min-width: 0;
    align-items: center;
}

.efiles-ag-cell-content > button,
.efiles-ag-cell-content > input[type="button"] {
    margin: 0 auto;
}

.efiles-ag-toolbar {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 7px;
    min-height: 43px;
    padding: 7px 9px;
    border-bottom: 1px solid #a9ccec;
    background: #f8fbfe;
}

.efiles-ag-button,
.row-edit-button,
.link-toggle + label,
.she-select-actual,
.she-upload-files,
.she-edit-resource,
.she-add-followup {
    min-height: 29px;
    padding: 4px 10px;
    border: 1px solid #0876c9;
    border-radius: 4px;
    color: #075e9d;
    background: #fff;
    font: inherit;
    font-weight: 600;
    cursor: pointer;
}

.efiles-ag-button:hover:not(:disabled),
.row-edit-button:hover:not(:disabled),
.she-select-actual:hover,
.she-upload-files:hover,
.she-edit-resource:hover,
.she-add-followup:hover {
    color: #fff;
    background: #0876c9;
}

.efiles-ag-button:disabled {
    opacity: .48;
    cursor: not-allowed;
}

/* Inactive linked child records keep their row Edit control visible for context,
   but it is unmistakably disabled and cannot be clicked. */
.row-edit-button:disabled,
.row-edit-button.is-disabled {
    color: #6b7280 !important;
    border-color: #cbd5e1 !important;
    background: #e5e7eb !important;
    opacity: 1;
    cursor: not-allowed;
    box-shadow: none;
    pointer-events: none;
}

.row-edit-button:disabled:hover,
.row-edit-button.is-disabled:hover {
    color: #6b7280 !important;
    border-color: #cbd5e1 !important;
    background: #e5e7eb !important;
}

.efiles-ag-button.is-primary,
.row-edit-button,
.she-select-actual,
.she-upload-files,
.she-edit-resource,
.she-add-followup {
    color: #fff;
    background: #0876c9;
}

.efiles-ag-button.is-danger {
    color: #a71d2a;
    border-color: #c83b49;
}

.efiles-ag-button.is-danger:hover:not(:disabled) {
    color: #fff;
    background: #c83b49;
}

.efiles-ag-button.is-success {
    color: #087b3f;
    border-color: #159556;
}

.efiles-ag-button.is-success:hover:not(:disabled) {
    color: #fff;
    background: #159556;
}

.efiles-ag-quick-search {
    flex: 1 1 220px;
    min-width: 180px;
    min-height: 30px;
    margin-left: auto;
    padding: 4px 8px;
    border: 1px solid #9fc4e5;
    border-radius: 4px;
    font: inherit;
}

.efiles-resizable-grid {
    position: relative;
}


.link-toggle {
    width: 18px;
    height: 18px;
    margin: auto;
    accent-color: #0876c9;
    cursor: pointer;
}

.bool-yes { color: #087b3f; font-weight: 600; }
.bool-no { color: #7a2d2d; }

.dashboard-red .ag-cell,
.ag-row.dashboard-red:not(.ag-row-selected) .ag-cell { background: #ffb5b5 !important; }
.dashboard-yellow .ag-cell,
.ag-row.dashboard-yellow:not(.ag-row-selected) .ag-cell { background: #fff2a8 !important; }
.dashboard-green .ag-cell,
.ag-row.dashboard-green:not(.ag-row-selected) .ag-cell { background: #c7f1c7 !important; }

.efiles-ag-dialog {
    width: min(860px, calc(100% - 28px));
    max-height: calc(100vh - 36px);
    padding: 0;
    overflow: hidden;
    border: 1px solid #8fb9de;
    border-radius: 8px;
    box-shadow: 0 16px 52px rgb(0 0 0 / 28%);
}

.efiles-ag-dialog::backdrop {
    background: rgb(0 0 0 / 38%);
}

.efiles-ag-dialog form {
    display: grid;
    max-height: calc(100vh - 38px);
    grid-template-rows: auto auto minmax(0, 1fr) auto;
}

.efiles-ag-dialog-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 14px;
    padding: 11px 14px;
    color: #075e9d;
    background: linear-gradient(#eef8ff, #ddecfa);
    border-bottom: 1px solid #a9ccec;
}

.efiles-ag-dialog-header h3 { margin: 0; font-size: 18px; }

.efiles-ag-dialog-close {
    width: 32px;
    height: 32px;
    border: 0;
    border-radius: 50%;
    background: transparent;
    font-size: 24px;
    cursor: pointer;
}

.efiles-ag-dialog-message {
    margin: 10px 14px 0;
    padding: 9px 11px;
    color: #8c1721;
    border: 1px solid #e7a9af;
    border-radius: 4px;
    background: #fff1f2;
}

.efiles-ag-form-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
    padding: 14px;
    overflow: auto;
}

.efiles-ag-form-field {
    display: grid;
    align-content: start;
    gap: 5px;
    min-width: 0;
    font-size: 12px;
    font-weight: 600;
}

.efiles-ag-form-field.is-wide { grid-column: 1 / -1; }

.efiles-ag-form-control {
    width: 100%;
    min-height: 34px;
    padding: 6px 8px;
    border: 1px solid #9fc4e5;
    border-radius: 4px;
    background: #fff;
    font: inherit;
    font-weight: 400;
}

textarea.efiles-ag-form-control { min-height: 90px; resize: vertical; }
input[type="checkbox"].efiles-ag-form-control { width: 20px; min-height: 20px; }

.efiles-ag-dialog-buttons {
    display: flex;
    justify-content: flex-end;
    gap: 8px;
    padding: 10px 14px;
    border-top: 1px solid #c7ddef;
    background: #f8fbfe;
}

.efiles-ag-dialog-buttons button {
    min-height: 34px;
    padding: 6px 15px;
    border: 1px solid #8aaecb;
    border-radius: 4px;
    background: #fff;
    cursor: pointer;
}

.efiles-ag-dialog-buttons .is-primary {
    color: #fff;
    border-color: #0876c9;
    background: #0876c9;
}

.ag-dashboard-summary {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 14px;
    margin: 0 0 24px;
}

.ag-chart-card {
    min-width: 0;
    padding: 12px;
    border: 1px solid #a9ccec;
    border-radius: 6px;
    background: #fff;
}

.ag-chart-card h3 {
    margin: 0 0 8px;
    color: #075e9d;
    font-size: 15px;
}

.ag-chart-host { width: 100%; height: 300px; }
.ag-chart-card.is-wide { grid-column: span 2; }

@media (max-width: 900px) {
    .ag-dashboard-summary { grid-template-columns: 1fr; }
    .ag-chart-card.is-wide { grid-column: auto; }
    .efiles-ag-form-grid { grid-template-columns: 1fr; }
    .efiles-ag-form-field.is-wide { grid-column: auto; }
}

.efiles-ag-empty {
    display: inline-block;
    padding: 12px 16px;
    color: #5e6b75;
    font-weight: 600;
}

/* ========================================================================== 
   Professional page shell – consistent presentation for all AG Grid pages.
   1. Frameless grid sections for ordinary administration pages.
   2. Clear parent/child selection context without heavy blue title cards.
   3. Consistent centred dialogs with scrollable bodies and fixed action footers.
   ========================================================================== */

.page-heading {
    margin-bottom: 12px;
    padding-bottom: 14px;
    border-bottom: 1px solid #e3e8ee;
}

.page-heading h1 {
    color: #17212b;
    font-size: clamp(23px, 2vw, 29px);
    font-weight: 650;
    letter-spacing: -.015em;
}

.page-heading p {
    max-width: 900px;
    color: #62707d;
    line-height: 1.55;
}

.efiles-page-selection {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px;
    margin: 0 0 22px;
    padding: 9px 12px;
    border-left: 3px solid var(--ag-accent-color, #0876c9);
    border-radius: 0 5px 5px 0;
    color: #3f4b56;
    background: #f6f8fa;
    font-size: 12px;
}

.efiles-page-selection[hidden] { display: none; }

.efiles-page-selection span {
    color: #6a7681;
    font-weight: 600;
}

.efiles-page-selection strong {
    color: #202b35;
    font-weight: 650;
}

/* Frameless grid section: AG Grid becomes the visual component rather than
   being placed inside another competing blue card. */
.grid-panel.efiles-grid-section {
    margin: 0 0 30px;
    overflow: visible;
    border: 0;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
}

.efiles-grid-section-header {
    display: flex;
    align-items: end;
    justify-content: space-between;
    gap: 12px;
    margin: 0 0 8px;
    padding: 0 1px;
}

.efiles-grid-sync-button {
    flex: 0 0 auto;
    min-height: 34px;
    padding: 6px 13px;
    border: 1px solid #18794e;
    border-radius: 5px;
    background: #ffffff;
    color: #0f6b43;
    font-weight: 650;
    cursor: pointer;
}

.efiles-grid-sync-button:hover:not(:disabled) {
    background: #effaf4;
}

.efiles-grid-sync-button:disabled {
    opacity: .65;
    cursor: wait;
}

.grid-panel.efiles-grid-section .efiles-grid-section-header h2 {
    margin: 0;
    padding: 0;
    color: #1f2933;
    background: transparent;
    border: 0;
    text-align: left;
    font-size: 17px;
    font-weight: 650;
    line-height: 1.3;
}

.efiles-grid-context {
    margin: 3px 0 0;
    color: #697681;
    font-size: 12px;
    line-height: 1.45;
}

.efiles-grid-context[hidden] { display: none; }

.grid-panel.efiles-grid-section .grid-scroll {
    overflow: hidden;
    border: 1px solid #d7dee6;
    border-radius: 8px;
    background: #fff;
    box-shadow: 0 1px 2px rgb(16 24 40 / 5%);
}

.grid-panel.efiles-grid-section .efiles-ag-toolbar {
    border-bottom-color: #e0e6ec;
    background: #fff;
}

.grid-panel.efiles-grid-section .efiles-ag-grid .ag-root-wrapper {
    border: 0;
    border-radius: 0;
}

/* Forms and special operational panels remain separated, but use restrained
   flat cards instead of gradient title bars. */
.grid-panel.upload-panel,
.user-editor-panel,
.resource-context-panel,
.dashboard-filter {
    margin: 0 0 26px;
    overflow: visible;
    border: 1px solid #dfe5eb;
    border-radius: 8px;
    background: #fff;
    box-shadow: 0 1px 2px rgb(16 24 40 / 4%);
}

.grid-panel.upload-panel > h2,
.user-editor-panel > h2 {
    margin: 0;
    padding: 13px 15px 0;
    color: #1f2933;
    background: transparent;
    border: 0;
    text-align: left;
    font-size: 17px;
    font-weight: 650;
}

.resource-context-panel {
    padding: 14px 15px;
    background: #f8fafc;
}

.resource-selection-summary,
.resource-upload-guidance {
    border-color: #e0e6ec;
    color: #45515c;
    background: #fff;
}

/* The AG Grid toolbar should read as one quiet command strip. */
.efiles-ag-toolbar {
    gap: 6px;
    padding: 8px 9px;
}

.efiles-ag-button,
.row-edit-button,
.she-select-actual,
.she-upload-files,
.she-edit-resource,
.she-add-followup {
    border-radius: 5px;
    box-shadow: none;
}

.efiles-ag-button:not(.is-primary):not(.is-danger):not(.is-success) {
    color: #34414d;
    border-color: #aeb8c2;
    background: #fff;
}

.efiles-ag-button:not(.is-primary):not(.is-danger):not(.is-success):hover:not(:disabled) {
    color: #1f2933;
    border-color: #7f8b96;
    background: #f3f5f7;
}

.efiles-ag-quick-search {
    border-color: #c8d0d8;
    background: #fff;
}

/* Professional record editor. Every form uses one consistent centred modal.
   Long forms scroll inside the modal; the title and Save/Cancel footer remain
   visible. This prevents off-screen buttons and avoids full-screen mobile forms. */
.efiles-ag-dialog,
.efiles-ag-dialog.is-compact,
.efiles-ag-dialog.is-wide,
.efiles-ag-dialog.is-drawer {
    inset: 0;
    width: min(820px, calc(100vw - 28px));
    height: auto;
    max-height: min(90dvh, 900px);
    margin: auto;
    padding: 0;
    overflow: hidden;
    border: 1px solid #d6dde5;
    border-radius: 10px;
    background: #fff;
    box-shadow: 0 22px 70px rgb(15 23 42 / 26%);
}

.efiles-ag-dialog::backdrop {
    background: rgb(15 23 42 / 24%);
    backdrop-filter: blur(1px);
}

.efiles-ag-dialog form,
.efiles-ag-dialog.is-drawer form {
    display: grid;
    height: auto;
    min-height: 0;
    max-height: min(90dvh, 900px);
    grid-template-rows: auto auto minmax(0, 1fr) auto;
    overflow: hidden;
}

.efiles-ag-dialog-header {
    min-height: 54px;
    padding: 13px 16px;
    color: #1f2933;
    background: #fff;
    border-bottom: 1px solid #e2e7ec;
}

.efiles-ag-dialog-header h3 {
    color: #1f2933;
    font-size: 18px;
    font-weight: 650;
}

.efiles-ag-dialog-close {
    display: inline-grid;
    place-items: center;
    width: 32px;
    height: 32px;
    color: #51606d;
    border: 1px solid transparent;
    background: transparent;
    line-height: 1;
}

.efiles-ag-dialog-close:hover {
    color: #1f2933;
    border-color: #d5dce3;
    background: #f2f4f6;
}

.efiles-ag-dialog-message {
    margin: 10px 16px 0;
}

.efiles-ag-form-grid,
.efiles-ag-dialog.is-drawer .efiles-ag-form-grid {
    min-height: 0;
    gap: 13px 14px;
    padding: 16px;
    overflow-x: hidden;
    overflow-y: auto;
    overscroll-behavior: contain;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    align-content: start;
}

.efiles-ag-form-grid.is-single-column {
    grid-template-columns: 1fr;
}

.efiles-ag-form-grid.is-single-column .efiles-ag-form-field.is-wide,
.efiles-ag-dialog.is-drawer .efiles-ag-form-field.is-wide {
    grid-column: auto;
}

.efiles-ag-form-field {
    color: #34414d;
    font-size: 12px;
}

.efiles-ag-form-control {
    min-height: 36px;
    border-color: #b9c3cc;
    border-radius: 5px;
}

.efiles-ag-form-control:focus {
    outline: 2px solid rgb(8 118 201 / 18%);
    border-color: #0876c9;
}

.efiles-ag-dialog-buttons {
    position: relative;
    z-index: 2;
    flex-wrap: wrap;
    padding: 12px 16px;
    border-top-color: #e2e7ec;
    background: #f8fafb;
    box-shadow: 0 -4px 12px rgb(15 23 42 / 4%);
}

.efiles-ag-dialog-buttons button {
    min-width: 82px;
    border-color: #aeb8c2;
    border-radius: 5px;
    color: #34414d;
    background: #fff;
}

.efiles-ag-dialog-buttons .is-primary {
    color: #fff;
    border-color: #0876c9;
    background: #0876c9;
}

/* Existing checkbox/link controls remain inline in the grid for the fastest
   short status and assignment changes. */
.link-toggle {
    width: 17px;
    height: 17px;
}

body.embedded-page .grid-panel.efiles-grid-section {
    margin-bottom: 18px;
}

@media (max-width: 700px) {
    .grid-panel.efiles-grid-section { margin-bottom: 22px; }
    .efiles-grid-section-header { align-items: start; }
    .efiles-page-selection { margin-bottom: 16px; }

    .efiles-ag-dialog,
    .efiles-ag-dialog.is-compact,
    .efiles-ag-dialog.is-wide,
    .efiles-ag-dialog.is-drawer {
        width: calc(100vw - 24px) !important;
        max-width: calc(100vw - 24px) !important;
        max-height: calc(100dvh - 24px);
        border-radius: 8px;
    }

    .efiles-ag-dialog form,
    .efiles-ag-dialog.is-drawer form {
        max-height: calc(100dvh - 24px);
    }

    .efiles-ag-form-grid,
    .efiles-ag-dialog.is-drawer .efiles-ag-form-grid {
        grid-template-columns: 1fr;
        padding: 13px;
    }

    .efiles-ag-form-field.is-wide {
        grid-column: auto;
    }

    .efiles-ag-dialog-header {
        min-height: 50px;
        padding: 11px 13px;
    }

    .efiles-ag-dialog-buttons {
        padding: 10px 13px;
    }
}

@media (max-width: 420px) {
    .efiles-ag-dialog-buttons button {
        flex: 1 1 110px;
    }
}

/* ========================================================================
   Compact modal sizing correction – 04 Aug 2026
   ------------------------------------------------------------------------
   Keep every editor only as tall as its content. When the form is longer
   than the viewport, only the fields area scrolls; the title and the
   Save/Cancel footer always remain visible. These final rules intentionally
   override the earlier generic/drawer-compatible declarations above.
   ======================================================================== */
.efiles-ag-dialog,
.efiles-ag-dialog.is-compact,
.efiles-ag-dialog.is-wide,
.efiles-ag-dialog.is-drawer {
    height: fit-content !important;
    min-height: 0 !important;
    max-height: calc(100vh - 24px) !important;
    overflow: hidden !important;
    overscroll-behavior: contain;
}

@supports (height: 100dvh) {
    .efiles-ag-dialog,
    .efiles-ag-dialog.is-compact,
    .efiles-ag-dialog.is-wide,
    .efiles-ag-dialog.is-drawer {
        max-height: calc(100dvh - 24px) !important;
    }
}

.efiles-ag-dialog form,
.efiles-ag-dialog.is-drawer form {
    display: flex !important;
    flex-direction: column;
    width: 100%;
    height: fit-content !important;
    min-height: 0 !important;
    max-height: calc(100vh - 24px) !important;
    overflow: hidden !important;
}

@supports (height: 100dvh) {
    .efiles-ag-dialog form,
    .efiles-ag-dialog.is-drawer form {
        max-height: calc(100dvh - 24px) !important;
    }
}

.efiles-ag-dialog-header,
.efiles-ag-dialog-message,
.efiles-ag-dialog-buttons {
    flex: 0 0 auto;
}

.efiles-ag-form-grid,
.efiles-ag-dialog.is-drawer .efiles-ag-form-grid {
    flex: 0 1 auto;
    width: 100%;
    min-height: 0 !important;
    max-height: calc(100vh - 150px);
    overflow-x: hidden !important;
    overflow-y: auto !important;
    scrollbar-gutter: stable;
}

@supports (height: 100dvh) {
    .efiles-ag-form-grid,
    .efiles-ag-dialog.is-drawer .efiles-ag-form-grid {
        max-height: calc(100dvh - 150px);
    }
}

.efiles-ag-dialog-buttons {
    position: relative !important;
    bottom: auto !important;
    flex-shrink: 0;
}

@media (max-width: 700px) {
    .efiles-ag-dialog,
    .efiles-ag-dialog.is-compact,
    .efiles-ag-dialog.is-wide,
    .efiles-ag-dialog.is-drawer {
        width: calc(100vw - 16px) !important;
        max-width: calc(100vw - 16px) !important;
        max-height: calc(100vh - 16px) !important;
        margin: auto !important;
    }

    .efiles-ag-dialog form,
    .efiles-ag-dialog.is-drawer form {
        max-height: calc(100vh - 16px) !important;
    }

    .efiles-ag-form-grid,
    .efiles-ag-dialog.is-drawer .efiles-ag-form-grid {
        max-height: calc(100vh - 136px);
    }

    @supports (height: 100dvh) {
        .efiles-ag-dialog,
        .efiles-ag-dialog.is-compact,
        .efiles-ag-dialog.is-wide,
        .efiles-ag-dialog.is-drawer,
        .efiles-ag-dialog form,
        .efiles-ag-dialog.is-drawer form {
            max-height: calc(100dvh - 16px) !important;
        }

        .efiles-ag-form-grid,
        .efiles-ag-dialog.is-drawer .efiles-ag-form-grid {
            max-height: calc(100dvh - 136px);
        }
    }
}

.required-file-status-bad {
    display: inline-block;
    padding: 2px 6px;
    border-radius: 3px;
    color: #9f1010;
    background: #ffe0e0;
    font-weight: 700;
}

.required-file-status-ok {
    display: inline-block;
    padding: 2px 6px;
    border-radius: 3px;
    color: #126b2e;
    background: #e2f6e8;
    font-weight: 700;
}

.compliance-status-warning {
    display: inline-block;
    padding: 2px 6px;
    border-radius: 3px;
    color: #755600;
    background: #fff2b8;
    font-weight: 700;
}

.compliance-status-history {
    display: inline-block;
    padding: 2px 6px;
    border-radius: 3px;
    color: #6d421f;
    background: #ead9c7;
    font-weight: 700;
}

.required-file-row-mismatch .ag-cell {
    background-color: #fff3f3;
}

/* Contractor access decision centre */
.access-decision-guidance {
    margin: 0 0 16px;
    padding: 14px 16px;
    border: 1px solid #93c5fd;
    border-left: 5px solid #2563eb;
    border-radius: 8px;
    background: #eff6ff;
    color: #1e3a5f;
    line-height: 1.55;
}

.access-status-badge {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 94px;
    padding: 4px 10px;
    border-radius: 999px;
    font-weight: 800;
    border: 1px solid #94a3b8;
    background: #f8fafc;
    color: #334155;
}

.access-status-badge.is-blocked {
    color: #991b1b;
    border-color: #f87171;
    background: #fee2e2;
}

.access-status-badge.is-restricted {
    color: #92400e;
    border-color: #f59e0b;
    background: #fef3c7;
}

.access-status-badge.is-allowed {
    color: #166534;
    border-color: #4ade80;
    background: #dcfce7;
}

.efiles-ag-grid .ag-row.access-blocked-row .ag-cell {
    background: #fff1f2;
}

.efiles-ag-grid .ag-row.access-restricted-row .ag-cell {
    background: #fffbeb;
}

.efiles-ag-grid .ag-row.access-allowed-row .ag-cell {
    background: #f0fdf4;
}

.efiles-ag-grid .ag-row.access-blocked-row .ag-cell:first-child {
    border-left: 5px solid #dc2626;
}

.efiles-ag-grid .ag-row.access-restricted-row .ag-cell:first-child {
    border-left: 5px solid #f59e0b;
}

.efiles-ag-grid .ag-row.access-allowed-row .ag-cell:first-child {
    border-left: 5px solid #16a34a;
}

.access-decision-summary {
    display: grid;
    grid-template-columns: repeat(4, minmax(150px, 1fr));
    gap: 12px;
    margin: 14px 0 18px;
}

.access-decision-summary article {
    padding: 14px 16px;
    border: 1px solid #cbd5e1;
    border-radius: 10px;
    background: #ffffff;
    box-shadow: 0 3px 10px rgba(15, 23, 42, .06);
}

.access-decision-summary span {
    display: block;
    color: #475569;
    font-size: .9rem;
    font-weight: 700;
}

.access-decision-summary strong {
    display: block;
    margin-top: 4px;
    font-size: 1.8rem;
    line-height: 1;
}

.access-decision-summary article:nth-child(1) strong { color: #b91c1c; }
.access-decision-summary article:nth-child(2) strong { color: #b45309; }
.access-decision-summary article:nth-child(3) strong { color: #15803d; }

@media (max-width: 800px) {
    .access-decision-summary { grid-template-columns: repeat(2, minmax(130px, 1fr)); }
}
