.gpm-grid-page {
    --gpm-grid-ink: #102b42;
    --gpm-grid-muted: #6f8495;
    --gpm-grid-line: #dfe8ef;
    --gpm-grid-soft: #f4f9fc;
    --gpm-grid-blue: #0878ad;
    --gpm-grid-blue-deep: #07516f;
    --gpm-grid-green: #1d7d4d;
    --gpm-grid-orange: #a86613;
    --gpm-grid-shadow: 0 14px 42px rgba(16, 43, 66, .075);
    color: var(--gpm-grid-ink);
    background:
        linear-gradient(180deg, #f5fbff 0, #f8fbfd 34rem, #ffffff 72rem);
}

.gpm-grid-hero {
    padding: 1.65rem 0 1.15rem;
}

.gpm-grid-breadcrumb {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: .45rem;
    margin-bottom: 1rem;
    color: #8295a4;
    font-size: .76rem;
}

.gpm-grid-breadcrumb a {
    color: #557185;
    text-decoration: none;
}

.gpm-grid-breadcrumb a:hover {
    color: var(--gpm-grid-blue);
}

.gpm-grid-hero-panel {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 2rem;
    padding: 1.75rem 1.9rem;
    border: 1px solid rgba(8, 120, 173, .10);
    border-radius: 1.35rem;
    background:
        radial-gradient(circle at 94% 8%, rgba(245, 158, 11, .11), transparent 17rem),
        linear-gradient(135deg, rgba(255,255,255,.98), rgba(238,248,253,.96));
    box-shadow: var(--gpm-grid-shadow);
}

.gpm-grid-badges {
    display: flex;
    flex-wrap: wrap;
    gap: .5rem;
    margin-bottom: .8rem;
}

.gpm-grid-product-badge,
.gpm-grid-resolution-badge {
    display: inline-flex;
    align-items: center;
    min-height: 1.75rem;
    padding: .3rem .65rem;
    border-radius: 999px;
    font-size: .68rem;
    font-weight: 800;
    letter-spacing: .045em;
}

.gpm-grid-product-badge {
    color: var(--gpm-grid-blue);
    background: #e8f5fb;
}

.gpm-grid-resolution-badge {
    color: #526d7f;
    background: #f0f4f7;
}

.gpm-grid-hero-copy h1 {
    margin: 0;
    color: var(--gpm-grid-ink);
    font-size: clamp(1.75rem, 2.8vw, 2.55rem);
    line-height: 1.14;
    letter-spacing: -.035em;
}

.gpm-grid-hero-copy p {
    max-width: 760px;
    margin: .75rem 0 0;
    color: #587083;
    font-size: .93rem;
    line-height: 1.65;
}

.gpm-grid-hero-actions {
    display: flex;
    flex: 0 0 auto;
    flex-wrap: wrap;
    justify-content: flex-end;
    gap: .55rem;
}

.gpm-grid-hero-actions .btn {
    white-space: nowrap;
    font-size: .78rem;
}

.gpm-grid-stats {
    margin-top: 1rem;
}

.gpm-grid-stat-card {
    display: flex;
    flex-direction: column;
    height: 100%;
    min-height: 7.4rem;
    padding: 1rem 1.1rem;
    border: 1px solid var(--gpm-grid-line);
    border-radius: 1rem;
    background: rgba(255,255,255,.98);
    box-shadow: 0 7px 22px rgba(16,43,66,.04);
}

.gpm-grid-stat-card span {
    color: #74899a;
    font-size: .68rem;
    font-weight: 750;
    letter-spacing: .045em;
    text-transform: uppercase;
}

.gpm-grid-stat-card strong {
    margin-top: .35rem;
    color: var(--gpm-grid-ink);
    font-size: clamp(1.35rem, 2.2vw, 1.85rem);
    line-height: 1.15;
    letter-spacing: -.03em;
}

.gpm-grid-stat-card strong.is-ready {
    color: var(--gpm-grid-green);
}

.gpm-grid-stat-card strong.is-empty {
    color: var(--gpm-grid-orange);
}

.gpm-grid-stat-card small {
    margin-top: auto;
    padding-top: .5rem;
    color: #91a0ad;
    font-size: .68rem;
}

.gpm-grid-content {
    padding: .45rem 0 3rem;
}

.gpm-grid-filter-card,
.gpm-grid-list-card {
    border: 1px solid var(--gpm-grid-line);
    border-radius: 1.25rem;
    background: #fff;
    box-shadow: var(--gpm-grid-shadow);
}

.gpm-grid-filter-card {
    margin-bottom: 1rem;
    padding: 1.25rem 1.35rem 1.3rem;
}

.gpm-grid-filter-head,
.gpm-grid-list-head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1.25rem;
}

