/* Consistent index/create/update surfaces for every model. */
.model-page {
    max-width: 1440px;
    margin: 0 auto;
}

.model-page-hero {
    padding-block: 1.2rem;
}

.model-page-hero .record-avatar {
    width: 52px;
    height: 52px;
    flex-basis: 52px;
    font-size: 1.45rem;
}

.model-form-page > form,
.model-form-page > .model-form-shell,
.model-form-page > div[class$="-form"] {
    width: 100%;
}

.model-form-page .model-form-shell > :is(div[class$="-form"], .container-fluid),
.model-form-page .model-form-shell > .container-fluid > div[class$="-form"] {
    background: transparent !important;
    border: 0 !important;
    border-radius: 0 !important;
    padding: 0 !important;
}

.model-form-page :is(.card, .form-section, .section-card) {
    border: 1px solid var(--record-border, var(--ses-border));
    border-radius: 15px;
    box-shadow: 0 4px 16px rgba(27, 50, 64, .055) !important;
    overflow: hidden;
}

.model-form-page :is(.card-header, .form-section-header, .section-card > .card-header) {
    background: linear-gradient(90deg, var(--record-primary-soft, var(--ses-orange-50)), #fff 72%) !important;
    border-bottom: 1px solid var(--record-border, var(--ses-border)) !important;
    color: var(--record-primary-strong, var(--ses-orange-800)) !important;
    font-weight: 700;
    padding: .9rem 1.1rem;
}

.model-form-page :is(.card-body, .form-section-body) {
    background: #fff;
    padding: 1.1rem;
}

.model-form-page :is(.form-label, label.control-label, .form-group > label) {
    color: var(--record-label, var(--ses-muted));
    font-size: .84rem;
    font-weight: 600;
    margin-bottom: .38rem;
}

.model-form-page :is(.form-control, .form-select, .select2-selection) {
    border-color: var(--record-border, var(--ses-border));
    border-radius: 9px;
    min-height: 42px;
}

.model-form-page textarea.form-control {
    min-height: 96px;
}

.model-form-page :is(.form-control, .form-select):focus {
    border-color: var(--record-primary-mid, var(--ses-orange-500));
    box-shadow: 0 0 0 .2rem rgba(var(--bs-primary-rgb), .13);
}

.model-form-page .help-block,
.model-form-page .invalid-feedback {
    font-size: .78rem;
}

.model-form-page .form-group:has(> .btn),
.model-form-page .form-actions {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-end;
    gap: .5rem;
    margin-top: 1rem;
}

.model-form-page .btn {
    border-radius: 9px;
    font-weight: 500;
}

.model-index-page .model-index-content,
.model-index-page :is(.grid-view, .kv-grid-container) {
    background: #fff;
    border: 1px solid var(--record-border, var(--ses-border));
    border-radius: 15px;
    box-shadow: 0 4px 16px rgba(27, 50, 64, .055);
    overflow: hidden;
}

.model-index-page div[class*="-search"] {
    background: #fff;
    border: 1px solid var(--record-border, var(--ses-border));
    border-radius: 14px;
    box-shadow: 0 4px 14px rgba(27, 50, 64, .045);
    margin-bottom: 1rem;
    padding: 1rem;
}

.model-index-page div[class*="-search"] :is(.card, .well) {
    border: 0;
    box-shadow: none !important;
    margin: 0;
}

.model-index-page :is(.grid-view, .kv-grid-container) {
    overflow-x: auto;
}

.model-index-page .grid-view > :is(.summary, .pagination),
.model-index-page .kv-grid-container + .summary {
    padding-inline: 1rem;
}

.model-index-page .summary {
    color: var(--record-label, var(--ses-muted));
    font-size: .82rem;
    padding-top: .85rem;
}

.model-index-page table {
    margin-bottom: 0;
}

.model-index-page table thead th {
    background: var(--record-primary-soft, var(--ses-orange-50)) !important;
    border-color: var(--record-border, var(--ses-border)) !important;
    color: var(--record-primary-strong, var(--ses-orange-800));
    font-size: .82rem;
    font-weight: 700;
    padding: .78rem .7rem;
    vertical-align: middle;
    white-space: nowrap;
}

.model-index-page table tbody td {
    border-color: var(--record-border, var(--ses-border)) !important;
    color: var(--record-text, var(--ses-ink));
    padding: .7rem;
    vertical-align: middle;
}

.model-index-page table tbody tr:hover td {
    background: var(--record-muted-bg, var(--ses-orange-50));
}

.model-index-page :is(.filters, .index-filter, .search-panel, form[role="search"]) {
    background: #fff;
}

.model-index-page :is(.form-control, .form-select) {
    border-color: var(--record-border, var(--ses-border));
    border-radius: 8px;
}

.model-index-page div[class*="-search"] .btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: .35rem;
    min-height: 36px;
    padding: .42rem .8rem !important;
    border-radius: 8px;
    font-size: .875rem;
    line-height: 1.2;
    white-space: nowrap;
}

.model-index-page div[class*="-search"] .btn i {
    position: static;
    width: auto;
    height: auto;
    margin: 0;
    padding: 0;
    transform: none;
    border: 0;
    border-radius: 0;
    background: transparent;
    color: inherit;
    box-shadow: none;
    font-size: .9rem;
    line-height: 1;
}

.model-index-page .pagination {
    flex-wrap: wrap;
    gap: .25rem;
    margin: 1rem;
}

.model-index-page .pagination :is(a, span) {
    border-radius: 8px !important;
}

.model-index-page .btn {
    border-radius: 9px;
}

@media (max-width: 575.98px) {
    .model-page-hero .record-avatar {
        width: 44px;
        height: 44px;
        flex-basis: 44px;
    }

    .model-form-page :is(.card-body, .form-section-body) {
        padding: .85rem;
    }

    .model-index-page .model-index-content,
    .model-index-page :is(.grid-view, .kv-grid-container) {
        border-radius: 12px;
    }
}
