body {
}

.gnt-grid-selector-root {
    display: flex;
    flex-direction: column;
    flex: 1 1 auto;
    height: 100%;
    width: 100%;
    min-height: 0;
    min-width: 0;
    align-self: stretch;
    overflow: hidden;
}

.gnt-grid-selector-splitter {
    flex: 1 1 auto;
    width: 100%;
    height: 100%;
    min-height: 0;
    min-width: 0;
    overflow: hidden;
}

.gnt-grid-selector-single-pane {
    flex: 1 1 auto;
    display: flex;
    flex-direction: column;
    width: 100%;
    height: 100%;
    min-height: 0;
    min-width: 0;
    overflow: hidden;
}

.gnt-grid-selector-lightweight-shell {
    flex: 1 1 auto;
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    grid-template-rows: minmax(0, 1fr);
    width: 100%;
    height: 100%;
    min-height: 0;
    min-width: 0;
    overflow: hidden;
}

.gnt-grid-selector-lightweight-shell--with-detail {
    grid-template-columns: minmax(0, 1fr) 0;
}

.gnt-grid-selector-lightweight-shell--detail {
    grid-template-columns: minmax(18rem, 30%) minmax(0, 1fr);
}

.gnt-grid-selector-grid-pane,
.gnt-grid-selector-detail-pane {
    min-height: 0;
    min-width: 0;
    overflow: hidden;
}

.gnt-grid-selector-detail-pane {
    border-left: 0;
    pointer-events: none;
    visibility: hidden;
}

.gnt-grid-selector-detail-pane--open {
    border-left: 1px solid #d7dde5;
    pointer-events: auto;
    visibility: visible;
}

.gnt-grid-selector-workspace {
    display: flex;
    flex-direction: column;
    flex: 1 1 auto;
    width: 100%;
    height: 100%;
    min-height: 0;
    min-width: 0;
    overflow: hidden;
}

.gnt-grid-selector-workspace-splitter {
    flex: 1 1 auto;
    width: 100%;
    height: 100%;
    min-height: 0;
    min-width: 0;
    overflow: hidden;
}

.gnt-grid-selector-workspace-pane {
    min-height: 0;
    min-width: 0;
    overflow: hidden;
}

.gnt-grid-selector-main-surface {
    display: flex;
    flex-direction: column;
    flex: 1 1 auto;
    width: 100%;
    height: 100%;
    min-height: 0;
    min-width: 0;
    overflow: hidden;
}

.gnt-grid-selector-workspace-pane > .gnt-grid-selector-main-surface,
.gnt-grid-selector-main-surface > .gnt-grid-selector-splitter {
    flex: 1 1 auto;
    width: 100%;
    height: 100%;
    min-height: 0;
    min-width: 0;
}

.gnt-grid-selector-splitter .e-pane,
.gnt-grid-selector-pane {
    min-height: 0;
    min-width: 0;
    overflow: hidden;
}

.gnt-grid-selector-pane-content {
    display: flex;
    flex-direction: column;
    width: 100%;
    height: 100%;
    min-height: 0;
    min-width: 0;
    overflow: hidden;
}

.gnt-grid-selector-grid-host {
    flex: 1 1 auto;
    display: flex;
    flex-direction: column;
    width: 100%;
    height: 100%;
    min-height: 0;
    min-width: 0;
    overflow: hidden;
}

.gnt-grid-selector-detail-host {
    width: 100%;
    height: 100%;
    min-height: 0;
    min-width: 0;
    overflow: hidden;
}

.gnt-grid-selector-grid-host .e-grid {
    flex: 1 1 auto;
    width: 100%;
    height: 100%;
    min-height: 0;
    min-width: 0;
    max-height: 100%;
    overflow: hidden;
    display: flex;
    flex-direction: column;
}

/* Group caption cells clip their text to the first column's width (Syncfusion
   default is overflow:hidden + ellipsis); let the caption spill across the row. */
.gnt-grid-selector-grid-host .e-grid .e-groupcaption {
    overflow: visible;
    text-overflow: clip;
}

/* Browse (non-edit) grids: let users select and copy cell text. Syncfusion adds
   `e-disableuserselect` to the grid to stop text selection interfering with row/range
   selection, which also blocks copy. Re-enable selection on data cells (not headers)
   while the grid is not in edit mode (`gnt-grid-edit-mode` is added to the grid when
   inline editing is active). Setting it on the cell overrides the inherited `none`. */
.gnt-grid-selector-root .e-grid:not(.gnt-grid-edit-mode) .e-rowcell,
.gnt-grid-selector-root .e-grid:not(.gnt-grid-edit-mode) .e-rowcell .e-cellvalue,
.gnt-grid-selector-root .e-grid:not(.gnt-grid-edit-mode) .e-rowcell > div {
    -webkit-user-select: text;
    -ms-user-select: text;
    user-select: text;
    cursor: text;
}

/* Flexed grid sections: .e-content always fills exactly the remaining visible height so
   its horizontal scrollbar can never be clipped by a stale Syncfusion height measurement.
   Keep in sync with GNTGridSelector.razor.css. */
.gnt-grid-selector-grid-host .e-gridheader {
    flex: 0 0 auto;
}

.gnt-grid-selector-grid-host .e-gridcontent {
    flex: 1 1 auto;
    min-height: 0;
    overflow: hidden;
    display: flex;
    flex-direction: column;
}

.gnt-grid-selector-grid-host .e-content {
    flex: 1 1 auto;
    min-height: 0;
    height: auto !important;
    overflow-x: scroll !important;
}

/* External pager (UseExternalPager). Compact vertical metrics: only vertical
   paddings/heights are reduced from the bootstrap5 defaults (~50px tall);
   horizontal metrics, float layout and white-space are untouched so narrow-width
   wrapping is unaffected. Keep in sync with GNTGridSelector.razor.css. */
.gnt-grid-external-pager-shell {
    flex: 0 0 auto;
    display: flex;
    align-items: center;
    min-width: 0;
    min-height: 2rem;
    border-top: 1px solid var(--gnt-border-soft);
}

.gnt-grid-external-pager {
    flex: 1 1 auto;
    min-width: 0;
}

.gnt-grid-external-pager.e-pager {
    border-left: 0;
    border-right: 0;
    border-bottom: 0;
    border-top: 0;
    padding-top: 2px;
    padding-bottom: 2px;
}

.gnt-grid-external-pager.e-pager .e-numericitem,
.gnt-grid-external-pager.e-pager .e-numericitem:hover,
.gnt-grid-external-pager.e-pager .e-spacing,
.gnt-grid-external-pager.e-pager .e-numericitem.e-currentitem,
.gnt-grid-external-pager.e-pager .e-numericitem.e-currentitem:hover {
    padding-top: 5px;
    padding-bottom: 5px;
}

.gnt-grid-external-pager.e-pager .e-pp,
.gnt-grid-external-pager.e-pager .e-np,
.gnt-grid-external-pager.e-pager .e-pp:hover,
.gnt-grid-external-pager.e-pager .e-np:hover,
.gnt-grid-external-pager.e-pager .e-pp.e-focused,
.gnt-grid-external-pager.e-pager .e-np.e-focused {
    padding-top: 5px;
    padding-bottom: 5px;
}

.gnt-grid-external-pager.e-pager .e-pagercontainer .e-icons {
    padding-top: 8px;
    padding-bottom: 7px;
}

.gnt-grid-external-pager.e-pager .e-pagerdropdown {
    height: 26px;
    margin-top: -19px;
}

.gnt-grid-external-pager.e-pager .e-pagerdropdown .e-input-group {
    height: 26px;
}

.gnt-grid-external-pager.e-pager .e-pagerdropdown .e-input-group input.e-input {
    padding-top: 1px;
    padding-bottom: 1px;
}

.gnt-grid-external-pager.e-pager .e-pagerconstant {
    margin-bottom: 2px;
}

.gnt-grid-selector-detail-host .gnt-detailform-dynamic-root {
    width: 100%;
    height: 100%;
    min-height: 0;
    min-width: 0;
}

.gnt-detailform-dynamic-root {
    display: flex;
    flex-direction: column;
    width: 100%;
    height: 100%;
    min-height: 0;
    min-width: 0;
    overflow: hidden;
}

.gnt-detailform-body {
    position: relative;
    flex: 1 1 auto;
    min-height: 0;
    min-width: 0;
    padding: 5px;
    box-sizing: border-box;
    overflow: hidden;
}

.gnt-detailform-embedded-toolbar {
    margin: 0 5px 0;
}

.gnt-detailform-splitter {
    width: 100%;
    height: 100%;
    min-height: 0;
    min-width: 0;
    overflow: hidden;
}

.gnt-detailform-pane {
    min-height: 0;
    min-width: 0;
    overflow: hidden;
}

.gnt-detailform-pane-content {
    display: flex;
    flex-direction: column;
    width: 100%;
    height: 100%;
    min-height: 0;
    min-width: 0;
    overflow: hidden;
}

.gnt-detailform-scroll-inner {
    flex: 1 1 auto;
    display: flex;
    flex-direction: column;
    min-height: 0;
    min-width: 0;
    overflow: auto;
}

.gnt-detailform-subforms .gnt-detailform-scroll-inner {
    overflow: hidden;
}

.gnt-detailform-subforms .e-tab,
.gnt-detailform-subforms .e-content,
.gnt-detailform-subforms .e-content .e-item {
    width: 100%;
    height: 100%;
    min-height: 0;
    min-width: 0;
}

.gnt-detailform-subforms .gnt-detailform-auto-subform-tabs--no-active .e-tab-header .e-indicator {
    display: none;
}

.gnt-detailform-subforms .gnt-detailform-auto-subform-tabs--no-active .e-tab-header .e-toolbar-item.e-active,
.gnt-detailform-subforms .gnt-detailform-auto-subform-tabs--no-active .e-tab-header .e-toolbar-item.e-active .e-tab-wrap,
.gnt-detailform-subforms .gnt-detailform-auto-subform-tabs--no-active .e-tab-header .e-toolbar-item.e-active .e-text-wrap {
    background: transparent;
    border-color: transparent;
    box-shadow: none;
}

.gnt-detailform-subforms .gnt-detailform-auto-subform-tabs--no-active .e-tab-header .e-toolbar-item.e-active .e-tab-text,
.gnt-detailform-subforms .gnt-detailform-auto-subform-tabs--no-active .e-tab-header .e-toolbar-item.e-active .gnt-detailform-subform-tab-header {
    color: inherit;
    font-weight: inherit;
}

.gnt-detailform-subforms .e-content .e-item.e-active {
    display: flex;
    flex-direction: column;
    min-height: 0;
    min-width: 0;
}

.gnt-detailform-subforms .e-content .e-item.e-active > * {
    flex: 1 1 auto;
    min-height: 0;
    min-width: 0;
}

.gnt-auto-form-root {
    width: 100%;
    min-width: 0;
}

.gnt-auto-form-group {
    display: flex;
    flex-direction: column;
    gap: 4px;
    width: 100%;
    margin-bottom: 8px;
}

.gnt-auto-form-group-sticky {
    position: sticky;
    top: 0;
    z-index: 20;
    background: var(--bs-body-bg, var(--gnt-surface-color));
    padding-top: 4px;
}

.gnt-auto-form-group-title {
    font-weight: 600;
    padding: 4px 8px 0 8px;
}

.gnt-auto-form-grid {
    display: flex;
    flex-wrap: wrap;
    width: 100%;
    row-gap: 4px;
    margin-left: -3px;
    margin-right: -3px;
}

.gnt-auto-form-field {
    box-sizing: border-box;
    min-width: 0;
    padding-left: 3px;
    padding-right: 3px;
}

.e-data-form .gnt-formitem {
    box-sizing: border-box;
    min-width: 0;
}

/* GNTFormItem field-event capture wrapper (click/dblclick/contextmenu → GNTDataForm sink);
   display:contents keeps it out of the Syncfusion form layout entirely */
.gnt-formitem-field-events {
    display: contents;
}

.e-data-form .e-form-layout > .e-label-position-top {
    margin-top: 0 !important;
}

.e-data-form .gnt-formitem .form-label,
.e-data-form .gnt-formitem .e-label {
    display: block;
    margin: 0 0 1px 0;
    line-height: 1.2;
}

.e-data-form .gnt-formitem .e-control-wrapper,
.e-data-form .gnt-formitem .e-input-group,
.e-data-form .gnt-formitem .e-control-container,
.e-data-form .gnt-formitem.e-control-wrapper,
.e-data-form .gnt-formitem.e-input-group,
.e-data-form .gnt-formitem.e-control-container {
    width: 100%;
    max-width: 100%;
}

.gnt-formitem-label-top .e-label,
.gnt-formitem-label-top label {
    margin-bottom: 1px;
}

.gnt-auto-form-field.gnt-col-1 {
    flex: 0 0 8.333333%;
    max-width: 8.333333%;
}

.gnt-auto-form-field.gnt-col-2 {
    flex: 0 0 16.666667%;
    max-width: 16.666667%;
}

.gnt-auto-form-field.gnt-col-3 {
    flex: 0 0 25%;
    max-width: 25%;
}

.gnt-auto-form-field.gnt-col-4 {
    flex: 0 0 33.333333%;
    max-width: 33.333333%;
}

.gnt-auto-form-field.gnt-col-5 {
    flex: 0 0 41.666667%;
    max-width: 41.666667%;
}

.gnt-auto-form-field.gnt-col-6 {
    flex: 0 0 50%;
    max-width: 50%;
}

.gnt-auto-form-field.gnt-col-7 {
    flex: 0 0 58.333333%;
    max-width: 58.333333%;
}

.gnt-auto-form-field.gnt-col-8 {
    flex: 0 0 66.666667%;
    max-width: 66.666667%;
}

.gnt-auto-form-field.gnt-col-9 {
    flex: 0 0 75%;
    max-width: 75%;
}

.gnt-auto-form-field.gnt-col-10 {
    flex: 0 0 83.333333%;
    max-width: 83.333333%;
}

.gnt-auto-form-field.gnt-col-11 {
    flex: 0 0 91.666667%;
    max-width: 91.666667%;
}

.gnt-auto-form-field.gnt-col-12 {
    flex: 0 0 100%;
    max-width: 100%;
}

.gnt-grid-selector-toolbar {
    flex: 0 0 auto;
    display: flex;
    align-items: center;
    gap: 0.5rem;
    flex-wrap: wrap;
}

.gnt-grid-selector-toolbar-search {
    margin-left: auto;
    flex: 0 0 min(22rem, 35vw);
    width: min(22rem, 35vw);
    display: flex;
    align-items: center;
    position: relative;
    min-width: min(19rem, 22.5vw);
    max-width: min(22rem, 35vw);
    height: 2.55rem;
    border: 1px solid #d6dbe3;
    border-radius: 999px;
    background: var(--gnt-surface-color);
    box-shadow: 0 1px 2px rgba(15, 23, 42, 0.08);
}

.gnt-grid-selector-search-input {
    flex: 1 1 auto;
    min-width: 0;
    max-width: none;
    width: 100%;
    height: 2.45rem;
    padding: 0 2.15rem 0 0.9rem;
    border: none;
    outline: none;
    border-radius: 999px 0 0 999px;
    background: transparent;
}

.gnt-grid-selector-search-clear {
    position: absolute;
    right: 3.35rem;
    top: 50%;
    transform: translateY(-50%);
    border: none;
    background: transparent;
    cursor: pointer;
    font-size: 1rem;
    line-height: 1;
    padding: 0;
}