.gpm-grid-filter-head {
    margin-bottom: 1.05rem;
}

.gpm-grid-section-kicker {
    display: block;
    margin-bottom: .2rem;
    color: var(--gpm-grid-blue);
    font-size: .63rem;
    font-weight: 850;
    letter-spacing: .09em;
}

.gpm-grid-filter-head h2,
.gpm-grid-list-head h2 {
    margin: 0;
    color: var(--gpm-grid-ink);
    font-size: 1.08rem;
    font-weight: 760;
    letter-spacing: -.015em;
}

.gpm-grid-filter-head p,
.gpm-grid-list-head p {
    margin: .35rem 0 0;
    color: #7b8f9f;
    font-size: .76rem;
    line-height: 1.55;
}

.gpm-grid-clear-link {
    color: #71889a;
    font-size: .72rem;
    font-weight: 650;
    text-decoration: none;
}

.gpm-grid-clear-link:hover {
    color: var(--gpm-grid-blue);
}

.gpm-grid-label {
    display: block;
    margin-bottom: .35rem;
    color: #456175;
    font-size: .71rem;
    font-weight: 720;
}

.gpm-grid-select,
.gpm-grid-filter-form .form-control {
    min-height: 2.65rem;
    border-color: #d8e3ea;
    border-radius: .78rem;
    color: #233f55;
    font-size: .78rem;
    background-color: #fff;
}

.gpm-grid-select:focus,
.gpm-grid-filter-form .form-control:focus {
    border-color: rgba(8,120,173,.45);
    box-shadow: 0 0 0 .18rem rgba(8,120,173,.08);
}

.gpm-grid-select:disabled {
    color: #9aa9b4;
    background-color: #f6f8fa;
}

.gpm-grid-search-box {
    position: relative;
}

.gpm-grid-search-icon {
    position: absolute;
    top: 50%;
    left: .9rem;
    width: .75rem;
    height: .75rem;
    border: 1.8px solid #8ba0ae;
    border-radius: 50%;
    transform: translateY(-58%);
    pointer-events: none;
}

.gpm-grid-search-icon::after {
    content: '';
    position: absolute;
    right: -.35rem;
    bottom: -.25rem;
    width: .42rem;
    height: 1.6px;
    background: #8ba0ae;
    transform: rotate(45deg);
    transform-origin: left center;
}

.gpm-grid-search-box .form-control {
    padding-left: 2.4rem;
}

.gpm-grid-filter-actions {
    display: flex;
    align-items: flex-end;
    gap: .5rem;
    height: 100%;
    padding-top: 1.4rem;
}

.gpm-grid-filter-actions .btn {
    min-height: 2.65rem;
    flex: 1 1 0;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    white-space: nowrap;
    font-size: .75rem;
}

.gpm-grid-active-filters {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: .45rem;
    margin-top: 1rem;
    padding-top: .9rem;
    border-top: 1px solid #edf2f5;
}

.gpm-grid-active-label {
    margin-right: .1rem;
    color: #8799a7;
    font-size: .68rem;
    font-weight: 750;
}

.gpm-grid-filter-chip {
    display: inline-flex;
    align-items: center;
    gap: .4rem;
    padding: .35rem .58rem;
    border: 1px solid #dce8ee;
    border-radius: 999px;
    background: #f7fbfd;
    color: #36566d;
    font-size: .68rem;
    font-weight: 650;
    text-decoration: none;
}

.gpm-grid-filter-chip:hover {
    border-color: rgba(8,120,173,.32);
    color: var(--gpm-grid-blue);
}

