:root {
    --color-primary: #123b5d;
    --color-primary-hover: #0d304d;
    --color-accent: #1677a3;
    --color-accent-soft: #e7f2f7;
    --color-background: #f5f7fa;
    --color-surface: #ffffff;
    --color-surface-muted: #f8fafc;
    --color-border: #dce3ea;
    --color-border-strong: #b8c4d0;
    --color-text: #1f2937;
    --color-text-muted: #667085;
    --color-success: #21875a;
    --color-warning: #a9610b;
    --color-danger: #c43d4b;
    --color-focus: #1677a3;

    --font-family-base: "Segoe UI", Arial, sans-serif;
    --font-size-sm: 0.857rem;
    --font-size-base: 1rem;
    --font-size-lg: 1.143rem;
    --font-size-title: 1.5rem;
    --line-height-base: 1.5;

    --space-1: 0.25rem;
    --space-2: 0.5rem;
    --space-3: 0.75rem;
    --space-4: 1rem;
    --space-5: 1.5rem;
    --space-6: 2rem;

    --radius-sm: 3px;
    --radius-md: 6px;
    --radius-lg: 8px;
    --border-width: 1px;
    --control-height: 38px;
    --shadow-sm: 0 1px 2px rgb(16 24 40 / 6%);
    --shadow-md: 0 8px 24px rgb(16 24 40 / 10%);
    --focus-ring: 0 0 0 3px rgb(22 119 163 / 25%);
    --navigation-width: 268px;
    --navigation-width-collapsed: 68px;
    --navigation-transition: 200ms ease;
    --topbar-height: 56px;

    /* Application layers. Workspace controls use the low range; dialogs and
       notifications keep their global layers above the application shell. */
    --z-workspace: 0;
    --z-content-side-panel: 10;
    --z-navigation-dismiss: 90;
    --z-navigation: 100;
    --z-navigation-flyout: 200;
    --z-dialog-backdrop: 900;
    --z-dialog: 1000;
    --z-toast: 1100;
}

html,
body {
    min-width: 320px;
    color: var(--color-text);
    font-family: var(--font-family-base);
    font-size: 14px;
    line-height: var(--line-height-base);
}

body {
    background: var(--color-background);
    height: 100%;
    margin: 0;
    overflow: hidden;
}

html { height: 100%; }

app { height: 100%; min-height: 0; }

/* Shared layer for every flyout owned by the primary navigation. */
.navigation-flyout {
    z-index: var(--z-navigation-flyout);
}

body.g-navigation-open {
    overflow: hidden;
}

a {
    color: var(--color-accent);
}

a:hover {
    color: var(--color-primary-hover);
}

:where(a, button, input, select, textarea, [tabindex]):focus-visible {
    border-radius: var(--radius-sm);
    outline: 2px solid var(--color-focus);
    outline-offset: 2px;
}

.container-g60 {
    background: var(--color-surface);
    border: var(--border-width) solid var(--color-border);
    border-radius: var(--radius-md);
    box-shadow: var(--shadow-sm);
}

.g-page-title,
.g-object-title {
    color: var(--color-primary);
    font-weight: 650;
    letter-spacing: -0.01em;
}

.g-page-title {
    font-size: var(--font-size-title);
    margin: 0;
}

.g-object-title {
    font-size: 1.286rem;
    line-height: 1.35;
    margin: 0;
    overflow-wrap: anywhere;
}

.g-surface {
    background: var(--color-surface);
    border: var(--border-width) solid var(--color-border);
    border-radius: var(--radius-md);
}

.g-toolbar-panel {
    align-items: center;
    background: var(--color-surface-muted);
    border: var(--border-width) solid var(--color-border);
    border-radius: var(--radius-md);
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-2);
    justify-content: space-between;
    margin-bottom: var(--space-3);
    padding: var(--space-2) var(--space-3);
}

.g-pilot-page {
    display: flex;
    flex: 1 1 auto;
    flex-direction: column;
    height: 100%;
    min-height: 0;
    min-width: 0;
}

.g-pilot-page .g-side-tree {
    flex: 1 1 auto;
    height: auto;
    min-height: 0;
}

.g-pilot-page .g-side-actions {
    flex: 0 0 auto;
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-2);
    padding-top: var(--space-3);
}

.g-pilot-page .g-side-actions .e-btn {
    margin: 0 !important;
}

.g-file-action {
    cursor: pointer;
}