.gnt-grid-selector-search-menu-button {
    flex: 0 0 auto;
    width: 3rem;
    min-width: 3rem;
    height: 2.55rem;
    border: none;
    border-left: 1px solid var(--gnt-border-light);
    border-radius: 0 999px 999px 0;
    background: var(--gnt-surface-2);
    color: var(--gnt-text-secondary);
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

.gnt-grid-selector-search-menu-button:hover,
.gnt-grid-selector-toolbar-search.is-open .gnt-grid-selector-search-menu-button {
    background: var(--gnt-primary-tint);
    color: var(--gnt-primary-strong);
}

.gnt-grid-selector-search-menu-icon {
    position: relative;
    display: inline-block;
    width: 1rem;
    height: 1rem;
}

.gnt-grid-selector-search-menu-icon::before {
    content: "";
    position: absolute;
    left: 0.08rem;
    top: 0.08rem;
    width: 0.58rem;
    height: 0.58rem;
    border: 2px solid currentColor;
    border-radius: 999px;
}

.gnt-grid-selector-search-menu-icon::after {
    content: "";
    position: absolute;
    left: 0.72rem;
    top: 0.72rem;
    width: 0.42rem;
    height: 2px;
    border-radius: 999px;
    background: currentColor;
    transform: rotate(45deg);
    transform-origin: left center;
}

.gnt-grid-selector-root {
    position: relative;
}

.gnt-grid-selector-root .gnt-grid-selector-search-panel {
    position: absolute;
    top: 3.2rem;
    right: 0.75rem;
    z-index: 1000;
    width: min(48rem, calc(100% - 1.5rem));
    max-height: min(34rem, 74vh);
    display: flex;
    flex-direction: column;
    border: 1px solid #c7d2fe;
    border-radius: 8px;
    background: var(--gnt-surface-color);
    box-shadow: 0 18px 40px rgba(15, 23, 42, 0.22);
    overflow: visible;
}

.gnt-grid-selector-root .gnt-grid-selector-search-panel.has-additional-fields {
    height: min(34rem, 74vh);
}

.gnt-grid-selector-root .gnt-grid-selector-search-panel::before {
    content: "";
    position: absolute;
    top: -0.45rem;
    right: 1.05rem;
    width: 0.85rem;
    height: 0.85rem;
    border-top: 1px solid #c7d2fe;
    border-left: 1px solid #c7d2fe;
    background: var(--gnt-surface-color);
    transform: rotate(45deg);
}

.gnt-grid-selector-root .gnt-grid-selector-search-panel-body {
    flex: 1 1 auto;
    min-height: 0;
    display: flex;
    flex-direction: column;
    overflow: hidden;
    border-radius: 8px 8px 0 0;
}

.gnt-grid-selector-root .gnt-grid-selector-starred-search-fields {
    flex: 0 1 42%;
    display: grid;
    grid-template-columns: 1fr;
    gap: 0.25rem;
    min-height: 3.2rem;
    max-height: 60%;
    padding: 0.45rem 1rem 0.55rem;
    background: var(--gnt-surface-color);
    overflow-x: hidden;
    overflow-y: auto;
    resize: vertical;
}

.gnt-grid-selector-root .gnt-grid-selector-field-option.is-starred-row {
    display: grid;
    grid-template-columns: 2rem minmax(9rem, 14rem) minmax(18rem, 1fr);
    min-width: 31rem;
    min-height: 2.25rem;
    column-gap: 0.55rem;
    align-items: center;
    padding: 0.2rem 0.45rem;
    border: 1px solid var(--gnt-border-light);
    border-radius: 6px;
    background: var(--gnt-surface-2);
}

.gnt-grid-selector-root .gnt-grid-selector-field-option-star,
.gnt-grid-selector-root .gnt-grid-selector-field-option-label-button {
    border: none;
    background: transparent;
    cursor: pointer;
}

.gnt-grid-selector-root .gnt-grid-selector-field-option-label-button {
    min-width: 0;
    color: var(--gnt-text-secondary);
    font-size: 0.86rem;
    font-weight: 600;
    overflow: hidden;
    text-align: left;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.gnt-grid-selector-root .gnt-grid-selector-starred-filter-line {
    min-width: 0;
}

.gnt-grid-selector-root .gnt-grid-selector-starred-filter-inputs {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    width: 100%;
    min-width: 0;
    white-space: nowrap;
}

.gnt-grid-selector-root .gnt-grid-selector-starred-filter-inputs input,
.gnt-grid-selector-root .gnt-grid-selector-starred-filter-inputs select {
    min-width: 0;
    height: 1.8rem;
    border: 1px solid var(--gnt-border-color);
    border-radius: 5px;
    outline: 0;
    background: var(--gnt-surface-color);
    color: var(--gnt-text-strong);
    font-size: 0.86rem;
    padding: 0 0.55rem;
}

.gnt-grid-selector-root .gnt-grid-selector-starred-filter-inputs input {
    flex: 1 1 auto;
    min-width: 8rem;
}

.gnt-grid-selector-root .gnt-grid-selector-starred-filter-inputs select {
    flex: 0 0 10.5rem;
    max-width: 10.5rem;
}

.gnt-grid-selector-root .gnt-grid-selector-starred-actions,
.gnt-grid-selector-root .gnt-grid-selector-search-panel-footer {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 0.6rem;
}

.gnt-grid-selector-root .gnt-grid-selector-starred-actions {
    padding-top: 0.2rem;
}

.gnt-grid-selector-root .gnt-grid-selector-starred-actions .gnt-grid-selector-show-additional-fields {
    margin: 0 auto 0 0;
}

.gnt-grid-selector-root .gnt-grid-selector-field-apply,
.gnt-grid-selector-root .gnt-grid-selector-field-clear,
.gnt-grid-selector-root .gnt-grid-selector-show-additional-fields,
.gnt-grid-selector-root .gnt-grid-selector-search-panel-close {
    border: 1px solid var(--gnt-border-color);
    border-radius: 5px;
    cursor: pointer;
    font-size: 0.84rem;
    padding: 0.4rem 0.75rem;
}

.gnt-grid-selector-root .gnt-grid-selector-field-apply,
.gnt-grid-selector-root .gnt-grid-selector-search-panel-close {
    border-color: var(--gnt-primary-color);
    background: var(--gnt-primary-color);
    color: var(--gnt-text-inverse);
}

.gnt-grid-selector-root .gnt-grid-selector-field-clear,
.gnt-grid-selector-root .gnt-grid-selector-show-additional-fields {
    background: var(--gnt-surface-color);
    color: var(--gnt-text-secondary);
}

.gnt-grid-selector-root .gnt-grid-selector-search-panel-lower {
    flex: 1 1 0;
    min-height: 0;
    display: flex;
    flex-direction: column;
    background: var(--gnt-surface-2);
    overflow: hidden;
}

.gnt-grid-selector-root .gnt-grid-selector-search-panel-splitter {
    flex: 0 0 0.7rem;
    display: flex;
    align-items: center;
    justify-content: center;
    border-top: 1px solid #dbe3ee;
    border-bottom: 1px solid #dbe3ee;
    background: var(--gnt-surface-2);
    cursor: row-resize;
}

.gnt-grid-selector-root .gnt-grid-selector-search-panel-splitter span {
    width: 2.5rem;
    height: 0.18rem;
    border-radius: 999px;
    background: #94a3b8;
}

.gnt-grid-selector-root .gnt-grid-selector-field-picker {
    flex: 1 1 auto;
    height: 100%;
    min-height: 6rem;
    display: flex;
    flex-direction: column;
    overflow: hidden;
}

.gnt-grid-selector-root .gnt-grid-selector-show-additional-fields {
    margin: 0.45rem 1rem;
}

.gnt-grid-selector-root .gnt-grid-selector-filter-field-grid.e-grid {
    flex: 1 1 auto;
    min-height: 0;
    font-size: 0.8rem;
}

.gnt-grid-selector-root .gnt-grid-selector-filter-field-grid .e-content {
    overflow-y: auto !important;
}

.gnt-grid-selector-root .gnt-grid-selector-filter-field-grid .e-headercell,
.gnt-grid-selector-root .gnt-grid-selector-filter-field-grid .e-rowcell {
    padding-top: 0.12rem;
    padding-bottom: 0.12rem;
}

.gnt-grid-selector-root .gnt-grid-selector-filter-field-grid .e-filterbarcell {
    padding-top: 0.15rem;
    padding-bottom: 0.15rem;
}

.gnt-grid-selector-root .gnt-grid-selector-filter-field-grid .e-filterbarcell .e-input,
.gnt-grid-selector-root .gnt-grid-selector-filter-field-grid .e-filterbarcell input {
    min-height: 1.75rem;
    height: 1.75rem;
}

.gnt-grid-selector-root .gnt-grid-selector-search-panel-footer {
    padding: 0.55rem 1rem 0.75rem;
    background: var(--gnt-surface-color);
    border-radius: 0 0 8px 8px;
}

.gnt-toolbar-icon-button {
    min-width: 2.25rem;
    width: 2.25rem;
    padding: 0.4rem;
}

.gnt-icon-add::before {
    content: "+";
    font-weight: 700;
    font-size: 2rem;
    line-height: 1;
    color: var(--gnt-success-color);
}

.deleteBtn.gnt-toolbar-icon-button,
.deleteBtn.gnt-toolbar-icon-button .e-btn-icon {
    color: var(--gnt-danger-color) !important;
}

.deleteBtn.gnt-toolbar-icon-button:hover,
.deleteBtn.gnt-toolbar-icon-button:focus {
    color: var(--gnt-danger-strong) !important;
    background-color: rgba(220, 38, 38, 0.08);
}

.deleteBtn.gnt-toolbar-icon-button:disabled,
.deleteBtn.gnt-toolbar-icon-button.e-disabled,
.deleteBtn.gnt-toolbar-icon-button:disabled .e-btn-icon,
.deleteBtn.gnt-toolbar-icon-button.e-disabled .e-btn-icon {
    color: var(--gnt-text-faint) !important;
}

.gnt-icon-delete::before {
    content: "";
    position: absolute;
    left: 0.34rem;
    top: 0.43rem;
    width: 0.58rem;
    height: 0.64rem;
    border: 0.13rem solid currentColor;
    border-top: 0;
    border-radius: 0 0 0.12rem 0.12rem;
    box-sizing: border-box;
    background:
        linear-gradient(currentColor, currentColor) 32% 52% / 0.08rem 70% no-repeat,
        linear-gradient(currentColor, currentColor) 50% 52% / 0.08rem 70% no-repeat,
        linear-gradient(currentColor, currentColor) 68% 52% / 0.08rem 70% no-repeat;
}

.gnt-icon-delete::after {
    content: "";
    position: absolute;
    left: 0.22rem;
    top: 0.27rem;
    width: 0.82rem;
    height: 0.12rem;
    border-radius: 0.08rem;
    background: currentColor;
    box-shadow: 0.26rem -0.16rem 0 -0.02rem currentColor;
}

.gnt-icon-delete {
    position: relative;
    color: var(--gnt-danger-color);
}

.gnt-icon-requery::before {
    content: "↻";
}

.gnt-icon-grid-edit::before {
    content: "▦";
}

.gnt-icon-edit::before {
    content: "✎";
}

.saveBtn.gnt-toolbar-icon-button,
.saveBtn.gnt-toolbar-icon-button .e-btn-icon {
    color: var(--gnt-success-color) !important;
}

.saveBtn.gnt-toolbar-icon-button:hover,
.saveBtn.gnt-toolbar-icon-button:focus {
    color: #146c43 !important;
    background-color: rgba(25, 135, 84, 0.08);
}

.saveBtn.gnt-toolbar-icon-button:disabled,
.saveBtn.gnt-toolbar-icon-button.e-disabled,
.saveBtn.gnt-toolbar-icon-button:disabled .e-btn-icon,
.saveBtn.gnt-toolbar-icon-button.e-disabled .e-btn-icon {
    color: var(--gnt-text-faint) !important;
}

.saveBtn.gnt-toolbar-icon-button .e-save::before {
    content: "\e7c8";
    font-family: "e-icons";
    font-size: 1.1rem;
    line-height: 1;
}

.gnt-icon-cancel::before {
    content: "×";
    font-weight: 700;
}

.gnt-icon-show-detail::before {
    content: "☰";
}

.gnt-icon-hide-detail::before {
    content: "☷";
}

.gnt-icon-views::before {
    content: "▤";
}

.gnt-icon-record-properties::before {
    content: "ⓘ";
    color: var(--gnt-text-tertiary);
}

.gnt-icon-settings::before {
    content: "⚙";
}

.gnt-icon-record-settings::before {
    content: "★";
    color: var(--gnt-warning-color);
}

.gnt-icon-module-settings::before {
    content: "▦";
    color: var(--gnt-primary-color);
}

.gnt-icon-star-settings::before {
    content: "★⚙";
    color: var(--gnt-warning-color);
    letter-spacing: -0.08rem;
}

.gnt-icon-excel-up::before {
    content: "X↑";
    font-weight: 700;
}

.gnt-icon-excel-down::before {
    content: "X↓";
    font-weight: 700;
}

.gnt-icon-indent::before {
    content: "\21E5";
}

.gnt-icon-outdent::before {
    content: "\21E4";
}

.gnt-icon-delete::before,
.gnt-icon-requery::before,
.gnt-icon-grid-edit::before,
.gnt-icon-edit::before,
.gnt-icon-show-detail::before,
.gnt-icon-hide-detail::before,
.gnt-icon-views::before,
.gnt-icon-record-properties::before,
.gnt-icon-settings::before,
.gnt-icon-record-settings::before,
.gnt-icon-module-settings::before,
.gnt-icon-star-settings::before,
.gnt-icon-excel-up::before,
.gnt-icon-excel-down::before,
.gnt-icon-indent::before,
.gnt-icon-outdent::before,
.gnt-icon-cancel::before {
    font-family: "Segoe UI Symbol", "Segoe UI", Arial, sans-serif !important;
    font-size: 1rem;
    line-height: 1;
}

/* Settings cog (module/record settings) renders at double icon size */
.gnt-icon-settings::before {
    font-size: 2rem;
}

/* Grid totals-row toggle button (GNTGridSelector.razor.css mirror) */
.gnt-totals-toggle {
    color: var(--gnt-text-secondary);
}

.gnt-totals-toggle:hover,
.gnt-totals-toggle:focus {
    color: var(--gnt-primary-strong);
    border-color: var(--gnt-primary-border);
    background: var(--gnt-primary-tint);
}

.gnt-totals-toggle--on {
    color: var(--gnt-primary-strong);
    background: var(--gnt-primary-tint);
}

.gnt-icon-totals::before {
    content: "\03A3";
    font-family: "Segoe UI Symbol", "Segoe UI", Arial, sans-serif !important;
    font-size: 1rem;
    font-weight: 700;
    line-height: 1;
}

/* Expand/collapse toggle injected into each group-drop-area chip (JS: syncGroupChipToggles) */
.e-groupdroparea .gnt-group-chip-toggle {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    min-width: 1.25rem;
    height: 1.25rem;
    padding: 0 .2rem;
    margin-left: .3rem;
    font-size: 1.05rem;
    line-height: 1;
    color: var(--gnt-text-tertiary);
    user-select: none;
    vertical-align: middle;
}

.e-groupdroparea .gnt-group-chip-toggle:hover {
    color: var(--gnt-primary-strong);
}

/* Group-labels toggle injected at the end of the group drop area (JS: syncGroupChipToggles) */
.e-groupdroparea .gnt-group-labels-toggle {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    height: 1.5rem;
    padding: 0 .4rem;
    margin-left: .5rem;
    border: 1px solid var(--gnt-border-color);
    border-radius: .25rem;
    font-size: .8rem;
    font-weight: 500;
    white-space: nowrap;
    line-height: 1;
    color: var(--gnt-text-tertiary);
    background: var(--gnt-surface-color);
    user-select: none;
    vertical-align: middle;
}

.e-groupdroparea .gnt-group-labels-toggle:hover {
    color: var(--gnt-primary-strong);
    border-color: var(--gnt-primary-strong);
}

.e-groupdroparea .gnt-group-labels-toggle--on {
    color: var(--gnt-primary-strong);
    background: var(--gnt-primary-tint);
    border-color: var(--gnt-primary-border);
}

/* Group By toolbar toggle + right-click menu (GNTGridSelector.razor.css mirror) */
.gnt-groupby-toggle {
    color: var(--gnt-text-secondary);
}

.gnt-groupby-toggle:hover,
.gnt-groupby-toggle:focus {
    color: var(--gnt-primary-strong);
    border-color: var(--gnt-primary-border);
    background: var(--gnt-primary-tint);
}

.gnt-groupby-toggle--on {
    color: var(--gnt-primary-strong);
    background: var(--gnt-primary-tint);
}

.gnt-icon-groupby::before {
    content: "\25A4";
    font-family: "Segoe UI Symbol", "Segoe UI", Arial, sans-serif !important;
    font-size: 1rem;
    line-height: 1;
}

.gnt-groupby-menu__overlay {
    position: fixed;
    inset: 0;
    z-index: 11040;
}

.gnt-groupby-menu {
    position: fixed;
    z-index: 11050;
    min-width: 11rem;
    padding: .25rem 0;
    border: 1px solid var(--gnt-border-color);
    border-radius: 6px;
    background: var(--gnt-surface-color);
    box-shadow: 0 10px 24px rgba(15, 23, 42, .18);
}

.gnt-groupby-menu__header {
    padding: .3rem .75rem .2rem;
    font-size: .72rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: .03em;
    color: var(--gnt-muted-color);
}

.gnt-groupby-menu__item {
    display: flex;
    align-items: center;
    width: 100%;
    padding: .35rem .75rem;
    border: 0;
    background: transparent;
    color: var(--gnt-text-strong);
    font: inherit;
    font-size: .875rem;
    text-align: left;
    white-space: nowrap;
    cursor: pointer;
}

.gnt-groupby-menu__item:hover,
.gnt-groupby-menu__item:focus {
    background: #e9f1ff;
    outline: none;
}

.gnt-groupby-menu__check {
    display: inline-block;
    width: 1.1rem;
    color: var(--gnt-primary-strong);
}

.gnt-groupby-menu__separator {
    height: 1px;
    margin: .25rem 0;
    background: #e2e8f0;
}

/* Gantt / Cashflow view toggle buttons (GNTGridSelector.razor.css mirror) */
.gnt-gantt-toggle,
.gnt-cashflow-toggle {
    color: var(--gnt-text-secondary);
}

.gnt-gantt-toggle:hover,
.gnt-gantt-toggle:focus,
.gnt-cashflow-toggle:hover,
.gnt-cashflow-toggle:focus {
    color: var(--gnt-primary-strong);
    border-color: var(--gnt-primary-border);
    background: var(--gnt-primary-tint);
}

.gnt-gantt-toggle--on,
.gnt-cashflow-toggle--on {
    color: var(--gnt-primary-strong);
    background: var(--gnt-primary-tint);
}

.gnt-icon-gantt::before {
    content: "\25A4";
    font-family: "Segoe UI Symbol", "Segoe UI", Arial, sans-serif !important;
    font-size: 1rem;
    font-weight: 700;
    line-height: 1;
}

.gnt-icon-cashflow::before {
    content: "\0024";
    font-family: "Segoe UI Symbol", "Segoe UI", Arial, sans-serif !important;
    font-size: 1rem;
    font-weight: 700;
    line-height: 1;
}

/* Toggleable grid totals row (GNTGridSelector_GridSurface.razor.css mirror) */
.e-gridfooter .e-summarycell .gnt-grid-total-value {
    font-weight: 600;
}

/* Lookup combo dropdown per-column filter row (GNTLookupCombo.razor.css mirror) */
.gnt-lookup-combo-colfilter {
    display: flex;
    flex-direction: column;
    gap: 2px;
    width: 100%;
    min-width: 0;
}

.gnt-lookup-combo-colfilter-title {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.gnt-lookup-combo-colfilter-input {
    width: 100%;
    min-width: 0;
    box-sizing: border-box;
    font-size: 12px;
    font-weight: normal;
    line-height: 1.4;
    padding: 1px 4px;
    border: 1px solid rgba(0, 0, 0, 0.22);
    border-radius: 2px;
    background: var(--gnt-surface-color);
}

.gnt-lookup-combo-colfilter-input:focus {
    outline: none;
    border-color: rgba(0, 0, 0, 0.45);
}

/* Deferred lookup-combo facade dropdown icon (GNTLookupCombo.razor.css mirror).
   Glyph/box come from the theme's e-input-group-icon + e-icons e-chevron-down
   classes so the not-yet-activated facade matches the live editor's icon. */
.gnt-lookup-combo-readonly .gnt-lookup-combo-deferred-icon {
    font-size: 14px;
    cursor: pointer;
}


/* ============================================================================
   Scoped-CSS mirror sweep (2026-07-28). The app loads THIS file, not the
   framework-generated scoped bundle, so every .razor.css rule must be mirrored
   here (unscoped) to take effect. Sections below carry rules that were missing.
   Source of truth stays in each component's .razor.css - mirror edits here.
   ============================================================================ */
/* ==== Sabre.Shared.Web\Components\BatchDeletePreviewDialog.razor.css (mirror) ==== */
.gnt-batch-delete-preview {
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
    min-height: 0;
    height: 100%;
}

.gnt-batch-delete-preview-alert {
    padding: 0.6rem 0.75rem;
    border: 1px solid #fca5a5;
    border-radius: 4px;
    background: var(--gnt-danger-tint);
    color: var(--gnt-danger-text);
}

.gnt-batch-delete-preview-status-row {
    display: flex;
    align-items: stretch;
    gap: 0.5rem;
}

.gnt-batch-delete-preview-status {
    flex: 1 1 auto;
    padding: 0.45rem 0.65rem;
    border: 1px solid #bfdbfe;
    border-radius: 4px;
    background: var(--gnt-primary-tint);
    color: #1e3a8a;
}

.gnt-batch-delete-preview-legend {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 0.35rem;
    flex: 0 0 auto;
    padding: 10px;
    background-color: #f0f0f0;
    border-radius: 4px;
}

.gnt-batch-delete-preview-legend .import-legend-button {
    margin-left: 8px;
    padding: 2px 8px;
    border-radius: 4px;
    border-width: 1px;
    font-weight: 600;
    box-shadow: none;
}

.gnt-batch-delete-preview-legend .import-legend-total {
    margin-left: 20px;
}

.gnt-batch-delete-preview-legend .import-legend-insert {
    background-color: #dcfce7 !important;
    border-color: #22c55e !important;
    color: #14532d !important;
}

.gnt-batch-delete-preview-legend .import-legend-duplicate {
    background-color: #ffedd5 !important;
    border-color: #fdba74 !important;
    color: #9a3412 !important;
}

.gnt-batch-delete-preview-legend .import-legend-missing {
    background-color: var(--gnt-danger-tint) !important;
    border-color: var(--gnt-danger-border) !important;
    color: var(--gnt-danger-text) !important;
}

.gnt-batch-delete-preview-legend .import-legend-nochange {
    background-color: #e2e3e5 !important;
    border-color: #d6d8db !important;
    color: var(--gnt-muted-color) !important;
}

.gnt-batch-delete-preview-legend .import-legend-active {
    outline: 2px solid var(--gnt-primary-color);
    outline-offset: 1px;
}

.gnt-batch-delete-preview-empty {
    padding: 1rem;
    color: var(--gnt-muted-color);
}

.gnt-batch-delete-preview-grid {
    flex: 1 1 auto;
    min-height: 0;
    overflow: auto;
    border: 1px solid var(--gnt-border-soft);
}

.gnt-batch-delete-preview-grid table {
    width: 100%;
    border-collapse: collapse;
    font-size: 0.875rem;
}

.gnt-batch-delete-preview-grid th, .gnt-batch-delete-preview-grid td {
    padding: 0.45rem 0.6rem;
    border-bottom: 1px solid var(--gnt-border-light);
    text-align: left;
    vertical-align: top;
}

.gnt-batch-delete-preview-grid th {
    position: sticky;
    top: 0;
    z-index: 1;
    background: var(--gnt-surface-2);
}

.gnt-batch-delete-preview-cell-text {
    display: block;
    max-width: 100%;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.gnt-batch-delete-preview-grid .is-delete-ready td:first-child {
    color: var(--gnt-success-color);
    font-weight: 700;
}

.gnt-batch-delete-preview-grid .is-delete-blocked td:first-child {
    color: var(--gnt-danger-text);
    font-weight: 700;
}

.gnt-batch-delete-preview-actions {
    display: flex;
    justify-content: flex-end;
    gap: 0.5rem;
}

/* ==== Sabre.Shared.Web\Components\GNTDataForm.razor.css (mirror) ==== */
.e-data-form .gnt-formitem.gnt-formitem-pad-l3-r3, .e-data-form .gnt-formitem-pad-l3-r3 {
    padding-left: 3px;
    padding-right: 3px;
}

.e-data-form .gnt-formitem.gnt-formitem-pad-l0-r0, .e-data-form .gnt-formitem-pad-l0-r0 {
    padding-left: 0;
    padding-right: 0;
}

.e-data-form .gnt-formitem.gnt-formitem-pad-l6-r6, .e-data-form .gnt-formitem-pad-l6-r6 {
    padding-left: 6px;
    padding-right: 6px;
}

.e-data-form .gnt-formitem.gnt-formitem-pad-l10-r10, .e-data-form .gnt-formitem-pad-l10-r10 {
    padding-left: 10px;
    padding-right: 10px;
}

.e-data-form .gnt-formitem.gnt-formitem-pad-l6-r0, .e-data-form .gnt-formitem-pad-l6-r0 {
    padding-left: 6px;
    padding-right: 0;
}

.e-data-form .gnt-formitem.gnt-formitem-pad-l0-r6, .e-data-form .gnt-formitem-pad-l0-r6 {
    padding-left: 0;
    padding-right: 6px;
}

/* ==== Sabre.Shared.Web\Components\GNTDetailForm.razor.css (mirror) ==== */
.gnt-form-grid {
    display: grid;
    grid-template-columns: repeat(12, minmax(0, 1fr));
    gap: 12px;
    align-items: start;
}

.gnt-form-field {
    min-width: 0;
}

.gnt-form-label {
    display: block;
    margin-bottom: 4px;
    font-weight: 600;
}

.gnt-detailform-dynamic-root--edit {
    outline: 2px solid rgba(217, 119, 6, 0.72);
    outline-offset: -2px;
    box-shadow: inset 0 3px 0 #b45309;
}

.gnt-toolbar-item-active {
    background: #e8f1ff;
}

.gnt-toolbar-item-active .e-tbar-btn-text {
    font-weight: 600;
}

.gnt-detailform-static-split {
    display: grid;
    grid-template-rows: minmax(0, 1fr) minmax(75px, 1fr);
    height: 100%;
    min-width: 0;
    min-height: 0;
    overflow: hidden;
}

.gnt-detailform-static-split--single {
    grid-template-rows: minmax(0, 1fr);
}

.gnt-detailform-static-pane {
    min-width: 0;
    min-height: 0;
    overflow: hidden;
}

.gnt-detailform-static-pane--subforms {
    border-top: 1px solid #d9dee7;
}

.gnt-detailform-density-compressed .gnt-detailform-body {
    padding: 4px 6px;
}

.gnt-detailform-density-normal .e-data-form .e-form-group, .gnt-detailform-density-normal .e-data-form .e-form-group.e-group {
    margin-bottom: 8px;
    row-gap: 6px;
}

.gnt-detailform-density-normal .e-data-form .e-form-grid {
    row-gap: 6px;
    column-gap: 8px;
}

.gnt-detailform-density-normal .e-data-form .e-field {
    padding-block: 2px;
}

.gnt-detailform-density-compressed .e-data-form .e-form-group, .gnt-detailform-density-compressed .e-data-form .e-form-group.e-group {
    margin-bottom: 4px;
    row-gap: 2px;
}

.gnt-detailform-density-compressed .e-data-form .e-form-title {
    padding: 4px 0 2px;
    font-size: 0.9rem;
}

.gnt-detailform-density-compressed .e-data-form .e-form-grid {
    row-gap: 2px;
    column-gap: 6px;
}

.gnt-detailform-density-compressed .e-data-form .e-field {
    padding-block: 1px;
}

.gnt-detailform-density-compressed .e-data-form label, .gnt-detailform-density-compressed .e-data-form .e-label {
    margin-bottom: 1px;
    font-size: 0.78rem;
}

.gnt-detailform-density-compressed .e-input, .gnt-detailform-density-compressed .e-input-group, .gnt-detailform-density-compressed .e-control-wrapper {
    min-height: 26px;
}

.gnt-detailform-subform-suppressed {
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 1rem;
    color: var(--gnt-muted-color);
    min-height: 100%;
}

/* ==== Sabre.Shared.Web\Components\GNTFormItemAutoLayout.razor.css (mirror) ==== */
.gnt-auto-form-field--editable .e-input-group, .gnt-auto-form-field--editable .e-control-wrapper, .gnt-auto-form-field--editable input:not([type="hidden"]):not([readonly]):not(:disabled), .gnt-auto-form-field--editable textarea:not([readonly]):not(:disabled), .gnt-auto-form-field--editable select:not(:disabled) {
    background-color: rgba(217, 119, 6, 0.035);
    box-shadow: inset 3px 0 0 rgba(217, 119, 6, 0.38);
    transition: background-color 0.16s ease, box-shadow 0.16s ease;
}

.gnt-auto-form-field--editable:hover .e-input-group:not(.e-disabled), .gnt-auto-form-field--editable:hover .e-control-wrapper:not(.e-disabled), .gnt-auto-form-field--editable:hover input:not([type="hidden"]):not([readonly]):not(:disabled), .gnt-auto-form-field--editable:hover textarea:not([readonly]):not(:disabled), .gnt-auto-form-field--editable:hover select:not(:disabled) {
    background-color: rgba(217, 119, 6, 0.065);
    box-shadow: inset 3px 0 0 rgba(217, 119, 6, 0.58), 0 0 0 1px rgba(217, 119, 6, 0.16);
}

/* Combo-style controls (lookup-combo deferred facade, dropdown lists) render a
   readonly display input covering the wrapper, hiding its editable tint. Tint
   the readonly display input directly with the same alpha as editable inputs —
   wrapper + input layers then compound identically to a plain textbox, so the
   visual weight matches. */
.gnt-auto-form-field--editable .e-input-group input[readonly],
.gnt-auto-form-field--editable .gnt-lookup-combo-readonly-value {
    background-color: rgba(217, 119, 6, 0.07) !important;
    box-shadow: inset 3px 0 0 rgba(217, 119, 6, 0.38) !important;
}

.gnt-auto-form-field--editable:hover .e-input-group input[readonly],
.gnt-auto-form-field--editable:hover .gnt-lookup-combo-readonly-value {
    background-color: rgba(217, 119, 6, 0.125) !important;
    box-shadow: inset 3px 0 0 rgba(217, 119, 6, 0.58) !important;
}

.gnt-auto-form-field--readonly .e-input-group, .gnt-auto-form-field--readonly .e-control-wrapper {
    box-shadow: none;
}

.gnt-auto-form-field--readonly, .gnt-auto-form-field--readonly input, .gnt-auto-form-field--readonly textarea, .gnt-auto-form-field--readonly select, .gnt-auto-form-field--readonly .e-input, .gnt-auto-form-field--readonly .e-control, .gnt-auto-form-field--readonly .e-control-wrapper {
    user-select: text;
    -webkit-user-select: text;
}

/* ==== Sabre.Shared.Web\Components\GNTGridLookupCombo.razor.css (mirror) ==== */
.gnt-lookup-combo-input {
    display: flex;
    align-items: center;
    gap: 4px;
    width: 100%;
    min-width: 0;
}

.gnt-lookup-combo-select {
    flex: 1 1 auto;
    min-width: 0;
}

.gnt-lookup-combo-btn {
    flex: 0 0 auto;
    min-width: 28px;
    padding-left: 6px;
    padding-right: 6px;
}

/* ==== Sabre.Shared.Web\Components\GNTGridSelector_GridSurface.razor.css (mirror) ==== */
.gnt-favourite-cell {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 100%;
    background: transparent !important;
    border: 0 !important;
    box-shadow: none !important;
    outline: 0 !important;
}

.gnt-rowselect-cell {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 100%;
}

.gnt-favourite-button {
    all: unset !important;
    appearance: none;
    -webkit-appearance: none;
    border: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
    outline: 0 !important;
    color: var(--gnt-text-faint) !important;
    cursor: pointer !important;
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
    width: auto !important;
    min-width: 0 !important;
    height: auto !important;
    min-height: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    font-family: "Segoe UI Symbol", "Segoe UI", Arial, sans-serif !important;
    font-size: 1rem !important;
    font-weight: 400 !important;
    line-height: 1 !important;
    text-decoration: none !important;
    text-shadow: none !important;
}

.gnt-favourite-button--active {
    color: #d4a017 !important;
}

.gnt-favourite-button:focus, .gnt-favourite-button:focus-visible, .gnt-favourite-button:active, .gnt-favourite-button:hover {
    border: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
    outline: 0 !important;
    text-decoration: none !important;
}

.e-grid .e-rowcell:has(.gnt-favourite-cell), .e-grid td.e-rowcell:has(.gnt-favourite-cell), .e-grid td.e-cellselectionbackground:has(.gnt-favourite-cell), .e-grid td[aria-selected="true"]:has(.gnt-favourite-cell) {
    background-clip: padding-box !important;
    box-shadow: none !important;
    outline: 0 !important;
}

.e-grid tr.gnt-grid-selected-record-row > td.e-rowcell:not(.e-cellselectionbackground), .e-grid td.gnt-grid-selected-record-cell:not(.e-cellselectionbackground) {
    background-color: #e9ecef !important;
}

.gnt-grid-surface-host {
    position: relative;
}

.gnt-grid-surface-host:not(.gnt-grid-surface-host--edit) .e-grid .e-rowcell, .gnt-grid-surface-host:not(.gnt-grid-surface-host--edit) .e-grid .e-rowcell .e-cellvalue, .gnt-grid-surface-host:not(.gnt-grid-surface-host--edit) .e-grid .e-rowcell > div {
    -webkit-user-select: text;
    -ms-user-select: text;
    user-select: text;
    cursor: text;
}

.gnt-grid-surface-host--edit .e-grid {
    border-color: rgba(13, 148, 136, 0.38) !important;
}

.gnt-grid-surface-host--edit .e-gridheader, .e-grid.gnt-grid-edit-mode .e-gridheader {
    box-shadow: inset 0 -2px 0 rgba(13, 148, 136, 0.24);
}

.gnt-batch-delete-preview {
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
    min-height: 0;
    height: 100%;
}

.gnt-batch-delete-preview-summary {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
}

.gnt-batch-delete-preview-summary span {
    padding: 0.25rem 0.5rem;
    border: 1px solid var(--gnt-border-soft);
    border-radius: 4px;
    background: var(--gnt-surface-2);
}

.gnt-batch-delete-preview-alert {
    padding: 0.6rem 0.75rem;
    border: 1px solid #fca5a5;
    border-radius: 4px;
    background: var(--gnt-danger-tint);
    color: var(--gnt-danger-text);
}

.gnt-batch-delete-preview-status-row {
    display: flex;
    align-items: stretch;
    gap: 0.5rem;
}

.gnt-batch-delete-preview-status-row .e-btn {
    flex: 0 0 auto;
}

.gnt-batch-delete-preview-status {
    flex: 1 1 auto;
    padding: 0.45rem 0.65rem;
    border: 1px solid #bfdbfe;
    border-radius: 4px;
    background: var(--gnt-primary-tint);
    color: #1e3a8a;
}

.gnt-batch-delete-preview-legend {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 0.35rem;
    flex: 0 0 auto;
    padding: 10px;
    background-color: #f0f0f0;
    border-radius: 4px;
}

.gnt-batch-delete-preview-legend .import-legend-button {
    margin-left: 8px;
    padding: 2px 8px;
    border-radius: 4px;
    border-width: 1px;
    font-weight: 600;
    box-shadow: none;
}

.gnt-batch-delete-preview-toolbar-spacer {
    flex: 1 1 auto;
    min-width: 1rem;
}

.gnt-batch-delete-preview-export-button {
    width: 2rem;
    height: 2rem;
    min-width: 2rem;
    padding: 0;
}

.gnt-batch-delete-preview-export-button .gnt-icon-excel-down::before {
    content: "X\2193";
    color: var(--gnt-success-color);
    font-family: "Segoe UI Symbol", "Segoe UI", Arial, sans-serif !important;
    font-size: 1rem;
    font-weight: 700;
    line-height: 1;
}

.gnt-batch-delete-preview-legend .import-legend-total {
    margin-left: 20px;
}

.gnt-batch-delete-preview-legend .import-legend-insert {
    background-color: #dcfce7 !important;
    border-color: #22c55e !important;
    color: #14532d !important;
}

.gnt-batch-delete-preview-legend .import-legend-duplicate {
    background-color: #ffedd5 !important;
    border-color: #fdba74 !important;
    color: #9a3412 !important;
}

.gnt-batch-delete-preview-legend .import-legend-missing {
    background-color: var(--gnt-danger-tint) !important;
    border-color: var(--gnt-danger-border) !important;
    color: var(--gnt-danger-text) !important;
}

.gnt-batch-delete-preview-legend .import-legend-nochange {
    background-color: #e2e3e5 !important;
    border-color: #d6d8db !important;
    color: var(--gnt-muted-color) !important;
}

.gnt-batch-delete-preview-legend .import-legend-active {
    outline: 2px solid var(--gnt-primary-color);
    outline-offset: 1px;
}

.gnt-batch-delete-preview-grid-host {
    flex: 1 1 auto;
    min-height: 0;
    overflow: hidden;
}

.gnt-batch-delete-preview-grid-host .e-grid {
    height: 100% !important;
}

.gnt-batch-delete-preview-grid-host small {
    color: var(--gnt-muted-color);
    font-size: 0.75rem;
}

.gnt-batch-delete-preview-grid-host .import-new-cell {
    background-color: #d4edda !important;
    font-weight: 500;
}

.gnt-batch-delete-preview-grid-host .import-missing-cell {
    background-color: var(--gnt-danger-tint) !important;
    color: var(--gnt-danger-text) !important;
    font-weight: 600;
}

.gnt-batch-delete-preview-empty {
    padding: 1rem;
    color: var(--gnt-muted-color);
}

.gnt-batch-delete-preview-cell-text {
    display: block;
    max-width: 100%;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.gnt-batch-delete-preview-grid {
    flex: 1 1 auto;
    min-height: 0;
    overflow: auto;
    border: 1px solid var(--gnt-border-soft);
}

.gnt-batch-delete-preview-grid table {
    width: 100%;
    border-collapse: collapse;
    font-size: 0.875rem;
}

.gnt-batch-delete-preview-grid th, .gnt-batch-delete-preview-grid td {
    padding: 0.45rem 0.6rem;
    border-bottom: 1px solid var(--gnt-border-light);
    text-align: left;
    vertical-align: top;
}

.gnt-batch-delete-preview-grid th {
    position: sticky;
    top: 0;
    z-index: 1;
    background: var(--gnt-surface-2);
}

.gnt-batch-delete-preview-grid small {
    color: var(--gnt-muted-color);
    font-size: 0.75rem;
}

.gnt-batch-delete-preview-grid .is-delete-ready td:first-child {
    color: var(--gnt-success-color);
    font-weight: 700;
}

.gnt-batch-delete-preview-grid .is-delete-warning td:first-child {
    color: #92400e;
    font-weight: 700;
}

.gnt-batch-delete-preview-grid .is-delete-blocked td:first-child {
    color: var(--gnt-danger-text);
    font-weight: 700;
}

.gnt-batch-delete-preview-actions {
    display: flex;
    justify-content: flex-end;
    gap: 0.5rem;
}

/* ==== Sabre.Shared.Web\Components\GNTGridSelector.razor.css (mirror) ==== */
.gnt-grid-selector-root .gnt-favourite-button {
    border: none;
    background: transparent;
    cursor: pointer;
    font-size: 1.1rem;
    line-height: 1;
    color: #d4a017;
    padding: 0;
    outline: none;
    box-shadow: none;
}

.gnt-grid-selector-root .gnt-favourite-button:focus, .gnt-grid-selector-root .gnt-favourite-button:focus-visible, .gnt-grid-selector-root .gnt-favourite-button:active {
    outline: none;
    box-shadow: none;
}

.gnt-grid-selector-root .gnt-favourite-cell {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 100%;
}

.gnt-grid-selector-root .e-rowcell:has(.gnt-favourite-cell) {
    box-shadow: none;
    outline: none;
}

.gnt-grid-selector-root--grid-edit .gnt-grid-selector-toolbar {
    background: linear-gradient(90deg, rgba(13, 148, 136, 0.09), rgba(13, 148, 136, 0) 44%);
    box-shadow: inset 0 -1px 0 rgba(13, 148, 136, 0.22);
}

.gnt-grid-selector-root--form-edit .gnt-grid-selector-toolbar {
    background: linear-gradient(90deg, rgba(217, 119, 6, 0.1), rgba(217, 119, 6, 0) 44%);
    box-shadow: inset 0 -1px 0 rgba(217, 119, 6, 0.24);
}

.gnt-grid-selector-root .gnt-row-height-selector {
    display: inline-flex;
    align-items: center;
    margin: 0;
}

.gnt-grid-selector-root .gnt-tree-grid-toggle {
    display: inline-flex;
    align-items: center;
    gap: 0.3rem;
    margin: 0;
}

.gnt-grid-selector-root .gnt-tree-grid-toggle-label {
    color: var(--gnt-text-secondary);
    font-size: 0.82rem;
    margin: 0;
    cursor: pointer;
    user-select: none;
}

/* Tree grid: graded grey background per hierarchy level (darker at root, lighter each child).
   Leaf rows (no expand/collapse icon) keep no background. */

.gnt-grid-selector-root .gnt-row-height-toggle {
    color: var(--gnt-text-secondary);
}

.gnt-grid-selector-root .gnt-row-height-toggle:hover, .gnt-grid-selector-root .gnt-row-height-toggle:focus {
    color: var(--gnt-primary-strong);
    border-color: var(--gnt-primary-border);
    background: var(--gnt-primary-tint);
}

.gnt-grid-selector-root .gnt-row-height-toggle--compressed {
    color: var(--gnt-primary-strong);
    background: var(--gnt-primary-tint);
}

.gnt-grid-selector-root .gnt-icon-row-height-down::before {
    content: "\21A7";
}

.gnt-grid-selector-root .gnt-icon-row-height-up::before {
    content: "\21A5";
}

.gnt-grid-selector-root .gnt-icon-row-height-down::before, .gnt-grid-selector-root .gnt-icon-row-height-up::before {
    font-size: 1.15rem;
    font-weight: 700;
    line-height: 1;
}

.gnt-grid-selector-root--grid-edit .gnt-grid-selector-grid-host {
    outline: 2px solid rgba(13, 148, 136, 0.72);
    outline-offset: -2px;
    box-shadow: inset 0 3px 0 #0f766e;
}

.gnt-grid-selector-root--grid-edit .gnt-grid-selector-grid-host .e-grid {
    border-color: rgba(13, 148, 136, 0.3);
}

.gnt-grid-selector-root--grid-edit .gnt-grid-selector-grid-host .e-gridheader {
    box-shadow: inset 0 -2px 0 rgba(13, 148, 136, 0.22);
}

.gnt-grid-selector-root .gnt-grid-surface-host {
    flex: 1 1 0;
    display: flex;
    flex-direction: column;
    align-self: stretch;
    width: 100%;
    height: 100%;
    min-height: 0;
    min-width: 0;
    overflow: hidden;
    outline: 0;
}

.gnt-grid-selector-root--form-edit .gnt-grid-selector-detail-pane--open {
    border-left-color: rgba(217, 119, 6, 0.45);
}

.gnt-grid-selector-root .gnt-grid-surface-host > .e-grid {
    flex: 1 1 0;
    height: auto !important;
    width: 100%;
    min-height: 0;
    min-width: 0;
}

.gnt-grid-selector-root .gnt-grid-loaded-count {
    flex: 0 0 auto;
    padding: 0 0.75rem;
    color: var(--gnt-text-tertiary);
    font-size: 0.75rem;
    white-space: nowrap;
}

.gnt-grid-selector-root .gnt-grid-row-height-compressed .e-row, .gnt-grid-selector-root .gnt-grid-row-height-compressed .e-rowcell {
    height: 22px !important;
}

.gnt-grid-selector-root .gnt-grid-row-height-compressed .e-rowcell {
    padding-top: 0 !important;
    padding-bottom: 0 !important;
    line-height: 1.1;
}

.gnt-grid-selector-root .gnt-grid-row-height-compressed .e-rowcell > div, .gnt-grid-selector-root .gnt-grid-row-height-compressed .grid-col-combo-display, .gnt-grid-selector-root .gnt-grid-row-height-compressed .gnt-favourite-cell {
    min-height: 0;
    height: 100%;
    line-height: 1.1;
}

.gnt-grid-selector-root .gnt-grid-row-height-fit .e-rowcell {
    white-space: normal;
    overflow-wrap: anywhere;
    line-height: 1.25;
    padding-top: 0.35rem !important;
    padding-bottom: 0.35rem !important;
}

.gnt-grid-selector-root .gnt-grid-row-height-fit .e-rowcell .e-cellvalue {
    white-space: normal;
}

.gnt-grid-selector-root .gnt-grid-applied-filter-status {
    position: absolute;
    right: 0.75rem;
    bottom: 0.45rem;
    z-index: 2;
    max-width: min(38rem, 48%);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    color: var(--gnt-text-tertiary);
    font-size: 0.75rem;
    line-height: 1.2;
    pointer-events: none;
}

.gnt-record-properties-dialog .e-dlg-content {
    height: 100%;
    min-height: 0;
    padding: 0;
    overflow: hidden;
}

/* ==== Sabre.Shared.Web\Components\GNTGridToolbarSearch.razor.css (mirror) ==== */
.gnt-grid-selector-starred-search-fields.is-empty {
    padding-bottom: 0.8rem;
}

.gnt-grid-selector-empty-starred-row {
    color: var(--gnt-muted-color);
    font-size: 0.86rem;
    padding: 0.5rem 0.75rem;
    border: 1px dashed var(--gnt-border-color);
    border-radius: 6px;
    background: var(--gnt-surface-2);
}

.gnt-grid-selector-field-grid {
    min-height: 0;
    max-height: 13rem;
    overflow: auto;
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(13rem, 1fr));
    align-content: start;
    gap: 0.25rem;
    padding: 0.45rem;
    background: var(--gnt-surface-color);
}

.gnt-grid-selector-field-option.is-selected {
    background: var(--gnt-primary-tint);
}

.gnt-grid-selector-field-option-star, .gnt-grid-selector-field-option-main {
    border: none;
    background: transparent;
    cursor: pointer;
}

.gnt-grid-selector-field-option-main {
    min-width: 0;
    padding: 0.45rem 0.45rem 0.45rem 0;
    text-align: left;
}

.gnt-grid-selector-field-option-label, .gnt-grid-selector-field-option-path {
    display: block;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.gnt-grid-selector-field-option-path {
    color: var(--gnt-muted-color);
    font-size: 0.72rem;
}

/* ==== Sabre.Shared.Web\Components\GNTLookupCombo.razor.css (mirror) ==== */
.gnt-lookup-combo-input {
    display: flex;
    align-items: center;
    gap: 4px;
    width: 100%;
    min-width: 0;
}

.gnt-lookup-combo-select {
    flex: 1 1 auto;
    min-width: 0;
}

.gnt-lookup-combo-readonly .gnt-lookup-combo-readonly-value {
    cursor: text;
    overflow: hidden;
    text-overflow: ellipsis;
}

.gnt-lookup-combo-readonly--editable, .gnt-lookup-combo-readonly--editable .gnt-lookup-combo-readonly-value {
    cursor: text;
}

.gnt-lookup-combo-btn {
    flex: 0 0 auto;
    min-width: 28px;
    padding-left: 6px;
    padding-right: 6px;
}

/* ==== Sabre.Shared.Web\Components\Maps\GNTMap.razor.css (mirror) ==== */
.gnt-map {
    position: relative;
    width: 100%;
    min-height: 220px;
    overflow: hidden;
    border: 1px solid var(--gnt-border-color);
    border-radius: 6px;
    background: var(--gnt-surface-2);
}

.gnt-map__surface {
    display: block;
    width: 100%;
    height: 100%;
}

.gnt-map__background {
    width: 100%;
    height: 100%;
    fill: #f8fafc;
}

.gnt-map__polygon, .gnt-map__line, .gnt-map__point {
    cursor: pointer;
    vector-effect: non-scaling-stroke;
}

.gnt-map__polygon:hover, .gnt-map__line:hover, .gnt-map__point:hover {
    filter: brightness(0.9);
}

.gnt-map__line {
    fill: none;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.gnt-map__point {
    stroke-width: 2;
}

.gnt-map__empty {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    height: 100%;
    min-height: 220px;
    color: var(--gnt-muted-color);
    font-size: 0.9rem;
}

/* ==== Sabre.Shared.Web\Components\Modals\ExternalDataSourceWizard.razor.css (mirror) ==== */
.external-data-source-wizard {
    display: flex;
    flex-direction: column;
    gap: 18px;
    min-height: 520px;
}

.external-data-source-wizard__steps {
    display: flex;
    align-items: center;
    gap: 8px;
    color: #5b6470;
    font-size: 0.86rem;
}

.external-data-source-wizard__step {
    border: 1px solid #d7dce2;
    border-radius: 6px;
    padding: 5px 10px;
    background: var(--gnt-surface-color);
}

.external-data-source-wizard__step--active {
    border-color: var(--gnt-primary-color);
    color: #174ea6;
    background: var(--gnt-primary-tint);
}

.external-data-source-wizard__step--complete {
    color: #236144;
    background: #eff8f3;
    border-color: #bedcc9;
}

.external-data-source-wizard__provider-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    column-gap: 34px;
    row-gap: 12px;
    padding: 6px 4px;
}

.external-data-source-wizard__provider {
    display: grid;
    grid-template-columns: 42px minmax(0, 1fr) 32px;
    align-items: center;
    gap: 10px;
    width: 100%;
    min-height: 58px;
    border: 1px solid transparent;
    border-radius: 6px;
    background: var(--gnt-surface-color);
    padding: 7px 8px;
    text-align: left;
    cursor: pointer;
}

.external-data-source-wizard__provider:hover, .external-data-source-wizard__provider--selected {
    border-color: #d3dbe7;
    background: #f7f9fc;
}

.external-data-source-wizard__provider-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 38px;
    height: 38px;
    border: 1px solid #dfe4ea;
    border-radius: 8px;
    background: var(--gnt-surface-color);
    color: var(--gnt-text-inverse);
    font-size: 0.76rem;
    font-weight: 700;
}

.external-data-source-wizard__provider-icon--sharepoint {
    background: #0f7b7b;
}

.external-data-source-wizard__provider-icon--excel {
    background: #107c41;
}

.external-data-source-wizard__provider-icon--powerbi {
    background: #f2c811;
     color: #2a2a2a;
}

.external-data-source-wizard__provider-icon--fabric {
    background: #5b5fc7;
}

.external-data-source-wizard__provider-icon--xero {
    background: #13b5ea;
}

.external-data-source-wizard__provider-icon--sql {
    background: #0078d4;
}

.external-data-source-wizard__provider-icon--sqlserver {
    background: #475569;
}

.external-data-source-wizard__provider-icon--odata {
    background: #238636;
}

.external-data-source-wizard__provider-icon--api {
    background: #7c3aed;
}

.external-data-source-wizard__provider-copy, .external-data-source-wizard__selected-provider span:last-child {
    display: flex;
    flex-direction: column;
    min-width: 0;
}

.external-data-source-wizard__provider-name {
    color: #20242a;
    font-weight: 650;
    line-height: 1.2;
}

.external-data-source-wizard__provider-description {
    color: #68717d;
    font-size: 0.85rem;
    line-height: 1.25;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.external-data-source-wizard__provider-add {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 28px;
    height: 28px;
    border-radius: 50%;
    background: #f1f3f6;
    color: #3f4650;
    font-size: 1.3rem;
    line-height: 1;
}

.external-data-source-wizard__selected-provider {
    display: flex;
    align-items: center;
    gap: 10px;
    border: 1px solid #dfe4ea;
    border-radius: 8px;
    background: #fbfcfe;
    padding: 10px 12px;
}

.external-data-source-wizard__selected-provider strong {
    color: #20242a;
}

.external-data-source-wizard__selected-provider span span {
    color: #68717d;
    font-size: 0.86rem;
}

.external-data-source-wizard__form {
    display: flex;
    flex-direction: column;
    gap: 16px;
}

.external-data-source-wizard__fields {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 14px 16px;
}

.external-data-source-wizard__fields--rules {
    align-items: start;
}

.external-data-source-wizard__fields label {
    display: flex;
    flex-direction: column;
    gap: 5px;
    min-width: 0;
    color: #4d5661;
    font-size: 0.86rem;
}

.external-data-source-wizard__input {
    width: 100%;
    min-height: 34px;
    border: 1px solid #cfd6df;
    border-radius: 6px;
    padding: 6px 9px;
    color: #20242a;
    background: var(--gnt-surface-color);
}

.external-data-source-wizard__checkbox {
    flex-direction: row !important;
    align-items: center;
    min-height: 34px;
    margin-top: 22px;
}

.external-data-source-wizard__callout {
    grid-column: 1 / -1;
    border-left: 3px solid var(--gnt-primary-color);
    background: #f4f7fc;
    color: #42505f;
    padding: 10px 12px;
    font-size: 0.88rem;
}

.external-data-source-wizard__footer {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-top: auto;
    padding-top: 12px;
    border-top: 1px solid #e5e9ef;
}

.external-data-source-wizard__footer-spacer {
    flex: 1;
}

@media (max-width: 760px) {
    .external-data-source-wizard__provider-grid, .external-data-source-wizard__fields {
        grid-template-columns: 1fr;
    }
}

/* ==== Sabre.Shared.Web\Components\RecordTemplates\RecordTemplateDefinitionDesigner.razor.css (mirror) ==== */
.record-template-definition-designer {
    display: grid;
    grid-template-rows: auto auto minmax(0, 1fr);
    gap: 0.7rem;
    height: 100%;
    min-height: 0;
    color: var(--gnt-text-color);
}

.record-template-definition-empty {
    display: grid;
    place-items: center;
    min-height: 16rem;
    color: var(--gnt-muted-color);
}

.record-template-definition-toolbar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    padding: 0.7rem 0.8rem;
    border: 1px solid var(--gnt-border-soft);
    border-radius: 8px;
    background: var(--gnt-surface-color);
    box-shadow: 0 8px 22px rgba(15, 23, 42, 0.06);
}

.record-template-definition-title {
    display: grid;
    gap: 0.15rem;
    min-width: 0;
}

.record-template-definition-title strong {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.record-template-definition-title span {
    color: var(--gnt-muted-color);
    font-size: 0.78rem;
}

.record-template-definition-actions {
    display: flex;
    gap: 0.45rem;
    flex-wrap: wrap;
}

.record-template-definition-actions button, .record-template-definition-tool-palette button, .record-template-definition-palette-tab, .record-template-definition-gamepad button, .record-template-definition-width-controls button, .record-template-definition-property-actions button {
    min-height: 2rem;
    border: 1px solid var(--gnt-border-color);
    border-radius: 6px;
    background: var(--gnt-surface-2);
    color: var(--gnt-text-color);
    padding: 0.35rem 0.65rem;
    font-weight: 650;
}

.record-template-definition-actions button:hover:not(:disabled), .record-template-definition-tool-palette button:hover:not(:disabled), .record-template-definition-palette-tab:hover, .record-template-definition-gamepad button:hover:not(:disabled), .record-template-definition-width-controls button:hover:not(:disabled), .record-template-definition-property-actions button:hover:not(:disabled) {
    border-color: #327a8c;
    background: #eef9fb;
}

.record-template-definition-actions button:disabled, .record-template-definition-field-list button:disabled {
    cursor: default;
    opacity: 0.55;
}

.record-template-definition-message {
    padding: 0.55rem 0.7rem;
    border: 1px solid #bdd7c7;
    border-radius: 6px;
    background: #f3fbf5;
    color: #24552b;
}

.record-template-definition-message-error {
    border-color: #e3b4b4;
    background: var(--gnt-danger-tint);
    color: #8a2c2c;
}

.record-template-definition-shell {
    display: block;
    min-height: 0;
    border: 0;
    background: transparent;
}

.record-template-definition-shell .e-pane {
    padding: 0;
}

.record-template-definition-shell .e-split-bar {
    background: #c9d5e3;
}

.record-template-definition-split-pane {
    min-height: 0;
    overflow: hidden;
    padding: 0 0.35rem;
}

.record-template-definition-pane, .record-template-definition-preview-host {
    min-height: 0;
    border: 1px solid #ced8e5;
    border-radius: 8px;
    background: var(--gnt-surface-color);
    box-shadow: 0 10px 26px rgba(15, 23, 42, 0.07);
}

.record-template-definition-pane {
    display: grid;
    grid-template-rows: auto minmax(0, 1fr);
    overflow: hidden;
}

.record-template-definition-pane-header, .record-template-definition-canvas-toolbar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.6rem;
    padding: 0.65rem 0.75rem;
    border-bottom: 1px solid #e0e7ef;
    background: var(--gnt-surface-2);
}

.record-template-definition-canvas-title {
    display: grid;
    gap: 0.1rem;
    min-width: 0;
}

.record-template-definition-pane-header span, .record-template-definition-canvas-toolbar span {
    color: var(--gnt-muted-color);
    font-size: 0.76rem;
}

.record-template-definition-page-settings {
    display: flex;
    align-items: end;
    gap: 0.45rem;
    min-width: 0;
}

.record-template-definition-page-settings label {
    display: grid;
    gap: 0.18rem;
}

.record-template-definition-page-settings select, .record-template-definition-form-designer-select {
    min-height: 1.8rem;
    border: 1px solid var(--gnt-border-color);
    border-radius: 6px;
    background: var(--gnt-surface-color);
    padding: 0.25rem 0.45rem;
}

.record-template-definition-page-settings select {
    min-width: 7.4rem;
}

.record-template-definition-selector-body {
    display: grid;
    grid-template-rows: auto auto minmax(0, 1fr);
    gap: 0.6rem;
    min-height: 0;
    overflow: auto;
    padding: 0.65rem;
    scrollbar-gutter: stable;
}

.record-template-definition-palette-tabs {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 0.3rem;
}

.record-template-definition-palette-tab {
    min-width: 0;
    padding-inline: 0.35rem;
}

.record-template-definition-palette-tab.is-selected {
    border-color: #327a8c;
    background: #e8f7fa;
    color: #185768;
}

.record-template-definition-toolbox {
    display: grid;
    gap: 0.3rem;
    padding: 0.4rem;
    border: 1px solid var(--gnt-border-soft);
    border-radius: 6px;
    background: var(--gnt-surface-2);
}

.record-template-definition-toolbox > strong {
    color: var(--gnt-text-secondary);
    font-size: 0.74rem;
}

.record-template-definition-toolbox-items {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 0.25rem;
}

.record-template-definition-toolbox-items button {
    display: grid;
    justify-items: center;
    gap: 0.08rem;
    min-width: 0;
    min-height: 2.45rem;
    border: 1px solid var(--gnt-border-color);
    border-radius: 6px;
    background: var(--gnt-surface-2);
    color: var(--gnt-text-color);
    padding: 0.2rem;
    cursor: grab;
    font-size: 0.68rem;
    font-weight: 700;
}

.record-template-definition-toolbox-items button:active {
    cursor: grabbing;
}

.record-template-definition-toolbox-items button:hover {
    border-color: #327a8c;
    background: #eef9fb;
}

.record-template-definition-toolbox-items button span:first-child {
    font-size: 1rem;
    line-height: 1;
}

.record-template-definition-fields-palette {
    display: grid;
    grid-template-rows: auto auto minmax(0, 1fr);
    gap: 0.4rem;
    min-height: 0;
}

.record-template-definition-field-actions {
    display: flex;
    gap: 0.35rem;
}

.record-template-definition-field-actions button {
    min-height: 1.8rem;
    border: 1px solid var(--gnt-border-color);
    border-radius: 6px;
    background: var(--gnt-surface-2);
    color: var(--gnt-text-color);
    padding: 0.25rem 0.55rem;
    font-size: 0.74rem;
    font-weight: 700;
}

.record-template-definition-field-actions button:hover:not(:disabled) {
    border-color: #327a8c;
    background: #eef9fb;
}

.record-template-definition-field-tree, .record-template-definition-field-tree .e-treeview {
    min-height: 0;
    height: 100%;
    overflow: auto;
    scrollbar-gutter: stable;
}

.record-template-definition-field-tree .e-list-text {
    width: 100%;
}

.record-template-definition-tree-node {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.35rem;
    min-width: 0;
    width: 100%;
    font-size: 0.74rem;
}

.record-template-definition-tree-node > span {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.record-template-definition-tree-node.is-field > span {
    color: var(--gnt-text-color);
    font-weight: 650;
}

.record-template-definition-tree-add {
    flex: 0 0 auto;
    min-height: 1.45rem;
    border: 1px solid var(--gnt-border-color);
    border-radius: 5px;
    background: var(--gnt-surface-2);
    padding: 0 0.35rem;
    font-size: 0.68rem;
    font-weight: 700;
}

.record-template-definition-tree-add:hover:not(:disabled) {
    border-color: #327a8c;
    background: #eef9fb;
}

.record-template-definition-field-selector-grid {
    min-height: 0;
    border-radius: 6px;
}

.record-template-definition-field-selector-grid .e-gridheader, .record-template-definition-field-selector-grid .e-headercell, .record-template-definition-field-selector-grid .e-rowcell {
    font-size: 0.72rem;
}

.record-template-definition-field-selector-grid .e-rowcell {
    padding: 2px 5px;
}

.record-template-definition-field-selector-grid .e-headercell {
    padding: 4px 5px;
}

.record-template-definition-grid-add {
    min-height: 1.65rem;
    border: 1px solid var(--gnt-border-color);
    border-radius: 5px;
    background: var(--gnt-surface-2);
    padding: 0 0.4rem;
    font-size: 0.72rem;
    font-weight: 700;
}

.record-template-definition-tool-palette {
    display: grid;
    align-content: start;
    gap: 0.45rem;
    min-height: 0;
    overflow: auto;
}

.record-template-definition-tool-palette button {
    display: grid;
    gap: 0.12rem;
    text-align: left;
}

.record-template-definition-tool-palette span {
    color: var(--gnt-muted-color);
    font-size: 0.74rem;
}

.record-template-definition-filter {
    display: grid;
    gap: 0.25rem;
}

.record-template-definition-filter span, .record-template-definition-properties label > span, .record-template-definition-page-settings span, .record-template-definition-form-designer-label, .record-template-definition-console-label {
    color: var(--gnt-muted-color);
    font-size: 0.74rem;
    font-weight: 700;
}

.record-template-definition-filter input, .record-template-definition-properties input, .record-template-definition-properties select {
    width: 100%;
    min-height: 1.8rem;
    border: 1px solid var(--gnt-border-color);
    border-radius: 6px;
    padding: 0.32rem 0.45rem;
    background: var(--gnt-surface-color);
}

.record-template-definition-field-list {
    display: grid;
    align-content: start;
    gap: 0.35rem;
    min-height: 0;
    overflow: auto;
    padding-right: 0.2rem;
}

.record-template-definition-field-list button {
    display: grid;
    gap: 0.12rem;
    width: 100%;
    min-height: 2.65rem;
    border: 1px solid var(--gnt-border-soft);
    border-radius: 6px;
    background: var(--gnt-surface-2);
    color: var(--gnt-text-color);
    padding: 0.42rem 0.5rem;
    text-align: left;
}

.record-template-definition-field-list button:hover:not(:disabled) {
    border-color: #327a8c;
    background: #f0fbfc;
}

.record-template-definition-field-list strong {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    font-size: 0.82rem;
}

.record-template-definition-field-list span {
    overflow: hidden;
    color: var(--gnt-muted-color);
    font-size: 0.7rem;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.record-template-definition-preview-host {
    display: grid;
    grid-template-rows: auto minmax(0, 1fr);
    min-width: 0;
    overflow: hidden;
    background: #eaf0f6;
}

.record-template-definition-canvas-toolbar {
    background: var(--gnt-surface-color);
}

.record-template-definition-canvas-tools {
    display: flex;
    align-items: center;
    gap: 0.4rem;
}

.record-template-definition-canvas-tools > span {
    display: inline-flex;
    align-items: center;
    min-height: 1.6rem;
    border: 1px solid var(--gnt-border-soft);
    border-radius: 999px;
    padding: 0 0.55rem;
    background: var(--gnt-surface-2);
}

.record-template-definition-mode-toggle {
    display: inline-flex;
    border: 1px solid var(--gnt-border-color);
    border-radius: 6px;
    overflow: hidden;
}

.record-template-definition-mode-button {
    min-height: 1.6rem;
    border: 0;
    border-right: 1px solid var(--gnt-border-color);
    background: var(--gnt-surface-color);
    padding: 0 0.55rem;
    font-size: 0.74rem;
    font-weight: 700;
}

.record-template-definition-mode-button:last-child {
    border-right: 0;
}

.record-template-definition-mode-button.is-selected {
    background: #e8f7fa;
    color: #185768;
}

.record-template-definition-canvas {
    position: relative;
    height: 100%;
    min-width: 0;
    overflow: auto;
    padding: 0.75rem;
    scrollbar-gutter: stable;
    user-select: none;
}

.record-template-definition-canvas:focus {
    outline: none;
}

.record-template-definition-lasso {
    position: fixed;
    z-index: 10000;
    pointer-events: none;
    border: 1px solid #327a8c;
    background: rgba(50, 122, 140, 0.14);
    box-shadow: 0 0 0 1px rgba(50, 122, 140, 0.12);
}

.record-template-definition-page {
    width: min(100%, 52rem);
    min-height: 64rem;
    margin: 0 auto;
    padding: 1.35rem;
    border: 1px solid var(--gnt-border-color);
    border-radius: 4px;
    background: var(--gnt-surface-color);
    box-shadow: 0 18px 44px rgba(15, 23, 42, 0.14);
}

.record-template-definition-page-header {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 1rem;
    padding-bottom: 0.75rem;
    border-bottom: 1px solid #d8e1eb;
}

.record-template-definition-page-header span {
    color: var(--gnt-muted-color);
    font-size: 0.8rem;
}

.record-template-definition-section {
    margin-top: 0.75rem;
}

.record-template-definition-section-title {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
    margin-bottom: 0.55rem;
}

.record-template-definition-section-title strong {
    color: var(--gnt-text-color);
    font-size: 0.9rem;
}

.record-template-definition-section-title span {
    color: var(--gnt-muted-color);
    font-size: 0.74rem;
}

.record-template-definition-grid {
    display: flex;
    flex-wrap: wrap;
    gap: 0.35rem;
}

.record-template-definition-field {
    display: grid;
    gap: 0.14rem;
    min-width: 7rem;
    min-height: 2.55rem;
    padding: 0.36rem 0.42rem;
    border: 1px solid var(--gnt-border-soft);
    border-radius: 6px;
    background: var(--gnt-surface-2);
    color: var(--gnt-text-color);
    text-align: left;
}

.record-template-definition-field:hover {
    border-color: #327a8c;
    background: #f7fcfd;
}

.record-template-definition-field.is-selected {
    border-color: #327a8c;
    background: #edf8fa;
    outline: 2px solid rgba(50, 122, 140, 0.22);
}

.record-template-definition-field span {
    color: var(--gnt-muted-color);
    font-size: 0.7rem;
    font-weight: 700;
}

.record-template-definition-field strong {
    overflow-wrap: anywhere;
    font-size: 0.84rem;
}

.record-template-definition-field.is-underlined strong {
    text-decoration: underline;
}

.record-template-definition-field:not(.wrap-text) strong, .record-template-definition-field:not(.wrap-text) small, .record-template-definition-field:not(.wrap-text) em {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.record-template-definition-field small {
    color: var(--gnt-muted-color);
    font-size: 0.68rem;
    overflow-wrap: anywhere;
}

.record-template-definition-field em {
    color: var(--gnt-text-tertiary);
    font-size: 0.78rem;
    font-style: normal;
}

.record-template-definition-field-divider {
    align-items: center;
    min-height: 1.4rem;
    padding-block: 0.25rem;
    border-color: transparent;
    background: transparent;
}

.record-template-definition-field-divider:hover, .record-template-definition-field-divider.is-selected {
    border-color: #327a8c;
    background: #edf8fa;
}

.record-template-definition-divider-line {
    content: "";
    display: block;
    width: 100%;
    border-top: 2px solid #64748b;
}

.record-template-definition-visually-hidden {
    position: absolute;
    width: 1px;
    height: 1px;
    overflow: hidden;
    clip: rect(0 0 0 0);
    white-space: nowrap;
}

.record-template-definition-field-text {
    background: #fffdf6;
}

.record-template-definition-field-page-break {
    border-style: dashed;
    background: #fff8f0;
}

.record-template-definition-field-grid {
    background: #f3fbf7;
}

.record-template-definition-properties-empty {
    padding: 0.75rem;
    color: var(--gnt-muted-color);
}

.record-template-definition-properties-pane {
    grid-template-rows: minmax(0, 1fr);
}

.record-template-definition-property-sheet {
    display: grid;
    grid-template-rows: auto auto auto auto auto minmax(0, 1fr);
    gap: 0.35rem;
    min-height: 0;
    height: 100%;
    overflow: auto;
    padding: 0.55rem;
    background: var(--gnt-surface-color);
    scrollbar-gutter: stable;
}

.record-template-definition-property-sheet h3 {
    margin: 0;
    color: var(--gnt-text-strong);
    font-size: 1rem;
    font-weight: 750;
}

.record-template-definition-selection-type {
    color: var(--gnt-text-color);
    font-size: 0.76rem;
}

.record-template-definition-property-select {
    width: 100%;
    min-height: 1.75rem;
    border: 1px solid #aeb8c6;
    background: var(--gnt-surface-color);
    padding: 0.2rem 0.35rem;
}

.record-template-definition-control-panel {
    display: grid;
    gap: 0.35rem;
    justify-items: center;
    padding: 0.35rem;
    border: 1px solid var(--gnt-border-soft);
    background: var(--gnt-surface-2);
}

.record-template-definition-property-tabs {
    display: flex;
    align-items: end;
    min-width: 0;
    overflow: hidden;
}

.record-template-definition-property-tab {
    min-height: 1.55rem;
    border: 1px solid #cfd8e3;
    border-right: 0;
    background: #f4f6f8;
    color: var(--gnt-text-color);
    padding: 0.15rem 0.55rem;
    font-size: 0.72rem;
}

.record-template-definition-property-tab:last-child {
    border-right: 1px solid #cfd8e3;
}

.record-template-definition-property-tab.is-selected {
    border-bottom-color: var(--gnt-text-inverse);
    background: var(--gnt-surface-color);
    font-weight: 700;
}

.record-template-definition-property-grid {
    min-height: 0;
    overflow: auto;
    border-top: 1px solid #aeb8c6;
    border-left: 1px solid var(--gnt-border-color);
    background: var(--gnt-surface-color);
    scrollbar-gutter: stable;
}

.record-template-definition-control-type-picker {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.35rem;
    padding: 0.45rem;
    border-right: 1px solid var(--gnt-border-color);
    border-bottom: 1px solid var(--gnt-border-color);
}

.record-template-definition-control-type-option {
    display: grid;
    grid-template-rows: 1.7rem auto;
    justify-items: center;
    align-items: center;
    gap: 0.2rem;
    min-height: 3.8rem;
    padding: 0.45rem 0.35rem;
    border: 1px solid var(--gnt-border-color);
    border-radius: 4px;
    background: var(--gnt-surface-color);
    color: var(--gnt-text-color);
    font-size: 0.74rem;
    font-weight: 700;
}

.record-template-definition-control-type-option:hover {
    border-color: #327a8c;
    background: #f4fbfc;
}

.record-template-definition-control-type-option.is-selected {
    border-color: #327a8c;
    background: #e8f7fa;
    box-shadow: inset 0 0 0 1px rgba(50, 122, 140, 0.2);
}

.record-template-definition-control-type-icon {
    display: grid;
    place-items: center;
    width: 1.8rem;
    height: 1.45rem;
    border: 1px solid #94a3b8;
    border-radius: 3px;
    background: var(--gnt-surface-2);
    color: var(--gnt-text-color);
    font-size: 0.72rem;
    font-weight: 800;
}

.record-template-definition-property-row {
    display: grid;
    grid-template-columns: minmax(7rem, 45%) minmax(0, 1fr);
    min-height: 1.3rem;
    margin: 0;
    border-right: 1px solid var(--gnt-border-color);
    border-bottom: 1px solid var(--gnt-border-color);
    color: var(--gnt-text-color);
    font-size: 0.72rem;
}

.record-template-definition-property-row > span, .record-template-definition-property-row > input, .record-template-definition-property-row > select {
    min-width: 0;
    min-height: 1.25rem;
    border: 0;
    border-radius: 0;
    padding: 0.1rem 0.25rem;
    background: var(--gnt-surface-color);
    color: var(--gnt-text-color);
    font-size: 0.72rem;
}

.record-template-definition-property-row > span:first-child {
    border-right: 1px solid var(--gnt-border-color);
}

.record-template-definition-property-row.is-category {
    background: #f3f6f9;
    font-weight: 700;
}

.record-template-definition-property-row.is-category > span {
    background: #f3f6f9;
}

.record-template-definition-properties {
    display: grid;
    align-content: start;
    gap: 0.65rem;
    min-height: 0;
    overflow: auto;
    padding: 0.6rem;
}

.record-template-definition-form-designer, .record-template-definition-property-stack {
    display: grid;
    align-content: start;
    gap: 0.55rem;
}

.record-template-definition-form-designer {
    padding-bottom: 0.7rem;
    border-bottom: 1px solid #e0e7ef;
}

.record-template-definition-properties label {
    display: grid;
    gap: 0.25rem;
}

.record-template-definition-form-designer-label {
    display: block;
}

.record-template-definition-designer-meta {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.45rem;
    color: var(--gnt-text-secondary);
    font-size: 0.76rem;
}

.record-template-definition-checkbox {
    grid-template-columns: auto minmax(0, 1fr);
    align-items: center;
}

.record-template-definition-checkbox input {
    width: auto;
    min-height: 0;
}

.record-template-definition-console-label {
    margin-top: 0.15rem;
}

.record-template-definition-gamepad {
    display: grid;
    grid-template-columns: repeat(3, 2.45rem);
    grid-template-rows: repeat(3, 2.45rem);
    gap: 0.32rem;
    justify-content: center;
    padding: 0.2rem 0 0.35rem;
}

.record-template-definition-gamepad button, .record-template-definition-width-controls button {
    min-height: 2.45rem;
    padding: 0;
    font-size: 1.25rem;
    font-weight: 800;
}

.record-template-definition-gamepad-up {
    grid-column: 2;
    grid-row: 1;
}

.record-template-definition-gamepad-left {
    grid-column: 1;
    grid-row: 2;
}

.record-template-definition-gamepad-center {
    grid-column: 2;
    grid-row: 2;
    display: flex;
    align-items: center;
    justify-content: center;
    min-width: 2.45rem;
    min-height: 2.45rem;
    padding: 0.2rem;
    border: 1px solid var(--gnt-border-color);
    border-radius: 6px;
    background: #f1f5f9;
    color: var(--gnt-text-secondary);
    text-align: center;
}

.record-template-definition-gamepad-center span {
    display: -webkit-box;
    overflow: hidden;
    font-size: 0.62rem;
    font-weight: 800;
    line-height: 1.1;
    text-overflow: ellipsis;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
    word-break: break-word;
}

.record-template-definition-gamepad-right {
    grid-column: 3;
    grid-row: 2;
}

.record-template-definition-gamepad-down {
    grid-column: 2;
    grid-row: 3;
}

.record-template-definition-width-controls {
    display: flex;
    justify-content: center;
    gap: 0.75rem;
}

.record-template-definition-width-controls button {
    min-width: 2.65rem;
    font-size: 1.05rem;
}

.record-template-definition-property-actions {
    display: flex;
    gap: 0.45rem;
    flex-wrap: wrap;
}

.record-template-definition-table-hint {
    color: var(--gnt-muted-color);
    font-size: 0.74rem;
    line-height: 1.25;
}

.record-template-definition-context-menu {
    position: fixed;
    z-index: 10000;
    display: grid;
    min-width: 11rem;
    padding: 0.25rem;
    border: 1px solid var(--gnt-border-color);
    border-radius: 6px;
    background: var(--gnt-surface-color);
    box-shadow: 0 14px 34px rgba(15, 23, 42, 0.2);
}

.record-template-definition-context-menu button {
    min-height: 1.9rem;
    border: 0;
    border-radius: 4px;
    background: transparent;
    color: var(--gnt-text-color);
    padding: 0.35rem 0.55rem;
    text-align: left;
}

.record-template-definition-context-menu button:hover {
    background: #e8f7fa;
    color: #185768;
}

@media (max-width: 1200px) {
    .record-template-definition-shell {
        grid-template-columns: minmax(15rem, 18rem) minmax(28rem, 1fr) minmax(16rem, 18rem);
    }
}

@media (max-width: 900px) {
    .record-template-definition-shell {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 900px) {
    .record-template-definition-pane {
        min-height: 18rem;
    }
}

@media (max-width: 900px) {
    .record-template-definition-toolbar {
        align-items: stretch;
            flex-direction: column;
    }
}

@media (max-width: 900px) {
    .record-template-definition-canvas-toolbar, .record-template-definition-page-settings {
        align-items: stretch;
            flex-direction: column;
    }
}

/* ==== Sabre.Shared.Web\Components\RecordTemplates\RecordTemplateDesigner.razor.css (mirror) ==== */
.record-template-designer {
    display: grid;
    grid-template-rows: auto auto minmax(0, 1fr);
    gap: 0.75rem;
    min-height: 0;
    height: 100%;
    color: var(--gnt-text-color);
}

.record-template-designer-toolbar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    padding: 0.85rem 1rem;
    border: 1px solid var(--gnt-border-color);
    background: var(--gnt-surface-color);
}

.record-template-designer-title h2 {
    margin: 0;
    font-size: 1.2rem;
}

.record-template-designer-title span {
    display: block;
    margin-top: 0.2rem;
    color: var(--gnt-muted-color);
    font-size: 0.82rem;
}

.record-template-designer-actions {
    display: flex;
    align-items: end;
    gap: 0.5rem;
    flex-wrap: wrap;
}

.record-template-designer-actions label {
    display: grid;
    gap: 0.2rem;
    color: var(--gnt-muted-color);
    font-size: 0.72rem;
    font-weight: 700;
}

.record-template-designer-actions input {
    width: 10rem;
    min-height: 2rem;
    border: 1px solid #cbd6e2;
    padding: 0.25rem 0.45rem;
}

.record-template-designer button {
    min-height: 2rem;
    border: 1px solid #bac7d5;
    background: var(--gnt-surface-2);
    color: var(--gnt-text-color);
    padding: 0.35rem 0.65rem;
    font-weight: 650;
}

.record-template-designer button:hover:not(:disabled) {
    background: #edf4fb;
}

.record-template-designer button:disabled {
    color: #9aa8b6;
    cursor: default;
}

.record-template-message {
    padding: 0.65rem 0.8rem;
    border: 1px solid #bfd7c2;
    background: #f3fbf4;
    color: #24552b;
}

.record-template-message-error {
    border-color: #e3b4b4;
    background: var(--gnt-danger-tint);
    color: #8a2c2c;
}

.record-template-designer-shell {
    display: grid;
    grid-template-columns: minmax(12rem, 16rem) minmax(13rem, 18rem) minmax(24rem, 1fr) minmax(19rem, 28rem);
    gap: 0.75rem;
    min-height: 0;
}

.record-template-pane, .record-template-canvas {
    min-height: 0;
    border: 1px solid var(--gnt-border-color);
    background: var(--gnt-surface-color);
}

.record-template-pane {
    display: grid;
    grid-template-rows: auto minmax(0, 1fr);
}

.record-template-pane-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.5rem;
    padding: 0.65rem 0.75rem;
    border-bottom: 1px solid #e3e9f0;
}

.record-template-pane-header span {
    color: var(--gnt-muted-color);
    font-size: 0.78rem;
}

.record-template-template-list, .record-template-field-list {
    min-height: 0;
    overflow: auto;
    padding: 0.5rem;
}

.record-template-template-button, .record-template-field-list button {
    display: grid;
    width: 100%;
    gap: 0.15rem;
    margin-bottom: 0.4rem;
    text-align: left;
}

.record-template-template-button span, .record-template-field-list span {
    color: var(--gnt-muted-color);
    font-size: 0.75rem;
    overflow-wrap: anywhere;
}

.record-template-template-button.selected {
    border-color: #2f6fa3;
    background: #eef7ff;
}

.record-template-canvas {
    min-width: 0;
    overflow: auto;
    padding: 1rem;
    background: var(--gnt-surface-2);
}

.record-template-canvas-page {
    width: min(100%, 52rem);
    min-height: 66rem;
    margin: 0 auto;
    padding: 2rem;
    background: var(--gnt-surface-color);
    border: 1px solid #cbd6e2;
    box-shadow: 0 16px 40px rgba(23, 32, 51, 0.12);
}

.record-template-empty {
    display: grid;
    place-items: center;
    min-height: 18rem;
    color: var(--gnt-muted-color);
}

.record-template-page-header {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 1rem;
    padding-bottom: 0.75rem;
    border-bottom: 1px solid var(--gnt-border-color);
}

.record-template-page-header span {
    color: var(--gnt-muted-color);
    font-size: 0.82rem;
}

.record-template-section-preview {
    margin-top: 1rem;
    break-inside: avoid;
}

.record-template-section-title {
    margin-bottom: 0.6rem;
    color: var(--gnt-text-color);
    font-size: 0.9rem;
    font-weight: 800;
}

.record-template-section-grid {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
}

.record-template-preview-field {
    display: grid;
    gap: 0.25rem;
    min-width: 7rem;
    min-height: 3.3rem;
    padding: 0.55rem;
    border: 1px solid var(--gnt-border-color);
    background: #fbfcfe;
}

.record-template-preview-field span {
    color: var(--gnt-muted-color);
    font-size: 0.72rem;
    font-weight: 700;
}

.record-template-preview-field strong {
    overflow-wrap: anywhere;
    font-size: 0.84rem;
}

.record-template-json-pane {
    min-width: 0;
}

.record-template-json-editor {
    width: 100%;
    min-width: 0;
    height: 100%;
    resize: none;
    border: 0;
    padding: 0.75rem;
    font-family: Consolas, "Courier New", monospace;
    font-size: 0.78rem;
    line-height: 1.45;
    outline: none;
}

@media (max-width: 1200px) {
    .record-template-designer-shell {
        grid-template-columns: minmax(12rem, 16rem) minmax(20rem, 1fr);
    }
}

@media (max-width: 1200px) {
    .record-template-canvas, .record-template-json-pane {
        grid-column: 1 / -1;
            min-height: 30rem;
    }
}

/* ==== Sabre.Shared.Web\Components\RecordTemplates\RecordTemplateManagerForm.razor.css (mirror) ==== */
.record-template-manager-empty {
    border: 1px dashed var(--gnt-border-color);
    color: var(--gnt-muted-color);
    padding: 1rem;
}

.record-template-manager-detail-template {
    width: 100%;
}

.record-template-manager-tabs-section {
    height: 100%;
    min-height: 0;
    overflow: hidden;
}

.record-template-manager-tabs {
    display: block;
    height: 100%;
    min-height: 0;
}

.record-template-manager-actions button, .record-template-manager-tab-panel-toolbar button {
    min-height: 2.1rem;
    border: 1px solid #bac7d5;
    background: var(--gnt-surface-2);
    color: var(--gnt-text-color);
    padding: 0.35rem 0.65rem;
    font-weight: 650;
}

.record-template-manager-tabs-section .e-tab, .record-template-manager-tabs-section .e-content, .record-template-manager-tabs-section .e-content .e-item {
    height: 100%;
    min-height: 0;
}

.record-template-manager-tabs-section .e-content {
    overflow: hidden;
}

.record-template-manager-tab-panel {
    display: grid;
    grid-template-rows: auto minmax(0, 1fr);
    gap: 0.6rem;
    height: 100%;
    min-height: 0;
}

.record-template-manager-tab-panel-toolbar {
    display: flex;
    justify-content: flex-end;
    gap: 0.45rem;
}

.record-template-manager-definition-panel {
    display: grid;
    grid-template-rows: auto auto minmax(0, 1fr);
    gap: 0.6rem;
    height: 100%;
    min-height: 0;
    overflow: hidden;
}

.record-template-manager-actions {
    display: flex;
    gap: 0.45rem;
    flex-wrap: wrap;
}

.record-template-manager-alert, .record-template-manager-message {
    padding: 0.6rem 0.75rem;
    border: 1px solid #e3b4b4;
    background: var(--gnt-danger-tint);
    color: #8a2c2c;
}

.record-template-manager-message {
    border-color: #bfd7c2;
    background: #f3fbf4;
    color: #24552b;
}

.record-template-manager-json-editor {
    width: 100%;
    height: 100%;
    min-height: 0;
    overflow: auto;
    resize: none;
    border: 1px solid var(--gnt-border-color);
    padding: 0.75rem;
    font-family: Consolas, "Courier New", monospace;
    font-size: 0.78rem;
    line-height: 1.45;
}

.record-template-fullscreen-dialog {
    max-height: 100vh !important;
    max-width: 100vw !important;
}

.record-template-fullscreen-dialog .e-dlg-content {
    padding: 0;
    height: calc(100vh - 7.5rem);
    overflow: hidden;
}

.record-template-manager-popout-content {
    height: 100%;
    min-height: 0;
    overflow: hidden;
}

@media (max-width: 1100px) {
    .record-template-manager-tabs-section {
        min-height: 28rem;
    }
}

/* ==== Sabre.Shared.Web\Components\RecordTemplates\RecordTemplatePreview.razor.css (mirror) ==== */
.record-template-preview {
    min-height: 0;
    overflow: auto;
    padding: 1rem;
    background: var(--gnt-surface-2);
}

.record-template-preview-page {
    width: min(100%, 52rem);
    min-height: 64rem;
    margin: 0 auto;
    padding: 2rem;
    border: 1px solid #cbd6e2;
    background: var(--gnt-surface-color);
    box-shadow: 0 16px 40px rgba(23, 32, 51, 0.12);
}

.record-template-preview-empty {
    display: grid;
    min-height: 18rem;
    place-items: center;
    color: var(--gnt-muted-color);
}

.record-template-preview-header {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 1rem;
    padding-bottom: 0.75rem;
    border-bottom: 1px solid var(--gnt-border-color);
}

.record-template-preview-header span {
    color: var(--gnt-muted-color);
    font-size: 0.82rem;
}

.record-template-preview-section {
    margin-top: 1rem;
}

.record-template-preview-section-title {
    margin-bottom: 0.6rem;
    color: var(--gnt-text-color);
    font-size: 0.9rem;
    font-weight: 800;
}

.record-template-preview-grid {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
}

.record-template-preview-field {
    display: grid;
    gap: 0.25rem;
    min-width: 7rem;
    min-height: 3.3rem;
    padding: 0.55rem;
    border: 1px solid var(--gnt-border-color);
    background: #fbfcfe;
}

.record-template-preview-field span {
    color: var(--gnt-muted-color);
    font-size: 0.72rem;
    font-weight: 700;
}

.record-template-preview-field strong {
    overflow-wrap: anywhere;
    font-size: 0.84rem;
}

/* ==== Sabre.Shared.Web\Components\Reports\RecordReportDesigner.razor.css (mirror) ==== */
.gnt-report-designer {
    display: flex;
    flex-direction: column;
    gap: 0.85rem;
}

.gnt-report-designer-toolbar {
    display: flex;
    justify-content: space-between;
    gap: 1rem;
    flex-wrap: wrap;
}

.gnt-report-designer-toolbar-group {
    display: flex;
    gap: 0.5rem;
    align-items: end;
    flex-wrap: wrap;
}

.gnt-report-designer-toolbar-group label {
    display: flex;
    flex-direction: column;
    gap: 0.25rem;
    font-size: 0.85rem;
}

.gnt-report-designer-toolbar button, .gnt-report-designer-toolbar input {
    min-height: 2.4rem;
    padding: 0.5rem 0.8rem;
    border: 1px solid var(--gnt-border-color);
    border-radius: 8px;
    background: white;
}

.gnt-report-designer-meta {
    display: flex;
    flex-wrap: wrap;
    gap: 1rem;
    font-size: 0.9rem;
    color: var(--gnt-text-secondary);
}

.gnt-report-designer-workspace {
    display: grid;
    grid-template-columns: minmax(320px, 1.1fr) minmax(320px, 0.9fr);
    gap: 1rem;
}

.gnt-report-designer-pane {
    min-height: 520px;
    border: 1px solid var(--gnt-border-soft);
    border-radius: 12px;
    background: var(--gnt-surface-2);
    overflow: hidden;
    display: flex;
    flex-direction: column;
}

.gnt-report-designer-pane-header {
    padding: 0.75rem 1rem;
    border-bottom: 1px solid var(--gnt-border-soft);
    font-weight: 600;
    color: var(--gnt-text-strong);
    background: #eef2ff;
}

.gnt-report-designer-editor {
    flex: 1;
    width: 100%;
    min-height: 460px;
    border: none;
    padding: 1rem;
    resize: none;
    font-family: Consolas, "Courier New", monospace;
    font-size: 0.9rem;
    line-height: 1.5;
    background: #0f172a;
    color: #e2e8f0;
}

.gnt-report-designer-empty, .gnt-report-designer-message, .gnt-report-designer-error {
    margin: 1rem;
    padding: 0.85rem 1rem;
    border-radius: 10px;
}

.gnt-report-designer-empty, .gnt-report-designer-message {
    background: var(--gnt-primary-tint);
    color: var(--gnt-primary-strong);
}

.gnt-report-designer-error {
    background: var(--gnt-danger-tint);
    color: var(--gnt-danger-strong);
}

.gnt-report-designer-preview-summary {
    display: flex;
    flex-wrap: wrap;
    gap: 1rem;
    padding: 1rem 1rem 0 1rem;
}

.gnt-report-designer-form-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
    gap: 0.75rem;
    padding: 1rem;
}

.gnt-report-designer-form-item {
    padding: 0.75rem;
    border: 1px solid var(--gnt-border-light);
    border-radius: 8px;
    background: white;
}

.gnt-report-designer-form-label {
    display: block;
    margin-bottom: 0.35rem;
    font-size: 0.8rem;
    color: var(--gnt-muted-color);
}

.gnt-report-designer-form-value {
    display: block;
    color: var(--gnt-text-strong);
}

.gnt-report-designer-table-wrap {
    overflow: auto;
    padding: 1rem;
}

.gnt-report-designer-table {
    width: 100%;
    border-collapse: collapse;
    background: white;
}

.gnt-report-designer-table th, .gnt-report-designer-table td {
    padding: 0.65rem;
    border: 1px solid var(--gnt-border-light);
    text-align: left;
    vertical-align: top;
}

.gnt-report-designer-table th {
    background: #e2e8f0;
}

@media (max-width: 1100px) {
    .gnt-report-designer-workspace {
        grid-template-columns: 1fr;
    }
}

/* ==== Sabre.Shared.Web\Components\Reports\RecordReportLauncher.razor.css (mirror) ==== */
.gnt-record-report-dialog-empty {
    padding: 1rem 0.5rem;
    color: var(--gnt-text-tertiary);
}

.gnt-record-report-dialog .gnt-report-runner {
    margin-top: 0;
    border: none;
    padding: 0;
    background: transparent;
}

/* ==== Sabre.Shared.Web\Components\Reports\RecordReportRunner.razor.css (mirror) ==== */
.gnt-report-runner {
    margin-top: 1rem;
    padding: 1rem;
    border: 1px solid var(--gnt-border-soft);
    border-radius: 12px;
    background: var(--gnt-surface-2);
}

.gnt-report-runner-header h3 {
    margin: 0 0 0.25rem 0;
}

.gnt-report-runner-header p {
    margin: 0 0 1rem 0;
    color: var(--gnt-text-tertiary);
}

.gnt-report-runner-controls {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
    gap: 0.75rem;
    align-items: end;
}

.gnt-report-runner-controls label {
    display: flex;
    flex-direction: column;
    gap: 0.35rem;
    font-size: 0.9rem;
}

.gnt-report-runner-controls select, .gnt-report-runner-controls input {
    min-height: 2.5rem;
    padding: 0.5rem 0.65rem;
    border: 1px solid var(--gnt-border-color);
    border-radius: 8px;
    background: white;
}

.gnt-report-runner-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
}

.gnt-report-runner-actions button {
    min-height: 2.5rem;
    padding: 0.55rem 0.85rem;
    border: 1px solid #0f172a;
    border-radius: 8px;
    background: white;
    cursor: pointer;
}

.gnt-report-runner-actions button:disabled {
    opacity: 0.6;
    cursor: default;
}

.gnt-report-runner-message, .gnt-report-runner-error {
    margin-top: 0.85rem;
    padding: 0.75rem 0.9rem;
    border-radius: 8px;
}

.gnt-report-runner-message {
    background: var(--gnt-primary-tint);
    color: var(--gnt-primary-strong);
}

.gnt-report-runner-error {
    background: var(--gnt-danger-tint);
    color: var(--gnt-danger-strong);
}

.gnt-report-runner-preview {
    margin-top: 1rem;
    padding-top: 1rem;
    border-top: 1px solid var(--gnt-border-soft);
}

.gnt-report-runner-preview-summary {
    display: flex;
    flex-wrap: wrap;
    gap: 1rem;
    margin-bottom: 0.85rem;
}

.gnt-report-runner-form-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
    gap: 0.75rem;
}

.gnt-report-runner-form-item {
    padding: 0.75rem;
    border: 1px solid var(--gnt-border-light);
    border-radius: 8px;
    background: white;
}

.gnt-report-runner-form-label {
    display: block;
    margin-bottom: 0.35rem;
    font-size: 0.8rem;
    color: var(--gnt-muted-color);
}

.gnt-report-runner-form-value {
    display: block;
    color: var(--gnt-text-strong);
}

.gnt-report-runner-table-wrap {
    overflow-x: auto;
}

.gnt-report-runner-table {
    width: 100%;
    border-collapse: collapse;
    background: white;
}

.gnt-report-runner-table th, .gnt-report-runner-table td {
    padding: 0.65rem;
    border: 1px solid var(--gnt-border-light);
    text-align: left;
    vertical-align: top;
}

.gnt-report-runner-table th {
    background: #e2e8f0;
}

/* ==== Sabre.Shared.Web\Components\Scheduling\GntScheduleGantt.razor.css (mirror) ==== */
.gnt-schedule-gantt {
    min-width: 0;
}

.gnt-schedule-gantt .e-gantt {
    border-radius: 4px;
}

.gnt-schedule-gantt[data-schedule-mode="ScheduleWrite"] .e-chart-row {
    background-image: linear-gradient(to right, rgba(41, 113, 163, 0.05), rgba(41, 113, 163, 0));
}

.gnt-schedule-tooltip {
    display: grid;
    gap: 2px;
    font-size: 12px;
    line-height: 1.3;
}

.gnt-schedule-gantt .gnt-taskbar-critical .e-gantt-child-taskbar {
    background-color: #d64545 !important;
    outline: 1px solid #b53030 !important;
}

.gnt-schedule-gantt .gnt-taskbar-critical .e-gantt-child-progressbar {
    background-color: #9c2626 !important;
}

/* ==== Sabre.Shared.Web\Components\Totals\GNTTotalGrid.razor.css (mirror) ==== */
.gnt-total-grid table {
    margin-bottom: 0;
}

.gnt-total-grid th, .gnt-total-grid td {
    padding: 0.2rem 0.35rem;
    vertical-align: middle;
}

.gnt-total-grid th {
    white-space: nowrap;
}

.gnt-total-grid td.gnt-total-grid-number, .gnt-total-grid th.gnt-total-grid-number {
    text-align: right;
}

.gnt-total-grid td.gnt-total-grid-status, .gnt-total-grid th.gnt-total-grid-status {
    text-align: left;
    white-space: nowrap;
}

.gnt-total-grid-input {
    margin: 0;
    padding: 0.1rem 0.35rem;
    min-height: 1.6rem;
    line-height: 1.2;
    text-align: right;
    border: 0;
    box-shadow: none;
    background-color: transparent;
}

.gnt-total-grid-input:focus {
    border: 0;
    box-shadow: none;
    outline: none;
    background-color: transparent;
}

.gnt-total-grid-value {
    margin: 0;
    padding: 0.1rem 0.35rem;
    text-align: right;
    line-height: 1.2;
}

.gnt-total-grid-title {
    margin-bottom: 0.2rem;
}

/* ==== Sabre.App.Web\Pages\FilesPage.razor.css (mirror) ==== */
.files-page-root {
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
    min-height: 100%;
    padding: 0.75rem;
    background: var(--gnt-surface-2);
    color: var(--gnt-text-color);
}

.files-page-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
    flex-wrap: wrap;
    padding-bottom: 0.75rem;
    border-bottom: 1px solid #d8dee8;
}

.files-page-title {
    min-width: 0;
}

.files-page-title h2 {
    margin: 0;
    font-size: 1.35rem;
}

.files-page-title span {
    display: block;
    margin-top: 0.2rem;
    color: #5d6878;
    font-family: Consolas, "Courier New", monospace;
    font-size: 0.82rem;
    overflow-wrap: anywhere;
}

.files-page-actions {
    display: flex;
    align-items: end;
    justify-content: flex-end;
    gap: 0.65rem;
    flex-wrap: wrap;
}

.files-command-button {
    min-height: 2rem;
}

.files-storage-class {
    display: grid;
    gap: 0.25rem;
    color: var(--gnt-text-tertiary);
    font-size: 0.78rem;
    font-weight: 700;
}

.files-storage-class select {
    min-width: 132px;
    height: 2rem;
    border: 1px solid var(--gnt-border-color);
    border-radius: 6px;
    background: var(--gnt-surface-color);
    color: var(--gnt-text-color);
    font: inherit;
    font-weight: 500;
    padding: 0 0.45rem;
}

.files-banner, .files-loading {
    border: 1px solid var(--gnt-border-color);
    border-radius: 6px;
    background: var(--gnt-surface-color);
    padding: 0.65rem 0.75rem;
}

.files-banner--error {
    border-color: var(--gnt-danger-border);
    background: var(--gnt-danger-tint);
    color: var(--gnt-danger-text);
}

.files-banner--success {
    border-color: #bbf7d0;
    background: #f0fdf4;
    color: var(--gnt-success-color);
}

.files-manager-shell {
    position: relative;
    min-height: 26rem;
}

.files-loading {
    position: absolute;
    top: 0.75rem;
    left: 0.75rem;
    z-index: 2;
    box-shadow: 0 6px 18px rgba(15, 23, 42, 0.08);
}

.gnt-file-upload-wrapper {
    min-width: 8rem;
}

.gnt-file-upload {
    display: inline-flex;
    align-items: center;
    cursor: pointer;
}

.gnt-file-upload[aria-disabled="true"] {
    cursor: default;
    opacity: 0.65;
}

.gnt-file-upload__input {
    position: absolute;
    width: 1px;
    height: 1px;
    opacity: 0;
    pointer-events: none;
}

.gnt-file-manager-wrapper {
    min-height: 26rem;
}

.gnt-file-manager.e-filemanager {
    border-color: #d8dee8;
    background: var(--gnt-surface-color);
}

.gnt-file-manager .e-toolbar, .gnt-file-manager .e-splitter, .gnt-file-manager .e-grid, .gnt-file-manager .e-layout-content {
    background: var(--gnt-surface-color);
}

@media (max-width: 900px) {
    .files-page-root {
        padding: 0.5rem;
    }
}

@media (max-width: 900px) {
    .files-page-actions {
        justify-content: flex-start;
            width: 100%;
    }
}

@media (max-width: 900px) {
    .gnt-file-upload-wrapper {
        width: 100%;
    }
}

/* ==== Sabre.App.Web\Pages\RiskMatrixWizard.razor.css (mirror) ==== */
.risk-matrix-wizard {
    display: flex;
    flex-direction: column;
    height: 100%;
    min-height: 0;
    background: var(--gnt-surface-color);
    color: var(--gnt-text-color);
}

.risk-matrix-wizard__header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    border-bottom: 1px solid var(--gnt-border-soft);
    padding: .75rem .9rem;
}

.risk-matrix-wizard__header p {
    margin: 0 0 .15rem;
    color: var(--gnt-muted-color);
    font-size: .78rem;
    font-weight: 700;
    text-transform: uppercase;
}

.risk-matrix-wizard__header h2 {
    margin: 0;
    font-size: 1.32rem;
}

.risk-matrix-wizard__status {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-end;
    gap: .45rem;
    color: var(--gnt-text-tertiary);
    font-size: .82rem;
}

.risk-matrix-wizard__status span {
    border: 1px solid var(--gnt-border-soft);
    border-radius: 4px;
    padding: .24rem .48rem;
    background: var(--gnt-surface-2);
}

.risk-matrix-wizard__body {
    display: grid;
    grid-template-columns: 210px minmax(0, 1fr);
    flex: 1 1 auto;
    min-height: 0;
}

.risk-matrix-wizard__steps {
    display: flex;
    flex-direction: column;
    gap: .25rem;
    border-right: 1px solid var(--gnt-border-soft);
    padding: .75rem;
    background: #f7f9fc;
}

.risk-matrix-wizard__step {
    display: grid;
    grid-template-columns: 26px minmax(0, 1fr);
    align-items: center;
    gap: .55rem;
    border: 1px solid transparent;
    border-radius: 4px;
    background: transparent;
    color: #374151;
    padding: .45rem .5rem;
    text-align: left;
    cursor: pointer;
}

.risk-matrix-wizard__step span {
    display: inline-grid;
    place-items: center;
    width: 24px;
    height: 24px;
    border-radius: 50%;
    background: #e6edf5;
    color: var(--gnt-text-secondary);
    font-size: .76rem;
    font-weight: 700;
}

.risk-matrix-wizard__step strong {
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    font-size: .9rem;
}

.risk-matrix-wizard__step--active {
    border-color: #7aa7d9;
    background: #eaf3ff;
}

.risk-matrix-wizard__step--complete span {
    background: var(--gnt-selected-bg);
}

.risk-matrix-wizard__main {
    display: flex;
    flex-direction: column;
    min-width: 0;
    min-height: 0;
}

.risk-matrix-wizard__main form {
    flex: 1 1 auto;
    min-height: 0;
    overflow: auto;
}

.risk-matrix-wizard__section, .risk-matrix-wizard__split {
    padding: .9rem;
}

.risk-matrix-wizard__split {
    display: grid;
    grid-template-columns: repeat(2, minmax(240px, 1fr));
    gap: .9rem;
}

.risk-matrix-wizard__section-heading {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: .75rem;
    margin-bottom: .65rem;
}

.risk-matrix-wizard__section-heading h3 {
    margin: 0;
    font-size: 1rem;
}

.risk-matrix-wizard__field-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(220px, 1fr));
    gap: .75rem .9rem;
    max-width: 860px;
}