.gpm-grid-filter-chip span {
    color: #95a4af;
    font-size: .9rem;
    line-height: 1;
}

.gpm-grid-list-card {
    overflow: hidden;
}

.gpm-grid-list-head {
    padding: 1.2rem 1.35rem 1rem;
    border-bottom: 1px solid #eaf0f4;
}

.gpm-grid-page-info {
    flex: 0 0 auto;
    padding: .45rem .65rem;
    border-radius: .7rem;
    background: #f1f7fa;
    color: #6c8292;
    font-size: .68rem;
}

.gpm-grid-page-info strong {
    color: #264b63;
}

.gpm-grid-table {
    width: 100% !important;
    min-width: 1080px;
    table-layout: fixed !important;
    vertical-align: middle;
}

.gpm-grid-table col.gpm-col-no { width: 5%; }
.gpm-grid-table col.gpm-col-grid { width: 25%; }
.gpm-grid-table col.gpm-col-centroid { width: 14%; }
.gpm-grid-table col.gpm-col-local { width: 22%; }
.gpm-grid-table col.gpm-col-region { width: 20%; }
.gpm-grid-table col.gpm-col-data { width: 14%; }

.gpm-grid-table thead th {
    padding: .68rem .78rem !important;
    border-top: 0;
    border-bottom: 1px solid #d6e3ea;
    background: #edf7fc;
    color: #456377;
    font-size: .64rem;
    font-weight: 800;
    letter-spacing: .035em;
    line-height: 1.2;
    text-align: left !important;
    text-transform: uppercase;
    vertical-align: middle;
    white-space: normal;
}

.gpm-grid-table thead th:first-child {
    text-align: center !important;
}

.gpm-grid-table tbody td {
    padding: .64rem .78rem !important;
    border-color: #e9f0f4;
    color: #365268;
    font-size: .72rem;
    line-height: 1.32;
    text-align: left !important;
    vertical-align: middle !important;
    overflow-wrap: break-word;
}

.gpm-grid-table tbody td:first-child {
    text-align: center !important;
}

.gpm-grid-table tbody tr {
    height: 4.35rem;
    transition: background-color .16s ease, box-shadow .16s ease;
}

.gpm-grid-table tbody tr:nth-child(even) {
    background: #fbfdfe;
}

.gpm-grid-table tbody tr:hover {
    background: #f3f9fc;
}

.gpm-grid-table tbody tr.is-data-ready {
    box-shadow: inset 3px 0 0 #36a269;
}

.gpm-grid-number {
    color: #7f919e !important;
    font-size: .68rem !important;
    font-variant-numeric: tabular-nums;
}

.gpm-grid-code-link {
    display: inline-block;
    max-width: 100%;
    color: #0876a8;
    font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
    font-size: .72rem;
    font-weight: 780;
    line-height: 1.25;
    text-decoration: none;
    white-space: nowrap;
}

.gpm-grid-code-link:hover {
    color: #055679;
    text-decoration: underline;
}

.gpm-grid-cell-sub {
    margin-top: .22rem;
    color: #8ea0ac;
    font-size: .59rem;
    line-height: 1.25;
    white-space: nowrap;
}

.gpm-grid-coordinate {
    display: flex;
    flex-direction: column;
    gap: .12rem;
    white-space: nowrap;
}

.gpm-grid-coordinate strong {
    color: #284a61;
    font-size: .72rem;
    font-weight: 740;
    font-variant-numeric: tabular-nums;
}

.gpm-grid-coordinate span {
    color: #96a5af;
    font-size: .56rem;
    font-weight: 700;
    letter-spacing: .045em;
}

.gpm-grid-admin-cell {
    display: flex;
    flex-direction: column;
    gap: .14rem;
    min-width: 0;
}

.gpm-grid-admin-cell strong {
    color: #2c4b60;
    font-size: .7rem;
    font-weight: 700;
    line-height: 1.28;
}

.gpm-grid-admin-cell span {
    color: #7d8f9d;
    font-size: .63rem;
    line-height: 1.28;
}

.gpm-grid-status-cell {
    white-space: nowrap;
}