.g-visually-hidden-input {
    height: 1px;
    overflow: hidden;
    position: absolute;
    width: 1px;
    clip: rect(0, 0, 0, 0);
    clip-path: inset(50%);
    white-space: nowrap;
}

.g-content-heading {
    align-items: flex-start;
    border-bottom: var(--border-width) solid var(--color-border);
    display: flex;
    gap: var(--space-4);
    justify-content: space-between;
    margin-bottom: var(--space-3);
    padding: var(--space-2) var(--space-1) var(--space-3);
}

.g-content-heading__copy {
    min-width: 0;
}

.g-content-heading__eyebrow {
    color: var(--color-text-muted);
    display: block;
    font-size: var(--font-size-sm);
    font-weight: 600;
    letter-spacing: 0.04em;
    margin-bottom: var(--space-1);
    text-transform: uppercase;
}

.g-content-heading__title {
    color: var(--color-primary);
    font-size: 1.286rem;
    font-weight: 650;
    line-height: 1.35;
    margin: 0;
    overflow-wrap: anywhere;
}

.g-risk-report-button.e-btn {
    flex: 0 0 auto;
}

.g-risk-grid-frame {
    height: calc(90vh - var(--risk-grid-offset, 250px));
    min-height: 340px;
}

.g-risk-name.e-btn.e-link {
    color: var(--color-primary);
    font-weight: 600;
    line-height: 1.35;
    padding: 0;
    text-align: left;
    white-space: normal;
    overflow-wrap: anywhere;
}

.g-risk-kind {
    background: var(--color-surface-muted);
    border: var(--border-width) solid var(--color-border-strong);
    border-radius: var(--radius-sm);
    display: inline-block;
    font-size: var(--font-size-sm);
    font-weight: 700;
    min-width: 2rem;
    padding: 2px var(--space-1);
    text-align: center;
}

.g-label--flush { padding: 0; }

.g-risk-filter-select { min-width: 330px; }

.g-risk-status {
    align-items: center;
    display: inline-flex;
    gap: var(--space-2);
    line-height: 1.25;
    min-width: 0;
}

.g-risk-status--badge {
    border: var(--border-width) solid transparent;
    border-radius: var(--radius-sm);
    font-size: var(--font-size-sm);
    font-weight: 600;
    gap: 0;
    max-width: 100%;
    padding: 3px var(--space-2);
    white-space: nowrap;
}

.g-risk-status--badge.g-risk-status--new,
.g-risk-status--badge.g-risk-status--neutral {
    background: #eef2f6;
    border-color: #d8e0e8;
    color: #475467;
}

.g-risk-status--badge.g-risk-status--review {
    background: #e8f3f8;
    border-color: #c8e2ed;
    color: #175f80;
}

.g-risk-status--badge.g-risk-status--approved {
    background: #e8f5ee;
    border-color: #c9e7d6;
    color: #17633f;
}

.g-risk-status--badge.g-risk-status--action {
    background: #fff3e3;
    border-color: #f2d6ae;
    color: #8a4b08;
}

.g-risk-status--badge.g-risk-status--inactive {
    background: #f8e9eb;
    border-color: #edcdd2;
    color: #97313d;
}

.g-risk-status__icon { flex: 0 0 auto; }