.risk-matrix-wizard label {
    display: flex;
    flex-direction: column;
    gap: .25rem;
    min-width: 0;
    color: var(--gnt-text-tertiary);
    font-size: .82rem;
    font-weight: 600;
}

.risk-matrix-wizard__input {
    width: 100%;
    min-height: 34px;
    border: 1px solid #bcc7d5;
    border-radius: 4px;
    padding: .36rem .45rem;
    background: var(--gnt-surface-color);
    color: var(--gnt-text-strong);
    font: inherit;
    font-weight: 400;
}

.risk-matrix-wizard__number {
    max-width: 90px;
}

.risk-matrix-wizard__actions {
    margin-top: .9rem;
}

.risk-matrix-wizard__rows, .risk-matrix-wizard__level-list {
    display: flex;
    flex-direction: column;
    gap: .45rem;
}

.risk-matrix-wizard__category-row, .risk-matrix-wizard__level-row {
    display: grid;
    grid-template-columns: minmax(140px, 1fr) 90px auto;
    align-items: center;
    gap: .5rem;
}

.risk-matrix-wizard__level-row {
    grid-template-columns: 44px minmax(160px, 1fr) 90px auto;
    max-width: 620px;
}

/* The risk criteria that sit under each level row: what the rating obliges. */
.risk-matrix-wizard__level-criteria {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
    align-items: end;
    gap: .5rem .75rem;
    margin: 0 0 1rem 44px;
    padding: .5rem .75rem;
    border-left: 2px solid var(--gnt-border-color);
    max-width: 900px;
}