.gpm-grid-data-badge {
    display: inline-flex;
    align-items: center;
    min-height: 1.45rem;
    padding: .22rem .48rem;
    border-radius: 999px;
    font-size: .58rem;
    font-weight: 800;
    white-space: nowrap;
}

.gpm-grid-data-badge.is-ready {
    color: #197044;
    background: #e8f7ef;
    border: 1px solid #c8ead7;
}

.gpm-grid-data-badge.is-empty {
    color: #8a5a13;
    background: #fff5e7;
    border: 1px solid #f0ddbd;
}

.gpm-grid-record-count {
    margin-top: .22rem;
    color: #8f9faa;
    font-size: .57rem;
    font-variant-numeric: tabular-nums;
}

.gpm-grid-empty {
    padding: 3rem 1rem !important;
    text-align: center;
}

.gpm-grid-empty strong {
    display: block;
    margin-bottom: .3rem;
    color: #38566c;
    font-size: .85rem;
}

.gpm-grid-empty span {
    color: #899aa6;
    font-size: .72rem;
}

.gpm-grid-pagination {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    padding: 1rem 1.35rem 1.15rem;
    border-top: 1px solid #edf2f5;
}

.gpm-grid-pagination-info {
    color: #8194a2;
    font-size: .69rem;
}

.gpm-grid-pagination .pagination {
    flex-wrap: wrap;
    gap: .25rem;
}

.gpm-grid-pagination .page-link {
    min-width: 2rem;
    min-height: 2rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: .35rem .6rem;
    border: 1px solid #dce7ed;
    border-radius: .62rem !important;
    color: #49687d;
    background: #fff;
    font-size: .68rem;
    box-shadow: none;
}

.gpm-grid-pagination .page-item.active .page-link {
    border-color: var(--gpm-grid-blue);
    background: var(--gpm-grid-blue);
    color: #fff;
}

.gpm-grid-pagination .page-item.disabled .page-link {
    color: #a7b4bc;
    background: #f7f9fa;
}

.gpm-grid-note {
    margin-top: 1rem;
    padding: 1rem 1.15rem;
    border: 1px solid #dce8ee;
    border-left: 3px solid var(--gpm-grid-blue);
    border-radius: .9rem;
    background: #f8fcfe;
}

.gpm-grid-note strong {
    display: block;
    margin-bottom: .25rem;
    color: #37566d;
    font-size: .72rem;
}

.gpm-grid-note p {
    margin: 0;
    color: #788c9c;
    font-size: .7rem;
    line-height: 1.55;
}

@media (max-width: 991.98px) {
    .gpm-grid-hero-panel {
        align-items: flex-start;
        flex-direction: column;
        gap: 1.1rem;
    }

    .gpm-grid-hero-actions {
        justify-content: flex-start;
    }

    .gpm-grid-filter-actions {
        padding-top: .2rem;
    }

    .gpm-grid-pagination {
        align-items: flex-start;
        flex-direction: column;
    }
}

@media (max-width: 767.98px) {
    .gpm-grid-hero {
        padding-top: 1.1rem;
    }

    .gpm-grid-hero-panel {
        padding: 1.35rem 1.2rem;
        border-radius: 1.1rem;
    }

    .gpm-grid-filter-card {
        padding: 1.05rem;
    }

    .gpm-grid-filter-head,
    .gpm-grid-list-head {
        flex-direction: column;
        gap: .65rem;
    }

    .gpm-grid-filter-actions {
        flex-direction: column;
        align-items: stretch;
    }

    .gpm-grid-filter-actions .btn {
        width: 100%;
    }

    .gpm-grid-list-head {
        padding: 1rem;
    }

    .gpm-grid-pagination {
        padding: .9rem 1rem 1rem;
    }

    .gpm-grid-pagination .page-link {
        min-width: 1.9rem;
        min-height: 1.9rem;
        padding: .3rem .45rem;
    }
}


@media (max-width: 1199.98px) {
    .gpm-grid-table {
        min-width: 1040px;
    }
}

@media (max-width: 767.98px) {
    .gpm-grid-table {
        min-width: 980px;
    }

    .gpm-grid-table tbody td,
    .gpm-grid-table thead th {
        padding-left: .65rem !important;
        padding-right: .65rem !important;
    }
}