.g-risk-status__text {
    color: var(--color-text);
    font-size: var(--font-size-sm);
    font-weight: 600;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.g-risk-status--pending .g-risk-status__icon { color: var(--color-warning); }
.g-risk-status--new .g-risk-status__icon,
.g-risk-status--review .g-risk-status__icon { color: var(--color-accent); }
.g-risk-status--approved .g-risk-status__icon { color: var(--color-success); }

.g-risk-status-filter {
    align-items: center;
    display: flex;
    gap: var(--space-2);
    min-width: 0;
}

.g-risk-status-filter__label {
    color: var(--color-text-muted);
    flex: 0 0 auto;
    font-size: var(--font-size-sm);
    font-weight: 600;
}

.g-risk-status-filter__select {
    min-width: 170px;
    width: 190px;
}

.risk-box,
.risk-probability-box {
    border: var(--border-width) solid rgb(31 41 55 / 16%);
    border-radius: var(--radius-sm) !important;
    box-sizing: border-box;
    color: var(--color-text) !important;
    display: inline-flex;
    flex-direction: column;
    justify-content: center;
    font-variant-numeric: tabular-nums;
    line-height: 1.25;
    height: 40px;
    max-width: 124px;
    min-width: 110px;
    padding: 2px var(--space-2) !important;
    text-align: center;
    width: auto;
}

.risk-0 {
    background-color: #eef2f6;
    border-color: #d8e0e8;
    color: #475467 !important;
}

.risk-1-3 { background-color: #dff3e7; }
.risk-4-7 { background-color: #fff1c9; }
.risk-8-10 { background-color: #f9dfe2; }

.risk-probability-box {
    background-color: #eef2f6;
    background-color: color-mix(in srgb, var(--risk-probability-color, #cbd5e1) 24%, white);
}

.risk-probability-box--compact {
    height: 30px;
    min-width: 34px;
    padding: 2px var(--space-1) !important;
}

.risk-probability-box--compact .risk-box__value {
    font-size: var(--font-size-base);
}

.risk-probability-box--compact .risk-box__level {
    display: none;
}

.risk-box__value {
    display: block;
    font-size: var(--font-size-lg);
    font-weight: 700;
}

.risk-box__level {
    display: block;
    font-size: 0.714rem;
    font-weight: 650;
    letter-spacing: 0.025em;
    margin-top: 2px;
    max-width: 100%;
    overflow: hidden;
    text-overflow: ellipsis;
    text-transform: uppercase;
    white-space: nowrap;
}

.g-risk-dialog-content {
    padding: var(--space-1);
}

.g-risk-summary {
    background: var(--color-surface-muted);
    border: var(--border-width) solid var(--color-border);
    border-radius: var(--radius-md);
    margin-bottom: var(--space-3);
    padding: var(--space-3);
}

.g-risk-summary__description {
    min-width: 0;
    overflow-wrap: anywhere;
}

.g-risk-summary__value {
    min-width: 92px;
}

.g-risk-card-summary {
    align-items: center;
    padding-block: var(--space-2);
}

.g-risk-card-summary__description .g-multiline {
    max-height: 5.2em;
    min-height: 1.5em;
    overflow-y: auto;
}

.g-risk-card-summary__actions {
    align-items: center;
    padding-top: 0;
}

.g-risk-card-tabs.e-tab .e-tab-header .e-toolbar-item .e-tab-wrap {
    min-height: 38px;
    padding-inline: var(--space-3);
}

.g-risk-card-tabs.e-tab .e-tab-header .e-toolbar-item.e-active {
    background: color-mix(in srgb, var(--color-accent-soft) 50%, transparent);
}

.g-form-actions {
    align-items: flex-end;
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-2);
    justify-content: flex-end;
    padding-top: var(--space-2);
}

.g-form-actions__item {
    display: inline-block;
}

.g-detail-header {
    display: flex;
    gap: var(--space-4);
    justify-content: space-between;
    padding: var(--space-2) var(--space-3) var(--space-3);
}

.g-detail-header__copy {
    min-width: 0;
    padding-left: var(--space-2);
}

.g-detail-description,
.g-detail-meta {
    margin: var(--space-1) 0 0;
    overflow-wrap: anywhere;
}

.g-detail-meta,
.g-secondary-text {
    color: var(--color-text-muted);
    display: block;
    font-size: var(--font-size-sm);
    line-height: 1.4;
    overflow-wrap: anywhere;
}

.g-detail-tab-content {
    height: calc(90vh - 350px);
    min-height: 280px;
}

.g-risk-issue-list {
    height: calc(90vh - 100px);
    min-height: 420px;
}

.g-section-grid {
    height: calc(90vh - var(--section-grid-offset, 450px));
    min-height: 240px;
}

/* Leave room for the risk summary, tab header, actions and dialog footer. */
.g-section-grid--assessment { --section-grid-offset: 400px; }
.g-section-grid--risk-protections { --section-grid-offset: 350px; }
.g-section-grid--justification { --section-grid-offset: 480px; }
.g-section-grid--factor-protections { --section-grid-offset: 550px; }

.g-section-value {
    margin-top: var(--space-3);
}

.g-status-text {
    align-items: center;
    display: inline-flex;
    font-weight: 600;
    gap: var(--space-1);
}

.g-status-text--success { color: var(--color-success); }
.g-status-text--warning { color: var(--color-warning); }

.g-status-badge {
    border: var(--border-width) solid transparent;
    border-radius: 999px;
    display: inline-flex;
    font-size: var(--font-size-sm);
    font-weight: 600;
    line-height: 1.25;
    padding: 3px 8px;
    white-space: nowrap;
}

.g-status-badge--success {
    background: #e6f4ec;
    border-color: #c7e6d4;
    color: #176b46;
}

.g-status-badge--warning {
    background: #fff3d8;
    border-color: #f3ddb0;
    color: #8a520b;
}

.g-status-badge--neutral {
    background: #eef2f6;
    border-color: #d8e0e8;
    color: #5b6675;
}

.g-risk-cause-layout > [class*="col-"],
.g-risk-estimate-layout > [class*="col-"] {
    min-width: 0;
}

.g-risk-estimate-layout__criteria .g-section-grid {
    --section-grid-offset: 400px;
}

.g-risk-cause-layout .g-tab-header,
.g-risk-estimate-layout .g-tab-header {
    background: color-mix(in srgb, var(--color-accent-soft) 42%, white);
    border-bottom: var(--border-width) solid var(--color-border);
    color: var(--color-primary);
    margin-bottom: 0;
    padding: 6px var(--space-3);
}

.g-risk-cause-layout .g-intab-block,
.g-risk-estimate-layout .g-intab-block {
    border-bottom: var(--border-width) solid var(--color-border);
    border-left: 0;
    margin: 0 0 var(--space-2);
    padding: var(--space-2);
}

.g-risk-influence-form__purpose {
    padding: var(--space-1) var(--space-2);
}

.g-risk-influence-form__grid {
    height: 500px;
    margin-top: var(--space-2);
}

.g-risk-influence-form__influence-grid {
    height: 350px;
}

.g-cause-assessment__values {
    margin: 0;
    width: 100%;
}

.g-cause-assessment__item {
    align-items: center;
    display: flex;
    flex-direction: row;
    gap: var(--space-1);
    min-width: 0;
}

.g-cause-assessment__label {
    color: var(--color-text-muted);
    font-size: var(--font-size-sm);
    font-weight: 600;
}

.g-risk-estimate-assessment__values {
    margin: 0;
    width: 100%;
}

.g-risk-estimate-assessment__item {
    align-items: center;
    display: flex;
    flex-direction: row;
    gap: var(--space-1);
    min-width: 0;
}

.g-risk-estimate-assessment__label {
    color: var(--color-text-muted);
    font-size: var(--font-size-sm);
    font-weight: 600;
}

.g-risk-cause-layout .g-grid .e-rowcell,
.g-risk-estimate-layout .g-grid .e-rowcell {
    vertical-align: middle;
}

.g-grid-row-actions {
    align-items: center;
    display: flex;
    flex-wrap: nowrap;
    justify-content: center;
}

.g-risk-cause-layout .g-grid .e-rowcell:first-child .e-btn,
.g-risk-estimate-layout .g-grid .e-rowcell:first-child .e-btn {
    opacity: 0.72;
    padding-inline: 3px;
}

.g-risk-cause-layout .g-grid .e-rowcell:first-child .e-btn:hover,
.g-risk-cause-layout .g-grid .e-rowcell:first-child .e-btn:focus-visible,
.g-risk-estimate-layout .g-grid .e-rowcell:first-child .e-btn:hover,
.g-risk-estimate-layout .g-grid .e-rowcell:first-child .e-btn:focus-visible {
    opacity: 1;
}

@media (max-width: 1280px) {
    .content.px-4 {
        padding-left: var(--space-3) !important;
        padding-right: var(--space-3) !important;
    }

    .g-content-heading {
        align-items: stretch;
        flex-direction: column;
    }

    .g-risk-report-button.e-btn {
        align-self: flex-start;
    }

    .g-risk-grid-frame {
        min-height: 300px;
    }

    .g-risk-status-filter__select {
        min-width: 150px;
        width: 170px;
    }

    .g-risk-summary {
        row-gap: var(--space-3);
    }

    .g-form-actions {
        justify-content: flex-start;
    }

    .g-risk-cause-layout__protections {
        margin-top: var(--space-3);
    }

    .g-risk-estimate-layout__protections {
        margin-top: var(--space-3);
    }

    .g-risk-cause-layout .g-section-grid,
    .g-risk-estimate-layout .g-section-grid {
        height: auto;
        min-height: 260px;
    }
}

/* Shared layout and actions for reusable *List views. */
.g-list-grid.e-grid,
.g-list-grid.e-treegrid {
    height: 100%;
    max-width: 100%;
    min-height: 0;
    width: 100%;
}

.g-list-grid.e-grid .e-gridcontent,
.g-list-grid.e-treegrid .e-gridcontent {
    min-height: 0;
}

.g-list-button.e-btn.e-primary.e-outline,
.g-list-button.e-btn.e-primary.e-outline:focus {
    background: var(--color-surface);
    border-color: var(--color-primary);
    color: var(--color-primary);
}

.g-list-button.e-btn.e-primary.e-outline:hover,
.g-list-button.e-btn.e-primary.e-outline:active {
    background: var(--color-primary);
    border-color: var(--color-primary);
    color: #fff;
}

/* Shared full-height layout for the Incidents register and its reusable views. */
.g-incidents-page {
    display: flex;
    flex: 1 1 auto;
    flex-direction: column;
    height: 100%;
    min-height: 0;
    min-width: 0;
}

.g-incidents-toolbar {
    align-items: flex-end;
    display: flex;
    flex: 0 0 auto;
    flex-wrap: wrap;
    gap: var(--space-3);
    padding-block: var(--space-3);
}

.g-incidents-filter {
    flex: 0 1 36rem;
    min-width: min(100%, 18rem);
}

.g-incidents-work-area,
.g-incidents-tab-content,
.g-incidents-grid-frame {
    display: flex;
    flex: 1 1 auto;
    flex-direction: column;
    min-height: 0;
    min-width: 0;
}

.g-incidents-tabs.e-tab {
    display: flex;
    flex: 1 1 auto;
    flex-direction: column;
    min-height: 0;
}

.g-incidents-tabs.e-tab > .e-content,
.g-incidents-tabs.e-tab > .e-content > .e-item.e-active {
    display: flex;
    flex: 1 1 auto;
    flex-direction: column;
    min-height: 0;
}

.g-incidents-grid-frame > .e-grid {
    flex: 1 1 auto;
    min-height: 0;
}

.g-incidents-actions,
.g-incident-actions {
    align-items: center;
    display: flex;
    flex: 0 0 auto;
    flex-wrap: wrap;
    gap: var(--space-2);
    padding-top: var(--space-3);
}

.g-incidents-actions .e-btn,
.g-incident-actions .e-btn {
    margin: 0 !important;
    width: auto;
}

.g-incident-form > .row + .row {
    margin-top: var(--space-3);
}

.g-incident-dialog-content {
    display: flex;
    flex-direction: column;
    height: 100%;
    min-height: 0;
    overflow: auto;
}

.g-incident-dialog-grid {
    display: grid;
    flex: 1 1 auto;
    gap: var(--space-3);
    grid-template-columns: minmax(16rem, 1fr) repeat(2, minmax(20rem, 1fr));
    min-height: 0;
    min-width: 58rem;
}

.g-incident-dialog-panel {
    display: flex;
    flex-direction: column;
    min-height: 0;
    min-width: 0;
}

.g-incident-dialog-panel > .e-grid,
.g-incident-dialog-panel > .g-treegrid {
    flex: 1 1 auto;
    min-height: 0;
}

.g-incident-stage {
    font-weight: 600;
}

.g-incident-stage--active {
    color: var(--color-primary);
    font-weight: 700;
}

@media (max-width: 991.98px) {
    .g-incident-dialog-content {
        overflow-x: auto;
    }
}

.g-incident-card {
    min-width: 0;
}

.g-incident-card-tabs {
    min-width: 0;
}

.g-incident-diary-frame {
    min-height: 0;
    overflow: auto;
}

.g-incident-information-grid {
    min-height: 12rem;
}

.g-incident-form-section {
    margin-top: var(--space-4);
}

.g-incident-textarea textarea,
textarea.g-incident-textarea {
    min-height: 9rem;
}


/* HRM presentation: dedicated classes shared by its pages/forms, including EditJobForm. */
.g-hrm-workspace { overflow: hidden; padding: var(--space-2); }
.g-hrm-grid-frame { display: flex; flex: 1 1 0; flex-direction: column; min-height: 0; min-width: 0; overflow: hidden; }
.g-hrm-form, .g-hrm-form fieldset { min-width: 0; }
.g-hrm-form .row + .row { margin-top: var(--space-3); }
.g-hrm-form .row > [class*="col-"] { min-width: 0; }
.g-hrm-form .g-label { display: block; margin-bottom: var(--space-1); overflow-wrap: anywhere; }
.g-hrm-form .g-value { overflow-wrap: anywhere; }
.g-hrm-photo { display: block; margin: 0 auto var(--space-3); padding-top: var(--space-4); text-align: center; }
.g-hrm-photo-button { background: transparent; border: 0; cursor: pointer; padding: var(--space-2); width: 100%; }
.g-hrm-photo-button:focus-visible { outline: none; box-shadow: var(--focus-ring); }
.g-hrm-employee-list { list-style: none; margin: var(--space-2) 0; padding: 0; overflow-wrap: anywhere; }
.g-hrm-employee-list li + li { margin-top: var(--space-1); }

/* These dialogs explicitly opt in; generic service-dialog geometry stays unchanged. */
.e-dialog.g-hrm-edit-dialog .e-dlg-content,
.e-dialog.g-hrm-import-dialog .e-dlg-content { display: flex; flex: 1 1 auto; min-height: 0; min-width: 0; overflow: hidden; }
.g-hrm-edit-form { display: flex; flex: 1 1 auto; flex-direction: column; height: 100%; min-height: 0; overflow: hidden; }
.g-hrm-edit-layout { display: grid; flex: 1 1 0; grid-template-columns: minmax(0, 1fr) minmax(0, 3fr); gap: var(--space-4); min-height: 0; min-width: 0; }
.g-hrm-edit-summary { min-height: 0; min-width: 0; overflow: auto; }
.g-hrm-edit-main { display: flex; flex-direction: column; min-height: 0; min-width: 0; }
.g-hrm-edit-tabs.e-tab { display: flex; flex: 1 1 auto; flex-direction: column; min-height: 0; min-width: 0; overflow: hidden; }
.g-hrm-edit-tabs.e-tab > .e-content { flex: 1 1 auto; min-height: 0; min-width: 0; overflow: hidden; }
/* Active item only: never reveal inactive tabs or target nested SfTab instances. */
.g-hrm-edit-tabs.e-tab > .e-content > .e-item.e-active { display: flex; flex-direction: column; height: 100%; min-height: 0; min-width: 0; overflow: hidden; }
.g-hrm-edit-fields { flex: 1 1 auto; min-height: 0; min-width: 0; overflow: auto; padding: var(--space-2) 0.75rem; }
.g-hrm-import { gap: var(--space-3); overflow: hidden; }
.g-hrm-import > .g-object-title,
.g-hrm-import__actions { flex: 0 0 auto; }

@media (max-width: 767.98px) {
    .g-hrm-edit-layout { grid-template-columns: minmax(0, 1fr); grid-template-rows: minmax(0, 1fr) minmax(0, 2fr); }
    .g-hrm-form .row > [class*="col-"] + [class*="col-"] { margin-top: var(--space-3); }
}


/* Resource workspace: bounded lists, natural-height actions and compensated form gutters. */
.g-resource-section, .g-resource-grid-frame, .g-resource-details, .g-resource-tabs-frame, .g-resource-tab-content {
    display: flex;
    flex: 1 1 0;
    flex-direction: column;
    min-height: 0;
    min-width: 0;
}

.g-resource-section {
    gap: var(--space-2);
    overflow: hidden;
}

.g-resource-details {
    padding: var(--space-2) var(--space-3);
    overflow: hidden;
}

.g-resource-grid-frame {
    overflow: hidden;
}

.g-resource-section > .g-form-actions, .g-resource-summary, .g-resource-heading-actions {
    flex: 0 0 auto;
}

.g-resource-section > .g-form-actions {
    padding-top: var(--space-2);
}

.g-resource-heading-actions {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: var(--space-2);
}

.g-resource-summary {
    margin-bottom: var(--space-2);
}

.g-resource-tabs-frame, .g-resource-tab-content {
    overflow: hidden;
}

.g-resource-tabs.e-tab {
    display: flex;
    flex: 1 1 0;
    flex-direction: column;
    min-height: 0;
    min-width: 0;
    overflow: hidden;
}

.g-resource-tabs.e-tab > .e-content {
    flex: 1 1 0;
    min-height: 0;
    min-width: 0;
    overflow: hidden;
}

.g-resource-tabs.e-tab > .e-content > .e-item.e-active {
    display: flex;
    flex-direction: column;
    height: 100%;
    min-height: 0;
    min-width: 0;
    overflow: hidden;
}

.g-resource-scroll {
    flex: 1 1 0;
    min-height: 0;
    min-width: 0;
    overflow: auto;
    padding: var(--space-2) var(--space-3);
}

.g-resource-form {
    min-width: 0;
    padding: var(--space-2) var(--space-3);
}

.g-resource-form .row {
    row-gap: var(--space-2);
}

.g-resource-form .row + .row {
    margin-top: var(--space-3);
}

.g-resource-form .row > [class*="col-"] {
    min-width: 0;
}

.g-resource-form .g-label {
    display: block;
    margin-bottom: var(--space-1);
    overflow-wrap: anywhere;
}

.g-resource-form .g-value, .g-resource-cell {
    overflow-wrap: anywhere;
}

.g-resource-textarea textarea, textarea.g-resource-textarea {
    min-height: 9rem;
}

.g-resource-cell {
    display: flex;
    flex-direction: column;
    min-width: 0;
}

.g-resource-cell > .e-btn.e-link {
    text-align: left;
}

.g-resource-category-value {
    padding: var(--space-1);
    overflow-wrap: anywhere;
}

.e-dialog.g-resource-dialog .e-dlg-content {
    display: flex;
    flex-direction: column;
    flex: 1 1 auto;
    min-height: 0;
    min-width: 0;
    overflow: hidden;
}

.e-dialog.g-resource-form-dialog .e-dlg-content {
    overflow: auto;
}

.g-risk-grid-frame.g-risk-grid-frame--fill {
    display: flex;
    flex: 1 1 0;
    flex-direction: column;
    height: auto;
    min-height: 0;
    min-width: 0;
    overflow: hidden;
}


.g-resource-section > .g-resource-form, .g-resource-import-actions {
    flex: 0 0 auto;
    min-width: 0;
}

.g-resource-details > .g-content-heading {
    flex: 0 0 auto;
}

.g-resource-details .g-content-heading__copy {
    overflow-wrap: anywhere;
}

.g-resource-details .g-content-heading {
    flex-wrap: wrap;
}


@media (max-width: 767.98px) {
    .g-resource-form .row > .col-3, .g-resource-form .row > .col-4,
    .g-resource-form .row > .col-6, .g-resource-form .row > .col-8,
    .g-resource-form .row > .col-9, .g-resource-form .row > .col-10 {
        flex: 0 0 100%;
        width: 100%;
    }
}


.g-resource-section > .g-tab-header, .g-resource-section > .g-section,
.g-resource-section > .g-object-title, .g-resource-section > .action-buttons {
    flex: 0 0 auto;
}


.g-resource-danger {
    color: var(--color-danger);
}

/* Opt-in form/dialog geometry and cell content shared by services, tasks and documents. */
.g-data-cell { display: flex; flex-direction: column; align-items: flex-start; min-width: 0; overflow-wrap: anywhere; }
.g-data-cell > .e-btn.e-link { max-width: 100%; text-align: left; white-space: normal; }
.g-data-cell__identifier { font-size: var(--font-size-lg); }
.g-form-fields { min-width: 0; padding: var(--space-2) var(--space-3); }
.g-form-fields .row { row-gap: var(--space-2); }
.g-form-fields .row + .row { margin-top: var(--space-3); }
.g-form-fields .row > [class*="col-"] { min-width: 0; }
.g-form-fields .g-label { display: block; margin-bottom: var(--space-1); overflow-wrap: anywhere; }
.g-form-fields .g-value { overflow-wrap: anywhere; }
.e-dialog.g-form-dialog, .e-dialog.g-workspace-dialog { max-width: 96vw; min-width: 0; }
.e-dialog.g-form-dialog .e-dlg-content { overflow: auto; min-width: 0; }
.e-dialog.g-workspace-dialog .e-dlg-content { display: flex; flex: 1 1 auto; flex-direction: column; min-height: 0; min-width: 0; overflow: hidden; }
@media (max-width: 767.98px) {
    .g-form-fields .row > .col-2, .g-form-fields .row > .col-3, .g-form-fields .row > .col-4,
    .g-form-fields .row > .col-5, .g-form-fields .row > .col-6, .g-form-fields .row > .col-8,
    .g-form-fields .row > .col-9, .g-form-fields .row > .col-10 { flex: 0 0 100%; width: 100%; }
}