.risk-matrix-wizard__level-criteria label {
    display: flex;
    flex-direction: column;
    gap: .2rem;
    font-size: .75rem;
}

.risk-matrix-wizard__check {
    flex-direction: row !important;
    align-items: center;
    gap: .4rem;
}

.risk-matrix-wizard__check input {
    width: auto;
    margin: 0;
}

.risk-matrix-wizard__hint {
    margin: 0 0 .5rem;
    font-size: .8125rem;
    opacity: .8;
}

.risk-matrix-wizard__color {
    width: 38px;
    height: 34px;
    border: 1px solid #bcc7d5;
    border-radius: 4px;
    padding: 2px;
    background: var(--gnt-surface-color);
}

.risk-matrix-wizard__section--matrix {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 260px;
    gap: .9rem;
    align-items: start;
}

.risk-matrix-wizard__matrix {
    display: grid;
    gap: 1px;
    overflow: auto;
    border: 1px solid var(--gnt-border-soft);
    background: #cfd7e2;
}

.risk-matrix-wizard__matrix-corner, .risk-matrix-wizard__matrix-head {
    min-height: 42px;
    display: grid;
    place-items: center;
    background: var(--gnt-surface-2);
    color: var(--gnt-text-secondary);
    padding: .35rem;
    font-size: .82rem;
    font-weight: 700;
    text-align: center;
}

.risk-matrix-wizard__matrix-head--row {
    justify-content: end;
    text-align: right;
}

.risk-matrix-wizard__cell {
    min-height: 58px;
    border: 0;
    display: grid;
    place-items: center;
    gap: .12rem;
    color: var(--gnt-text-strong);
    padding: .35rem;
    cursor: pointer;
}

.risk-matrix-wizard__cell:hover, .risk-matrix-wizard__cell:focus {
    outline: 2px solid #1a73e8;
    outline-offset: -2px;
}

.risk-matrix-wizard__cell strong {
    font-size: 1rem;
}

.risk-matrix-wizard__cell span {
    font-size: .78rem;
}

.risk-matrix-wizard__cell-editor {
    display: flex;
    flex-direction: column;
    gap: .75rem;
    border-left: 3px solid #7aa7d9;
    padding-left: .8rem;
}

.risk-matrix-wizard__review-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(120px, 1fr));
    gap: .65rem;
    max-width: 860px;
}

.risk-matrix-wizard__review-grid div {
    border: 1px solid var(--gnt-border-soft);
    border-radius: 4px;
    padding: .55rem .65rem;
    background: var(--gnt-surface-2);
}

.risk-matrix-wizard__review-grid span {
    display: block;
    color: var(--gnt-muted-color);
    font-size: .78rem;
}

.risk-matrix-wizard__review-grid strong {
    display: block;
    margin-top: .2rem;
}

.risk-matrix-wizard__validation {
    display: flex;
    flex-direction: column;
    gap: .4rem;
    margin-top: .85rem;
    max-width: 860px;
}

.risk-matrix-wizard__validation-item {
    border-left: 3px solid #4f8fc8;
    background: #eef6ff;
    padding: .48rem .6rem;
}

.risk-matrix-wizard__validation-item--blocking {
    border-left-color: #d64545;
    background: #fff1f1;
}

.risk-matrix-wizard__footer {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-end;
    align-items: center;
    gap: .5rem;
    border-top: 1px solid var(--gnt-border-soft);
    padding: .65rem .9rem;
    background: var(--gnt-surface-color);
}

/* The empty span between Back and the action buttons keeps Back hard left. */
.risk-matrix-wizard__footer > span {
    flex: 1 1 auto;
}

.risk-matrix-wizard__toast {
    position: absolute;
    right: 1rem;
    bottom: 1rem;
    border: 1px solid var(--gnt-primary-border);
    border-radius: 4px;
    background: var(--gnt-primary-tint);
    color: #1e3a8a;
    padding: .55rem .75rem;
    box-shadow: 0 6px 18px rgba(15, 23, 42, .12);
}

@media (max-width: 900px) {
    .risk-matrix-wizard__body, .risk-matrix-wizard__split, .risk-matrix-wizard__section--matrix, .risk-matrix-wizard__field-grid, .risk-matrix-wizard__review-grid {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 900px) {
    .risk-matrix-wizard__steps {
        border-right: 0;
            border-bottom: 1px solid var(--gnt-border-soft);
    }
}

/* ==== Sabre.App.Web\Pages\SabreGanttPage.razor.css (mirror) ==== */
.sabre-gantt-page {
    display: grid;
    gap: 14px;
    min-width: 0;
}

.sabre-gantt-header {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 16px;
}

.sabre-gantt-header h3 {
    margin: 0;
    font-size: 20px;
    font-weight: 650;
}

.sabre-gantt-header p {
    margin: 4px 0 0;
    color: #5b6775;
    font-size: 13px;
}

/* ==== Sabre.App.Web\Pages\Help\HelpPage.razor.css (mirror) ==== */
.help-page-root {
    display: flex;
    flex-direction: column;
    height: 100%;
    width: 100%;
    min-height: 0;
    overflow: hidden;
}

.help-page-splitter {
    flex: 1 1 auto;
    height: 100%;
    min-height: 0;
    width: 100%;
    background: #f8f9fb;
}

.help-pane {
    flex: 1 1 auto;
    height: 100%;
    min-height: 0;
    width: 100%;
    display: flex;
    flex-direction: column;
    background: var(--gnt-surface-color);
}

.help-pane--nav, .help-pane--toc {
    border-right: 1px solid var(--gnt-border-light);
    overflow: hidden;
}

.help-pane--nav {
    display: grid;
    grid-template-rows: auto minmax(0, 1fr);
}

.help-pane--toc {
    border-right: none;
    border-left: 1px solid var(--gnt-border-light);
}

.help-pane--content {
    overflow: hidden;
}

.help-pane__header {
    flex: 0 0 auto;
    padding: 0.9rem 1rem;
    border-bottom: 1px solid var(--gnt-border-light);
    background: var(--gnt-surface-color);
}

.help-pane__header--sticky {
    position: sticky;
    top: 0;
    z-index: 2;
}

.help-pane__title-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.5rem;
}

.help-pane__title {
    font-size: 0.95rem;
    font-weight: 700;
    color: var(--gnt-text-strong);
}

.help-pane__search {
    margin-top: 0.75rem;
}

.help-pane__search-input {
    width: 100%;
}

.help-pane__body {
    flex: 1 1 auto;
    min-height: 0;
    overflow-y: auto;
    overflow-x: hidden;
    padding: 0.25rem 0.15rem 0.75rem 0.15rem;
    scrollbar-gutter: stable;
}

.help-pane--nav .help-pane__body {
    height: 100%;
    max-height: 100%;
    min-height: 0;
    overflow: auto;
}

.help-pane--nav .e-treeview {
    display: block;
    width: max-content;
    min-width: 100%;
    height: auto;
    min-height: auto;
    overflow: visible !important;
}

.help-pane--nav .e-treeview > .e-list-parent {
    width: max-content;
    min-width: 100%;
}

.help-page-splitter.e-splitter, .help-page-splitter .e-pane, .help-page-splitter .e-pane.e-scrollable {
    height: 100%;
    min-height: 0;
    overflow: hidden;
}

.help-content-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
    flex: 0 0 auto;
    min-height: 2.5rem;
    padding: 0.25rem 0.75rem;
    border-bottom: 1px solid var(--gnt-border-light);
    background: var(--gnt-surface-color);
    overflow: hidden;
    white-space: nowrap;
}

.help-content-header--sticky {
    position: sticky;
    top: 0;
    z-index: 10;
    box-shadow: 0 1px 0 rgba(0, 0, 0, 0.04);
}

.help-content-actions {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 0.35rem;
    flex: 0 0 auto;
    min-width: max-content;
}

.help-library-toggle {
    display: inline-flex;
    align-items: center;
    gap: 0;
    border: 1px solid #d1d5db;
    border-radius: 6px;
    overflow: hidden;
    background: var(--gnt-surface-color);
}

.help-library-toggle__button {
    border: 0;
    border-radius: 0;
    min-height: 1.75rem;
    padding: 0 0.65rem;
    line-height: 1.75rem;
}

.help-library-toggle__button--active {
    background: #e8f0ff;
    color: #0f4fbf;
    font-weight: 700;
}

.help-action-link {
    text-decoration: none;
    min-height: 1.75rem;
    line-height: 1.75rem;
    padding: 0 0.65rem;
}

.help-article-host {
    flex: 1 1 auto;
    min-height: 0;
    overflow-y: scroll;
    overflow-x: hidden;
    padding: 1.5rem;
    background: var(--gnt-surface-color);
    scrollbar-gutter: stable;
}

.help-article {
    max-width: 980px;
    margin: 0 auto;
    color: var(--gnt-text-color);
    line-height: 1.75;
}

.help-article h1 {
    font-size: 2rem;
    margin-bottom: 1rem;
    color: var(--gnt-text-strong);
}

.help-article h2 {
    font-size: 1.35rem;
    margin-top: 2.5rem;
    margin-bottom: 0.85rem;
    padding-top: 1.25rem;
    border-top: 1px solid var(--gnt-border-light);
    color: var(--gnt-text-strong);
}

.help-article h3 {
    font-size: 1.1rem;
    margin-top: 1.5rem;
    color: var(--gnt-text-strong);
}

.help-article p, .help-article li {
    font-size: 0.98rem;
}

.help-article pre {
    background: var(--gnt-surface-2);
    border: 1px solid var(--gnt-border-light);
    border-radius: 8px;
    padding: 1rem;
    overflow-x: auto;
}

.help-article code {
    background: var(--gnt-surface-2);
    border-radius: 4px;
    padding: 0.1rem 0.35rem;
    font-family: Consolas, monospace;
}

.help-breadcrumb {
    flex: 1 1 auto;
    min-width: 0;
    max-width: 100%;
    overflow: hidden;
}

.help-breadcrumb, .help-breadcrumb .e-breadcrumb {
    width: 100%;
    min-width: 0;
    overflow: hidden;
}

.help-breadcrumb .e-breadcrumb-wrapped-ol, .help-breadcrumb .e-breadcrumb-ol {
    flex-wrap: nowrap;
    overflow: hidden;
}

.help-toc-list {
    list-style: none;
    margin: 0;
    padding: 0.25rem 0.5rem;
}

.help-toc-item {
    margin-bottom: 0.55rem;
}

.help-toc-item a {
    text-decoration: none;
    color: var(--gnt-text-tertiary);
    font-size: 0.92rem;
}

.help-toc-item a:hover {
    color: var(--gnt-primary-color);
}

.help-toc-item--3 {
    padding-left: 0.9rem;
}

.help-toc-item--4 {
    padding-left: 1.5rem;
}

.help-loading, .help-empty {
    padding: 1rem;
    color: var(--gnt-muted-color);
    font-size: 0.95rem;
}

.help-tree-node {
    display: flex;
    align-items: center;
    min-height: 1.05rem;
    padding: 0 0.15rem;
    border-radius: 3px;
}

.help-tree-node__text {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.help-tree-node--active {
    background: #e8f0ff;
    color: #0f4fbf;
    font-weight: 700;
}

.help-tree-node--ancestor {
    color: #1f3b77;
    font-weight: 600;
}


/* ==== GNTGridSelector_GridSurface.razor.css (mirror, anchored to .gnt-grid-surface-host) ====
   Dim non-selected cells in rows that contain a selection so the active row reads as one unit. */
.gnt-grid-surface-host .e-grid tr.e-row:has(td.e-cellselectionbackground) > td.e-rowcell:not(.e-cellselectionbackground),
.gnt-grid-surface-host .e-grid tr.e-row:has(td.e-selectionbackground) > td.e-rowcell:not(.e-selectionbackground),
.gnt-grid-surface-host .e-grid tr.e-row:has(td.e-rowcell[aria-selected="true"]) > td.e-rowcell:not([aria-selected="true"]) {
    background-color: #e9ecef !important;
}

/* The selected cells themselves (click, Shift range, Ctrl multi-select, drag box). The bootstrap5
   theme's native cell-selection grey (#e6eaed) is indistinguishable from the #e9ecef row shading,
   which made every cell/range selection read as a whole-row selection. Frozen cells included
   explicitly (Syncfusion paints .e-leftfreeze/.e-rightfreeze backgrounds for sticky columns). */
.gnt-grid-surface-host .e-grid td.e-rowcell.e-cellselectionbackground,
.gnt-grid-surface-host .e-grid td.e-rowcell.e-cellselectionbackground.e-leftfreeze,
.gnt-grid-surface-host .e-grid td.e-rowcell.e-cellselectionbackground.e-rightfreeze,
.gnt-grid-surface-host .e-grid tr.e-row:hover td.e-rowcell.e-cellselectionbackground {
    background-color: #cfe2ff !important;
}

/* ==== HelpPage.razor.css (mirror, anchored to .help-page-root) ==== */
.help-page-root .e-treeview .e-list-text { font-size: 0.8rem; line-height: 1.05rem; padding: 0; }
.help-page-root .e-treeview .e-fullrow { border-radius: 3px; height: 1.05rem; }
.help-page-root .e-treeview .e-list-item { min-height: 1.05rem; line-height: 1.05rem; }
.help-page-root .e-treeview .e-text-content { min-height: 1.05rem; padding-top: 0; padding-bottom: 0; }
.help-page-root .e-treeview .e-icons { font-size: 0.75rem; line-height: 1.05rem; }
.help-page-root .e-treeview .e-list-parent { margin: 0; padding-top: 0; padding-bottom: 0; }
.help-page-root .e-treeview .e-active > .e-fullrow,
.help-page-root .e-treeview .e-hover > .e-fullrow { background: var(--gnt-primary-tint); }
.help-page-root .e-splitter .e-split-bar.e-split-bar-horizontal { background: var(--gnt-surface-2); }
.help-page-root .e-splitter .e-collapsible { background: var(--gnt-surface-color); }


/* ==== External data manager surfaces (shared shell) ====
   Shared by ExternalDataSourceManagerDetail, ExternalDataSetManagerDetail,
   ExternalDataScheduleManagerDetail and their selector ToolbarContent components. */

.gnt-manager-empty {
    padding: 1rem;
}

.gnt-manager-empty-state {
    color: var(--gnt-muted-color);
    padding: .75rem;
}

/* Dense hand-authored FormTemplate layout */
.gnt-manager-form {
    min-width: 0;
    /* Absorbs the .e-form-layout -3px edge margins below — without this the form renders
       6px wider than its parent and the detail pane grows a horizontal scrollbar. */
    padding-left: 3px;
    padding-right: 3px;
}

/* The theme (.e-data-form .e-form-group, bootstrap5.css) puts margin-top:20px on every
   form-group fieldset to separate stacked groups; on the first group that's a dead band at
   the top of the detail pane. Zero it there only — group-to-group spacing is kept. */
.gnt-manager-form .e-form-layout > :first-child > fieldset.e-form-group,
.gnt-manager-form .e-form-layout > fieldset.e-form-group:first-child {
    margin-top: 0;
}

.gnt-manager-form .e-form-layout {
    row-gap: 4px !important;
    column-gap: 0 !important;
    margin-left: -3px;
    margin-right: -3px;
    align-items: flex-start;
}

.gnt-manager-form .e-form-layout > [class*="e-colspan-"] {
    box-sizing: border-box;
    min-width: 0;
    padding: 2px 3px;
}

.gnt-manager-form .e-form-item-wrapper,
.gnt-manager-form .e-form-item {
    width: 100%;
    min-width: 0;
}

.gnt-manager-form .form-label,
.gnt-manager-form .e-label {
    display: block;
    margin: 0 0 1px 0;
    line-height: 1.2;
}

.gnt-manager-form .e-control-wrapper,
.gnt-manager-form .e-control-container,
.gnt-manager-form .e-input-group {
    width: 100% !important;
    max-width: 100%;
}

.gnt-manager-form .e-input-group.e-control-wrapper,
.gnt-manager-form .e-control-container.e-control-wrapper,
.gnt-manager-form .e-ddl.e-control-wrapper,
.gnt-manager-form .e-numeric.e-control-wrapper {
    min-height: 32px;
}

.gnt-manager-form input.e-input,
.gnt-manager-form .e-input-group input.e-input {
    min-height: 30px;
    line-height: 30px;
}

/* Subform tab shell. The whole chain down to the tab item must be height-constrained
   (min-height: 0) so the item exactly fits the splitter pane; only the innermost panel
   carries a minimum height, which is what triggers the item's scrollbar when the pane
   is shorter than that floor. */
.gnt-manager-tabs-section {
    height: 100%;
    min-height: 0;
}

.gnt-manager-tabs {
    display: flex;
    flex-direction: column;
    height: 100%;
    min-height: 0;
}

.gnt-manager-tabs .e-content {
    flex: 1 1 auto;
    min-height: 0;
    overflow: hidden;
}

/* The active pane fits the available space and scrolls vertically when its content's
   minimum height exceeds it (same behavior as the detail section above the tabs). */
.gnt-manager-tabs .e-content > .e-item.e-active {
    display: flex;
    flex-direction: column;
    height: 100%;
    min-height: 0;
    min-width: 0;
    overflow-y: auto;
    overflow-x: hidden;
}

/* min-height: auto (the flex default) keeps each pane's floor at its content's intrinsic
   minimum — the contained controls define it, no hard-coded pixel floor. Below that the
   e-item scrolls. */
.gnt-manager-tabs .e-content > .e-item.e-active > * {
    flex: 1 1 auto;
    min-height: auto;
    min-width: 0;
}

.gnt-manager-tab-panel,
.gnt-manager-grid-panel {
    display: flex;
    flex-direction: column;
    height: auto;
    min-height: auto;
    min-width: 0;
    overflow: visible;
    padding: .4rem 0 0;
}

.gnt-manager-tab-panel .e-grid,
.gnt-manager-grid-panel .gnt-grid-selector-root {
    flex: 1 1 auto;
    min-height: 0;
}

/* SfGrid weakness: with Height="100%" the grid sizes .e-content without reserving room
   for the toolbar/pager, so the pager overflows the grid box and gets clipped. Flex the
   grid shell instead — the content area yields (rows scroll internally) and the header,
   toolbar, and pager keep their natural heights. */
.gnt-manager-tab-panel .e-grid,
.gnt-manager-grid-panel .e-grid {
    display: flex;
    flex-direction: column;
    min-height: 0;
}

.gnt-manager-tab-panel .e-grid .e-gridcontent,
.gnt-manager-grid-panel .e-grid .e-gridcontent {
    flex: 1 1 auto;
    min-height: 0;
    overflow: hidden;
}

.gnt-manager-tab-panel .e-grid .e-gridcontent .e-content,
.gnt-manager-grid-panel .e-grid .e-gridcontent .e-content {
    height: 100% !important;
    overflow-y: auto;
}

.gnt-manager-tab-panel .e-grid .e-gridpager,
.gnt-manager-grid-panel .e-grid .e-gridpager {
    flex: 0 0 auto;
}

/* Custom selector ToolbarContent shell */
.gnt-page-toolbar {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    flex-wrap: wrap;
}

.gnt-page-toolbar__button {
    min-width: 0;
}

.gnt-page-toolbar__status {
    font-size: 0.85rem;
    color: #51616b;
    margin-left: 0.35rem;
    max-width: 36rem;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.gnt-page-toolbar__status--error {
    color: #b42318;
    font-weight: 600;
}

/* Page-specific: ExternalDataSourceManagerDetail */
.external-data-source-manager-test {
    display: flex;
    align-items: center;
    gap: .75rem;
    min-height: 34px;
}

.external-data-source-manager-test__status {
    color: #51616b;
    font-size: .9rem;
}

/* Definition-bound provider section: a 12-column grid of labeled inputs whose values live in
   the source's typed DefinitionJson (not entity columns). */
.external-data-source-def-grid {
    display: grid;
    grid-template-columns: repeat(12, 1fr);
    column-gap: 16px;
    row-gap: 10px;
    width: 100%;
}

.external-data-source-def-field {
    display: flex;
    flex-direction: column;
    gap: 2px;
    grid-column: span 12;
}

/* "Open ↗" link shown in a definition field's label when its value is a URL */
.external-data-source-def-link {
    margin-left: 6px;
    font-size: 0.85em;
    white-space: nowrap;
}

.external-data-source-def-field.span-3 { grid-column: span 3; }
.external-data-source-def-field.span-4 { grid-column: span 4; }
.external-data-source-def-field.span-6 { grid-column: span 6; }
.external-data-source-def-field.span-8 { grid-column: span 8; }
.external-data-source-def-field.span-12 { grid-column: span 12; }

@media (max-width: 900px) {
    .external-data-source-def-field.span-3,
    .external-data-source-def-field.span-4,
    .external-data-source-def-field.span-6,
    .external-data-source-def-field.span-8 { grid-column: span 12; }
}

.external-data-source-capabilities {
    min-height: 34px;
    display: flex;
    align-items: center;
    color: #51616b;
    font-size: .9rem;
}

.external-data-source-items-panel {
    gap: 6px;
}

.external-data-source-items-toolbar {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 4px 2px;
}

.external-data-source-items-status {
    font-size: 0.85rem;
    opacity: 0.8;
}

.external-data-source-ai-pre {
    white-space: pre-wrap;
    word-break: break-word;
    background: var(--gnt-surface-2);
    padding: 0.5rem;
    border-radius: 4px;
    margin: 0;
    font-size: 0.75rem;
    max-height: 18rem;
    overflow: auto;
}

.external-data-source-items-created {
    font-size: 0.85rem;
    font-weight: 600;
    color: #107c41;
}

.external-data-source-items-missing {
    font-size: 0.85rem;
    font-weight: 600;
    color: #b45309;
}

/* Page-specific: ExternalDataSetManagerDetail */
.external-dataset-entity-picker {
    display: flex;
    align-items: center;
    gap: .4rem;
}

.external-dataset-entity-picker > .e-control-wrapper,
.external-dataset-entity-picker > .e-ddl {
    flex: 1 1 auto;
    min-width: 0;
}

.external-dataset-mapping-toolbar {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: .4rem;
    padding: .25rem 0;
}

.external-dataset-mapping-hint {
    font-size: 0.8rem;
    color: var(--gnt-muted-text);
}

.external-dataset-mapping-pending {
    font-size: 0.8rem;
    font-weight: 600;
    color: #b45309;
}

/* Create UDF & Map dialog — mirrors UdfSettingsForm's field layout (those styles are
   component-local, so the shared bits are restated here under the dialog's class). */
.external-dataset-udf-dialog .udf-settings-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(150px, 1fr));
    gap: 0.85rem 1rem;
    align-items: end;
    padding: 0.25rem 0;
}

.external-dataset-udf-dialog .udf-settings-field {
    display: flex;
    flex-direction: column;
    gap: 0.35rem;
    min-width: 0;
    color: #344054;
    font-size: 0.88rem;
    font-weight: 700;
}

.external-dataset-udf-dialog .udf-settings-wide {
    grid-column: 1 / -1;
}

.external-dataset-udf-dialog .external-dataset-udf-source-line {
    font-weight: 400;
    color: var(--gnt-muted-text);
}

.external-dataset-mapping-broken {
    font-size: 0.8rem;
    font-weight: 600;
    color: var(--gnt-danger-strong);
}

/* Rules tab: two-column card layout of rule groups */
.external-dataset-rules-panel {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(340px, 1fr));
    gap: .75rem;
    align-content: start;
    overflow: auto;
    padding: .25rem;
}

.external-dataset-rules-group {
    border: 1px solid var(--gnt-border-color);
    border-radius: 6px;
    padding: .5rem .75rem .75rem .75rem;
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: .6rem;
}

.external-dataset-rules-group > legend {
    font-size: 0.85rem;
    font-weight: 600;
    padding: 0 .25rem;
}

.external-dataset-rules-field {
    display: flex;
    flex-direction: column;
    gap: .15rem;
}

.external-dataset-rules-field .form-label {
    font-size: 0.8rem;
    font-weight: 500;
    margin: 0;
}

.external-dataset-rules-field .form-text {
    font-size: 0.75rem;
    opacity: .75;
}

/* Page-specific: ExternalDataScheduleManagerDetail */
.external-data-schedule-days {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    padding-top: 4px;
}

.external-data-schedule-day {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    font-size: 0.85rem;
}

/* ==========================================================================
   Tenant Environments blade — create wizard, delete dialog, configuration copy.
   ========================================================================== */

.tenant-env-wizard,
.tenant-env-dialog {
    display: flex;
    flex-direction: column;
    gap: 0.85rem;
    font-size: 0.92rem;
    color: var(--gnt-text-color);
}

.tenant-env-wizard__steps {
    display: flex;
    flex-wrap: wrap;
    gap: 0.35rem;
}

.tenant-env-wizard__step {
    border: 1px solid #d0d5dd;
    border-radius: 999px;
    padding: 0.2rem 0.65rem;
    font-size: 0.82rem;
    color: var(--gnt-muted-text);
}

.tenant-env-wizard__step--active {
    border-color: var(--gnt-primary-color);
    background: var(--gnt-primary-tint);
    color: var(--gnt-primary-strong);
    font-weight: 600;
}

.tenant-env-wizard__step--complete {
    border-color: #86efac;
    background: #f0fdf4;
    color: var(--gnt-success-color);
}

.tenant-env-wizard__fields {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.75rem;
}

.tenant-env-wizard__fields label {
    display: flex;
    flex-direction: column;
    gap: 0.25rem;
    min-width: 0;
    font-weight: 600;
    color: #344054;
}

.tenant-env-wizard__fields small {
    font-weight: 400;
    color: var(--gnt-muted-text);
}

.tenant-env-wizard__wide-field,
.tenant-env-wizard__check {
    grid-column: 1 / -1;
}

.tenant-env-wizard__check {
    flex-direction: row !important;
    align-items: center;
    gap: 0.5rem;
}

.tenant-env-wizard__input,
.tenant-env-dialog__input {
    min-height: 2.1rem;
    border: 1px solid var(--gnt-border-color);
    border-radius: 4px;
    padding: 0.35rem 0.5rem;
    background: var(--gnt-surface-color);
    color: var(--gnt-text-strong);
    font: inherit;
}

.tenant-env-wizard__textarea {
    min-height: 5rem;
    border: 1px solid var(--gnt-border-color);
    border-radius: 4px;
    padding: 0.35rem 0.5rem;
    font: inherit;
}

.tenant-env-wizard__review {
    display: grid;
    gap: 0.4rem;
}

.tenant-env-wizard__review > div {
    display: grid;
    grid-template-columns: minmax(9rem, 12rem) 1fr;
    gap: 0.75rem;
}

.tenant-env-wizard__operation,
.tenant-env-dialog__operation {
    display: grid;
    gap: 0.15rem;
    border: 1px solid #eaecf0;
    border-radius: 4px;
    padding: 0.5rem 0.6rem;
    margin-bottom: 0.4rem;
}

.tenant-env-wizard__errors,
.tenant-env-dialog__errors {
    border: 1px solid #fda29b;
    border-radius: 4px;
    background: #fff1f0;
    color: #912018;
    padding: 0.5rem 0.65rem;
    font-weight: 600;
}

.tenant-env-dialog__notice {
    border: 1px solid #fec84b;
    border-radius: 4px;
    background: #fffaeb;
    color: #93370d;
    padding: 0.5rem 0.65rem;
}

.tenant-env-wizard__lead,
.tenant-env-dialog__lead {
    margin: 0;
}

.tenant-env-dialog__impacts ul {
    margin: 0.35rem 0 0;
    padding-left: 1.25rem;
}

.tenant-env-wizard__footer,
.tenant-env-dialog__footer {
    display: flex;
    justify-content: flex-end;
    gap: 0.4rem;
    padding-top: 0.35rem;
}

.tenant-env-config-sync {
    display: flex;
    flex-direction: column;
    gap: 0.65rem;
    min-height: 0;
    height: 100%;
}

.tenant-env-config-sync__band {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 1rem;
    flex-wrap: wrap;
}

.tenant-env-config-sync__band > label {
    display: flex;
    flex-direction: column;
    gap: 0.25rem;
    flex: 0 1 22rem;
    min-width: 0;
    font-size: 0.86rem;
    font-weight: 600;
    color: #344054;
}

.tenant-env-config-sync__actions {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    flex-wrap: wrap;
}

.tenant-env-config-sync__summary {
    display: flex;
    gap: 0.5rem;
    flex-wrap: wrap;
    color: #475467;
    font-size: 0.88rem;
}

.tenant-env-config-sync__summary span {
    border: 1px solid #d0d5dd;
    border-radius: 4px;
    background: var(--gnt-surface-color);
    padding: 0.25rem 0.5rem;
}

.tenant-env-config-sync__message,
.tenant-env-config-sync__error {
    border-radius: 4px;
    padding: 0.5rem 0.65rem;
    font-size: 0.9rem;
    font-weight: 600;
}

.tenant-env-config-sync__message {
    border: 1px solid #9ec5fe;
    background: var(--gnt-primary-tint);
    color: #18427a;
}

.tenant-env-config-sync__error {
    border: 1px solid #fda29b;
    background: #fff1f0;
    color: #912018;
}

.tenant-env-config-sync__grid-wrap {
    flex: 1 1 auto;
    min-height: 0;
    overflow: auto;
    border: 1px solid #d0d5dd;
    background: var(--gnt-surface-color);
}

.tenant-env-config-sync__grid {
    width: 100%;
    min-width: 980px;
    border-collapse: collapse;
    font-size: 0.86rem;
}

.tenant-env-config-sync__grid th,
.tenant-env-config-sync__grid td {
    border-bottom: 1px solid #eaecf0;
    padding: 0.45rem 0.6rem;
    text-align: left;
    vertical-align: top;
}

.tenant-env-config-sync__grid th {
    position: sticky;
    top: 0;
    z-index: 1;
    background: #f2f4f7;
    color: #344054;
    font-weight: 700;
}

.tenant-env-config-sync__grid small {
    display: block;
    color: var(--gnt-muted-text);
    margin-top: 0.1rem;
}

.tenant-env-config-sync__select {
    width: 44px;
    text-align: center;
}

.tenant-env-config-sync__status {
    font-weight: 700;
}

.tenant-env-config-sync__row--matching {
    background: #f6fef9;
}

.tenant-env-config-sync__row--different {
    background: #fffcf5;
}

.tenant-env-config-sync__row--missing {
    background: #f9fbff;
}

.tenant-env-config-sync__empty {
    color: var(--gnt-muted-text);
    text-align: center;
    padding: 1.5rem;
}

/* Tenant Customisation Manager panel (extends the config-sync family). */
.tenant-env-customisation__body {
    display: grid;
    grid-template-columns: 240px minmax(0, 1fr);
    gap: 0.75rem;
    min-height: 0;
}

.tenant-env-customisation__domains {
    border: 1px solid var(--gnt-border-color);
    border-radius: 6px;
    background: var(--gnt-surface-color);
    overflow: auto;
    align-self: start;
}

.tenant-env-customisation__domains-head,
.tenant-env-customisation__domain {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.4rem 0.6rem;
    cursor: pointer;
}

.tenant-env-customisation__domains-head {
    font-weight: 600;
    border-bottom: 1px solid var(--gnt-border-color);
    background: var(--gnt-surface-2);
    cursor: default;
}

.tenant-env-customisation__domain:hover { background: #f4f6f8; }
.tenant-env-customisation__domain.is-active { background: var(--gnt-primary-tint); }

.tenant-env-customisation__domain-label { flex: 1 1 auto; }

.tenant-env-customisation__domain-counts em {
    font-style: normal;
    font-size: 0.75rem;
    padding: 0 0.35rem;
    border-radius: 999px;
    margin-left: 2px;
    background: #f2f4f7;
    color: #475467;
}
.tenant-env-customisation__domain-counts em:nth-child(1) { background: #eaf1ff; }
.tenant-env-customisation__domain-counts em:nth-child(2) { background: #fff4d6; }
.tenant-env-customisation__domain-counts em:nth-child(3) { background: #e6f9ee; }

.tenant-env-customisation__row--targetonly { background: var(--gnt-surface-2); color: var(--gnt-muted-text); }
.tenant-env-customisation__warn { color: #b54708; font-size: 0.8rem; }
.tenant-env-customisation__pkg { color: #475467; align-self: center; }
.tenant-env-customisation__result {
    margin-top: 0.5rem;
    padding: 0.5rem 0.75rem;
    border: 1px solid var(--gnt-border-color);
    border-radius: 6px;
    background: var(--gnt-surface-color);
    font-size: 0.9rem;
}
.tenant-env-customisation__result ul { margin: 0.25rem 0 0 1rem; }

@media (max-width: 900px) {
    .tenant-env-customisation__body { grid-template-columns: minmax(0, 1fr); }
}

/* Tenant Environment AI panel (config + usage; extends the config-sync family). */
.tenant-env-ai { display: flex; flex-direction: column; min-height: 0; height: 100%; }
.tenant-env-ai__config,
.tenant-env-ai__usage { display: flex; flex-direction: column; gap: 0.75rem; padding: 0.75rem 0.25rem; }
.tenant-env-ai__row { display: flex; align-items: center; gap: 1rem; }
.tenant-env-ai__grid { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: 0.75rem 1rem; }
.tenant-env-ai__grid.is-disabled { opacity: 0.55; }
.tenant-env-ai__field { display: flex; flex-direction: column; gap: 0.25rem; min-width: 0; }
.tenant-env-ai__field--check { justify-content: flex-end; }
.tenant-env-ai__field.span-4 { grid-column: span 4; }
.tenant-env-ai__field.span-6 { grid-column: span 6; }
.tenant-env-ai__field.span-8 { grid-column: span 8; }
.tenant-env-ai__hint { color: var(--gnt-muted-color); font-size: 0.8rem; line-height: 1.3; }
.tenant-env-ai__key { display: flex; align-items: center; gap: 0.5rem; }
.tenant-env-ai__key > :first-child { flex: 1 1 auto; min-width: 0; }
.tenant-env-ai__key-state { white-space: nowrap; font-size: 0.8rem; color: var(--gnt-muted-color); }
.tenant-env-ai__key-state.is-set { color: #15803d; }
.tenant-env-ai__actions { justify-content: flex-start; }
.tenant-env-ai__tiles { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 0.5rem; }
.tenant-env-ai__tile { display: flex; flex-direction: column; gap: 0.15rem; padding: 0.6rem 0.75rem; border: 1px solid var(--gnt-border-color); border-radius: 6px; background: var(--gnt-surface-color); }
.tenant-env-ai__tile > span { font-size: 0.75rem; text-transform: uppercase; letter-spacing: 0.03em; color: var(--gnt-muted-color); }
.tenant-env-ai__tile > strong { font-size: 1.25rem; font-variant-numeric: tabular-nums; }
.tenant-env-ai__tile > small { color: var(--gnt-muted-color); }
.tenant-env-ai__meter { height: 6px; border-radius: 3px; background: var(--gnt-border-color); overflow: hidden; margin-top: 0.25rem; }
.tenant-env-ai__meter > div { height: 100%; background: var(--gnt-primary-color); }
.tenant-env-ai__meter > div.is-hot { background: var(--gnt-danger-color); }
.tenant-env-ai__chart { display: flex; align-items: flex-end; gap: 4px; height: 140px; padding: 0.5rem 0.25rem 1.4rem; border-bottom: 1px solid var(--gnt-border-color); overflow-x: auto; }
.tenant-env-ai__bar { position: relative; flex: 1 0 18px; max-width: 48px; height: 100%; display: flex; flex-direction: column; justify-content: flex-end; }
.tenant-env-ai__bar-fill { background: var(--gnt-primary-color); border-radius: 3px 3px 0 0; min-height: 2px; }
.tenant-env-ai__bar-label { position: absolute; top: 100%; left: 50%; transform: translateX(-50%); font-size: 0.65rem; white-space: nowrap; color: var(--gnt-muted-color); padding-top: 2px; }
.tenant-env-ai__detail > summary { cursor: pointer; font-weight: 600; padding: 0.25rem 0; }
.tenant-env-config-sync__grid tr.is-failed td { color: var(--gnt-danger-strong); }

@media (max-width: 900px) {
    .tenant-env-ai__field.span-4,
    .tenant-env-ai__field.span-6,
    .tenant-env-ai__field.span-8 { grid-column: span 12; }
}

@media (max-width: 760px) {
    .tenant-env-wizard__fields {
        grid-template-columns: minmax(0, 1fr);
    }
}

/* AI Assist buttons: gated by the environment's AI availability; the wrapper carries the hover reason. */
.gnt-ai-assist { display: inline-flex; }
.gnt-ai-assist.is-unavailable { cursor: help; }
.gnt-ai-assist.is-unavailable .gnt-button { pointer-events: none; }
/* Tree grid level shading. Class is on the grid host div (SfTreeGrid CssClass does not reach the DOM);
   Syncfusion exposes depth only via the tree cell class "e-gridrowindex{N}Level{L}". Parent rows only. */
.gnt-tree-grid-levels .e-treegrid .e-gridcontent tr.e-row:not(.e-active):not([aria-selected="true"])[aria-expanded]:has(td[class*="Level0"]) td.e-rowcell { background-color: #d9dde3 !important; }
.gnt-tree-grid-levels .e-treegrid .e-gridcontent tr.e-row:not(.e-active):not([aria-selected="true"])[aria-expanded]:has(td[class*="Level1"]) td.e-rowcell { background-color: #e4e7ec !important; }
.gnt-tree-grid-levels .e-treegrid .e-gridcontent tr.e-row:not(.e-active):not([aria-selected="true"])[aria-expanded]:has(td[class*="Level2"]) td.e-rowcell { background-color: #eceef2 !important; }
.gnt-tree-grid-levels .e-treegrid .e-gridcontent tr.e-row:not(.e-active):not([aria-selected="true"])[aria-expanded]:has(td[class*="Level3"]) td.e-rowcell { background-color: #f2f3f6 !important; }
.gnt-tree-grid-levels .e-treegrid .e-gridcontent tr.e-row:not(.e-active):not([aria-selected="true"])[aria-expanded]:has(td[class*="Level4"]) td.e-rowcell { background-color: #f6f7f9 !important; }
.gnt-tree-grid-levels .e-treegrid .e-gridcontent tr.e-row.gnt-tree-group-row td.e-rowcell { font-weight: 600; background-color: #cfd4dc !important; }
/* ShadeTreeLevels: every row shaded by depth (leaf rows included), not just expandable parents. */
.e-treegrid.gnt-tree-shade-all .e-gridcontent tr.e-row:not(.e-active):not([aria-selected="true"]):has(td[class*="Level0"]) td.e-rowcell { background-color: #d9dde3 !important; }
.e-treegrid.gnt-tree-shade-all .e-gridcontent tr.e-row:not(.e-active):not([aria-selected="true"]):has(td[class*="Level1"]) td.e-rowcell { background-color: #e4e7ec !important; }
.e-treegrid.gnt-tree-shade-all .e-gridcontent tr.e-row:not(.e-active):not([aria-selected="true"]):has(td[class*="Level2"]) td.e-rowcell { background-color: #eceef2 !important; }
.e-treegrid.gnt-tree-shade-all .e-gridcontent tr.e-row:not(.e-active):not([aria-selected="true"]):has(td[class*="Level3"]) td.e-rowcell { background-color: #f2f3f6 !important; }
.e-treegrid.gnt-tree-shade-all .e-gridcontent tr.e-row:not(.e-active):not([aria-selected="true"]):has(td[class*="Level4"]) td.e-rowcell { background-color: #f6f7f9 !important; }
.e-treegrid.gnt-tree-shade-all .e-gridcontent tr.e-row.e-active td.e-rowcell,
.e-treegrid.gnt-tree-shade-all .e-gridcontent tr.e-row[aria-selected="true"] td.e-rowcell { background-color: #e0e7ff !important; }
.gnt-tree-grid-levels .e-treegrid .e-gridcontent tr.e-row.e-active td.e-rowcell,
.gnt-tree-grid-levels .e-treegrid .e-gridcontent tr.e-row[aria-selected="true"] td.e-rowcell { background-color: #e0e7ff !important; }

/* Tree surface before column metadata arrives: SfTreeGrid renders nothing, so we show the
   same "…Loading" hint the flat grid's empty-record row shows. */
.gnt-tree-grid-placeholder { padding: 0.75rem 1rem; color: var(--gnt-muted-color); }

/* ==== Sabre.App.Web\Pages\ScheduleManagerPage.razor (hand-authored) ==== */
.schedule-manager-page {
    display: flex;
    flex-direction: column;
    gap: 8px;
    height: 100%;
    padding: 8px 12px;
}

.schedule-manager-header {
    display: flex;
    align-items: flex-end;
    gap: 24px;
    flex-wrap: wrap;
}

.schedule-manager-picker {
    display: flex;
    flex-direction: column;
    gap: 2px;
    font-size: 12px;
}

.schedule-manager-meta {
    display: flex;
    gap: 16px;
    font-size: 12px;
    color: var(--bs-secondary-color, #666);
}

.schedule-manager-actions {
    display: flex;
    gap: 8px;
    margin-left: auto;
}

.schedule-manager-status {
    font-size: 12px;
    color: var(--bs-secondary-color, #666);
}

.schedule-manager-warning {
    font-size: 12px;
    color: #b53030;
}

.gnt-schedule-gantt-toolbar {
    margin-bottom: 4px;
}

.gnt-icon-gantt-expand-one::before {
    content: "\02C5";
}

.gnt-icon-gantt-expand-all::before {
    content: "\02C5\02C5";
    letter-spacing: -0.12rem;
}

.gnt-icon-gantt-collapse-one::before {
    content: "\02C4";
}

.gnt-icon-gantt-collapse-all::before {
    content: "\02C4\02C4";
    letter-spacing: -0.12rem;
}

.gnt-icon-gantt-zoom-in::before {
    content: "\2295";
}

.gnt-icon-gantt-zoom-out::before {
    content: "\2296";
}

.gnt-icon-gantt-indent::before {
    content: "\21E5";
}

.gnt-icon-gantt-outdent::before {
    content: "\21E4";
}

.gnt-icon-gantt-expand-one::before,
.gnt-icon-gantt-expand-all::before,
.gnt-icon-gantt-collapse-one::before,
.gnt-icon-gantt-collapse-all::before,
.gnt-icon-gantt-zoom-in::before,
.gnt-icon-gantt-zoom-out::before,
.gnt-icon-gantt-indent::before,
.gnt-icon-gantt-outdent::before {
    font-size: 1.05rem;
    line-height: 1;
    color: var(--gnt-text-tertiary);
}

/* Record template designer — Phase 2 (object model, section selection, grid columns) */
.record-template-definition-section-title { cursor: pointer; }
.record-template-definition-section.is-selected { outline: 2px solid var(--gnt-primary-color); outline-offset: 2px; border-radius: 4px; }
.record-template-definition-section.is-selected > .record-template-definition-section-title { color: var(--gnt-primary-color); }
.record-template-definition-grid-column-row { align-items: center; }
.record-template-definition-grid-column-actions { display: inline-flex; gap: 2px; align-items: center; }
.record-template-definition-grid-column-actions input[type="number"] { width: 3.2rem; }
.record-template-definition-grid-column-actions button { padding: 0 0.35rem; line-height: 1.4; }
.record-template-definition-section-actions button { padding: 0 0.45rem; margin-right: 2px; }


/* Record template designer — Phase 3 (drag-drop, page bands) */
.record-template-definition-field[draggable="true"] { cursor: grab; }
.record-template-definition-field.is-drop-target { box-shadow: inset 3px 0 0 var(--gnt-primary-color); }
.record-template-definition-drop-zone { flex-basis: 100%; border: 1px dashed #9bb4f0; border-radius: 4px; padding: 0.35rem; font-size: 0.75rem; color: var(--gnt-muted-text); text-align: center; }
.record-template-definition-drop-zone.is-drop-target { background: var(--gnt-primary-tint); border-color: var(--gnt-primary-color); }
.record-template-definition-page-header.is-selected { outline: 2px solid var(--gnt-primary-color); outline-offset: 2px; border-radius: 4px; }
.record-template-definition-band { display: flex; flex-wrap: wrap; gap: 0.5rem; align-items: center; border: 1px dashed #c6cfdd; border-radius: 4px; padding: 0.35rem 0.5rem; margin: 0.25rem 0; min-height: 1.6rem; font-size: 0.8rem; color: var(--gnt-muted-text); }
.record-template-definition-band-label { font-weight: 600; flex-basis: 100%; font-size: 0.7rem; text-transform: uppercase; letter-spacing: 0.04em; }
.record-template-definition-band-item { background: var(--gnt-surface-2); border: 1px solid #d9e0ec; border-radius: 3px; padding: 0.15rem 0.4rem; }



/* Invoice scanner trial harness (/Dev/InvoiceScanner) */
.invoice-scan { display: flex; flex-direction: column; height: 100%; overflow: auto; padding: 1rem; gap: 0.75rem; box-sizing: border-box; }
.invoice-scan__header h1 { margin: 0; font-size: 1.25rem; }
.invoice-scan__header p { margin: 0.25rem 0 0; color: var(--gnt-muted-text); font-size: 0.85rem; }
.invoice-scan__tag { font-size: 0.65rem; text-transform: uppercase; letter-spacing: 0.06em; background: var(--gnt-primary-tint); color: var(--gnt-primary-color); border-radius: 3px; padding: 0.1rem 0.35rem; vertical-align: middle; }
.invoice-scan__body { display: flex; gap: 1rem; align-items: flex-start; flex-wrap: wrap; }
.invoice-scan__panel { flex: 1 1 420px; min-width: 360px; border: 1px solid #d9e0ec; border-radius: 6px; padding: 0.75rem; background: var(--gnt-surface-color); }
.invoice-scan__panel h2 { font-size: 0.9rem; margin: 0.75rem 0 0.4rem; }
.invoice-scan__panel h2:first-child { margin-top: 0; }
.invoice-scan__meta { font-weight: 400; color: var(--gnt-muted-text); font-size: 0.75rem; margin-left: 0.5rem; }
.invoice-scan__file { font-size: 0.8rem; margin: 0.5rem 0; }
.invoice-scan__hint { font-size: 0.8rem; color: var(--gnt-muted-text); }
.invoice-scan__preview { margin: 0.5rem 0; border: 1px solid #e3e8f0; border-radius: 4px; padding: 0.4rem; }
.invoice-scan__preview-label { font-size: 0.7rem; text-transform: uppercase; letter-spacing: 0.04em; color: var(--gnt-muted-text); margin-bottom: 0.3rem; }
.invoice-scan__preview img { max-width: 100%; max-height: 420px; display: block; margin: 0 auto; }
.invoice-scan__pdf { width: 100%; height: 420px; border: 0; }
.invoice-scan__field { display: block; margin: 0.5rem 0; font-size: 0.8rem; }
.invoice-scan__field > span { display: block; margin-bottom: 0.2rem; color: var(--gnt-muted-text); }
.invoice-scan__field input, .invoice-scan__field textarea { width: 100%; box-sizing: border-box; border: 1px solid #c6cfdd; border-radius: 4px; padding: 0.3rem 0.4rem; font: inherit; }
.invoice-scan__field input[type="number"] { width: 6rem; }
.invoice-scan__actions { display: flex; gap: 0.5rem; align-items: center; margin-top: 0.75rem; flex-wrap: wrap; }
.invoice-scan__busy { font-size: 0.8rem; color: var(--gnt-primary-color); }
.invoice-scan__error { margin-top: 0.6rem; border: 1px solid #e5a3a3; background: #fdf1f1; color: #8c2b2b; border-radius: 4px; padding: 0.5rem; font-size: 0.8rem; }
.invoice-scan__warnings { border: 1px solid #e6c98a; background: #fdf8ec; border-radius: 4px; padding: 0.5rem; font-size: 0.8rem; margin-bottom: 0.6rem; }
.invoice-scan__warnings ul, .invoice-scan__notes, .invoice-scan__model-notes ul { margin: 0.3rem 0 0; padding-left: 1.1rem; }
.invoice-scan__notes { font-size: 0.78rem; color: var(--gnt-muted-text); }
.invoice-scan__model-notes { font-size: 0.8rem; margin-top: 0.6rem; }
.invoice-scan details { margin-bottom: 0.5rem; }
.invoice-scan summary { cursor: pointer; font-size: 0.8rem; color: var(--gnt-primary-color); }
.invoice-scan__prompt { white-space: pre-wrap; word-break: break-word; font-size: 0.72rem; line-height: 1.35; background: #f7f9fc; border: 1px solid #e3e8f0; border-radius: 4px; padding: 0.5rem; max-height: 320px; overflow: auto; margin: 0.3rem 0 0; }
.invoice-scan__pages { display: flex; gap: 0.5rem; flex-wrap: wrap; margin-top: 0.4rem; }
.invoice-scan__pages figure { margin: 0; max-width: 240px; }
.invoice-scan__pages img { max-width: 100%; border: 1px solid #d9e0ec; border-radius: 3px; display: block; }
.invoice-scan__pages figcaption { font-size: 0.68rem; color: var(--gnt-muted-text); margin-top: 0.2rem; }
.invoice-scan__fields { width: 100%; border-collapse: collapse; font-size: 0.8rem; }
.invoice-scan__fields th { text-align: left; font-weight: 500; color: var(--gnt-muted-text); width: 40%; padding: 0.22rem 0.4rem 0.22rem 0; vertical-align: top; }
.invoice-scan__fields td { padding: 0.22rem 0; border-bottom: 1px solid #f0f3f8; }
.invoice-scan__fields tr.is-empty td { color: #a7b0c0; }
.invoice-scan__lines { width: 100%; border-collapse: collapse; font-size: 0.75rem; margin-top: 0.6rem; }
.invoice-scan__lines th, .invoice-scan__lines td { border: 1px solid #e3e8f0; padding: 0.2rem 0.35rem; text-align: left; }
.invoice-scan__lines td.num { text-align: right; }

/* Record template preview — Phase 4 (rendered HTML) */
.record-template-preview-frame { width: 100%; min-height: 70vh; height: 100%; border: 1px solid var(--gnt-border-soft); background: var(--gnt-surface-color); }
.record-template-definition-live-status { font-size: 0.75rem; color: var(--gnt-muted-text); margin-left: 0.5rem; }


/* Record template manager — Phase 5/6 (export toolbar, dirty save) */
.record-template-manager-export-group { display: inline-flex; gap: 4px; align-items: center; margin-left: 8px; padding-left: 8px; border-left: 1px solid var(--gnt-border-soft); }
.record-template-manager-export-group label { display: inline-flex; gap: 4px; align-items: center; font-size: 0.75rem; color: var(--gnt-muted-text); }
.record-template-definition-actions button.is-dirty { font-weight: 600; border-color: var(--gnt-primary-color); color: var(--gnt-primary-color); }

.tenant-env-ai__hint-error { color: #8c2b2b; }

/* Record template designer — Phase 8 (pages, containers, new elements) */
.record-template-definition-designer-page { border: 1px dashed #c6cfdd; border-radius: 4px; padding: 4px; margin-bottom: 8px; }
.record-template-definition-designer-page.is-selected { border-color: var(--gnt-primary-color); box-shadow: 0 0 0 1px var(--gnt-primary-color) inset; }
.record-template-definition-page-band { display: flex; justify-content: space-between; align-items: baseline; gap: 8px; cursor: pointer; font-size: 0.75rem; color: var(--gnt-muted-text); padding: 2px 4px; background: var(--gnt-surface-2); border-radius: 3px; }
.record-template-definition-designer-page.is-selected > .record-template-definition-page-band { color: var(--gnt-primary-color); background: var(--gnt-primary-tint); }
.record-template-definition-toolbox strong { display: block; margin-top: 6px; font-size: 0.7rem; text-transform: uppercase; letter-spacing: 0.04em; color: var(--gnt-muted-text); }
.record-template-definition-field-group { outline: 1px dashed #9bb4f0; }


/* Record template designer — Object Tree */
.record-template-definition-outline { border-bottom: 1px solid var(--gnt-border-soft); margin-bottom: 6px; padding-bottom: 4px; max-height: 40%; display: flex; flex-direction: column; min-height: 0; }
.record-template-definition-outline-header { display: flex; justify-content: space-between; align-items: center; padding: 2px 4px; }
.record-template-definition-outline-header button { padding: 0 0.35rem; }
.record-template-definition-outline-body { overflow: auto; min-height: 0; font-size: 0.78rem; }
.record-template-definition-outline-node { display: flex; align-items: center; gap: 2px; border-radius: 3px; }
.record-template-definition-outline-node:hover { background: var(--gnt-surface-2); }
.record-template-definition-outline-node.is-selected { background: var(--gnt-primary-tint); box-shadow: inset 2px 0 0 var(--gnt-primary-color); }
.record-template-definition-outline-node.has-issue .record-template-definition-outline-caption { color: var(--gnt-danger-color); }
.record-template-definition-outline-twisty { border: 0; background: none; width: 1.1rem; padding: 0; color: var(--gnt-muted-text); cursor: pointer; }
.record-template-definition-outline-twisty:disabled { cursor: default; opacity: 0.35; }
.record-template-definition-outline-label { display: flex; align-items: baseline; gap: 4px; flex: 1 1 auto; min-width: 0; border: 0; background: none; text-align: left; padding: 1px 2px; cursor: pointer; }
.record-template-definition-outline-glyph { flex: 0 0 auto; color: var(--gnt-muted-text); }
.record-template-definition-outline-caption { flex: 0 1 auto; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.record-template-definition-outline-label small { color: #8a96ab; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.record-template-definition-outline-issue { color: var(--gnt-danger-color); font-weight: 700; margin-left: auto; }


.record-template-definition-expression-error span:last-child { color: var(--gnt-danger-color); }
.record-template-definition-grid-column-actions input { min-width: 4rem; }


/* Record template designer — pane chrome (Property / Object Tree) */
.record-template-definition-pane-bar { display: flex; align-items: center; gap: 6px; padding: 2px 4px 4px 2px; border-bottom: 1px solid var(--gnt-border-soft); margin-bottom: 4px; }
.record-template-definition-pane-title { flex: 1 1 auto; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.record-template-definition-pane-toggle { border: 1px solid var(--gnt-border-soft); background: var(--gnt-surface-2); border-radius: 3px; cursor: pointer; padding: 0 0.35rem; color: var(--gnt-muted-text); }
.record-template-definition-pane-toggle:hover { border-color: var(--gnt-primary-color); color: var(--gnt-primary-color); }
.record-template-definition-pane-actions { display: inline-flex; gap: 2px; }
.record-template-definition-pane-actions button { padding: 0 0.35rem; }
.record-template-definition-pane.is-collapsed { overflow: hidden; }
.record-template-definition-pane.is-collapsed .record-template-definition-pane-bar { flex-direction: column; align-items: center; border-bottom: 0; }
.record-template-definition-pane.is-collapsed .record-template-definition-pane-title { writing-mode: vertical-rl; transform: rotate(180deg); margin-top: 6px; }
.record-template-definition-pane.is-collapsed .record-template-definition-property-sheet,
.record-template-definition-pane.is-collapsed .record-template-definition-outline { display: none; }
.record-template-definition-outline-pane { display: flex; flex-direction: column; min-height: 0; overflow: hidden; }
.record-template-definition-outline-pane .record-template-definition-outline { max-height: none; flex: 1 1 auto; border-bottom: 0; }
.record-template-definition-properties-pane { display: flex; flex-direction: column; min-height: 0; }


/* Record template designer — right-hand dock (Properties + Object Tree) */
.record-template-definition-dock { display: flex; flex-direction: row; height: 100%; min-height: 0; gap: 0; }
.record-template-definition-dock-pane { display: flex; flex-direction: column; min-height: 0; overflow: hidden; border-left: 1px solid var(--gnt-border-soft); padding: 4px; box-sizing: border-box; }
.record-template-definition-dock-pane.is-collapsed { padding: 4px 2px; background: var(--gnt-surface-2); cursor: default; }
/* The rail keeps the toggle visible and readable when the pane is collapsed. */
.record-template-definition-dock-pane.is-collapsed .record-template-definition-pane-bar { flex-direction: column; align-items: center; gap: 8px; border-bottom: 0; margin: 0; padding: 0; }
.record-template-definition-dock-pane.is-collapsed .record-template-definition-pane-title { writing-mode: vertical-rl; transform: rotate(180deg); font-size: 0.72rem; color: var(--gnt-muted-text); white-space: nowrap; }
.record-template-definition-dock-pane.is-collapsed .record-template-definition-property-sheet,
.record-template-definition-dock-pane.is-collapsed .record-template-definition-outline,
.record-template-definition-dock-pane.is-collapsed .record-template-definition-pane-extra { display: none; }
.record-template-definition-pane-toggle { border: 1px solid #b9c4d6; background: var(--gnt-surface-color); border-radius: 3px; cursor: pointer; padding: 1px 0.4rem; color: var(--gnt-primary-color); font-weight: 600; line-height: 1.3; }
.record-template-definition-pane-toggle:hover { background: var(--gnt-primary-tint); border-color: var(--gnt-primary-color); }
.record-template-definition-pane-extra { display: flex; justify-content: flex-end; }
.record-template-definition-dock-pane .record-template-definition-property-sheet,
.record-template-definition-dock-pane .record-template-definition-outline { flex: 1 1 auto; min-height: 0; overflow: auto; }


/* Record template designer — workspace: splitter (selector | canvas) + flex dock */
.record-template-definition-workspace { display: flex; flex-direction: row; align-items: stretch; height: 100%; min-height: 0; width: 100%; }
.record-template-definition-workspace > .e-splitter { flex: 1 1 auto; min-width: 0; }
.record-template-definition-workspace > .record-template-definition-dock { min-width: 0; }


/* Record template designer — canvas page rendered to scale (real mm/pt via container units).
   The page publishes --rt-mm / --rt-pt; everything inside is expressed in those, so a control
   occupies the same fraction of the sheet in the designer as it will on paper. */
.record-template-definition-page { box-sizing: border-box; overflow: visible;
    /* The base rule sets min-height:64rem and its own padding; both fight the sheet aspect ratio
       and the mm padding the children now carry. */
    min-height: 0; padding: 0; align-self: flex-start; flex: 0 0 auto; height: auto; }
.record-template-definition-canvas { align-items: flex-start; }
.record-template-definition-page > * { padding-left: calc(var(--rt-pad-left, 15) * var(--rt-mm)); padding-right: calc(var(--rt-pad-right, 15) * var(--rt-mm)); }
.record-template-definition-page > *:first-child { padding-top: calc(var(--rt-pad-top, 20) * var(--rt-mm)); }
.record-template-definition-page > *:last-child { padding-bottom: calc(var(--rt-pad-bottom, 20) * var(--rt-mm)); }

.record-template-definition-page .record-template-definition-page-header { font-size: calc(9 * var(--rt-pt)); padding-bottom: calc(2 * var(--rt-mm)); margin-bottom: calc(2 * var(--rt-mm)); }
.record-template-definition-page .record-template-definition-band { font-size: calc(8 * var(--rt-pt)); padding: calc(1.5 * var(--rt-mm)) calc(2 * var(--rt-mm)); margin: calc(1 * var(--rt-mm)) 0; min-height: calc(6 * var(--rt-mm)); gap: calc(1.5 * var(--rt-mm)); }
.record-template-definition-page .record-template-definition-band-label { font-size: calc(7 * var(--rt-pt)); }
.record-template-definition-page .record-template-definition-band-item { padding: calc(0.4 * var(--rt-mm)) calc(1 * var(--rt-mm)); }

.record-template-definition-page .record-template-definition-designer-page { padding: calc(1 * var(--rt-mm)); margin-bottom: calc(2 * var(--rt-mm)); }
.record-template-definition-page .record-template-definition-page-band { font-size: calc(7.5 * var(--rt-pt)); padding: calc(0.6 * var(--rt-mm)) calc(1 * var(--rt-mm)); }
.record-template-definition-page .record-template-definition-section { margin-bottom: calc(3 * var(--rt-mm)); }
.record-template-definition-page .record-template-definition-section-title { font-size: calc(9 * var(--rt-pt)); padding-bottom: calc(1 * var(--rt-mm)); margin-bottom: calc(1.5 * var(--rt-mm)); }
.record-template-definition-page .record-template-definition-grid { gap: calc(2 * var(--rt-mm)); }

.record-template-definition-page .record-template-definition-field { font-size: calc(9 * var(--rt-pt)); padding: calc(1 * var(--rt-mm)) calc(1.5 * var(--rt-mm)); min-height: calc(7 * var(--rt-mm)); border-radius: calc(0.6 * var(--rt-mm)); gap: calc(0.4 * var(--rt-mm)); }
.record-template-definition-page .record-template-definition-field strong { font-size: calc(9 * var(--rt-pt)); font-weight: 600; }
.record-template-definition-page .record-template-definition-field small,
.record-template-definition-page .record-template-definition-field em { font-size: calc(7 * var(--rt-pt)); }
.record-template-definition-page .record-template-definition-field-divider { min-height: calc(3 * var(--rt-mm)); }
.record-template-definition-page .record-template-definition-drop-zone { font-size: calc(7 * var(--rt-pt)); padding: calc(1 * var(--rt-mm)); }


/* ---- Paste-from-clipboard import wizard (GNTGridImportExport) ---- */
.gnt-clipboard-import { display: flex; flex-direction: column; gap: 0.75rem; max-height: 70vh; }
.gnt-clipboard-import__intro { margin: 0; line-height: 1.4; }
.gnt-clipboard-import__options { display: flex; align-items: center; gap: 1rem; flex-wrap: wrap; }
.gnt-clipboard-import__note { opacity: 0.75; font-size: 0.9em; }
.gnt-clipboard-import__map { overflow: auto; max-height: 45vh; border: 1px solid var(--gnt-border-color); border-radius: 4px; }
.gnt-clipboard-import__map table { width: 100%; border-collapse: collapse; }
.gnt-clipboard-import__map th,
.gnt-clipboard-import__map td { padding: 0.25rem 0.5rem; text-align: left; vertical-align: middle; border-bottom: 1px solid var(--gnt-border-color); }
.gnt-clipboard-import__map th { position: sticky; top: 0; background: var(--gnt-surface-2); font-weight: 600; z-index: 1; }
.gnt-clipboard-import__map td:first-child,
.gnt-clipboard-import__sample { max-width: 14rem; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.gnt-clipboard-import__sample { opacity: 0.7; font-family: var(--gnt-mono-font); font-size: 0.85em; }
.gnt-clipboard-import__map td:last-child { min-width: 16rem; }
.gnt-clipboard-import__row--key td:first-child { font-weight: 600; }
.gnt-clipboard-import__status { font-size: 0.9em; opacity: 0.85; }
.gnt-clipboard-import__status--blocked { color: var(--gnt-danger-color); opacity: 1; }
.gnt-clipboard-import__positional { display: flex; flex-direction: column; gap: 0.25rem; font-size: 0.9em; padding: 0.4rem 0.6rem; border-left: 3px solid var(--gnt-accent-color); background: var(--gnt-surface-2); }
.gnt-clipboard-import__unsaved { font-size: 0.9em; padding: 0.4rem 0.6rem; border-left: 3px solid var(--gnt-warning-color); background: var(--gnt-warning-tint); }
/* --- Help assistant ------------------------------------------------------- */

.help-side-tabs {
    display: flex;
    gap: 0.25rem;
}

.help-side-tab {
    border: none;
    background: transparent;
    padding: 0.15rem 0.5rem;
    font-size: 0.9rem;
    font-weight: 600;
    color: var(--gnt-muted-color);
    cursor: pointer;
    border-bottom: 2px solid transparent;
}

.help-side-tab--active {
    color: var(--gnt-text-color);
    border-bottom-color: var(--gnt-primary-color);
}

.help-chat {
    display: flex;
    flex-direction: column;
    height: 100%;
    min-height: 0;
}

.help-chat__log {
    flex: 1 1 auto;
    min-height: 0;
    overflow-y: auto;
    padding: 0.5rem;
}

.help-chat__turn {
    margin-bottom: 0.75rem;
}

.help-chat__bubble {
    border-radius: 0.5rem;
    padding: 0.45rem 0.6rem;
    font-size: 0.92rem;
    line-height: 1.4;
}

.help-chat__turn--user .help-chat__bubble {
    background: var(--gnt-primary-tint);
    color: var(--gnt-text-color);
}

.help-chat__turn--assistant .help-chat__bubble {
    background: var(--gnt-surface-2);
    color: #374151;
}

/* Streamed text arrives mid-sentence and mid-list; preserving newlines keeps it
   readable without pretending a partial document is valid markdown. */
.help-chat__text {
    white-space: pre-wrap;
    word-break: break-word;
}

.help-chat__thinking {
    color: var(--gnt-muted-color);
    font-style: italic;
}

.help-chat__error {
    color: var(--gnt-danger-strong);
}

.help-chat__sources {
    margin-top: 0.35rem;
    display: flex;
    flex-wrap: wrap;
    gap: 0.25rem;
    align-items: baseline;
}

.help-chat__sources-label {
    font-size: 0.78rem;
    color: var(--gnt-muted-color);
    width: 100%;
}

.help-chat__source {
    border: 1px solid #d1d5db;
    border-radius: 999px;
    background: var(--gnt-surface-color);
    padding: 0.1rem 0.5rem;
    font-size: 0.78rem;
    color: var(--gnt-primary-color);
    cursor: pointer;
    max-width: 100%;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.help-chat__source:hover {
    background: var(--gnt-primary-tint);
}

/* Generated citations name an entity or a screen rather than a page, so they are labels: no link
   colour, no pointer, no hover — nothing that invites a click that cannot go anywhere. */
.help-chat__source--generated {
    color: var(--gnt-text-tertiary);
    cursor: default;
    background: var(--gnt-surface-2);
}

.help-chat__source--generated:hover {
    background: var(--gnt-surface-2);
}

.help-chat__composer {
    flex: 0 0 auto;
    border-top: 1px solid var(--gnt-border-light);
    padding: 0.5rem;
    background: var(--gnt-surface-color);
}

.help-chat__input {
    width: 100%;
    resize: vertical;
    font-size: 0.9rem;
}

.help-chat__composer-actions {
    display: flex;
    justify-content: flex-end;
    gap: 0.35rem;
    margin-top: 0.35rem;
}
/* Diagnostics: development aid, shown only where the server grants it. */

.help-chat__diag-toggle {
    display: inline-flex;
    align-items: center;
    gap: 0.25rem;
    margin-right: auto;
    font-size: 0.78rem;
    color: var(--gnt-muted-color);
    cursor: pointer;
}

.help-chat__diag {
    margin-top: 0.35rem;
    border: 1px solid var(--gnt-border-light);
    border-radius: 0.4rem;
    background: #fcfcfd;
}

.help-chat__diag-summary {
    cursor: pointer;
    padding: 0.3rem 0.5rem;
    font-size: 0.78rem;
    font-weight: 600;
    color: var(--gnt-text-tertiary);
}

.help-chat__diag-meta {
    font-weight: 400;
    color: #9ca3af;
}

.help-chat__diag-section {
    padding: 0.35rem 0.5rem 0.15rem;
    font-size: 0.72rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.03em;
    color: #9ca3af;
}

/* The prompt is long and full of markdown; it has to keep its own formatting and scroll
   inside the pane rather than stretching the splitter. */
.help-chat__diag-pre {
    margin: 0 0.5rem 0.5rem;
    padding: 0.4rem;
    max-height: 14rem;
    overflow: auto;
    background: var(--gnt-surface-color);
    border: 1px solid #eef0f3;
    border-radius: 0.3rem;
    font-family: ui-monospace, Consolas, monospace;
    font-size: 0.72rem;
    line-height: 1.35;
    white-space: pre-wrap;
    word-break: break-word;
}

.help-chat__diag-table {
    width: calc(100% - 1rem);
    margin: 0 0.5rem 0.4rem;
    border-collapse: collapse;
    font-size: 0.72rem;
}

.help-chat__diag-table td {
    padding: 0.1rem 0.25rem;
    border-bottom: 1px solid #f3f4f6;
    vertical-align: top;
}

.help-chat__diag-score {
    width: 2.5rem;
    text-align: right;
    color: var(--gnt-muted-color);
    font-variant-numeric: tabular-nums;
}

.help-chat__diag-used {
    color: var(--gnt-text-color);
}

/* Considered but not sent — the near-misses are usually why an answer is wrong. */
.help-chat__diag-dropped {
    color: #b0b6bf;
}

/* ==== Pages/05TenantPortal/ThemeManagerPanel.razor.css (mirror) ====
   SabrePM.styles.css is hand-maintained and is the file the app actually loads, so every
   .razor.css rule must be mirrored here unscoped. Keep in sync with ThemeManagerPanel.razor.css. */
.gnt-theme-manager {
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
    min-height: 0;
}

.gnt-theme-manager__toolbar {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    flex-wrap: wrap;
    padding-bottom: 0.5rem;
    border-bottom: 1px solid var(--gnt-border-light);
}

.gnt-theme-manager__toolbar-gap {
    flex: 1 1 auto;
}

.gnt-theme-manager__preset,
.gnt-theme-manager__mode {
    display: flex;
    align-items: center;
    gap: 0.4rem;
    font-size: 0.85rem;
    color: var(--gnt-muted-color);
}

.gnt-theme-manager__preset .e-input-group) {
    min-width: 12rem;
}

.gnt-theme-manager__notice {
    padding: 0.5rem 0.75rem;
    border-left: 3px solid var(--gnt-warning-color);
    background: var(--gnt-warning-tint);
    color: var(--gnt-text-color);
    font-size: 0.85rem;
}

.gnt-theme-manager__issues {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 0.25rem;
}

.gnt-theme-manager__issues li {
    padding: 0.4rem 0.6rem;
    font-size: 0.85rem;
    border-left: 3px solid var(--gnt-border-color);
    background: var(--gnt-surface-2);
}

.gnt-theme-manager__issues li.is-error {
    border-left-color: var(--gnt-danger-color);
    background: var(--gnt-danger-tint);
    color: var(--gnt-danger-text);
}

.gnt-theme-manager__issues li.is-warning {
    border-left-color: var(--gnt-warning-color);
    background: var(--gnt-warning-tint);
}

.gnt-theme-manager__issues strong {
    margin-right: 0.4rem;
}

/* ---- body: fields beside a sticky preview ---- */

.gnt-theme-manager__body {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 22rem);
    gap: 1rem;
    align-items: start;
    min-height: 0;
}

@media (max-width: 1100px) {
    .gnt-theme-manager__body {
        grid-template-columns: minmax(0, 1fr);
    }
}

.gnt-theme-manager__fields {
    display: flex;
    flex-direction: column;
    gap: 1rem;
    overflow-y: auto;
    max-height: 60vh;
    padding-right: 0.5rem;
}

.gnt-theme-manager__group h4 {
    margin: 0 0 0.4rem 0;
    font-size: 0.8rem;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: var(--gnt-muted-color);
}

.gnt-theme-manager__field {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 18rem);
    grid-template-areas: "label control" "origin origin";
    gap: 0.25rem 0.75rem;
    align-items: center;
    padding: 0.35rem 0;
    border-bottom: 1px solid var(--gnt-border-light);
}

.gnt-theme-manager__field > label {
    grid-area: label;
    display: flex;
    flex-direction: column;
    gap: 0.1rem;
    min-width: 0;
}

.gnt-theme-manager__label {
    font-size: 0.875rem;
    color: var(--gnt-text-color);
}

.gnt-theme-manager__help {
    font-size: 0.75rem;
    color: var(--gnt-muted-color);
}

.gnt-theme-manager__control {
    grid-area: control;
    display: flex;
    align-items: center;
    gap: 0.35rem;
    min-width: 0;
}

.gnt-theme-manager__origin {
    grid-area: origin;
    font-size: 0.7rem;
    color: var(--gnt-text-faint);
}

.gnt-theme-manager__colour {
    width: 2.2rem;
    height: 1.8rem;
    padding: 0;
    border: 1px solid var(--gnt-border-color);
    border-radius: var(--gnt-radius);
    background: none;
    cursor: pointer;
    flex: 0 0 auto;
}

.gnt-theme-manager__hex,
.gnt-theme-manager__text {
    flex: 1 1 auto;
    min-width: 0;
    font-size: 0.8rem;
    padding: 0.25rem 0.4rem;
    border: 1px solid var(--gnt-border-color);
    border-radius: var(--gnt-radius);
    background: var(--gnt-surface-color);
    color: var(--gnt-text-color);
}

.gnt-theme-manager__hex {
    font-family: var(--gnt-mono-font);
    max-width: 7rem;
}

.gnt-theme-manager__reset {
    flex: 0 0 auto;
    font-size: 0.7rem;
    padding: 0.2rem 0.4rem;
    border: 1px solid var(--gnt-border-color);
    border-radius: var(--gnt-radius);
    background: var(--gnt-surface-2);
    color: var(--gnt-muted-color);
    cursor: pointer;
}

.gnt-theme-manager__reset:disabled {
    opacity: 0.4;
    cursor: default;
}

.gnt-theme-manager__pending {
    font-size: 0.75rem;
    color: var(--gnt-text-faint);
    font-style: italic;
}

/* ---- preview ----
   The preview element receives its own copy of the theme variables from gnt-theme.js, so every
   rule below reads tokens and none of them may hard-code a colour. */

.gnt-theme-manager__preview {
    position: sticky;
    top: 0;
}

.gnt-theme-manager__preview h4 {
    margin: 0 0 0.4rem 0;
    font-size: 0.8rem;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: var(--gnt-muted-color);
}

.gnt-theme-preview {
    border: 1px solid var(--gnt-border-color);
    border-radius: var(--gnt-radius);
    overflow: hidden;
    font-size: 0.8rem;
}

.gnt-theme-preview__chrome {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 0.5rem 0.75rem;
    background: var(--sabre-chrome-bg);
    color: var(--sabre-chrome-fg);
}

.gnt-theme-preview__title {
    font-weight: 600;
}

.gnt-theme-preview__chrome-muted {
    color: var(--sabre-chrome-fg-muted);
    font-size: 0.75rem;
}

.gnt-theme-preview__surface {
    padding: 0.75rem;
    background: var(--gnt-surface-color);
    color: var(--gnt-text-color);
}

.gnt-theme-preview__buttons {
    display: flex;
    align-items: center;
    gap: 0.4rem;
    flex-wrap: wrap;
    margin-bottom: 0.6rem;
}

.gnt-theme-preview__btn {
    padding: 0.25rem 0.7rem;
    border-radius: var(--gnt-radius);
    border: 1px solid var(--gnt-border-color);
    background: var(--gnt-surface-2);
    color: var(--gnt-text-color);
    font-size: 0.75rem;
    cursor: default;
}

.gnt-theme-preview__btn.is-primary {
    background: var(--gnt-primary-color);
    border-color: var(--gnt-primary-color);
    color: var(--gnt-text-inverse);
}

.gnt-theme-preview__chip {
    padding: 0.1rem 0.5rem;
    border-radius: 999px;
    font-size: 0.7rem;
    color: var(--gnt-text-inverse);
}

.gnt-theme-preview__chip.is-open { background: var(--gnt-status-open); }
.gnt-theme-preview__chip.is-complete { background: var(--gnt-status-complete); }
.gnt-theme-preview__chip.is-cancelled { background: var(--gnt-status-cancelled); }

.gnt-theme-preview__grid {
    width: 100%;
    border-collapse: collapse;
    font-size: 0.75rem;
}

.gnt-theme-preview__grid th {
    text-align: left;
    padding: 0.3rem 0.4rem;
    background: var(--gnt-surface-2);
    color: var(--gnt-text-secondary);
    border-bottom: 1px solid var(--gnt-border-color);
}

.gnt-theme-preview__grid td {
    padding: 0.3rem 0.4rem;
    border-bottom: 1px solid var(--gnt-border-light);
}

.gnt-theme-preview__grid tr:nth-child(even) td {
    background: var(--gnt-surface-2);
}

.gnt-theme-preview__grid tr.is-selected td {
    background: var(--gnt-selected-bg);
    color: var(--gnt-selected-fg);
}

.gnt-theme-preview__muted {
    margin: 0.5rem 0 0 0;
    color: var(--gnt-muted-color);
    font-size: 0.75rem;
}

.gnt-theme-preview__danger {
    margin: 0.2rem 0 0 0;
    color: var(--gnt-danger-text);
    font-size: 0.75rem;
}

/* ==== ThemeManagerPanel.razor.css branding slots (mirror) ==== */

/* ---- branding image slots (Phase 2) ---- */

.gnt-theme-manager__asset {
    display: flex;
    align-items: center;
    gap: 0.4rem;
    flex-wrap: wrap;
    min-width: 0;
}

.gnt-theme-manager__asset-preview {
    width: 3rem;
    height: 1.8rem;
    object-fit: contain;
    border: 1px solid var(--gnt-border-light);
    border-radius: var(--gnt-radius);
    background: var(--gnt-surface-2);
    flex: 0 0 auto;
}

.gnt-theme-manager__asset-meta {
    font-size: 0.7rem;
    color: var(--gnt-muted-color);
    min-width: 0;
}

.gnt-theme-manager__asset-meta em {
    color: var(--gnt-text-faint);
    font-style: italic;
}

.gnt-theme-manager__asset input[type="file"] {
    font-size: 0.7rem;
    max-width: 11rem;
}

/* ---- Risk assessment panel (Sabre.App.Web/Components/Risks/RiskAssessmentPanel.razor.css) ---- */
.gnt-risk-assessment {
    display: flex;
    flex-direction: column;
    gap: .75rem;
    padding: .75rem;
}

.gnt-risk-assessment__stages {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
    gap: .5rem;
}

.gnt-risk-assessment__stage {
    display: flex;
    flex-direction: column;
    gap: .15rem;
    align-items: flex-start;
    padding: .5rem .75rem;
    border: 1px solid var(--gnt-border-color);
    border-radius: 4px;
    background: var(--gnt-surface-color);
    color: var(--gnt-text-color);
    cursor: pointer;
    text-align: left;
}

.gnt-risk-assessment__stage--active {
    outline: 2px solid var(--gnt-primary-color);
    outline-offset: -2px;
}

.gnt-risk-assessment__stage-name {
    font-size: .75rem;
    text-transform: uppercase;
    letter-spacing: .04em;
    opacity: .75;
}

.gnt-risk-assessment__stage-score {
    font-size: .75rem;
    opacity: .75;
}

.gnt-risk-assessment__hint {
    margin: 0;
    font-size: .8125rem;
    opacity: .8;
}

.gnt-risk-assessment__grid {
    display: grid;
    gap: 2px;
    overflow-x: auto;
}

.gnt-risk-assessment__corner,
.gnt-risk-assessment__head {
    display: flex;
    align-items: center;
    justify-content: center;
    padding: .35rem;
    font-size: .75rem;
    font-weight: 700;
    background: var(--gnt-surface-2);
    color: var(--gnt-text-color);
    text-align: center;
}

.gnt-risk-assessment__head--row {
    justify-content: flex-start;
}

.gnt-risk-assessment__cell {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    min-height: 46px;
    border: 1px solid var(--gnt-border-color);
    border-radius: 2px;
    cursor: pointer;
    color: var(--gnt-text-color);
    font-size: .75rem;
}

.gnt-risk-assessment__cell:disabled {
    cursor: default;
    opacity: .55;
}

.gnt-risk-assessment__cell--current {
    outline: 3px solid var(--gnt-primary-color);
    outline-offset: -3px;
}

.gnt-risk-assessment__basis {
    display: flex;
    flex-direction: column;
    gap: .25rem;
    font-size: .8125rem;
}

.gnt-risk-assessment__basis textarea {
    width: 100%;
    border: 1px solid var(--gnt-border-color);
    border-radius: 4px;
    padding: .35rem;
    background: var(--gnt-surface-color);
    color: var(--gnt-text-color);
}

.gnt-risk-assessment__criteria {
    display: flex;
    flex-wrap: wrap;
    gap: .75rem;
    padding: .5rem .75rem;
    border-radius: 4px;
    background: var(--gnt-surface-2);
    font-size: .8125rem;
}

.gnt-risk-assessment__criteria-flag {
    font-weight: 700;
}

.gnt-risk-assessment__finding,
.gnt-risk-assessment__error {
    padding: .4rem .6rem;
    border-radius: 4px;
    font-size: .8125rem;
    background: var(--gnt-warning-tint);
    color: var(--gnt-text-color);
}

.gnt-risk-assessment__error {
    background: var(--gnt-danger-tint);
}
