:root {
    --gs2-bg: #f6f7fb;
    --gs2-panel: #ffffff;
    --gs2-text: #18212f;
    --gs2-muted: #627084;
    --gs2-line: #dbe2ea;
    --gs2-blue: #255d9c;
    --gs2-blue-dark: #173b66;
    --gs2-green: #197a4b;
    --gs2-yellow: #b23a2e;
    --gs2-red: #b42318;
    --gs2-gray: #697586;
    --gs2-link: #123b64;
    --gs2-link-hover: #0d2f50;
    --gs2-focus: rgba(37, 93, 156, 0.24);
    --gs2-dashed-border: #c9d3df;
    --gs2-sidebar-bg: #111827;
    --gs2-sidebar-control: #1d293a;
    --gs2-sidebar-control-hover: #253246;
    --gs2-sidebar-active: #253246;
    --gs2-sidebar-active-collapsed: #324258;
    --gs2-sidebar-text: #d8dee8;
    --gs2-sidebar-muted: #b8c2cf;
    --gs2-topbar-bg: #ffffff;
    --gs2-card-soft: #fbfcfe;
    --gs2-card-hover: #f3f8fd;
    --gs2-table-zebra: #f8fbff;
    --gs2-brand-mark-bg: #f2f6fb;
    --gs2-brand-mark-text: #123b64;
    --gs2-help-hover-border: #9db9d7;
    --gs2-badge-ok-bg: #eaf7f0;
    --gs2-badge-ok-border: #a8dcc2;
    --gs2-badge-warn-bg: #fff0ed;
    --gs2-badge-warn-border: #e5aaa2;
    --gs2-badge-neutral-bg: #f2f4f7;
    --gs2-gauge-face: #f5f8fc;
    --gs2-gauge-face-border: #d0dbe7;
    --gs2-gauge-face-shadow: rgba(24, 33, 47, 0.07);
    --gs2-gauge-warn-track: #d76b5f;
    --gs2-gauge-ok-track: var(--gs2-green);
}

.gs2-hitron-scan-table {
    width: 100%;
    table-layout: fixed;
}

.gs2-hitron-scan-scroll {
    max-height: 68vh;
    overflow-y: auto;
    padding-right: 0.2rem;
}

.gs2-hitron-scan-scroll .gs2-hitron-scan-table thead th {
    position: sticky;
    top: 0;
    z-index: 2;
}

.gs2-hitron-scan-table th,
.gs2-hitron-scan-table td {
    white-space: normal;
    overflow-wrap: anywhere;
    word-break: break-word;
    vertical-align: top;
    font-size: 0.78rem;
    line-height: 1.25;
}

.gs2-hitron-scan-table .gs2-sort-button {
    white-space: normal;
    text-align: left;
    line-height: 1.15;
}

.gs2-hitron-scan-table th:nth-child(1),
.gs2-hitron-scan-table td:nth-child(1) {
    width: 10%;
}

.gs2-hitron-scan-table th:nth-child(2),
.gs2-hitron-scan-table td:nth-child(2),
.gs2-hitron-scan-table th:nth-child(5),
.gs2-hitron-scan-table td:nth-child(5) {
    width: 9%;
}

.gs2-hitron-scan-table th:nth-child(3),
.gs2-hitron-scan-table td:nth-child(3),
.gs2-hitron-scan-table th:nth-child(4),
.gs2-hitron-scan-table td:nth-child(4) {
    width: 18%;
}

.gs2-hitron-scan-table th:nth-child(6),
.gs2-hitron-scan-table td:nth-child(6),
.gs2-hitron-scan-table th:nth-child(7),
.gs2-hitron-scan-table td:nth-child(7) {
    width: 10%;
}

.gs2-hitron-scan-table th:nth-child(8),
.gs2-hitron-scan-table td:nth-child(8),
.gs2-hitron-scan-table th:nth-child(9),
.gs2-hitron-scan-table td:nth-child(9) {
    width: 8%;
}

.gs2-hitron-walk-progress {
    display: grid;
    gap: 0.65rem;
    margin-top: 1rem;
    padding: 0.85rem 1rem;
    border: 1px solid var(--gs2-blue);
    border-radius: 8px;
    background: color-mix(in srgb, var(--gs2-blue) 12%, var(--gs2-panel));
}

.gs2-hitron-walk-progress[hidden] {
    display: none;
}

.gs2-hitron-walk-progress strong,
.gs2-hitron-walk-progress span {
    display: block;
}

.gs2-hitron-progress-bar {
    height: 8px;
    overflow: hidden;
    border-radius: 999px;
    background: color-mix(in srgb, var(--gs2-blue) 16%, var(--gs2-panel));
}

.gs2-hitron-progress-bar span {
    display: block;
    width: 42%;
    height: 100%;
    border-radius: inherit;
    background: var(--gs2-blue);
    animation: gs2-hitron-progress 1.05s ease-in-out infinite;
}

.gs2-hitron-available-row {
    background: color-mix(in srgb, var(--gs2-green) 12%, var(--gs2-panel)) !important;
}

.gs2-hitron-modem-sample {
    max-height: 7rem;
    margin: 0.45rem 0 0;
    padding: 0.45rem;
    overflow: auto;
    border: 1px solid var(--gs2-badge-ok-border);
    border-radius: 6px;
    background: color-mix(in srgb, var(--gs2-badge-ok-bg) 72%, var(--gs2-panel));
    color: var(--gs2-text);
    font-size: 0.72rem;
    white-space: pre-wrap;
}

@keyframes gs2-hitron-progress {
    0% {
        transform: translateX(-120%);
    }
    100% {
        transform: translateX(250%);
    }
}

.gs2-theme-coastal,
html.gs2-theme-coastal body {
    --gs2-bg: #eef9fb;
    --gs2-panel: #ffffff;
    --gs2-line: #b8dce3;
    --gs2-blue: #176a89;
    --gs2-blue-dark: #0f465c;
    --gs2-green: #008c9e;
    --gs2-yellow: #c24135;
    --gs2-red: #b42318;
    --gs2-link: #0f465c;
    --gs2-link-hover: #073b4c;
    --gs2-focus: rgba(23, 106, 137, 0.26);
    --gs2-dashed-border: #99cbd5;
    --gs2-sidebar-bg: #073b4c;
    --gs2-sidebar-control: #0b5569;
    --gs2-sidebar-control-hover: #0f6d82;
    --gs2-sidebar-active: #0f6d82;
    --gs2-sidebar-active-collapsed: #13859c;
    --gs2-topbar-bg: #e2f6f9;
    --gs2-card-soft: #f6fcfd;
    --gs2-card-hover: #e9f8fa;
    --gs2-table-zebra: #f4fbfc;
    --gs2-brand-mark-bg: #c9f1f6;
    --gs2-brand-mark-text: #073b4c;
    --gs2-help-hover-border: #6bbac8;
}

.gs2-theme-field,
html.gs2-theme-field body {
    --gs2-bg: #f8f5ea;
    --gs2-panel: #fffdf6;
    --gs2-line: #d9cfaa;
    --gs2-blue: #4b5f2a;
    --gs2-blue-dark: #2f4218;
    --gs2-green: #286e3b;
    --gs2-yellow: #b2473c;
    --gs2-red: #b42318;
    --gs2-link: #2f4218;
    --gs2-link-hover: #1f2f0d;
    --gs2-focus: rgba(75, 95, 42, 0.26);
    --gs2-dashed-border: #c7ba85;
    --gs2-sidebar-bg: #26351f;
    --gs2-sidebar-control: #384a2a;
    --gs2-sidebar-control-hover: #4a6037;
    --gs2-sidebar-active: #4a6037;
    --gs2-sidebar-active-collapsed: #5a7443;
    --gs2-topbar-bg: #fff8df;
    --gs2-card-soft: #fffaf0;
    --gs2-card-hover: #f5edd2;
    --gs2-table-zebra: #fffaf0;
    --gs2-brand-mark-bg: #eadf9c;
    --gs2-brand-mark-text: #26351f;
    --gs2-help-hover-border: #a99554;
}

.is-dark-mode,
html.is-dark-mode body {
    --gs2-bg: #10151d;
    --gs2-panel: #171e29;
    --gs2-text: #e6edf5;
    --gs2-muted: #a8b3c2;
    --gs2-line: #2b3544;
    --gs2-blue: #78aee8;
    --gs2-blue-dark: #b8d7f6;
    --gs2-green: #72d7a4;
    --gs2-yellow: #ff9a8f;
    --gs2-red: #ff8a80;
    --gs2-gray: #b1bac8;
    --gs2-link: #b8d7f6;
    --gs2-link-hover: #d9ebff;
    --gs2-focus: rgba(120, 174, 232, 0.3);
    --gs2-dashed-border: #405064;
    --gs2-sidebar-bg: #0b111a;
    --gs2-sidebar-control: #182333;
    --gs2-sidebar-control-hover: #233149;
    --gs2-sidebar-active: #233149;
    --gs2-sidebar-active-collapsed: #2d3e58;
    --gs2-sidebar-text: #d9e2ee;
    --gs2-sidebar-muted: #9eacbd;
    --gs2-topbar-bg: #151c27;
    --gs2-card-soft: #1b2431;
    --gs2-card-hover: #202d3d;
    --gs2-table-zebra: #1b2431;
    --gs2-brand-mark-bg: #dcecff;
    --gs2-brand-mark-text: #102f4e;
    --gs2-help-hover-border: #54769d;
    --gs2-badge-ok-bg: #143326;
    --gs2-badge-ok-border: #2d7f56;
    --gs2-badge-warn-bg: #3a201d;
    --gs2-badge-warn-border: #9c4d45;
    --gs2-badge-neutral-bg: #222b38;
    --gs2-gauge-face: #0f1621;
    --gs2-gauge-face-border: #3a4a5f;
    --gs2-gauge-face-shadow: rgba(0, 0, 0, 0.32);
    --gs2-gauge-warn-track: #ff8a80;
    --gs2-gauge-ok-track: #82e3b1;
}

.gs2-theme-coastal.is-dark-mode,
html.is-dark-mode .gs2-theme-coastal,
html.gs2-theme-coastal.is-dark-mode body {
    --gs2-bg: #071b23;
    --gs2-panel: #0e2730;
    --gs2-line: #1f5262;
    --gs2-blue: #7fd0ec;
    --gs2-blue-dark: #c2ebf8;
    --gs2-green: #77e4ef;
    --gs2-yellow: #ff9a8f;
    --gs2-red: #ff8a80;
    --gs2-link: #c2ebf8;
    --gs2-link-hover: #e2f8fe;
    --gs2-focus: rgba(127, 208, 236, 0.3);
    --gs2-dashed-border: #2b6373;
    --gs2-sidebar-bg: #041117;
    --gs2-sidebar-control: #0b2a35;
    --gs2-sidebar-control-hover: #103d4c;
    --gs2-sidebar-active: #103d4c;
    --gs2-sidebar-active-collapsed: #15566a;
    --gs2-topbar-bg: #0a2029;
    --gs2-card-soft: #102c36;
    --gs2-card-hover: #153b47;
    --gs2-table-zebra: #102c36;
    --gs2-brand-mark-bg: #bdebf3;
    --gs2-brand-mark-text: #073b4c;
    --gs2-help-hover-border: #3e8fa0;
}

.gs2-theme-field.is-dark-mode,
html.is-dark-mode .gs2-theme-field,
html.gs2-theme-field.is-dark-mode body {
    --gs2-bg: #15180f;
    --gs2-panel: #202516;
    --gs2-line: #46522c;
    --gs2-blue: #bdd88a;
    --gs2-blue-dark: #dfefbf;
    --gs2-green: #8ed49d;
    --gs2-yellow: #f28f84;
    --gs2-red: #ff8a80;
    --gs2-link: #dfefbf;
    --gs2-link-hover: #f0fad8;
    --gs2-focus: rgba(189, 216, 138, 0.3);
    --gs2-dashed-border: #596638;
    --gs2-sidebar-bg: #11170d;
    --gs2-sidebar-control: #28351c;
    --gs2-sidebar-control-hover: #394b27;
    --gs2-sidebar-active: #394b27;
    --gs2-sidebar-active-collapsed: #4a6232;
    --gs2-topbar-bg: #1b2113;
    --gs2-card-soft: #252b19;
    --gs2-card-hover: #303820;
    --gs2-table-zebra: #252b19;
    --gs2-brand-mark-bg: #e7d98e;
    --gs2-brand-mark-text: #26351f;
    --gs2-help-hover-border: #8b9958;
}

* {
    box-sizing: border-box;
}

body {
    margin: 0;
    background: var(--gs2-bg);
    color: var(--gs2-text);
    font-family: Arial, Helvetica, sans-serif;
    font-size: 15px;
}

.gs2-app-shell {
    min-height: 100vh;
    display: grid;
    grid-template-columns: 248px 1fr;
    grid-template-rows: auto 1fr;
    grid-template-areas:
        "topbar topbar"
        "sidebar main";
    transition: grid-template-columns 160ms ease;
}

.gs2-app-shell.is-sidebar-collapsed {
    grid-template-columns: 74px 1fr;
}

html.is-sidebar-collapsed .gs2-app-shell {
    grid-template-columns: 74px 1fr;
}

.gs2-sidebar {
    grid-area: sidebar;
    background: var(--gs2-sidebar-bg);
    color: #fff;
    padding: 18px;
    overflow: hidden;
}

.gs2-sidebar-head,
.gs2-brand,
.gs2-title-group {
    display: flex;
    align-items: center;
    gap: 10px;
}

.gs2-sidebar-head {
    min-height: 38px;
    margin-bottom: 26px;
}

.gs2-brand-text {
    min-width: 0;
}

.gs2-brand-mark {
    width: 38px;
    height: 38px;
    flex: 0 0 38px;
    display: grid;
    place-items: center;
    border-radius: 6px;
    background: var(--gs2-brand-mark-bg);
    color: var(--gs2-brand-mark-text);
    font-weight: 700;
}

.gs2-brand-logo {
    width: 54px;
    height: 54px;
    flex-basis: 54px;
    background: transparent;
}

.gs2-brand-logo img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: contain;
}

.gs2-sidebar-label {
    color: var(--gs2-sidebar-muted);
    font-size: 12px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0;
}

.gs2-sidebar-toggle {
    margin-left: auto;
    width: 28px;
    height: 28px;
    border: 1px solid #344256;
    border-radius: 6px;
    background: var(--gs2-sidebar-control);
    color: #fff;
    cursor: pointer;
    font-size: 20px;
    line-height: 1;
}

.gs2-sidebar-toggle:hover {
    background: var(--gs2-sidebar-control-hover);
}

.gs2-brand-name {
    font-weight: 700;
    color: var(--gs2-text);
}

.gs2-brand-sub {
    color: var(--gs2-muted);
    font-size: 12px;
    margin-top: 2px;
}

.gs2-nav {
    display: grid;
    gap: 6px;
}

.gs2-nav-link {
    display: block;
    color: var(--gs2-sidebar-text);
    text-decoration: none;
    padding: 9px 10px;
    border-radius: 6px;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.gs2-nav-link:hover,
.gs2-nav-link.is-active {
    background: var(--gs2-sidebar-active);
    color: #fff;
}

.gs2-main {
    grid-area: main;
    padding: 24px;
    min-width: 0;
}

.gs2-app-shell.is-sidebar-collapsed .gs2-sidebar,
html.is-sidebar-collapsed .gs2-sidebar {
    padding: 18px 12px;
}

.gs2-app-shell.is-sidebar-collapsed .gs2-sidebar-head,
html.is-sidebar-collapsed .gs2-sidebar-head {
    justify-content: center;
}

.gs2-app-shell.is-sidebar-collapsed .gs2-sidebar-label,
.gs2-app-shell.is-sidebar-collapsed .gs2-nav-link,
html.is-sidebar-collapsed .gs2-sidebar-label,
html.is-sidebar-collapsed .gs2-nav-link {
    width: 0;
    padding-left: 0;
    padding-right: 0;
    color: transparent;
}

.gs2-app-shell.is-sidebar-collapsed .gs2-nav-link,
html.is-sidebar-collapsed .gs2-nav-link {
    position: relative;
    width: 50px;
    min-height: 34px;
    background: var(--gs2-sidebar-control);
}

.gs2-app-shell.is-sidebar-collapsed .gs2-nav-link::before,
html.is-sidebar-collapsed .gs2-nav-link::before {
    content: attr(data-short);
    position: absolute;
    inset: 0;
    display: grid;
    place-items: center;
    color: var(--gs2-sidebar-text);
    font-size: 11px;
    font-weight: 700;
}

.gs2-app-shell.is-sidebar-collapsed .gs2-nav-link:hover,
.gs2-app-shell.is-sidebar-collapsed .gs2-nav-link.is-active,
html.is-sidebar-collapsed .gs2-nav-link:hover,
html.is-sidebar-collapsed .gs2-nav-link.is-active {
    background: var(--gs2-sidebar-active-collapsed);
}

.gs2-app-shell.is-sidebar-collapsed .gs2-sidebar-toggle,
html.is-sidebar-collapsed .gs2-sidebar-toggle {
    margin-left: 0;
}

.gs2-topbar {
    grid-area: topbar;
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 18px;
    padding: 14px 20px;
    background: var(--gs2-topbar-bg);
    border-bottom: 1px solid var(--gs2-line);
}

.gs2-title-group {
    align-items: center;
    min-width: 0;
}

.gs2-page-title {
    padding-left: 14px;
    border-left: 1px solid var(--gs2-line);
}

.gs2-topbar h1 {
    margin: 2px 0 0;
    font-size: 28px;
}

.gs2-eyebrow {
    color: var(--gs2-muted);
    font-size: 12px;
    text-transform: uppercase;
    letter-spacing: 0;
    font-weight: 700;
}

.gs2-env-pill,
.gs2-scope-pill,
.gs2-help-link,
.gs2-badge {
    display: inline-flex;
    align-items: center;
    border-radius: 999px;
    border: 1px solid var(--gs2-line);
    padding: 4px 8px;
    font-size: 12px;
    font-weight: 700;
    background: var(--gs2-panel);
}

.gs2-help-link {
    color: var(--gs2-link);
    text-decoration: none;
}

.gs2-help-link:hover {
    border-color: var(--gs2-help-hover-border);
    background: var(--gs2-card-hover);
}

.gs2-top-actions {
    display: flex;
    align-items: center;
    gap: 8px;
    flex-wrap: wrap;
    justify-content: flex-end;
}

.gs2-scope-pill {
    color: var(--gs2-blue);
}

.gs2-scope-util-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
    gap: 12px;
}

.gs2-scope-util-card {
    display: flex;
    flex-direction: column;
    gap: 8px;
    padding: 14px;
    border: 1px solid var(--gs2-line);
    border-left: 5px solid var(--gs2-blue);
    border-radius: 8px;
    background: var(--gs2-card-soft);
}

.gs2-scope-util-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
}

.gs2-scope-util-card p {
    margin: 0;
    color: var(--gs2-text);
    line-height: 1.45;
}

.gs2-scope-util-card small {
    color: var(--gs2-muted);
    font-weight: 700;
}

.gs2-scope-meter {
    height: 9px;
    border-radius: 999px;
    overflow: hidden;
    background: var(--gs2-surface);
    border: 1px solid var(--gs2-line);
}

.gs2-scope-meter span {
    display: block;
    height: 100%;
    background: linear-gradient(90deg, var(--gs2-green), var(--gs2-blue));
}

.gs2-account-cluster {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    margin-left: 4px;
    padding-left: 10px;
    border-left: 1px solid var(--gs2-line);
}

.gs2-account-name {
    font-weight: 700;
    color: var(--gs2-text);
}

.gs2-account-link {
    color: var(--gs2-link);
    font-size: 13px;
    font-weight: 700;
    text-decoration: none;
}

.gs2-account-link:hover {
    color: var(--gs2-link-hover);
    text-decoration: underline;
}

.gs2-account-login-button {
    display: inline-flex;
    align-items: center;
    min-height: 30px;
    border: 1px solid var(--gs2-blue);
    border-radius: 6px;
    padding: 5px 12px;
    background: var(--gs2-blue);
    color: #fff;
}

.gs2-account-login-button:hover {
    border-color: var(--gs2-blue-dark);
    background: var(--gs2-blue-dark);
    color: #fff;
    text-decoration: none;
}

.is-guest .gs2-top-actions {
    margin-left: auto;
}

.is-guest .gs2-account-cluster {
    margin-left: auto;
    padding-left: 0;
    border-left: 0;
}

.is-guest .gs2-account-name {
    display: none;
}

.is-guest .gs2-account-cluster {
    display: none;
}

.is-guest .gs2-env-pill,
.is-guest .gs2-top-actions > .gs2-badge,
.is-guest .gs2-theme-toggle {
    display: none;
}

.gs2-inline-link {
    color: var(--gs2-link);
    font-weight: 700;
    text-decoration: none;
}

.gs2-inline-link:hover {
    color: var(--gs2-link-hover);
    text-decoration: underline;
}

.gs2-text-warn {
    color: var(--gs2-yellow);
}

.gs2-service-strip,
.gs2-module-subnav,
.gs2-action-strip,
.gs2-table-actions {
    display: flex;
    align-items: center;
    gap: 8px;
    flex-wrap: wrap;
    margin-bottom: 14px;
}

.gs2-module-subnav {
    padding: 0;
    border: 0;
    border-radius: 0;
    background: transparent;
}

.gs2-inline-form {
    display: inline-flex;
    margin: 0;
}

.gs2-chip-link,
.gs2-action-button {
    display: inline-flex;
    align-items: center;
    min-height: 32px;
    border: 1px solid var(--gs2-line);
    border-radius: 6px;
    padding: 6px 10px;
    color: var(--gs2-link);
    background: var(--gs2-card-soft);
    font-size: 13px;
    font-weight: 700;
    text-decoration: none;
}

.gs2-chip-link:hover,
.gs2-action-button:hover,
.gs2-chip-link.is-active,
.gs2-action-button.is-active {
    border-color: var(--gs2-help-hover-border);
    background: var(--gs2-card-hover);
    color: var(--gs2-link-hover);
}

.gs2-action-button.is-disabled,
.gs2-action-button:disabled {
    cursor: not-allowed;
    opacity: 0.56;
    color: var(--gs2-muted);
    background: var(--gs2-badge-neutral-bg);
}

.gs2-chip-link.is-disabled {
    cursor: not-allowed;
    opacity: 0.56;
    color: var(--gs2-muted);
    background: var(--gs2-badge-neutral-bg);
}

.gs2-cnm-row-actions {
    gap: 5px;
    margin-bottom: 0;
}

.gs2-cnm-row-actions .gs2-chip-link {
    min-height: 28px;
    padding: 4px 7px;
    font-size: 12px;
}

.gs2-action-button.is-disabled:hover,
.gs2-action-button:disabled:hover {
    border-color: var(--gs2-line);
    color: var(--gs2-muted);
    background: var(--gs2-badge-neutral-bg);
}

.gs2-danger-action-right {
    margin-left: auto;
}

.gs2-primary-action {
    border-color: var(--gs2-blue);
    background: var(--gs2-blue);
    color: #fff;
    min-height: 38px;
    padding: 8px 16px;
}

.gs2-primary-action:hover {
    border-color: var(--gs2-blue-dark);
    background: var(--gs2-blue-dark);
    color: #fff;
}

.gs2-app-shell.is-guest {
    grid-template-columns: 1fr;
    grid-template-areas:
        "topbar"
        "main";
}

.gs2-app-shell.is-guest .gs2-sidebar {
    display: none;
}

.gs2-app-shell.gs2-route-gsdashboard {
    grid-template-columns: 1fr;
    grid-template-areas:
        "topbar"
        "main";
}

.gs2-app-shell.gs2-route-gsdashboard .gs2-sidebar {
    display: none;
}

html.is-sidebar-collapsed .gs2-app-shell.is-guest,
html.is-sidebar-collapsed .gs2-app-shell.gs2-route-gsdashboard {
    grid-template-columns: 1fr;
    grid-template-areas:
        "topbar"
        "main";
}

html.is-sidebar-collapsed .gs2-app-shell.is-guest .gs2-sidebar,
html.is-sidebar-collapsed .gs2-app-shell.gs2-route-gsdashboard .gs2-sidebar {
    display: none;
}

.gs2-home-hero {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(220px, 320px);
    gap: 18px;
    align-items: stretch;
    margin-bottom: 18px;
}

.gs2-home-copy,
.gs2-home-status,
.gs2-home-module-card {
    border: 1px solid var(--gs2-line);
    border-radius: 8px;
    background: var(--gs2-panel);
}

.gs2-home-copy {
    padding: 26px;
}

.gs2-home-copy h2 {
    margin: 6px 0 8px;
    font-size: 34px;
    letter-spacing: 0;
}

.gs2-home-copy p {
    max-width: 760px;
    margin: 0;
    color: var(--gs2-muted);
    font-size: 16px;
    line-height: 1.55;
}

.gs2-home-actions {
    display: flex;
    gap: 10px;
    flex-wrap: wrap;
    margin-top: 18px;
}

.gs2-home-status {
    display: grid;
    align-content: center;
    gap: 6px;
    padding: 22px;
    background: var(--gs2-card-soft);
}

.gs2-home-status strong {
    color: var(--gs2-blue);
    font-size: 18px;
}

.gs2-home-status span {
    color: var(--gs2-muted);
}

.gs2-home-modules {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 12px;
}

.gs2-home-module-card {
    display: grid;
    grid-template-columns: 54px minmax(0, 1fr);
    gap: 12px;
    padding: 16px;
}

.gs2-home-module-mark {
    width: 58px;
    min-height: 58px;
    display: grid;
    place-items: center;
    border-radius: 8px;
    overflow: hidden;
    background: var(--gs2-brand-mark-bg);
    color: var(--gs2-brand-mark-text);
    font-weight: 800;
}

.gs2-home-module-mark img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.gs2-home-module-mark span {
    display: none;
}

.gs2-home-module-card h3 {
    margin: 0 0 5px;
    font-size: 16px;
}

.gs2-home-module-card p {
    margin: 0;
    color: var(--gs2-muted);
    font-size: 13px;
    line-height: 1.45;
}

.gs2-inline-alert {
    border: 1px solid var(--gs2-line);
    border-radius: 8px;
    margin-top: 12px;
    padding: 10px 12px;
    color: var(--gs2-text);
    background: var(--gs2-card-muted);
    transition: opacity 0.35s ease, transform 0.35s ease;
}

.gs2-inline-alert.ok {
    border-color: var(--gs2-badge-ok-border);
    background: var(--gs2-badge-ok-bg);
    color: var(--gs2-green);
}

.gs2-inline-alert.warn {
    border-color: var(--gs2-badge-warn-border);
    background: var(--gs2-badge-warn-bg);
    color: var(--gs2-red);
}

.gs2-inline-alert.is-dismissing {
    opacity: 0;
    transform: translateY(-4px);
}

.gs2-code-box {
    margin-top: 12px;
    padding: 12px;
    border: 1px solid var(--gs2-line);
    border-radius: 8px;
    background: var(--gs2-card-muted);
    color: var(--gs2-text);
    font-family: ui-monospace, SFMono-Regular, Consolas, "Liberation Mono", monospace;
    font-size: 0.85rem;
    overflow-wrap: anywhere;
}

.gs2-speedtest-context-strip {
    display: grid;
    grid-template-columns: minmax(180px, 1.4fr) repeat(3, minmax(120px, 1fr));
    gap: 8px;
    margin-top: 12px;
}

.gs2-speedtest-context-strip div {
    min-width: 0;
    padding: 8px 10px;
    border: 1px solid var(--gs2-line);
    border-radius: 7px;
    background: var(--gs2-card-soft);
}

.gs2-speedtest-context-strip span {
    display: block;
    margin-bottom: 3px;
    color: var(--gs2-muted);
    font-size: 10px;
    font-weight: 700;
    line-height: 1.15;
    text-transform: uppercase;
}

.gs2-speedtest-context-strip strong {
    display: block;
    color: var(--gs2-text);
    font-size: 13px;
    line-height: 1.2;
    overflow-wrap: anywhere;
}

.gs2-speedtest-gauge-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(280px, 1fr));
    gap: 16px;
    margin-top: 12px;
}

.gs2-speedtest-gauge-card {
    display: grid;
    justify-items: center;
    gap: 8px;
    padding: 16px;
    border: 1px solid var(--gs2-line);
    border-radius: 8px;
    background: var(--gs2-card-soft);
    text-align: center;
}

.gs2-speedtest-gauge-card strong {
    color: var(--gs2-text);
    font-size: 1.28rem;
    line-height: 1.2;
}

.gs2-speedtest-gauge-card .gs2-speedtest-dial {
    width: min(100%, 360px);
    height: 162px;
    margin: 4px 0 6px;
    padding: 6px 10px 3px;
}

.gs2-speedtest-dial.is-empty {
    height: 162px;
    font-size: 13px;
}

.gs2-speedtest-dial .gs2-gauge-track {
    stroke-width: 5;
}

.gs2-speedtest-dial .gs2-gauge-needle {
    stroke-width: 2.4;
}

.gs2-speedtest-dial .gs2-gauge-edge {
    fill: var(--gs2-muted);
    font-size: 5.2px;
    font-weight: 600;
}

.gs2-speedtest-gauge-card .gs2-stat-label {
    font-size: 0.82rem;
}

.gs2-speedtest-gauge-card .gs2-stat-note {
    font-size: 0.82rem;
}

.gs2-speedtest-gauge-card .gs2-gauge {
    height: auto;
}

@media (max-width: 900px) {
    .gs2-speedtest-context-strip {
        grid-template-columns: repeat(2, minmax(150px, 1fr));
    }

    .gs2-speedtest-gauge-grid {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 560px) {
    .gs2-speedtest-context-strip,
    .gs2-speedtest-gauge-grid {
        grid-template-columns: 1fr;
    }
}

.gs2-ai-indicator {
    display: inline-grid;
    place-items: center;
    width: 20px;
    height: 20px;
    border-radius: 5px;
    border: 1px solid currentColor;
    font-size: 14px;
    font-weight: 700;
    line-height: 1;
    text-decoration: none;
}

.gs2-ai-indicator.ok {
    color: var(--gs2-green);
    background: var(--gs2-badge-ok-bg);
}

.gs2-ai-indicator.ok::before {
    content: "✓";
}

.gs2-ai-indicator.warn {
    color: #b3261e;
    background: #fdecea;
}

.gs2-ai-indicator.warn::before {
    content: "!";
}

.gs2-ai-indicator.warn:hover {
    filter: brightness(0.96);
}

.gs2-theme-toggle {
    display: inline-flex;
    align-items: center;
    border-radius: 999px;
    border: 1px solid var(--gs2-line);
    padding: 4px 8px;
    font-size: 12px;
    font-weight: 700;
    color: var(--gs2-blue-dark);
    background: var(--gs2-panel);
    cursor: pointer;
}

.gs2-theme-toggle:hover {
    border-color: var(--gs2-help-hover-border);
    background: var(--gs2-card-hover);
}

.gs2-theme-select-form {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    border: 1px solid var(--gs2-line);
    border-radius: 999px;
    padding: 3px 8px;
    background: var(--gs2-panel);
    color: var(--gs2-blue);
    font-size: 12px;
    font-weight: 700;
}

.gs2-theme-select-form label {
    white-space: nowrap;
}

.gs2-theme-select-form select {
    min-height: 24px;
    border: 1px solid var(--gs2-line);
    border-radius: 999px;
    background: var(--gs2-bg);
    color: var(--gs2-text);
    font: inherit;
    padding: 1px 22px 1px 8px;
}

.gs2-theme-save-status {
    min-width: 0;
    color: var(--gs2-muted);
    font-size: 11px;
}

.gs2-grid {
    display: grid;
    gap: 14px;
}

.gs2-grid-4 {
    grid-template-columns: repeat(4, minmax(0, 1fr));
}

.gs2-grid-3 {
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.gs2-grid-2 {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.gs2-stat,
.gs2-panel,
.gs2-card {
    background: var(--gs2-panel);
    border: 1px solid var(--gs2-line);
    border-radius: 8px;
}

.gs2-stat {
    padding: 16px;
}

.gs2-health-grid {
    display: grid;
    grid-template-columns: repeat(7, minmax(104px, 1fr));
    gap: 10px;
    margin-top: 16px;
}

.gs2-health-grid-traffic {
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.gs2-health-meter {
    min-height: 96px;
    padding: 10px;
    border: 1px solid var(--gs2-line);
    border-radius: 8px;
    background: var(--gs2-panel);
    position: relative;
    overflow: hidden;
}

.gs2-health-meter::before {
    content: "";
    display: block;
    height: 4px;
    left: 0;
    position: absolute;
    right: 0;
    top: 0;
    background: var(--gs2-line);
}

.gs2-health-meter.ok {
    border-color: var(--gs2-badge-ok-border);
}

.gs2-health-meter.ok::before {
    background: var(--gs2-green);
}

.gs2-health-meter.warn {
    border-color: var(--gs2-badge-warn-border);
}

.gs2-health-meter.warn::before {
    background: var(--gs2-red);
}

.gs2-health-meter.neutral {
    border-color: var(--gs2-line);
}

.gs2-health-meter.neutral::before {
    background: var(--gs2-gray);
}

.gs2-health-meter strong {
    display: block;
    margin: 9px 0 8px;
    font-size: 19px;
    line-height: 1.15;
}

.gs2-health-meter.ok strong {
    color: var(--gs2-green);
}

.gs2-health-meter.warn strong {
    color: var(--gs2-red);
}

.gs2-health-meter.neutral strong {
    color: var(--gs2-gray);
}

.gs2-gauge {
    background:
        radial-gradient(circle at 50% 82%, rgba(255, 255, 255, 0.16), transparent 30%),
        var(--gs2-gauge-face);
    border: 1px solid var(--gs2-gauge-face-border);
    border-radius: 8px;
    box-shadow: inset 0 1px 4px var(--gs2-gauge-face-shadow);
    display: block;
    height: 48px;
    margin: 2px 0 4px;
    padding: 3px 5px 1px;
    width: 100%;
}

.gs2-gauge.is-empty {
    align-items: center;
    color: var(--gs2-muted);
    display: flex;
    font-size: 11px;
    height: 48px;
    justify-content: center;
}

.gs2-gauge-track {
    fill: none;
    stroke-linecap: round;
    stroke-width: 8;
}

.gs2-gauge-track.warn {
    stroke: var(--gs2-gauge-warn-track);
}

.gs2-gauge-track.ok {
    stroke: var(--gs2-gauge-ok-track);
}

.gs2-gauge-track.neutral {
    stroke: var(--gs2-gray);
}

.gs2-gauge-needle {
    stroke: var(--gs2-text);
    stroke-linecap: round;
    stroke-width: 2.5;
}

.gs2-gauge-pin {
    fill: var(--gs2-text);
}

.gs2-chart-card {
    margin-top: 14px;
    padding: 14px;
    border: 1px solid var(--gs2-line);
    border-radius: 8px;
    background: var(--gs2-card-soft);
}

.gs2-chart-toolbar {
    align-items: flex-start;
    display: flex;
    gap: 12px;
    justify-content: space-between;
    margin-bottom: 10px;
}

.gs2-chart-toolbar .gs2-chart-legend {
    margin-bottom: 0;
}

.gs2-chart-toolbar .gs2-action-button {
    flex: 0 0 auto;
    margin-top: -2px;
}

.gs2-chart-legend {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin-bottom: 10px;
    color: var(--gs2-muted);
    font-size: 12px;
    font-weight: 700;
}

.gs2-chart-legend .up {
    color: var(--gs2-green);
}

.gs2-chart-legend .down {
    color: var(--gs2-blue);
}

.gs2-rf-legend span {
    color: var(--gs2-muted);
}

.gs2-rf-legend span[class^="rf"] {
    align-items: center;
    display: inline-flex;
    gap: 5px;
}

.gs2-rf-legend span[class^="rf"]::before {
    background: currentColor;
    content: "";
    display: inline-block;
    height: 2px;
    width: 18px;
}

.gs2-rf-legend .rf0,
.gs2-rf-chart .rf0 {
    color: #2dd4bf;
    stroke: #2dd4bf;
}

.gs2-rf-legend .rf1,
.gs2-rf-chart .rf1 {
    color: #60a5fa;
    stroke: #60a5fa;
}

.gs2-rf-legend .rf2,
.gs2-rf-chart .rf2 {
    color: #f97316;
    stroke: #f97316;
}

.gs2-rf-legend .rf3,
.gs2-rf-chart .rf3 {
    color: #c084fc;
    stroke: #c084fc;
}

.gs2-rf-legend .rf4,
.gs2-rf-chart .rf4 {
    color: #facc15;
    stroke: #facc15;
}

.gs2-rf-legend .rf5,
.gs2-rf-chart .rf5 {
    color: #f472b6;
    stroke: #f472b6;
}

.gs2-rf-legend .rf6,
.gs2-rf-chart .rf6 {
    color: #22c55e;
    stroke: #22c55e;
}

.gs2-rf-legend .rf7,
.gs2-rf-chart .rf7 {
    color: #38bdf8;
    stroke: #38bdf8;
}

.gs2-rf-legend .rf8,
.gs2-rf-chart .rf8 {
    color: #fb7185;
    stroke: #fb7185;
}

.gs2-rf-legend .rf9,
.gs2-rf-chart .rf9 {
    color: #a3e635;
    stroke: #a3e635;
}

.gs2-rf-legend .rf10,
.gs2-rf-chart .rf10 {
    color: #818cf8;
    stroke: #818cf8;
}

.gs2-rf-legend .rf11,
.gs2-rf-chart .rf11 {
    color: #f59e0b;
    stroke: #f59e0b;
}

.gs2-rf-legend .rf12,
.gs2-rf-chart .rf12 {
    color: #14b8a6;
    stroke: #14b8a6;
}

.gs2-rf-legend .rf13,
.gs2-rf-chart .rf13 {
    color: #e879f9;
    stroke: #e879f9;
}

.gs2-rf-legend .rf14,
.gs2-rf-chart .rf14 {
    color: #93c5fd;
    stroke: #93c5fd;
}

.gs2-rf-legend .rf15,
.gs2-rf-chart .rf15 {
    color: #fde047;
    stroke: #fde047;
}

.gs2-line-chart {
    display: block;
    width: 100%;
    min-height: 270px;
    border: 1px solid var(--gs2-gauge-face-border);
    border-radius: 8px;
    background: var(--gs2-gauge-face);
}

.gs2-chart-focus-panel .gs2-chart-card {
    margin-top: 0;
}

.gs2-chart-card-expanded {
    padding: 18px;
}

.gs2-line-chart-expanded {
    height: min(74vh, 760px);
    min-height: 560px;
}

.gs2-line-chart .grid-line {
    stroke: var(--gs2-line);
    stroke-width: 0.7;
}

.gs2-line-chart .threshold-line {
    stroke: var(--gs2-red);
    stroke-dasharray: 5 4;
    stroke-width: 1.1;
}

.gs2-line-chart .axis {
    stroke: var(--gs2-muted);
    stroke-width: 0.9;
}

.gs2-line-chart .tick {
    stroke: var(--gs2-muted);
    stroke-width: 0.8;
}

.gs2-line-chart polyline {
    fill: none;
    stroke-linecap: round;
    stroke-linejoin: round;
    stroke-width: 1.7;
}

.gs2-line-chart polyline.up {
    stroke: var(--gs2-green);
}

.gs2-line-chart polyline.down {
    stroke: var(--gs2-blue);
}

.gs2-line-chart circle.up {
    fill: var(--gs2-green);
}

.gs2-line-chart circle.down {
    fill: var(--gs2-blue);
}

.gs2-rf-chart circle {
    stroke: none;
}

.gs2-rf-chart polyline {
    fill: none;
    opacity: 0.94;
    stroke-linecap: round;
    stroke-linejoin: round;
    stroke-width: 1.1;
}

.gs2-rf-chart circle {
    fill: currentColor;
}

.gs2-line-chart circle:hover {
    stroke: var(--gs2-text);
    stroke-width: 1.5;
}

.gs2-line-chart text {
    fill: var(--gs2-muted);
    font-size: 10px;
}

.gs2-line-chart text.time {
    font-size: 9px;
}

.gs2-line-chart text.y-label {
    font-size: 9px;
}

.gs2-line-chart text.up-label {
    fill: var(--gs2-green);
}

.gs2-line-chart text.down-label {
    fill: var(--gs2-blue);
}

.gs2-rf-chart text {
    font-size: 8px;
}

.gs2-rf-chart text.time,
.gs2-rf-chart text.y-label {
    font-size: 7.5px;
}

.gs2-rf-chart .grid-line {
    stroke-width: 0.45;
}

.gs2-rf-chart .threshold-line {
    stroke-width: 0.8;
}

.gs2-rf-chart .axis,
.gs2-rf-chart .tick {
    stroke-width: 0.55;
}

.gs2-meter {
    height: 6px;
    overflow: hidden;
    border-radius: 999px;
    background: var(--gs2-badge-neutral-bg);
    border: 1px solid var(--gs2-line);
    margin: 8px 0 6px;
}

.gs2-meter span {
    display: block;
    height: 100%;
    background: var(--gs2-green);
}

.gs2-health-meter.warn .gs2-meter span {
    background: var(--gs2-red);
}

.gs2-health-meter.neutral .gs2-meter span {
    background: var(--gs2-gray);
}

.gs2-stat-label,
.gs2-stat-note {
    display: block;
    color: var(--gs2-muted);
    font-size: 12px;
}

.gs2-health-meter .gs2-stat-label,
.gs2-health-meter .gs2-stat-note {
    font-size: 11px;
    line-height: 1.25;
}

.gs2-health-meter .gs2-traffic-sample-status {
    margin-top: 3px;
    color: var(--gs2-muted);
    white-space: nowrap;
}

.gs2-health-meter .gs2-traffic-sample-status.ok {
    color: var(--gs2-green);
}

.gs2-health-meter .gs2-traffic-sample-status.warn {
    color: var(--gs2-red);
}

.gs2-cnm-summary-row {
    display: block;
    color: var(--gs2-text);
    font-size: 15px;
    font-weight: 700;
    line-height: 1.3;
}

.gs2-cnm-summary-row + .gs2-cnm-summary-row {
    margin-top: 2px;
}

.gs2-modem-status-link {
    display: flex;
    flex-direction: column;
    align-items: center;
    width: fit-content;
    margin: 0 auto;
    color: #ffffff;
    font-size: 13px;
    line-height: 1.1;
    text-align: center;
    text-decoration: none;
}

.gs2-modem-status-link:visited,
.gs2-modem-status-link:hover,
.gs2-modem-status-link:focus {
    color: #ffffff;
    text-decoration: none;
}

.gs2-modem-status-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(44px, max-content));
    gap: 1px 8px;
    justify-content: center;
    width: fit-content;
    margin: 5px auto 0;
    text-align: center;
}

.gs2-modem-status-grid span {
    font-size: 13px;
    font-weight: 400;
    line-height: 1.1;
}

.gs2-modem-status-grid strong {
    font-size: 13px;
    line-height: 1.1;
}

.gs2-modem-count-link {
    font-size: 13px;
    font-weight: 700;
    line-height: 1.1;
    text-decoration: none;
}

.gs2-modem-count-link:hover {
    text-decoration: underline;
}

.gs2-modem-online {
    color: #008000;
}

.gs2-modem-flapping {
    color: #ff0000;
}

.gs2-rf-health-text {
    font-weight: 400;
    text-decoration: none;
}

a.gs2-rf-health-text:hover,
a.gs2-rf-health-text:focus {
    text-decoration: underline;
}

.gs2-rf-health-text.ok,
a.gs2-rf-health-text.ok:visited,
a.gs2-rf-health-text.ok:hover,
a.gs2-rf-health-text.ok:focus {
    color: #008000;
}

.gs2-rf-health-text.warn,
a.gs2-rf-health-text.warn:visited,
a.gs2-rf-health-text.warn:hover,
a.gs2-rf-health-text.warn:focus {
    color: #f97316;
}

.gs2-rf-health-text.bad,
a.gs2-rf-health-text.bad:visited,
a.gs2-rf-health-text.bad:hover,
a.gs2-rf-health-text.bad:focus {
    color: #ff0000;
}

.gs2-health-issue-text.ok,
a.gs2-health-issue-text.ok:visited,
a.gs2-health-issue-text.ok:hover,
a.gs2-health-issue-text.ok:focus {
    color: #008000;
}

.gs2-health-issue-text.warn,
a.gs2-health-issue-text.warn:visited,
a.gs2-health-issue-text.warn:hover,
a.gs2-health-issue-text.warn:focus {
    color: #f97316;
}

.gs2-health-issue-text.bad,
a.gs2-health-issue-text.bad:visited,
a.gs2-health-issue-text.bad:hover,
a.gs2-health-issue-text.bad:focus {
    color: #ff0000;
}

.gs2-health-issue-line {
    display: block;
    line-height: 1.25;
}

.gs2-health-issue-line + .gs2-health-issue-line {
    margin-top: 3px;
}

.gs2-path-health-button {
    display: inline-grid;
    place-items: center;
    min-width: 28px;
    min-height: 22px;
    padding: 2px 7px;
    border: 1px solid var(--gs2-line);
    border-radius: 4px;
    background: var(--gs2-card-soft);
    color: var(--gs2-link);
    font-size: 12px;
    font-weight: 700;
    line-height: 1;
    text-decoration: none;
}

.gs2-path-health-button:hover {
    border-color: var(--gs2-help-hover-border);
    background: var(--gs2-card-hover);
    color: var(--gs2-link-hover);
    text-decoration: none;
}

.gs2-path-health-state {
    display: block;
    margin-top: 4px;
    text-align: center;
}

.gs2-status-badge-link {
    display: inline-flex;
    justify-content: center;
    text-decoration: none;
}

.gs2-status-badge-link:hover {
    text-decoration: none;
}

.gs2-ph-hero {
    display: flex;
    justify-content: space-between;
    gap: 18px;
    align-items: flex-start;
    border: 1px solid var(--gs2-line);
    border-radius: 8px;
    background: var(--gs2-card-soft);
    padding: 16px;
    margin-bottom: 16px;
}

.gs2-ph-hero strong {
    display: block;
    margin-top: 4px;
    font-size: 28px;
    line-height: 1.1;
}

.gs2-ph-hero p {
    margin: 8px 0 0;
    color: var(--gs2-muted);
}

.gs2-ph-hero.ok {
    border-color: #8fd6a3;
}

.gs2-ph-hero.ok strong {
    color: #008000;
}

.gs2-ph-hero.warn {
    border-color: #f7c977;
}

.gs2-ph-hero.warn strong {
    color: #f97316;
}

.gs2-ph-hero.bad {
    border-color: #f4a3a3;
}

.gs2-ph-hero.bad strong {
    color: #ff0000;
}

.gs2-ph-hero.neutral strong {
    color: var(--gs2-gray);
}

.gs2-ph-hero-meta {
    min-width: 170px;
    text-align: right;
}

.gs2-ph-hero-meta span {
    display: block;
    color: var(--gs2-muted);
    font-size: 12px;
    text-transform: uppercase;
}

.gs2-ph-hero-meta strong {
    font-size: 16px;
    color: var(--gs2-text);
}

.gs2-ph-timeline {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(14px, 1fr));
    gap: 3px;
}

.gs2-ph-dot {
    min-height: 20px;
    border-radius: 4px;
    background: var(--gs2-gray);
}

.gs2-ph-dot.ok {
    background: #008000;
}

.gs2-ph-dot.warn {
    background: #f97316;
}

.gs2-ph-dot.bad {
    background: #ff0000;
}

.gs2-ph-dot.neutral {
    background: var(--gs2-gray);
}

.gs2-ph-trace {
    max-height: 260px;
    overflow: auto;
    margin: 0;
    padding: 10px;
    border: 1px solid var(--gs2-line);
    border-radius: 6px;
    background: var(--gs2-card-soft);
    color: var(--gs2-text);
    white-space: pre-wrap;
    overflow-wrap: anywhere;
    font-family: Consolas, Monaco, monospace;
    font-size: 12px;
    line-height: 1.35;
}

.gs2-two-column {
    display: grid;
    grid-template-columns: minmax(360px, 0.95fr) minmax(420px, 1.05fr);
    gap: 16px;
    align-items: start;
}

.gs2-subpanel {
    margin-top: 0;
    background: var(--gs2-panel);
}

.gs2-qa-context {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
    gap: 10px;
    margin-bottom: 14px;
}

.gs2-qa-context div {
    padding: 10px 12px;
    border: 1px solid var(--gs2-line);
    border-radius: 6px;
    background: var(--gs2-card-soft);
}

.gs2-qa-context span {
    display: block;
    margin-bottom: 4px;
    color: var(--gs2-muted);
    font-size: 11px;
    font-weight: 700;
    text-transform: uppercase;
}

.gs2-qa-context strong {
    display: block;
    color: var(--gs2-text);
    font-size: 14px;
    font-weight: 700;
    overflow-wrap: anywhere;
}

.gs2-qa-modem-summary {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(170px, 1fr));
    gap: 10px;
    margin: 0 0 14px;
}

.gs2-qa-modem-summary div {
    padding: 10px 12px;
    border: 1px solid var(--gs2-line);
    border-radius: 6px;
    background: var(--gs2-card-soft);
}

.gs2-qa-modem-summary span {
    display: block;
    margin-bottom: 4px;
    color: var(--gs2-muted);
    font-size: 11px;
    font-weight: 700;
    text-transform: uppercase;
}

.gs2-qa-modem-summary strong {
    color: var(--gs2-text);
    font-size: 14px;
    font-weight: 700;
    overflow-wrap: anywhere;
}

.gs2-qa-mini-strip {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    margin: 0 0 14px;
    padding: 8px;
    border: 1px solid var(--gs2-line);
    border-radius: 6px;
    background: var(--gs2-card-soft);
}

.gs2-qa-mini-strip div {
    min-width: 130px;
    flex: 1 1 130px;
    padding: 6px 8px;
    border-right: 1px solid var(--gs2-line);
}

.gs2-qa-mini-strip div:last-child {
    border-right: 0;
}

.gs2-qa-mini-strip span {
    display: block;
    margin-bottom: 2px;
    color: var(--gs2-muted);
    font-size: 10px;
    font-weight: 700;
    text-transform: uppercase;
}

.gs2-qa-mini-strip strong {
    display: block;
    color: var(--gs2-text);
    font-size: 13px;
    font-weight: 700;
    line-height: 1.2;
    overflow-wrap: anywhere;
}

.gs2-qa-result-table th,
.gs2-qa-result-table td {
    vertical-align: middle;
}

.gs2-flap-layout .gs2-panel-head {
    align-items: flex-start;
}

.gs2-flap-layout .gs2-panel-head h3 {
    margin: 0;
    font-size: 17px;
}

.gs2-flap-layout .gs2-panel-head p {
    margin: 4px 0 0;
    color: var(--gs2-muted);
    font-size: 13px;
}

.gs2-flap-layout .gs2-table {
    font-size: 13px;
}

.gs2-flap-layout .gs2-table th,
.gs2-flap-layout .gs2-table td {
    padding: 8px;
}

.gs2-flap-observation-summary,
.gs2-flap-customer-card {
    margin-top: 16px;
    padding-top: 14px;
    border-top: 1px solid var(--gs2-line);
}

.gs2-flap-observation-summary h3,
.gs2-flap-customer-card h3 {
    margin: 0 0 8px;
    font-size: 15px;
}

.gs2-flap-chart {
    display: grid;
    grid-template-columns: repeat(24, minmax(16px, 1fr));
    gap: 6px;
    align-items: end;
    min-height: 280px;
    padding: 16px 12px 10px;
    border: 1px solid var(--gs2-line);
    border-radius: 8px;
    background:
        linear-gradient(to top, color-mix(in srgb, var(--gs2-line) 42%, transparent) 1px, transparent 1px) 0 0 / 100% 25%,
        var(--gs2-card-soft);
}

.gs2-flap-chart-wide {
    min-height: 320px;
    grid-template-columns: repeat(24, minmax(22px, 1fr));
}

.gs2-flap-chart-wide .gs2-flap-bar-wrap {
    min-height: 284px;
}

.gs2-flap-bar-wrap {
    display: grid;
    grid-template-rows: 18px 1fr auto;
    align-items: end;
    min-height: 244px;
    text-align: center;
}

.gs2-flap-bar-value {
    align-self: start;
    color: var(--gs2-text);
    font-size: 11px;
    font-weight: 700;
}

.gs2-flap-bar {
    display: block;
    width: 100%;
    min-height: 4px;
    border-radius: 5px 5px 2px 2px;
    background: linear-gradient(180deg, #38bdf8 0%, #2563eb 100%);
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.35);
}

.gs2-flap-bar-stacked {
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
    overflow: hidden;
    background: transparent;
    border: 1px solid color-mix(in srgb, var(--gs2-line) 70%, transparent);
}

.gs2-flap-bar-good,
.gs2-flap-bar-bad {
    display: block;
    width: 100%;
    min-height: 2px;
}

.gs2-flap-bar-good {
    background: linear-gradient(180deg, #38bdf8 0%, #2563eb 100%);
}

.gs2-flap-bar-bad {
    background: #f97316;
}

.gs2-flap-bar-label {
    margin-top: 6px;
    color: var(--gs2-muted);
    font-size: 10px;
    line-height: 1.1;
    writing-mode: vertical-rl;
    transform: rotate(180deg);
    justify-self: center;
}

@media (max-width: 980px) {
    .gs2-two-column {
        grid-template-columns: 1fr;
    }

    .gs2-flap-chart {
        overflow-x: auto;
        grid-template-columns: repeat(24, minmax(24px, 1fr));
    }
}

.gs2-rf-channel-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 10px;
}

.gs2-rf-channel {
    min-height: 82px;
    padding: 12px;
    border: 1px solid var(--gs2-line);
    border-radius: 8px;
    background: var(--gs2-panel);
    position: relative;
    overflow: hidden;
}

.gs2-rf-channel::before {
    content: "";
    position: absolute;
    top: 0;
    right: 0;
    left: 0;
    height: 4px;
    background: var(--gs2-gray);
}

.gs2-rf-channel.ok {
    border-color: var(--gs2-badge-ok-border);
}

.gs2-rf-channel.ok::before {
    background: var(--gs2-green);
}

.gs2-rf-channel.warn {
    border-color: var(--gs2-badge-warn-border);
}

.gs2-rf-channel.warn::before {
    background: #f97316;
}

.gs2-rf-channel strong {
    display: block;
    margin: 8px 0 4px;
    font-size: 22px;
}

.gs2-rf-snapshot-panel {
    margin-bottom: 16px;
}

.gs2-rf-snapshot-meta {
    display: flex;
    flex-wrap: wrap;
    gap: 8px 16px;
    margin-bottom: 12px;
    color: var(--gs2-muted);
    font-size: 12px;
    font-weight: 700;
}

.gs2-rf-snapshot-grid {
    display: grid;
    grid-auto-columns: minmax(150px, 1fr);
    grid-auto-flow: column;
    gap: 8px;
    overflow-x: auto;
    padding-bottom: 2px;
}

.gs2-rf-snapshot-tile {
    min-height: 104px;
    padding: 9px;
}

.gs2-rf-snapshot-tile strong {
    font-size: 17px;
    margin: 5px 0 3px;
}

.gs2-compact-dial-wrap {
    display: grid;
    gap: 2px;
    margin: 4px 0 2px;
}

.gs2-gauge.gs2-gauge-compact {
    height: 42px;
    margin: 2px 0;
    min-height: 42px;
    padding: 1px 4px 0;
}

.gs2-gauge-compact .gs2-gauge-track {
    stroke-width: 7;
}

.gs2-gauge-compact .gs2-gauge-track.warn {
    stroke: #f97316;
}

.gs2-gauge-compact .gs2-gauge-needle {
    stroke-width: 3.4;
}

.gs2-gauge-compact .gs2-gauge-pin {
    r: 2.4;
}

.gs2-gauge-compact .gs2-gauge-edge {
    fill: var(--gs2-muted);
    font-size: 8.5px;
    font-weight: 700;
}

.gs2-compact-dial-value {
    display: block;
    margin: 0;
    color: var(--gs2-text);
    font-size: 13px;
    line-height: 1;
    text-align: center;
}

.gs2-fuel-gauge {
    display: grid;
    gap: 3px;
    margin: 3px 0;
}

.gs2-fuel-gauge.is-empty {
    color: var(--gs2-muted);
    font-size: 11px;
}

.gs2-fuel-gauge-track {
    height: 5px;
    overflow: hidden;
    border: 1px solid var(--gs2-line);
    border-radius: 999px;
    background: var(--gs2-badge-neutral-bg);
}

.gs2-fuel-gauge-track span {
    display: block;
    height: 100%;
    border-radius: inherit;
    background: var(--gs2-green);
}

.gs2-fuel-gauge.warn .gs2-fuel-gauge-track span {
    background: var(--gs2-red);
}

.gs2-fuel-gauge-edges {
    display: grid;
    grid-template-columns: 1fr auto 1fr;
    gap: 4px;
    align-items: center;
    color: var(--gs2-muted);
    font-size: 8px;
    line-height: 1.1;
}

.gs2-fuel-gauge-edges strong {
    margin: 0;
    color: var(--gs2-text);
    font-size: 8px;
    line-height: 1.1;
    white-space: nowrap;
}

.gs2-fuel-gauge-edges span:last-child {
    text-align: right;
}

.gs2-rf-analysis-details {
    margin-top: 4px;
}

.gs2-rf-analysis-details > summary {
    margin-bottom: 14px;
}

.gs2-modem-summary-strip {
    margin-bottom: 14px;
}

.gs2-modem-evidence-panel {
    margin-bottom: 14px;
}

.gs2-modem-header-actions {
    align-items: center;
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    justify-content: flex-end;
}

.gs2-modem-header-actions .gs2-action-button {
    min-height: 34px;
}

.gs2-action-button.warn {
    border-color: var(--gs2-badge-warn-border);
    background: var(--gs2-badge-warn-bg);
    color: var(--gs2-red);
}

.gs2-action-button.ok {
    border-color: var(--gs2-badge-ok-border);
    background: var(--gs2-badge-ok-bg);
    color: var(--gs2-green);
}

.gs2-field-error {
    border-color: var(--gs2-red) !important;
    background: color-mix(in srgb, var(--gs2-badge-warn-bg) 70%, var(--gs2-panel)) !important;
}

.gs2-form-alert {
    margin: 0 0 12px;
    padding: 10px 12px;
    border: 1px solid var(--gs2-badge-warn-border);
    border-left: 4px solid var(--gs2-red);
    background: var(--gs2-badge-warn-bg);
    color: var(--gs2-red);
    border-radius: 6px;
    font-weight: 700;
}

.gs2-debug-checkbox {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    min-height: 32px;
    padding: 6px 10px;
    border: 1px solid color-mix(in srgb, #ff7ac8 68%, var(--gs2-line));
    border-left: 5px solid #ff7ac8;
    border-radius: 6px;
    background: color-mix(in srgb, #ff7ac8 14%, var(--gs2-panel));
    color: color-mix(in srgb, #ff7ac8 78%, var(--gs2-text));
    font-weight: 700;
}

.gs2-debug-checkbox input {
    accent-color: #ff7ac8;
}

.gs2-badge.staff {
    border-color: color-mix(in srgb, #ff7ac8 68%, var(--gs2-line));
    background: color-mix(in srgb, #ff7ac8 16%, var(--gs2-panel));
    color: color-mix(in srgb, #ff7ac8 82%, var(--gs2-text));
}

.gs2-modem-evidence-grid {
    margin-top: 10px;
}

.gs2-key-grid > div {
    display: grid;
    gap: 5px;
    align-content: start;
}

.gs2-key-grid > div small {
    display: block;
    color: var(--gs2-muted);
    font-size: 11px;
    line-height: 1.25;
}

.gs2-modem-summary-strip .gs2-stat {
    padding: 10px 12px;
}

.gs2-modem-summary-strip .gs2-stat strong {
    margin: 4px 0;
    font-size: 15px;
    line-height: 1.25;
    overflow-wrap: anywhere;
}

.gs2-modem-summary-strip .gs2-stat-label,
.gs2-modem-summary-strip .gs2-stat-note {
    font-size: 11px;
    line-height: 1.25;
}

.gs2-rf-fallback-row td,
.gs2-rf-fallback-row th {
    background: color-mix(in srgb, var(--gs2-badge-warn-bg) 72%, transparent);
}

.gs2-modem-workbench {
    display: grid;
    grid-template-columns: minmax(420px, 0.85fr) minmax(520px, 1.15fr);
    gap: 18px;
    align-items: start;
}

.gs2-modem-left-column,
.gs2-modem-chart-column,
.gs2-modem-legacy-stack,
.gs2-modem-chart-list {
    display: grid;
    gap: 14px;
}

.gs2-details-panel {
    padding: 0;
}

.gs2-details-panel > summary,
.gs2-chart-collapsible > summary {
    align-items: center;
    cursor: pointer;
    display: flex;
    gap: 10px;
    justify-content: space-between;
    list-style: none;
    padding: 14px 16px;
}

.gs2-detail-summary-actions {
    align-items: center;
    display: inline-flex;
    gap: 8px;
}

.gs2-toggle-marker {
    color: var(--gs2-link);
    font-size: 11px;
    font-weight: 700;
    text-transform: uppercase;
    white-space: nowrap;
}

.gs2-toggle-marker::before {
    content: "Show";
}

details[open] > summary .gs2-toggle-marker::before {
    content: "Hide";
}

.gs2-details-panel > summary::-webkit-details-marker,
.gs2-chart-collapsible > summary::-webkit-details-marker {
    display: none;
}

.gs2-details-panel[open] > summary,
.gs2-chart-collapsible[open] > summary {
    border-bottom: 1px solid var(--gs2-line);
}

.gs2-modem-legacy-stack,
.gs2-details-panel > .gs2-grid {
    padding: 14px;
}

.gs2-modem-legacy-stack h3 {
    margin: 4px 0 -4px;
    color: var(--gs2-text);
    font-size: 14px;
    line-height: 1.2;
}

.gs2-chart-collapsible {
    border: 1px solid var(--gs2-line);
    border-radius: 8px;
    background: var(--gs2-card-soft);
}

.gs2-modem-ds-chart-card {
    margin: 0;
    border: 0;
    border-radius: 0 0 8px 8px;
}

.gs2-nested-card {
    padding: 12px;
}

.gs2-mini-card-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
    gap: 10px;
    margin-top: 10px;
}

.gs2-workflow-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(190px, 1fr));
    gap: 10px;
    margin-top: 10px;
}

.gs2-code-block {
    max-height: 420px;
    overflow: auto;
    padding: 14px;
    border: 1px solid var(--gs2-line);
    border-radius: 8px;
    background: var(--gs2-card-soft);
    color: var(--gs2-text);
    font-size: 0.82rem;
    line-height: 1.45;
    white-space: pre-wrap;
}

.gs2-mini-card {
    min-width: 0;
    padding: 10px;
    border: 1px solid var(--gs2-line);
    border-radius: 8px;
    background: var(--gs2-card-soft);
}

.gs2-mini-card span,
.gs2-mini-card small {
    display: block;
    color: var(--gs2-muted);
    font-size: 11px;
    line-height: 1.25;
}

.gs2-mini-card strong {
    display: block;
    margin: 4px 0;
    color: var(--gs2-text);
    font-size: 14px;
    line-height: 1.2;
    overflow-wrap: anywhere;
}

.gs2-modem-detail-strip {
    grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
}

.gs2-modem-detail-strip .gs2-mini-card {
    min-height: 70px;
}

.gs2-vendor-async .gs2-mini-card-grid {
    grid-template-columns: repeat(auto-fit, minmax(132px, 1fr));
    gap: 6px;
    margin-top: 8px;
}

.gs2-vendor-async .gs2-mini-card {
    min-height: 0;
    padding: 7px 8px;
    border-radius: 6px;
}

.gs2-vendor-async .gs2-mini-card span {
    font-size: 10px;
    line-height: 1.15;
}

.gs2-vendor-async .gs2-mini-card small {
    color: var(--gs2-text);
    font-size: 13px;
    line-height: 1.2;
    overflow-wrap: anywhere;
}

.gs2-vendor-async .gs2-mini-card strong {
    margin: 2px 0;
    font-size: 14px;
    line-height: 1.15;
}

.gs2-vendor-async .gs2-rf-side-details {
    padding: 8px 10px;
}

.gs2-vendor-async .gs2-rf-side-details + .gs2-rf-side-details {
    margin-top: 8px;
}

.gs2-vendor-async .gs2-table th,
.gs2-vendor-async .gs2-table td {
    padding: 5px 7px;
    font-size: 11px;
}

.gs2-empty.success {
    border-color: var(--gs2-badge-ok-border);
    background: var(--gs2-badge-ok-bg);
}

.gs2-empty.warning {
    border-color: var(--gs2-badge-warn-border);
    background: var(--gs2-badge-warn-bg);
}

.gs2-secret-detail {
    margin-top: 6px;
}

.gs2-secret-detail summary {
    cursor: pointer;
    color: var(--gs2-link);
    font-size: 11px;
    font-weight: 700;
}

.gs2-secret-detail code {
    display: block;
    margin-top: 5px;
    padding: 6px;
    border: 1px solid var(--gs2-line);
    border-radius: 6px;
    background: var(--gs2-bg);
    color: var(--gs2-text);
    font-size: 12px;
    overflow-wrap: anywhere;
}

.gs2-rf-workbench {
    display: grid;
    grid-template-columns: minmax(560px, 0.95fr) minmax(520px, 1.2fr);
    gap: 24px;
    align-items: start;
}

.gs2-rf-table-column,
.gs2-rf-chart-column {
    min-width: 0;
}

.gs2-rf-bottom-stack {
    display: grid;
    gap: 8px;
}

.gs2-rf-side-card {
    padding: 9px 10px;
    border: 1px solid var(--gs2-line);
    border-radius: 8px;
    background: var(--gs2-card-soft);
    overflow-x: auto;
}

.gs2-rf-side-card + .gs2-rf-side-card {
    margin-top: 0;
}

.gs2-rf-dropout-card {
    margin-bottom: 0;
}

.gs2-rf-dropout-table {
    font-size: 11px;
    margin-top: 10px;
}

.gs2-rf-side-card h3 {
    margin: 0 0 8px;
    font-size: 13px;
}

.gs2-rf-side-details summary {
    cursor: pointer;
    color: var(--gs2-text);
    font-size: 12px;
    font-weight: 700;
    line-height: 1.2;
}

.gs2-rf-side-details .gs2-table,
.gs2-rf-side-details .gs2-empty {
    margin-top: 8px;
}

.gs2-rf-table {
    font-size: 11px;
    min-width: 720px;
    white-space: nowrap;
}

.gs2-rf-table th,
.gs2-rf-table td {
    padding: 7px 8px;
}

.gs2-rf-cell-stack {
    display: grid;
    gap: 2px;
    line-height: 1.15;
}

.gs2-rf-head-stack {
    display: grid;
    gap: 1px;
    line-height: 1.05;
}

.gs2-rf-head-stack small {
    color: var(--gs2-muted);
    font-size: 9px;
    font-weight: 700;
}

.gs2-rf-cell-stack strong {
    color: var(--gs2-text);
    font-size: 11px;
    font-weight: 700;
}

.gs2-rf-cell-stack small {
    color: var(--gs2-muted);
    font-size: 10px;
}

.gs2-rf-config-table {
    min-width: 0;
}

.gs2-rf-downstream-table {
    min-width: 0;
    table-layout: fixed;
    white-space: normal;
    width: 100%;
}

.gs2-rf-downstream-table th,
.gs2-rf-downstream-table td {
    white-space: normal;
}

.gs2-rf-downstream-table th {
    line-height: 1.15;
}

.gs2-rf-downstream-table th:first-child,
.gs2-rf-downstream-table td:first-child {
    width: 42%;
}

.gs2-rf-chart-stack {
    display: grid;
    gap: 10px;
}

@media (max-width: 1280px) {
    .gs2-rf-workbench,
    .gs2-modem-workbench {
        grid-template-columns: 1fr;
    }

    .gs2-sg-admin-layout {
        grid-template-columns: 1fr;
    }

    .gs2-rf-table {
        min-width: 680px;
    }
}

.gs2-chart-card-compact {
    padding: 10px;
}

.gs2-line-chart-compact {
    min-height: 220px;
}

.gs2-rf-supporting-stats {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 12px;
    margin-top: 12px;
    opacity: 0.82;
}

.gs2-rf-supporting-stats .gs2-stat {
    padding: 12px;
}

.gs2-rf-supporting-stats .gs2-stat strong {
    font-size: 20px;
}

.gs2-sg-admin-layout {
    display: grid;
    grid-template-columns: minmax(320px, 0.85fr) minmax(420px, 1.15fr);
    gap: 16px;
    align-items: start;
}

.gs2-sg-admin-column {
    display: grid;
    gap: 12px;
    min-width: 0;
}

.gs2-sg-admin-card {
    --gs2-sg-card-accent: var(--gs2-blue);
    --gs2-sg-card-tint: color-mix(in srgb, var(--gs2-sg-card-accent) 9%, var(--gs2-panel));
    padding: 14px;
    border-color: color-mix(in srgb, var(--gs2-sg-card-accent) 30%, var(--gs2-line));
    background:
        linear-gradient(90deg, color-mix(in srgb, var(--gs2-sg-card-accent) 15%, transparent), transparent 54%),
        var(--gs2-panel);
    box-shadow: inset 4px 0 0 var(--gs2-sg-card-accent);
}

.gs2-sg-admin-form > .gs2-sg-admin-card {
    --gs2-sg-card-accent: #2563eb;
}

.gs2-sg-admin-column:first-child .gs2-sg-admin-card:nth-of-type(1) {
    --gs2-sg-card-accent: #0f766e;
}

.gs2-sg-admin-column:first-child .gs2-sg-admin-card:nth-of-type(2) {
    --gs2-sg-card-accent: #7c3aed;
}

.gs2-sg-admin-column:first-child .gs2-sg-admin-card:nth-of-type(3) {
    --gs2-sg-card-accent: #2563eb;
}

.gs2-sg-admin-column:first-child .gs2-sg-admin-card:nth-of-type(4) {
    --gs2-sg-card-accent: #b45309;
}

.gs2-sg-admin-column:first-child .gs2-sg-admin-card:nth-of-type(5) {
    --gs2-sg-card-accent: #047857;
}

.gs2-sg-admin-column:last-child .gs2-sg-admin-card:nth-of-type(1) {
    --gs2-sg-card-accent: #be123c;
}

.gs2-sg-admin-column:last-child .gs2-sg-admin-card:nth-of-type(2) {
    --gs2-sg-card-accent: #0891b2;
}

.gs2-sg-admin-card .gs2-panel-head {
    margin-bottom: 10px;
}

.gs2-sg-admin-card h2 {
    color: color-mix(in srgb, var(--gs2-sg-card-accent) 72%, var(--gs2-text));
    font-size: 15px;
}

.gs2-sg-admin-card p {
    font-size: 12px;
}

.gs2-sg-admin-form {
    margin: 0;
}

.gs2-sg-admin-staff-scope {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-bottom: 12px;
    padding: 10px 12px;
}

.gs2-sg-admin-staff-scope label {
    color: var(--gs2-muted);
    font-size: 12px;
    font-weight: 800;
}

.gs2-sg-admin-staff-scope select {
    min-height: 32px;
    max-width: 420px;
    border: 1px solid var(--gs2-line);
    border-radius: 6px;
    background: var(--gs2-panel);
    color: var(--gs2-text);
    padding: 5px 8px;
    font: inherit;
}

.gs2-sg-admin-table {
    border-collapse: separate;
    border-spacing: 0 4px;
    font-size: 12px;
}

.gs2-sg-admin-table th,
.gs2-sg-admin-table td {
    border-bottom: 0;
    padding: 4px 6px;
    vertical-align: middle;
}

.gs2-sg-admin-table th {
    width: 42%;
    color: var(--gs2-muted);
}

.gs2-sg-admin-table label {
    color: var(--gs2-muted);
    font-weight: 700;
}

.gs2-sg-admin-table input,
.gs2-sg-admin-table select {
    width: 100%;
    min-height: 30px;
    padding: 5px 8px;
    border: 1px solid color-mix(in srgb, var(--gs2-sg-card-accent) 18%, var(--gs2-line));
    border-radius: 6px;
    background: color-mix(in srgb, var(--gs2-sg-card-tint) 38%, var(--gs2-panel));
    color: var(--gs2-text);
    font: inherit;
}

.gs2-sg-admin-table input:focus,
.gs2-sg-admin-table select:focus {
    border-color: var(--gs2-sg-card-accent);
    outline: 2px solid color-mix(in srgb, var(--gs2-sg-card-accent) 24%, transparent);
    outline-offset: 1px;
}

.gs2-sg-admin-table input[readonly],
.gs2-sg-admin-table select:disabled {
    opacity: 0.92;
}

.gs2-sg-admin-radio-group {
    display: grid;
    gap: 4px;
    padding: 3px 0;
}

.gs2-sg-admin-radio-group label {
    display: flex;
    align-items: center;
    gap: 7px;
    color: var(--gs2-text);
    font-weight: 600;
}

.gs2-sg-admin-radio-group input {
    width: auto;
    min-height: 0;
}

.gs2-sg-admin-separator td {
    padding: 8px 0;
}

.gs2-sg-admin-separator hr {
    border: 0;
    border-top: 1px solid color-mix(in srgb, var(--gs2-sg-card-accent) 35%, var(--gs2-line));
    margin: 0;
}

.gs2-stat strong {
    display: block;
    margin: 7px 0;
    font-size: 26px;
}

.gs2-panel {
    margin-top: 16px;
    padding: 18px;
}

.gs2-panel-head {
    display: flex;
    justify-content: space-between;
    gap: 16px;
    margin-bottom: 14px;
}

.gs2-panel-actions {
    align-items: center;
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    justify-content: flex-end;
}

.gs2-panel h2,
.gs2-card h3 {
    margin: 0 0 6px;
}

.gs2-panel p,
.gs2-card p {
    margin: 0;
    color: var(--gs2-muted);
}

.gs2-module-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 12px;
}

.gs2-module-card {
    display: block;
    min-height: 108px;
    padding: 14px;
    border: 1px solid var(--gs2-line);
    border-radius: 8px;
    color: var(--gs2-text);
    text-decoration: none;
    background: var(--gs2-card-soft);
}

.gs2-mnt-trigger-rows {
    display: grid;
    gap: 8px;
}

.gs2-mnt-trigger-row {
    align-items: center;
    background: color-mix(in srgb, var(--gs2-card-soft) 76%, transparent);
    border: 1px solid color-mix(in srgb, var(--gs2-line) 78%, transparent);
    border-radius: 8px;
    display: grid;
    gap: 12px;
    grid-template-columns: minmax(260px, 1fr) minmax(190px, auto);
    min-height: 42px;
    padding: 8px 10px;
}

.gs2-mnt-check,
.gs2-mnt-inline-field {
    align-items: center;
    display: flex;
    gap: 8px;
}

.gs2-mnt-check input {
    flex: 0 0 auto;
}

.gs2-mnt-inline-field {
    color: var(--gs2-muted);
    justify-content: flex-end;
    white-space: nowrap;
}

.gs2-mnt-inline-field input {
    max-width: 72px;
    min-height: 32px;
    text-align: center;
}

.gs2-mnt-digest-runtime-options {
    display: grid;
    gap: 12px;
    grid-template-columns: 1fr;
}

.gs2-mnt-digest-runtime-options label {
    max-width: 560px;
}

.gs2-mnt-digest-submit-row {
    margin-top: 18px;
}

.gs2-mnt-events-scroll {
    max-height: min(560px, 62vh);
    overflow: auto;
}

.gs2-mnt-events-table {
    min-width: 920px;
}

.gs2-mnt-events-table thead th {
    background: var(--gs2-card-soft);
    box-shadow: 0 1px 0 var(--gs2-line);
    position: sticky;
    top: 0;
    z-index: 2;
}

.gs2-mnt-events-table td:last-child {
    min-width: 320px;
}

.gs2-mnt-events-summary-grid {
    margin-bottom: 16px;
}

.gs2-log-view {
    background: color-mix(in srgb, var(--gs2-card-soft) 82%, #000);
    border: 1px solid var(--gs2-line);
    border-radius: 8px;
    color: var(--gs2-text);
    font: 13px/1.45 ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
    margin: 0;
    max-height: 360px;
    overflow: auto;
    padding: 12px;
    white-space: pre-wrap;
}

.gs2-api-hosts-scroll {
    max-height: 420px;
    overflow: auto;
}

.gs2-api-hosts-details summary {
    align-items: center;
    cursor: pointer;
    display: grid;
    gap: 12px;
    grid-template-columns: 1fr auto auto;
    list-style: none;
}

.gs2-api-hosts-details summary::-webkit-details-marker {
    display: none;
}

.gs2-api-hosts-details .gs2-details-body {
    margin-top: 16px;
}

.gs2-api-hosts-table {
    min-width: 900px;
}

.gs2-api-hosts-table thead th {
    background: var(--gs2-card-soft);
    box-shadow: 0 1px 0 var(--gs2-line);
    position: sticky;
    top: 0;
    z-index: 2;
}

.gs2-api-log-toolbar {
    align-items: center;
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    margin-bottom: 14px;
}

.gs2-api-log-toggle {
    align-items: center;
    color: var(--gs2-muted);
    display: inline-flex;
    font-size: 13px;
    gap: 8px;
}

.gs2-api-log-toggle input {
    accent-color: var(--gs2-green);
}

.gs2-api-log-interval {
    align-items: center;
    color: var(--gs2-muted);
    display: inline-flex;
    font-size: 13px;
    gap: 8px;
}

.gs2-api-log-interval input {
    background: var(--gs2-panel);
    border: 1px solid var(--gs2-line);
    border-radius: 8px;
    color: var(--gs2-text);
    padding: 7px 9px;
    width: 78px;
}

.gs2-api-log-view {
    max-height: 520px;
    min-height: 260px;
}

.gs2-roadmap-list {
    display: grid;
    gap: 10px;
    margin-top: 14px;
}

.gs2-roadmap-item {
    border: 1px dashed var(--gs2-line);
    border-radius: 8px;
    background: color-mix(in srgb, var(--gs2-card-soft) 72%, var(--gs2-panel));
    min-height: 46px;
    padding: 8px 10px;
}

.gs2-roadmap-item strong,
.gs2-roadmap-item span {
    display: block;
}

.gs2-roadmap-item strong {
    color: var(--gs2-text);
    font-size: 13px;
}

.gs2-roadmap-item span {
    color: var(--gs2-muted);
    font-size: 12px;
    line-height: 1.35;
    margin-top: 4px;
}

@media (max-width: 760px) {
    .gs2-mnt-trigger-row {
        grid-template-columns: 1fr;
    }

    .gs2-mnt-inline-field {
        justify-content: flex-start;
    }
}

.gs2-module-card:hover {
    border-color: var(--gs2-help-hover-border);
    background: var(--gs2-card-hover);
}

.gs2-module-card.is-primary {
    border-color: color-mix(in srgb, var(--gs2-green) 42%, var(--gs2-line));
    background: color-mix(in srgb, var(--gs2-badge-ok-bg) 72%, var(--gs2-panel));
    box-shadow: inset 4px 0 0 var(--gs2-green);
}

.gs2-module-card.is-provisioning {
    border-color: color-mix(in srgb, #f59e0b 54%, var(--gs2-line));
    background: color-mix(in srgb, #f59e0b 16%, var(--gs2-panel));
    box-shadow: inset 4px 0 0 #f59e0b;
}

.gs2-module-card.is-disabled {
    opacity: 0.74;
}

.gs2-module-card span {
    display: block;
    color: var(--gs2-blue-dark);
    font-weight: 700;
    margin-bottom: 8px;
}

.gs2-module-card strong {
    font-size: 13px;
    line-height: 1.35;
}

.gs2-dashboard-module-card {
    min-height: 154px;
}

.gs2-dashboard-module-image {
    display: block;
    width: 72px;
    height: 72px;
    margin-bottom: 10px;
    border-radius: 8px;
    overflow: hidden;
    background: var(--gs2-brand-mark-bg);
}

.gs2-dashboard-module-image img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.gs2-dashboard-module-title {
    margin-bottom: 6px;
}

.gs2-card {
    padding: 16px;
}

.gs2-table {
    width: 100%;
    border-collapse: collapse;
    background: var(--gs2-panel);
}

.gs2-table th,
.gs2-table td {
    text-align: left;
    padding: 10px;
    border-bottom: 1px solid var(--gs2-line);
}

.gs2-table th {
    color: var(--gs2-muted);
    font-size: 12px;
    text-transform: uppercase;
    letter-spacing: 0;
}

.gs2-head-stack {
    display: grid;
    gap: 1px;
    line-height: 1.08;
}

.gs2-head-stack small {
    color: var(--gs2-muted);
    font-size: 10px;
    font-weight: 700;
    text-transform: uppercase;
}

.gs2-table.gs2-cnm-dashboard-table th {
    text-align: center;
}

.gs2-table.gs2-cnm-dashboard-table td {
    text-align: center;
}

.gs2-table.gs2-cnm-dashboard-table td:nth-child(2) {
    text-align: left;
}

.gs2-table.gs2-cnm-dashboard-table th:nth-child(5),
.gs2-table.gs2-cnm-dashboard-table td:nth-child(5) {
    width: 220px;
    max-width: 220px;
}

.gs2-table.gs2-cnm-dashboard-table .gs2-rf-health-text {
    display: inline-block;
    max-width: 212px;
    overflow-wrap: anywhere;
    text-align: left;
}

.gs2-table.gs2-cnm-dashboard-table th:nth-child(7),
.gs2-table.gs2-cnm-dashboard-table td:nth-child(7) {
    width: 112px;
    max-width: 112px;
    white-space: normal;
}

.gs2-rf-health-line {
    display: block;
    line-height: 1.25;
}

.gs2-rf-health-line + .gs2-rf-health-line {
    margin-top: 3px;
}

.gs2-sg-admin-card .gs2-table {
    border-collapse: separate;
    border-spacing: 0 4px;
}

.gs2-sg-admin-card .gs2-table th,
.gs2-sg-admin-card .gs2-table td {
    border-bottom: 0;
}

.gs2-sg-admin-card .gs2-sg-admin-separator hr {
    opacity: 0.35;
}

.gs2-cm-table tbody tr:nth-child(even) {
    background: var(--gs2-table-zebra);
}

.gs2-cm-table tbody tr:hover {
    background: var(--gs2-card-hover);
}

.gs2-cm-table-scroll {
    max-height: 66vh;
    overflow: auto;
    border: 1px solid var(--gs2-line);
    border-radius: 8px;
}

.gs2-cm-table-scroll .gs2-cm-table thead th {
    position: sticky;
    top: 0;
    z-index: 2;
    background: var(--gs2-panel);
}

.gs2-cm-table .gs2-cm-row-index {
    width: 3.5rem;
    text-align: center;
    color: var(--gs2-muted);
    font-weight: 700;
}

.gs2-cm-table .gs2-cm-mac {
    font-size: 0.82rem;
}

.gs2-cm-table .gs2-cm-compact-text {
    font-size: 0.82rem;
}

.gs2-certs-table tbody tr:nth-child(even) {
    background: color-mix(in srgb, var(--gs2-blue) 10%, var(--gs2-panel));
}

.gs2-certs-table tbody tr:nth-child(odd) {
    background: color-mix(in srgb, var(--gs2-green) 7%, var(--gs2-panel));
}

.gs2-certs-table tbody tr:hover {
    background: var(--gs2-card-hover);
}

.gs2-cmcr-hero {
    border-left: 4px solid #3b82f6;
}

.gs2-cmcr-hero .gs2-stat {
    background: color-mix(in srgb, var(--gs2-card-soft) 86%, #3b82f6 14%);
}

.gs2-cmcr-legend {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin: 0 0 12px;
    color: var(--gs2-muted);
    font-size: 0.82rem;
}

.gs2-cmcr-legend span {
    display: inline-flex;
    align-items: center;
    gap: 6px;
}

.gs2-cmcr-legend i {
    display: inline-block;
    width: 10px;
    height: 10px;
    border-radius: 999px;
    border: 1px solid currentColor;
}

.gs2-cmcr-legend i.ok {
    background: #22c55e;
    color: #15803d;
}

.gs2-cmcr-legend i.warn {
    background: #f97316;
    color: #c2410c;
}

.gs2-cmcr-legend i.neutral {
    background: #94a3b8;
    color: #64748b;
}

.gs2-cmcr-table th,
.gs2-cmcr-table td {
    vertical-align: middle;
}

.gs2-cmcr-table tbody tr {
    border-left: 3px solid transparent;
}

.gs2-cmcr-table tbody tr.gs2-cmcr-row-ok {
    border-left-color: #22c55e;
}

.gs2-cmcr-table tbody tr.gs2-cmcr-row-warn {
    border-left-color: #f97316;
}

.gs2-cmcr-table tbody tr.gs2-cmcr-row-neutral {
    border-left-color: #94a3b8;
}

.gs2-cmcr-cert {
    display: inline-flex;
    align-items: center;
    max-width: 260px;
    padding: 4px 8px;
    border-radius: 6px;
    border: 1px solid var(--gs2-line);
    line-height: 1.25;
}

.gs2-cmcr-cert-ok {
    border-color: color-mix(in srgb, #22c55e 42%, var(--gs2-line));
    background: color-mix(in srgb, #22c55e 12%, var(--gs2-card));
    color: #15803d;
}

.gs2-cmcr-cert-warn {
    border-color: color-mix(in srgb, #f97316 48%, var(--gs2-line));
    background: color-mix(in srgb, #f97316 14%, var(--gs2-card));
    color: #c2410c;
}

.gs2-cmcr-cert-neutral {
    border-color: color-mix(in srgb, #94a3b8 42%, var(--gs2-line));
    background: color-mix(in srgb, #94a3b8 12%, var(--gs2-card));
    color: var(--gs2-muted);
}

.gs2-cst-form {
    display: grid;
    gap: 14px;
}

.gs2-cst-form fieldset {
    --gs2-cst-accent: var(--gs2-blue);
    --gs2-cst-bg: var(--gs2-card-soft);
    --gs2-cst-border: #2563eb;
    display: grid;
    grid-template-columns: repeat(3, minmax(160px, 1fr));
    gap: 10px 12px;
    padding: 14px;
    border: 1px solid color-mix(in srgb, var(--gs2-cst-border) 34%, var(--gs2-line));
    border-left: 10px solid var(--gs2-cst-accent);
    border-radius: 8px;
    background: var(--gs2-cst-bg);
    box-shadow: none;
}

.gs2-cst-section-customer {
    --gs2-cst-accent: #2563eb;
    --gs2-cst-bg: color-mix(in srgb, #2563eb 8%, var(--gs2-card-soft));
    --gs2-cst-border: #2563eb;
}

.gs2-cst-form .gs2-cst-section-customer {
    border-color: #2563eb;
    border-left-color: #60a5fa;
    background: linear-gradient(90deg, rgba(37, 99, 235, 0.12), transparent 36%), var(--gs2-card-soft);
    box-shadow: none;
}

.gs2-cst-form .gs2-cst-section-customer legend {
    color: #93c5fd;
}

.gs2-cst-section-location {
    --gs2-cst-accent: #0f766e;
    --gs2-cst-bg: color-mix(in srgb, #0f766e 9%, var(--gs2-card-soft));
    --gs2-cst-border: #0f766e;
}

.gs2-cst-form .gs2-cst-section-location {
    border-color: #0f766e;
    border-left-color: #2dd4bf;
    background: linear-gradient(90deg, rgba(15, 118, 110, 0.14), transparent 36%), var(--gs2-card-soft);
    box-shadow: none;
}

.gs2-cst-form .gs2-cst-section-location legend {
    color: #5eead4;
}

.gs2-cst-section-provisioning {
    --gs2-cst-accent: #7c3aed;
    --gs2-cst-bg: color-mix(in srgb, #7c3aed 8%, var(--gs2-card-soft));
    --gs2-cst-border: #7c3aed;
}

.gs2-cst-form .gs2-cst-section-provisioning {
    border-color: #7c3aed;
    border-left-color: #a78bfa;
    background: linear-gradient(90deg, rgba(124, 58, 237, 0.14), transparent 36%), var(--gs2-card-soft);
    box-shadow: none;
}

.gs2-cst-form .gs2-cst-section-provisioning legend {
    color: #c4b5fd;
}

.gs2-cst-section-voice {
    --gs2-cst-accent: #b45309;
    --gs2-cst-bg: color-mix(in srgb, #b45309 10%, var(--gs2-card-soft));
    --gs2-cst-border: #b45309;
    grid-template-columns: minmax(0, 1fr);
    align-items: stretch;
}

.gs2-cst-form .gs2-cst-section-voice {
    border-color: #b45309;
    border-left-color: #f59e0b;
    background: linear-gradient(90deg, rgba(180, 83, 9, 0.16), transparent 36%), var(--gs2-card-soft);
    box-shadow: none;
}

.gs2-cst-form .gs2-cst-section-voice legend {
    color: #fcd34d;
}

.gs2-cst-voice-line {
    grid-column: 1 / -1;
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 10px 12px;
    width: 100%;
    min-width: 0;
    padding: 10px;
    border: 1px solid color-mix(in srgb, var(--gs2-cst-accent) 24%, var(--gs2-line));
    border-radius: 8px;
    background: color-mix(in srgb, var(--gs2-card) 88%, var(--gs2-cst-accent) 12%);
}

.gs2-cst-voice-line label {
    min-width: 0;
}

.gs2-cst-voice-line input {
    min-width: 0;
}

.gs2-cst-section-notes {
    --gs2-cst-accent: #64748b;
    --gs2-cst-bg: color-mix(in srgb, #64748b 8%, var(--gs2-card-soft));
    --gs2-cst-border: #64748b;
}

.gs2-cst-form .gs2-cst-section-notes {
    border-color: #64748b;
    border-left-color: #94a3b8;
    background: linear-gradient(90deg, rgba(100, 116, 139, 0.16), transparent 36%), var(--gs2-card-soft);
    box-shadow: none;
}

.gs2-cst-form .gs2-cst-section-notes legend {
    color: #cbd5e1;
}

.gs2-cst-form legend {
    padding: 0 6px;
    border-radius: 0;
    background: var(--gs2-cst-bg);
    color: color-mix(in srgb, var(--gs2-cst-accent) 78%, var(--gs2-text));
    font-size: 0.78rem;
    font-weight: 800;
    text-transform: uppercase;
}

.gs2-cst-form label {
    display: grid;
    gap: 4px;
    color: var(--gs2-muted);
    font-size: 0.76rem;
    font-weight: 700;
    text-transform: uppercase;
}

.gs2-cst-form input,
.gs2-cst-form select,
.gs2-cst-form textarea {
    width: 100%;
    border: 1px solid var(--gs2-line);
    border-radius: 6px;
    background: var(--gs2-card);
    color: var(--gs2-text);
    font: inherit;
    padding: 8px 9px;
    text-transform: none;
}

.gs2-cst-form input::placeholder,
.gs2-cst-form textarea::placeholder {
    color: color-mix(in srgb, var(--gs2-muted) 76%, transparent);
    font-style: italic;
}

.gs2-cst-form textarea {
    min-height: 86px;
    resize: vertical;
}

.gs2-cst-form .gs2-checkbox-row {
    align-items: center;
    display: inline-flex;
    flex-direction: row;
    gap: 8px;
    justify-content: flex-start;
    width: fit-content;
}

.gs2-cst-form .gs2-checkbox-row input[type="checkbox"] {
    margin: 0;
    width: auto;
}

.gs2-cst-form .gs2-cst-notes {
    grid-template-columns: 1fr;
}

.gs2-cst-table td {
    vertical-align: middle;
}

.gs2-cst-summary-panel {
    border-left: 6px solid #0f766e;
}

.gs2-cst-summary-grid {
    display: grid;
    gap: 10px;
    grid-template-columns: repeat(4, minmax(0, 1fr));
}

.gs2-cst-summary-item {
    border: 1px solid color-mix(in srgb, #0f766e 24%, var(--gs2-line));
    border-radius: 8px;
    background: color-mix(in srgb, #0f766e 8%, var(--gs2-card-soft));
    padding: 12px;
}

.gs2-cst-summary-item span,
.gs2-cst-summary-item small {
    display: block;
    color: var(--gs2-muted);
    font-size: 0.76rem;
    font-weight: 700;
    text-transform: uppercase;
}

.gs2-cst-summary-item strong {
    display: block;
    margin: 4px 0;
    color: var(--gs2-text);
    font-size: 1.75rem;
    line-height: 1;
}

.gs2-cst-summary-item.is-ok {
    border-color: var(--gs2-badge-ok-border);
    background: var(--gs2-badge-ok-bg);
}

.gs2-cst-summary-item.is-danger {
    border-color: var(--gs2-red);
    background: color-mix(in srgb, var(--gs2-red) 14%, var(--gs2-panel));
}

.gs2-cst-summary-item.is-danger strong {
    color: var(--gs2-red);
}

.gs2-cst-bulk-hero {
    border-left: 6px solid #f59e0b;
    background: linear-gradient(90deg, color-mix(in srgb, #f59e0b 14%, transparent), transparent 42%), var(--gs2-panel);
}

.gs2-cst-bulk-workspace {
    border-left: 6px solid #7c3aed;
}

.gs2-cst-bulk-context {
    margin: 0 0 12px;
}

.gs2-cst-impact-card {
    border-color: color-mix(in srgb, #f59e0b 46%, var(--gs2-line));
    background: color-mix(in srgb, #f59e0b 14%, var(--gs2-card-soft));
}

.gs2-cst-bulk-table-wrap {
    border: 1px solid var(--gs2-line);
    border-radius: 8px;
    background: var(--gs2-panel);
}

.gs2-cst-bulk-table {
    border-collapse: separate;
    border-spacing: 0;
}

.gs2-cst-bulk-table thead th {
    background: color-mix(in srgb, #7c3aed 12%, var(--gs2-panel));
}

.gs2-cst-bulk-table tbody tr:nth-child(even) {
    background: var(--gs2-table-zebra);
}

.gs2-cst-bulk-table tbody tr:hover {
    background: var(--gs2-card-hover);
}

.gs2-cst-bulk-check {
    width: 58px;
    text-align: center;
}

.gs2-cst-bulk-check input[type="checkbox"] {
    width: 18px;
    height: 18px;
    accent-color: #7c3aed;
}

.gs2-cst-bulk-profile-cell select {
    width: min(100%, 420px);
}

.gs2-cst-profile-chip {
    display: inline-flex;
    align-items: center;
    min-height: 28px;
    padding: 4px 9px;
    border: 1px solid color-mix(in srgb, var(--gs2-blue) 34%, var(--gs2-line));
    border-radius: 6px;
    background: color-mix(in srgb, var(--gs2-blue) 9%, var(--gs2-card));
    color: var(--gs2-text);
    font-weight: 700;
}

.gs2-qm-hero {
    border-left: 6px solid #2563eb;
    background: linear-gradient(90deg, color-mix(in srgb, #2563eb 12%, transparent), transparent 44%), var(--gs2-panel);
}

.gs2-qm-active-context {
    padding-bottom: 12px;
}

.gs2-qm-active-context .gs2-panel-head {
    margin-bottom: 8px;
}

.gs2-qm-active-mini-grid {
    grid-template-columns: repeat(auto-fit, minmax(145px, 1fr));
    gap: 8px;
    margin-top: 0;
}

.gs2-qm-active-mini-grid .gs2-mini-card {
    padding: 8px 10px;
}

.gs2-qm-summary-panel {
    border-left: 6px solid #0f766e;
}

.gs2-qm-summary-panel .gs2-panel-head {
    margin-bottom: 8px;
}

.gs2-qm-summary-panel .gs2-cst-summary-grid {
    gap: 8px;
}

.gs2-qm-summary-panel .gs2-cst-summary-item {
    padding: 8px 10px;
}

.gs2-qm-summary-panel .gs2-cst-summary-item strong {
    margin: 2px 0 0;
    font-size: 1.35rem;
}

.gs2-qm-launchpad {
    border-left: 6px solid #7c3aed;
}

.gs2-qm-action-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.gs2-qm-action-grid .gs2-module-card {
    box-shadow: none;
}

.gs2-qm-action-grid .gs2-module-card:nth-child(1) {
    border-left: 6px solid #0f766e;
    border-color: color-mix(in srgb, #0f766e 48%, var(--gs2-line));
    background: color-mix(in srgb, #0f766e 10%, var(--gs2-card-soft));
}

.gs2-qm-action-grid .gs2-module-card:nth-child(2) {
    border-left: 6px solid #d97706;
    border-color: color-mix(in srgb, #d97706 48%, var(--gs2-line));
    background: color-mix(in srgb, #d97706 10%, var(--gs2-card-soft));
}

.gs2-qm-action-grid .gs2-module-card:nth-child(3) {
    border-left: 6px solid #7c3aed;
    border-color: color-mix(in srgb, #7c3aed 48%, var(--gs2-line));
    background: color-mix(in srgb, #7c3aed 10%, var(--gs2-card-soft));
}

.gs2-qm-page-managed {
    border-left-color: #7c3aed;
}

.gs2-qm-page-managed.gs2-qm-hero,
.gs2-qm-page-managed:not(.gs2-qm-hero) {
    background: linear-gradient(90deg, color-mix(in srgb, #7c3aed 8%, transparent), transparent 48%), var(--gs2-panel);
}

.gs2-qm-page-profiles {
    border-left: 6px solid #0f766e;
}

.gs2-qm-page-profiles.gs2-qm-hero,
.gs2-qm-page-profiles:not(.gs2-qm-hero) {
    background: linear-gradient(90deg, color-mix(in srgb, #0f766e 8%, transparent), transparent 48%), var(--gs2-panel);
}

.gs2-panel.gs2-qm-page-profiles:not(.gs2-qm-profile-inventory) {
    padding-top: 10px;
    padding-bottom: 10px;
}

.gs2-panel.gs2-qm-page-profiles:not(.gs2-qm-profile-inventory) .gs2-panel-head {
    margin-bottom: 8px;
}

.gs2-panel.gs2-qm-page-profiles:not(.gs2-qm-profile-inventory) h2 {
    margin-bottom: 2px;
    font-size: 1.05rem;
}

.gs2-panel.gs2-qm-page-profiles:not(.gs2-qm-profile-inventory) p {
    font-size: 0.82rem;
}

.gs2-qm-page-profiles .gs2-cst-form {
    gap: 8px;
}

.gs2-qm-page-profiles .gs2-form-section {
    padding-top: 10px;
    padding-bottom: 10px;
}

.gs2-qm-page-profiles .gs2-form-section h3 {
    margin-bottom: 8px;
}

.gs2-qm-page-profiles .gs2-radio-row {
    display: inline-flex;
    align-items: center;
    gap: 12px;
    min-height: 36px;
    padding: 6px 8px;
    border: 1px solid color-mix(in srgb, #0f766e 26%, var(--gs2-line));
    border-radius: 6px;
    background: color-mix(in srgb, #0f766e 5%, var(--gs2-card-soft));
}

.gs2-qm-page-profiles .gs2-radio-row span {
    color: var(--gs2-muted);
    font-size: 0.78rem;
    font-weight: 700;
    text-transform: uppercase;
}

.gs2-qm-page-profiles .gs2-radio-row label {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    margin: 0;
    color: var(--gs2-text);
    font-size: 0.86rem;
}

.gs2-qm-page-profiles .gs2-radio-row input {
    margin: 0;
}

.gs2-qm-summary-panel.gs2-qm-page-profiles .gs2-cst-summary-item {
    min-height: 0;
    padding: 8px 10px;
}

.gs2-qm-summary-panel.gs2-qm-page-profiles .gs2-cst-summary-item strong {
    margin: 2px 0;
    font-size: 1rem;
}

.gs2-qm-page-files {
    border-left-color: #d97706;
}

.gs2-qm-file-scope {
    display: inline-flex;
    align-items: center;
    width: fit-content;
    margin-top: 6px;
    padding: 3px 8px;
    border: 1px solid color-mix(in srgb, #d97706 32%, var(--gs2-line));
    border-radius: 6px;
    background: color-mix(in srgb, #d97706 9%, var(--gs2-card-soft));
    color: var(--gs2-text);
    font-size: 0.78rem;
    font-weight: 800;
}

.gs2-qm-page-files.gs2-qm-hero,
.gs2-qm-page-files:not(.gs2-qm-hero) {
    background: linear-gradient(90deg, color-mix(in srgb, #d97706 8%, transparent), transparent 48%), var(--gs2-panel);
}

.gs2-qm-page-files.gs2-qm-upload-scope {
    border-left-color: var(--gs2-line);
    background: var(--gs2-panel);
}

.gs2-qm-upload-layout {
    display: grid;
    gap: 16px;
    grid-template-columns: minmax(260px, 0.85fr) minmax(360px, 1.15fr);
    align-items: start;
}

.gs2-qm-summary-panel.gs2-qm-page-files .gs2-cst-summary-grid {
    grid-template-columns: repeat(4, minmax(130px, 1fr));
}

.gs2-qm-summary-panel.gs2-qm-page-files .gs2-cst-summary-item {
    min-height: 0;
    padding: 8px 10px;
}

.gs2-qm-summary-panel.gs2-qm-page-files .gs2-cst-summary-item strong {
    margin: 2px 0;
    font-size: 1rem;
}

.gs2-qm-file-list-scroll {
    max-height: 520px;
    overflow: auto;
}

.gs2-qm-file-list-scroll .gs2-table thead th {
    position: sticky;
    top: 0;
    z-index: 2;
    background: var(--gs2-panel);
}

.gs2-sortable-table th[data-gs2-sort] {
    cursor: pointer;
    user-select: none;
}

.gs2-sortable-table th[data-gs2-sort]::after {
    content: " ";
    display: inline-block;
    width: 0.8em;
    color: var(--gs2-muted);
}

.gs2-sortable-table th[data-gs2-sort-dir="asc"]::after {
    content: "▲";
}

.gs2-sortable-table th[data-gs2-sort-dir="desc"]::after {
    content: "▼";
}

.gs2-cfg-hero,
.gs2-cfg-command-panel,
.gs2-cfg-tool-panel {
    border-left: 6px solid #7c3aed;
}

.gs2-cfg-hero,
.gs2-cfg-command-panel,
.gs2-cfg-tool-panel {
    background: linear-gradient(90deg, color-mix(in srgb, #7c3aed 8%, transparent), transparent 48%), var(--gs2-panel);
}

.gs2-cfg-command-grid {
    display: grid;
    gap: 10px;
    grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
    margin: 14px 0;
}

.gs2-cfg-command-grid label {
    display: grid;
    grid-template-columns: auto 1fr;
    gap: 2px 8px;
    align-items: start;
    min-height: 70px;
    padding: 10px;
    border: 1px solid var(--gs2-line);
    border-radius: 8px;
    background: var(--gs2-card-soft);
}

.gs2-cfg-command-grid label.is-danger {
    border-color: color-mix(in srgb, var(--gs2-red) 45%, var(--gs2-line));
    background: color-mix(in srgb, var(--gs2-red) 8%, var(--gs2-card-soft));
}

.gs2-cfg-command-grid input {
    margin-top: 3px;
}

.gs2-cfg-command-grid span {
    color: var(--gs2-text);
    font-weight: 800;
}

.gs2-cfg-command-grid small {
    grid-column: 2;
    color: var(--gs2-muted);
    font-size: 0.76rem;
    line-height: 1.3;
}

.gs2-cfg-command-panel label > small {
    display: block;
    margin-top: 5px;
    color: var(--gs2-muted);
    font-size: 0.76rem;
    font-weight: 600;
    line-height: 1.3;
}

.gs2-cfg-command-panel .gs2-radio-row {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    width: fit-content;
    min-height: 36px;
    padding: 6px 8px;
    border: 1px solid var(--gs2-line);
    border-radius: 8px;
    background: var(--gs2-card-soft);
}

.gs2-cfg-command-panel .gs2-radio-row span {
    color: var(--gs2-muted);
    font-size: 0.78rem;
    font-weight: 800;
    text-transform: uppercase;
}

.gs2-cfg-command-panel .gs2-radio-row label {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    margin: 0;
    color: var(--gs2-text);
    font-size: 0.86rem;
    font-weight: 700;
}

.gs2-cfg-command-panel .gs2-radio-row input {
    margin: 0;
}

.gs2-cfg-custom-cli-row {
    display: grid;
    gap: 8px;
    margin-top: 14px;
}

.gs2-cfg-custom-cli-row label {
    display: grid;
    gap: 6px;
}

.gs2-cfg-custom-cli-row textarea {
    width: 100%;
    min-height: 110px;
    resize: vertical;
}

.gs2-cfg-command-preview {
    max-height: 420px;
    overflow: auto;
    padding: 14px;
    border: 1px solid var(--gs2-line);
    border-radius: 8px;
    background: var(--gs2-code-bg, #0f172a);
    color: var(--gs2-code-text, #e5e7eb);
    white-space: pre-wrap;
}

.gs2-qm-grand-totals {
    padding-top: 8px;
    padding-bottom: 8px;
}

.gs2-qm-grand-totals .gs2-panel-head {
    margin-bottom: 6px;
}

.gs2-qm-grand-totals h2 {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    gap: 8px;
    font-size: 0.95rem;
}

.gs2-qm-grand-totals h2 span {
    color: var(--gs2-muted);
    font-size: 0.78rem;
    font-weight: 500;
}

.gs2-qm-total-strip {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.gs2-qm-total-strip span {
    display: inline-flex;
    align-items: baseline;
    gap: 5px;
    min-height: 24px;
    padding: 3px 8px;
    border: 1px solid color-mix(in srgb, #0f766e 26%, var(--gs2-line));
    border-radius: 6px;
    background: color-mix(in srgb, #0f766e 6%, var(--gs2-card-soft));
    color: var(--gs2-muted);
    font-size: 0.78rem;
}

.gs2-qm-total-strip strong {
    color: var(--gs2-text);
    font-size: 0.92rem;
}

.gs2-qm-summary-panel.gs2-qm-page-profiles .gs2-cst-summary-grid {
    grid-template-columns: repeat(5, minmax(120px, 1fr));
}

.gs2-qm-summary-panel.gs2-qm-page-profiles {
    border-left: 6px solid #0f766e;
    background: linear-gradient(90deg, color-mix(in srgb, #0f766e 8%, transparent), transparent 48%), var(--gs2-panel);
}

.gs2-qm-profile-inventory {
    border-left: 6px solid #0f766e;
    background: linear-gradient(90deg, color-mix(in srgb, #0f766e 8%, transparent), transparent 48%), var(--gs2-panel);
    box-shadow: inset 0 1px 0 color-mix(in srgb, #0f766e 22%, transparent);
}

.gs2-qm-profile-inventory .gs2-panel-head {
    padding-bottom: 10px;
    border-bottom: 1px solid color-mix(in srgb, #0f766e 24%, var(--gs2-line));
}

.gs2-qm-profile-inventory h2 {
    color: color-mix(in srgb, #0f766e 72%, var(--gs2-text));
}

.gs2-profile-flash {
    margin-top: 12px;
    padding: 12px 14px;
    border: 1px solid color-mix(in srgb, #16a34a 46%, var(--gs2-line));
    border-left: 6px solid #16a34a;
    border-radius: 8px;
    background: color-mix(in srgb, #16a34a 13%, var(--gs2-panel));
    color: var(--gs2-text);
    box-shadow: 0 10px 24px color-mix(in srgb, #16a34a 10%, transparent);
    transition: opacity 0.65s ease, transform 0.65s ease, max-height 0.65s ease, margin 0.65s ease, padding 0.65s ease;
}

.gs2-profile-flash.warn {
    border-color: color-mix(in srgb, #d97706 48%, var(--gs2-line));
    border-left-color: #d97706;
    background: color-mix(in srgb, #d97706 13%, var(--gs2-panel));
}

.gs2-profile-flash.is-dismissing {
    max-height: 0;
    margin-top: 0;
    padding-top: 0;
    padding-bottom: 0;
    opacity: 0;
    overflow: hidden;
    transform: translateY(-4px);
}

.gs2-qm-drop-cell {
    text-align: right;
    min-width: 90px;
}

.gs2-qm-drop-cell form {
    display: inline-flex;
    justify-content: flex-end;
    margin: 0;
}

@media (max-width: 900px) {
    .gs2-qm-summary-panel.gs2-qm-page-profiles .gs2-cst-summary-grid {
        grid-template-columns: repeat(auto-fit, minmax(145px, 1fr));
    }

    .gs2-qm-upload-layout {
        grid-template-columns: 1fr;
    }
}

.gs2-qm-tool-strip .gs2-action-strip {
    margin-top: 0;
}

.gs2-qm-managed-section .gs2-table-scroll,
.gs2-qm-managed-section .gs2-empty {
    margin: 14px;
}

.gs2-qm-row-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    min-width: 230px;
}

.gs2-qm-row-actions .gs2-action-button {
    min-height: 32px;
    padding: 6px 9px;
    white-space: nowrap;
}

.gs2-qm-pool-stack {
    display: grid;
    gap: 3px;
    margin-top: 6px;
}

.gs2-qm-pool-stack span {
    color: var(--gs2-muted);
    font-size: 0.78rem;
    font-weight: 700;
}

.gs2-qm-table td {
    vertical-align: middle;
}

.gs2-qm-table .gs2-stat-note {
    white-space: normal;
}

.gs2-vsm-hero {
    border-left: 5px solid #2563eb;
    background: linear-gradient(90deg, color-mix(in srgb, #2563eb 9%, transparent), transparent 44%), var(--gs2-panel);
}

.gs2-vsm-scope,
.gs2-vsm-section {
    border-left: 5px solid #0f766e;
}

.gs2-vsm-section .gs2-panel-head {
    background: color-mix(in srgb, #0f766e 7%, var(--gs2-panel));
}

.gs2-vsm-grid .gs2-module-card {
    min-height: 104px;
    border-left: 4px solid #2563eb;
}

.gs2-vsm-grid .gs2-module-card:nth-child(2n) {
    border-left-color: #0f766e;
}

.gs2-vsm-grid .gs2-module-card:nth-child(3n) {
    border-left-color: #d97706;
}

.gs2-vsm-launch-grid {
    display: grid;
    gap: 14px;
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.gs2-vsm-launch-card {
    border-left: 6px solid #2563eb;
    overflow: hidden;
}

.gs2-vsm-launch-head {
    background: color-mix(in srgb, #2563eb 9%, var(--gs2-panel));
    border-bottom: 1px solid var(--gs2-line);
    margin: -16px -16px 12px;
    padding: 14px 16px;
}

.gs2-vsm-launch-head h2 {
    margin: 0 0 4px;
}

.gs2-vsm-action-list {
    display: grid;
    gap: 8px;
}

.gs2-vsm-action-list a {
    align-items: center;
    background: color-mix(in srgb, var(--gs2-card-soft) 82%, transparent);
    border: 1px solid color-mix(in srgb, var(--gs2-line) 82%, transparent);
    border-radius: 8px;
    color: var(--gs2-text);
    display: grid;
    gap: 4px;
    min-height: 58px;
    padding: 10px 12px;
    text-decoration: none;
}

.gs2-vsm-action-list a:hover {
    background: var(--gs2-card-hover);
    border-color: var(--gs2-help-hover-border);
}

.gs2-vsm-action-list span {
    color: var(--gs2-blue-dark);
    font-weight: 800;
}

.gs2-vsm-action-list strong {
    color: var(--gs2-muted);
    font-size: 13px;
    font-weight: 600;
    line-height: 1.3;
}

.gs2-vsm-launch-reports {
    border-left-color: #dc2626;
}

.gs2-vsm-launch-reports .gs2-vsm-launch-head {
    background: color-mix(in srgb, #dc2626 8%, var(--gs2-panel));
}

.gs2-vsm-launch-inventory {
    border-left-color: #0f766e;
}

.gs2-vsm-launch-inventory .gs2-vsm-launch-head {
    background: color-mix(in srgb, #0f766e 9%, var(--gs2-panel));
}

.gs2-vsm-launch-requests {
    border-left-color: #d97706;
}

.gs2-vsm-launch-requests .gs2-vsm-launch-head {
    background: color-mix(in srgb, #d97706 10%, var(--gs2-panel));
}

.gs2-vsm-request-form {
    display: grid;
    gap: 14px;
}

.gs2-vsm-request-options {
    display: grid;
    gap: 8px;
    max-width: 520px;
}

.gs2-vsm-request-options label {
    align-items: center;
    background: color-mix(in srgb, var(--gs2-card-soft) 82%, transparent);
    border: 1px solid var(--gs2-line);
    border-radius: 8px;
    display: flex;
    gap: 10px;
    min-height: 42px;
    padding: 8px 10px;
}

.gs2-vsm-request-options input {
    flex: 0 0 auto;
}

.gs2-vsm-request-options span {
    font-weight: 700;
}

.gs2-vsm-request-message {
    background: color-mix(in srgb, #d97706 9%, var(--gs2-card-soft));
    border: 1px solid color-mix(in srgb, #d97706 35%, var(--gs2-line));
    border-radius: 8px;
    display: grid;
    gap: 10px;
    padding: 14px;
}

.gs2-staff-voice-tool-list .gs2-action-button {
    justify-content: flex-start;
    min-height: 54px;
    text-align: left;
    width: 100%;
}

.gs2-staff-voice-tool-list .gs2-action-button span,
.gs2-staff-voice-tool-list .gs2-action-button strong,
.gs2-staff-voice-tool-list .gs2-action-button small {
    display: block;
}

.gs2-staff-voice-tool-list .gs2-action-button small {
    color: var(--gs2-muted);
    font-size: 12px;
    font-weight: 400;
    line-height: 1.3;
    margin-top: 3px;
}

.gs2-vsm-refresh-select-form {
    max-width: 620px;
}

.gs2-vsm-lookup-form {
    max-width: 520px;
}

.gs2-vsm-rate-center-scroll {
    max-height: 62vh;
    overflow: auto;
}

.gs2-vsm-rate-center-card {
    border: 1px solid var(--gs2-line);
    border-radius: 8px;
    background: var(--gs2-panel);
    margin-top: 14px;
    overflow: hidden;
}

.gs2-vsm-rate-center-table {
    min-width: 720px;
}

.gs2-vsm-city-zip-table {
    min-width: 900px;
}

.gs2-vsm-did-inventory-table {
    min-width: 1320px;
}

.gs2-vsm-rate-center-table thead th {
    background: var(--gs2-card-soft);
    box-shadow: 0 1px 0 var(--gs2-line);
    position: sticky;
    top: 0;
    z-index: 2;
}

.gs2-vsm-city-zip-table thead th {
    background: var(--gs2-card-soft);
    box-shadow: 0 1px 0 var(--gs2-line);
    position: sticky;
    top: 0;
    z-index: 2;
}

.gs2-vsm-did-inventory-table thead th {
    background: var(--gs2-card-soft);
    box-shadow: 0 1px 0 var(--gs2-line);
    position: sticky;
    top: 0;
    z-index: 2;
}

@media (max-width: 920px) {
    .gs2-vsm-launch-grid {
        grid-template-columns: 1fr;
    }
}

.gs2-vsm-inventory-scroll {
    max-height: 68vh;
    overflow: auto;
}

.gs2-vsm-inventory-scroll .gs2-table thead th {
    position: sticky;
    top: 0;
    z-index: 2;
}

.gs2-vsm-inventory-table {
    min-width: 1180px;
}

.gs2-vsm-inventory-table tbody tr:nth-child(even) {
    background: var(--gs2-table-zebra);
}

.gs2-vsm-copy-lines {
    display: grid;
    gap: 6px;
    max-width: 260px;
    margin-top: 14px;
}

.gs2-vsm-copy-lines label {
    color: var(--gs2-text);
    font-size: 0.86rem;
    font-weight: 700;
}

.gs2-vsm-copy-lines textarea {
    width: 100%;
    min-height: 104px;
    padding: 8px 10px;
    border: 1px solid var(--gs2-line);
    border-radius: 6px;
    background: var(--gs2-card-soft);
    color: var(--gs2-text);
    font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", monospace;
    font-size: 0.9rem;
    line-height: 1.35;
    resize: vertical;
}

.gs2-vsm-status-detail {
    display: grid;
    gap: 8px;
    margin: 14px 0 0;
}

.gs2-vsm-status-detail div {
    display: grid;
    grid-template-columns: minmax(120px, 180px) minmax(0, 1fr);
    gap: 12px;
    padding: 8px 10px;
    border: 1px solid var(--gs2-line);
    border-radius: 6px;
    background: var(--gs2-card-soft);
}

.gs2-vsm-status-detail dt {
    color: var(--gs2-muted);
    font-size: 0.78rem;
    font-weight: 700;
    text-transform: uppercase;
}

.gs2-vsm-status-detail dd {
    margin: 0;
    color: var(--gs2-text);
}

.gs2-vsm-prefix-filter {
    margin-top: 12px;
}

.gs2-vsm-workflow-form {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
}

.gs2-vsm-workflow-form label {
    display: grid;
    gap: 6px;
    padding: 12px;
    border: 1px solid var(--gs2-line);
    border-radius: 8px;
    background: var(--gs2-card-soft);
}

.gs2-vsm-workflow-form span {
    color: var(--gs2-muted);
    font-size: 12px;
    font-weight: 700;
}

.gs2-vsm-workflow-form input,
.gs2-vsm-workflow-form textarea {
    min-height: 38px;
    border: 1px solid var(--gs2-line);
    border-radius: 6px;
    background: var(--gs2-panel);
    color: var(--gs2-text);
    padding: 7px 9px;
    font: inherit;
}

.gs2-vsm-wide-field,
.gs2-vsm-workflow-form .gs2-action-strip {
    grid-column: 1 / -1;
}

.gs2-route-vsmdashboard .heading,
.gs2-route-vsmlineinventory .heading,
.gs2-route-vsmrefreshinventory .heading,
.gs2-route-vsmalllines .heading,
.gs2-route-vsmregusers .heading,
.gs2-route-vsmunregusers .heading,
.gs2-route-vsmlinecheck .heading,
.gs2-route-vsmlinestat .heading,
.gs2-route-vsmmultilinecheck .heading,
.gs2-route-vsmmultilinestat .heading,
.gs2-route-vsmlineedit .heading,
.gs2-route-vsmcanline .heading,
.gs2-route-vsmrequest .heading,
.gs2-route-vsmrequestsend .heading,
.gs2-route-vsmcnamdumpdm .heading,
.gs2-route-vsmtools .heading,
.gs2-route-vsmlist .heading,
.gs2-route-vsmdidinventory .heading,
.gs2-route-vsmgetdid .heading,
.gs2-route-vsmnewline .heading,
.gs2-route-vsmnewport .heading,
.gs2-route-vsmconsumerpc .heading,
.gs2-route-vsmrcbystate .heading,
.gs2-route-vsmcitiesbyzip .heading,
.gs2-route-vsmsetcppass .heading,
.gs2-route-vsmregusers_dm_diagnostic .heading,
.gs2-route-vsmadmin .heading {
    margin: 0 0 14px;
    padding: 16px 18px;
    border: 1px solid var(--gs2-line);
    border-left: 5px solid var(--gs2-blue);
    border-radius: 8px;
    background: linear-gradient(90deg, color-mix(in srgb, var(--gs2-blue) 10%, transparent), transparent 42%), var(--gs2-panel);
    color: var(--gs2-text);
}

.gs2-route-vsmdashboard .heading p,
.gs2-route-vsmlineinventory .heading p,
.gs2-route-vsmrefreshinventory .heading p,
.gs2-route-vsmalllines .heading p,
.gs2-route-vsmregusers .heading p,
.gs2-route-vsmunregusers .heading p,
.gs2-route-vsmlinecheck .heading p,
.gs2-route-vsmlinestat .heading p,
.gs2-route-vsmmultilinecheck .heading p,
.gs2-route-vsmmultilinestat .heading p,
.gs2-route-vsmlineedit .heading p,
.gs2-route-vsmcanline .heading p,
.gs2-route-vsmrequest .heading p,
.gs2-route-vsmrequestsend .heading p,
.gs2-route-vsmcnamdumpdm .heading p,
.gs2-route-vsmtools .heading p,
.gs2-route-vsmlist .heading p,
.gs2-route-vsmdidinventory .heading p,
.gs2-route-vsmgetdid .heading p,
.gs2-route-vsmnewline .heading p,
.gs2-route-vsmnewport .heading p,
.gs2-route-vsmconsumerpc .heading p,
.gs2-route-vsmrcbystate .heading p,
.gs2-route-vsmcitiesbyzip .heading p,
.gs2-route-vsmsetcppass .heading p,
.gs2-route-vsmregusers_dm_diagnostic .heading p,
.gs2-route-vsmadmin .heading p {
    margin: 0;
}

.gs2-route-vsmdashboard .heading span:first-child,
.gs2-route-vsmlineinventory .heading span:first-child,
.gs2-route-vsmrefreshinventory .heading span:first-child,
.gs2-route-vsmalllines .heading span:first-child,
.gs2-route-vsmregusers .heading span:first-child,
.gs2-route-vsmunregusers .heading span:first-child,
.gs2-route-vsmlinecheck .heading span:first-child,
.gs2-route-vsmlinestat .heading span:first-child,
.gs2-route-vsmmultilinecheck .heading span:first-child,
.gs2-route-vsmmultilinestat .heading span:first-child,
.gs2-route-vsmlineedit .heading span:first-child,
.gs2-route-vsmcanline .heading span:first-child,
.gs2-route-vsmrequest .heading span:first-child,
.gs2-route-vsmrequestsend .heading span:first-child,
.gs2-route-vsmcnamdumpdm .heading span:first-child,
.gs2-route-vsmtools .heading span:first-child,
.gs2-route-vsmlist .heading span:first-child,
.gs2-route-vsmdidinventory .heading span:first-child,
.gs2-route-vsmgetdid .heading span:first-child,
.gs2-route-vsmnewline .heading span:first-child,
.gs2-route-vsmnewport .heading span:first-child,
.gs2-route-vsmconsumerpc .heading span:first-child,
.gs2-route-vsmrcbystate .heading span:first-child,
.gs2-route-vsmcitiesbyzip .heading span:first-child,
.gs2-route-vsmsetcppass .heading span:first-child,
.gs2-route-vsmregusers_dm_diagnostic .heading span:first-child,
.gs2-route-vsmadmin .heading span:first-child {
    color: var(--gs2-text);
    font-size: 1.1rem;
    font-weight: 700;
}

.gs2-route-vsmdashboard table.inset,
.gs2-route-vsmlineinventory table.inset,
.gs2-route-vsmrefreshinventory table.inset,
.gs2-route-vsmalllines table.inset,
.gs2-route-vsmregusers table.inset,
.gs2-route-vsmunregusers table.inset,
.gs2-route-vsmlinecheck table.inset,
.gs2-route-vsmlinestat table.inset,
.gs2-route-vsmmultilinecheck table.inset,
.gs2-route-vsmmultilinestat table.inset,
.gs2-route-vsmlineedit table.inset,
.gs2-route-vsmcanline table.inset,
.gs2-route-vsmrequest table.inset,
.gs2-route-vsmrequestsend table.inset,
.gs2-route-vsmcnamdumpdm table.inset,
.gs2-route-vsmtools table.inset,
.gs2-route-vsmlist table.inset,
.gs2-route-vsmdidinventory table.inset,
.gs2-route-vsmgetdid table.inset,
.gs2-route-vsmnewline table.inset,
.gs2-route-vsmnewport table.inset,
.gs2-route-vsmconsumerpc table.inset,
.gs2-route-vsmrcbystate table.inset,
.gs2-route-vsmcitiesbyzip table.inset,
.gs2-route-vsmsetcppass table.inset,
.gs2-route-vsmregusers_dm_diagnostic table.inset,
.gs2-route-vsmadmin table.inset,
.gs2-route-vsmlinestat .vsm-stat-panel,
.gs2-route-vsmlinecheck .vsm-check-panel,
.gs2-route-vsmmultilinecheck .vsm-check-panel {
    width: 100%;
    border: 1px solid var(--gs2-line) !important;
    border-left: 5px solid var(--gs2-green) !important;
    border-radius: 8px !important;
    background: var(--gs2-panel) !important;
    color: var(--gs2-text) !important;
    box-shadow: none !important;
}

.gs2-route-vsmlinestat .vsm-stat-wrap,
.gs2-route-vsmlinecheck .vsm-check-wrap,
.gs2-route-vsmmultilinecheck .vsm-check-wrap {
    max-width: none !important;
    margin: 0 !important;
    padding: 0 !important;
    color: var(--gs2-text) !important;
}

.gs2-route-vsmlinestat .vsm-stat-head,
.gs2-route-vsmlinecheck .vsm-check-head,
.gs2-route-vsmmultilinecheck .vsm-check-head {
    margin-bottom: 14px;
    padding: 16px 18px;
    border: 1px solid var(--gs2-line);
    border-left: 5px solid var(--gs2-blue);
    border-radius: 8px;
    background: linear-gradient(90deg, color-mix(in srgb, var(--gs2-blue) 10%, transparent), transparent 42%), var(--gs2-panel);
}

.gs2-route-vsmlinestat .vsm-stat-title,
.gs2-route-vsmlinecheck .vsm-check-title,
.gs2-route-vsmmultilinecheck .vsm-check-title {
    color: var(--gs2-text) !important;
}

.gs2-route-vsmlinestat .vsm-stat-sub,
.gs2-route-vsmlinecheck .vsm-check-sub,
.gs2-route-vsmmultilinecheck .vsm-check-sub,
.gs2-route-vsmlinestat .vsm-stat-muted {
    color: var(--gs2-muted) !important;
}

.gs2-route-vsmdashboard table.inset td,
.gs2-route-vsmlineinventory table.inset td,
.gs2-route-vsmrefreshinventory table.inset td,
.gs2-route-vsmalllines table.inset td,
.gs2-route-vsmregusers table.inset td,
.gs2-route-vsmunregusers table.inset td,
.gs2-route-vsmlinecheck table.inset td,
.gs2-route-vsmlinestat table.inset td,
.gs2-route-vsmmultilinecheck table.inset td,
.gs2-route-vsmmultilinestat table.inset td,
.gs2-route-vsmlineedit table.inset td,
.gs2-route-vsmcanline table.inset td,
.gs2-route-vsmrequest table.inset td,
.gs2-route-vsmrequestsend table.inset td,
.gs2-route-vsmcnamdumpdm table.inset td,
.gs2-route-vsmtools table.inset td,
.gs2-route-vsmlist table.inset td,
.gs2-route-vsmdidinventory table.inset td,
.gs2-route-vsmgetdid table.inset td,
.gs2-route-vsmnewline table.inset td,
.gs2-route-vsmnewport table.inset td,
.gs2-route-vsmconsumerpc table.inset td,
.gs2-route-vsmrcbystate table.inset td,
.gs2-route-vsmcitiesbyzip table.inset td,
.gs2-route-vsmsetcppass table.inset td,
.gs2-route-vsmregusers_dm_diagnostic table.inset td,
.gs2-route-vsmadmin table.inset td {
    background: transparent !important;
    color: var(--gs2-text) !important;
}

.gs2-route-vsmdashboard table.inset th,
.gs2-route-vsmlineinventory table.inset th,
.gs2-route-vsmrefreshinventory table.inset th,
.gs2-route-vsmalllines table.inset th,
.gs2-route-vsmregusers table.inset th,
.gs2-route-vsmunregusers table.inset th,
.gs2-route-vsmlinecheck table.inset th,
.gs2-route-vsmlinestat table.inset th,
.gs2-route-vsmmultilinecheck table.inset th,
.gs2-route-vsmmultilinestat table.inset th,
.gs2-route-vsmlineedit table.inset th,
.gs2-route-vsmcanline table.inset th,
.gs2-route-vsmrequest table.inset th,
.gs2-route-vsmrequestsend table.inset th,
.gs2-route-vsmcnamdumpdm table.inset th,
.gs2-route-vsmtools table.inset th,
.gs2-route-vsmlist table.inset th,
.gs2-route-vsmdidinventory table.inset th,
.gs2-route-vsmgetdid table.inset th,
.gs2-route-vsmnewline table.inset th,
.gs2-route-vsmnewport table.inset th,
.gs2-route-vsmconsumerpc table.inset th,
.gs2-route-vsmrcbystate table.inset th,
.gs2-route-vsmcitiesbyzip table.inset th,
.gs2-route-vsmsetcppass table.inset th,
.gs2-route-vsmregusers_dm_diagnostic table.inset th,
.gs2-route-vsmadmin table.inset th {
    background: var(--gs2-card-soft) !important;
    color: var(--gs2-muted) !important;
    border-bottom: 1px solid var(--gs2-line) !important;
}

.gs2-route-vsmdashboard a,
.gs2-route-vsmlineinventory a,
.gs2-route-vsmrefreshinventory a,
.gs2-route-vsmalllines a,
.gs2-route-vsmregusers a,
.gs2-route-vsmunregusers a,
.gs2-route-vsmlinecheck a,
.gs2-route-vsmlinestat a,
.gs2-route-vsmmultilinecheck a,
.gs2-route-vsmmultilinestat a,
.gs2-route-vsmlineedit a,
.gs2-route-vsmcanline a,
.gs2-route-vsmrequest a,
.gs2-route-vsmrequestsend a,
.gs2-route-vsmcnamdumpdm a,
.gs2-route-vsmtools a,
.gs2-route-vsmlist a,
.gs2-route-vsmdidinventory a,
.gs2-route-vsmgetdid a,
.gs2-route-vsmnewline a,
.gs2-route-vsmnewport a,
.gs2-route-vsmconsumerpc a,
.gs2-route-vsmrcbystate a,
.gs2-route-vsmcitiesbyzip a,
.gs2-route-vsmsetcppass a,
.gs2-route-vsmregusers_dm_diagnostic a,
.gs2-route-vsmadmin a {
    color: var(--gs2-link) !important;
}

.gs2-route-vsmdashboard button,
.gs2-route-vsmlineinventory button,
.gs2-route-vsmrefreshinventory button,
.gs2-route-vsmalllines button,
.gs2-route-vsmregusers button,
.gs2-route-vsmunregusers button,
.gs2-route-vsmlinecheck button,
.gs2-route-vsmlinestat button,
.gs2-route-vsmmultilinecheck button,
.gs2-route-vsmmultilinestat button,
.gs2-route-vsmlineedit button,
.gs2-route-vsmcanline button,
.gs2-route-vsmrequest button,
.gs2-route-vsmrequestsend button,
.gs2-route-vsmcnamdumpdm button,
.gs2-route-vsmtools button,
.gs2-route-vsmlist button,
.gs2-route-vsmdidinventory button,
.gs2-route-vsmgetdid button,
.gs2-route-vsmnewline button,
.gs2-route-vsmnewport button,
.gs2-route-vsmconsumerpc button,
.gs2-route-vsmrcbystate button,
.gs2-route-vsmcitiesbyzip button,
.gs2-route-vsmsetcppass button,
.gs2-route-vsmregusers_dm_diagnostic button,
.gs2-route-vsmadmin button,
.gs2-route-vsmlinecheck input[type="submit"],
.gs2-route-vsmmultilinecheck input[type="submit"],
.gs2-route-vsmlinestat .vsm-stat-help,
.gs2-route-vsmlinestat .vsm-stat-btn,
.gs2-route-vsmlinecheck .vsm-check-btn,
.gs2-route-vsmmultilinecheck .vsm-check-btn {
    border: 1px solid var(--gs2-blue) !important;
    border-radius: 6px !important;
    background: var(--gs2-blue) !important;
    color: var(--gs2-panel) !important;
    text-decoration: none !important;
}

body[class*="gs2-route-vsm"] .gs2-sidebar .gs2-nav-link {
    display: block !important;
    border: 0 !important;
    border-radius: 6px !important;
    background: transparent !important;
    color: var(--gs2-sidebar-text) !important;
    padding: 9px 10px !important;
    text-decoration: none !important;
}

body[class*="gs2-route-vsm"] .gs2-sidebar .gs2-nav-link:hover,
body[class*="gs2-route-vsm"] .gs2-sidebar .gs2-nav-link.is-active {
    background: var(--gs2-sidebar-active) !important;
    color: #fff !important;
}

html.is-sidebar-collapsed body[class*="gs2-route-vsm"] .gs2-sidebar .gs2-nav-link,
body[class*="gs2-route-vsm"] .gs2-app-shell.is-sidebar-collapsed .gs2-sidebar .gs2-nav-link {
    width: 50px !important;
    min-height: 34px !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
    background: var(--gs2-sidebar-control) !important;
    color: transparent !important;
}

html.is-sidebar-collapsed body[class*="gs2-route-vsm"] .gs2-sidebar .gs2-nav-link::before,
body[class*="gs2-route-vsm"] .gs2-app-shell.is-sidebar-collapsed .gs2-sidebar .gs2-nav-link::before {
    color: var(--gs2-sidebar-text) !important;
}

body[class*="gs2-route-vsm"] .gs2-sidebar .gs2-sidebar-toggle {
    width: 28px !important;
    height: 28px !important;
    border: 1px solid #344256 !important;
    border-radius: 6px !important;
    background: var(--gs2-sidebar-control) !important;
    color: #fff !important;
    padding: 0 !important;
}

body[class*="gs2-route-vsm"] .gs2-topbar .gs2-help-link,
body[class*="gs2-route-vsm"] .gs2-topbar .gs2-account-link,
body[class*="gs2-route-vsm"] .gs2-topbar .gs2-theme-toggle {
    background: transparent !important;
    color: var(--gs2-link) !important;
}

body[class*="gs2-route-vsm"] .gs2-main .vsm-dash-wrap,
body[class*="gs2-route-vsm"] .gs2-main .vsm-check-wrap,
body[class*="gs2-route-vsm"] .gs2-main .vsm-stat-wrap {
    max-width: none !important;
    margin: 0 !important;
    padding: 0 !important;
    color: var(--gs2-text) !important;
}

body[class*="gs2-route-vsm"] .gs2-main .vsm-dash-head,
body[class*="gs2-route-vsm"] .gs2-main .vsm-check-head,
body[class*="gs2-route-vsm"] .gs2-main .vsm-stat-head {
    margin: 0 0 14px !important;
    padding: 16px 18px !important;
    border: 1px solid var(--gs2-line) !important;
    border-left: 5px solid var(--gs2-blue) !important;
    border-radius: 8px !important;
    background: linear-gradient(90deg, color-mix(in srgb, var(--gs2-blue) 10%, transparent), transparent 42%), var(--gs2-panel) !important;
    color: var(--gs2-text) !important;
}

body[class*="gs2-route-vsm"] .gs2-main .vsm-dash-title,
body[class*="gs2-route-vsm"] .gs2-main .vsm-check-title,
body[class*="gs2-route-vsm"] .gs2-main .vsm-stat-title {
    color: var(--gs2-text) !important;
}

body[class*="gs2-route-vsm"] .gs2-main .vsm-dash-sub,
body[class*="gs2-route-vsm"] .gs2-main .vsm-dash-note,
body[class*="gs2-route-vsm"] .gs2-main .vsm-check-sub,
body[class*="gs2-route-vsm"] .gs2-main .vsm-stat-sub,
body[class*="gs2-route-vsm"] .gs2-main .vsm-stat-muted {
    color: var(--gs2-muted) !important;
}

body[class*="gs2-route-vsm"] .gs2-main .vsm-dash-section,
body[class*="gs2-route-vsm"] .gs2-main .vsm-check-panel,
body[class*="gs2-route-vsm"] .gs2-main .vsm-stat-panel {
    border: 1px solid var(--gs2-line) !important;
    border-left: 5px solid var(--gs2-green) !important;
    border-radius: 8px !important;
    background: var(--gs2-panel) !important;
    color: var(--gs2-text) !important;
}

body[class*="gs2-route-vsm"] .gs2-main .vsm-dash-section h3 {
    color: var(--gs2-text) !important;
    border-bottom: 1px solid var(--gs2-line) !important;
}

body[class*="gs2-route-vsm"] .gs2-main .vsm-dash-link,
body[class*="gs2-route-vsm"] .gs2-main .vsm-check-btn,
body[class*="gs2-route-vsm"] .gs2-main .vsm-stat-btn,
body[class*="gs2-route-vsm"] .gs2-main .vsm-stat-help {
    border: 1px solid var(--gs2-line) !important;
    border-radius: 6px !important;
    background: var(--gs2-card-soft) !important;
    color: var(--gs2-link) !important;
    text-decoration: none !important;
}

body[class*="gs2-route-vsm"] .gs2-main .vsm-dash-link:hover,
body[class*="gs2-route-vsm"] .gs2-main .vsm-check-btn:hover,
body[class*="gs2-route-vsm"] .gs2-main .vsm-stat-btn:hover,
body[class*="gs2-route-vsm"] .gs2-main .vsm-stat-help:hover {
    background: var(--gs2-card-hover) !important;
    color: var(--gs2-link-hover) !important;
}

body[class*="gs2-route-vsm"] .gs2-main .vsm-dash-help,
body[class*="gs2-route-vsm"] .gs2-main input[type="submit"] {
    border: 1px solid var(--gs2-blue) !important;
    border-radius: 6px !important;
    background: var(--gs2-blue) !important;
    color: var(--gs2-bg) !important;
}

body[class*="gs2-route-vsm"] .gs2-main > div:not([class]),
body[class*="gs2-route-vsm"] .gs2-main table.inset {
    background: var(--gs2-panel) !important;
    color: var(--gs2-text) !important;
}

body[class*="gs2-route-vsm"] .gs2-main > div:not([class]) {
    padding: 14px !important;
    border: 1px solid var(--gs2-line) !important;
    border-left: 5px solid var(--gs2-green) !important;
    border-radius: 8px !important;
}

body[class*="gs2-route-vsm"] .gs2-main table.inset h3 {
    margin: 0 !important;
    color: var(--gs2-text) !important;
}

body[class*="gs2-route-vsm"] .gs2-main table.inset hr {
    border: 0 !important;
    border-top: 1px solid var(--gs2-line) !important;
}

body[class*="gs2-route-vsm"] .gs2-main table.inset input[type="text"],
body[class*="gs2-route-vsm"] .gs2-main table.inset textarea {
    border: 1px solid var(--gs2-line) !important;
    border-radius: 4px !important;
    background: var(--gs2-card-soft) !important;
    color: var(--gs2-text) !important;
}

body[class*="gs2-route-vsm"] .gs2-main table.inset td > span,
body[class*="gs2-route-vsm"] .gs2-main table.inset td > b {
    color: var(--gs2-text) !important;
}

body[class*="gs2-route-vsm"] .gs2-main table[id$="LinesTable"],
body[class*="gs2-route-vsm"] .gs2-main #registeredLinesTable,
body[class*="gs2-route-vsm"] .gs2-main #unregisteredLinesTable {
    width: 100% !important;
    border-collapse: collapse !important;
    border: 1px solid var(--gs2-line) !important;
    border-radius: 8px !important;
    overflow: hidden !important;
    background: var(--gs2-panel) !important;
    color: var(--gs2-text) !important;
}

body[class*="gs2-route-vsm"] .gs2-main table[id$="LinesTable"] th,
body[class*="gs2-route-vsm"] .gs2-main #registeredLinesTable th,
body[class*="gs2-route-vsm"] .gs2-main #unregisteredLinesTable th {
    padding: 8px 10px !important;
    background: var(--gs2-card-soft) !important;
    color: var(--gs2-text) !important;
    border-bottom: 1px solid var(--gs2-line) !important;
    text-align: left !important;
}

body[class*="gs2-route-vsm"] .gs2-main table[id$="LinesTable"] td,
body[class*="gs2-route-vsm"] .gs2-main #registeredLinesTable td,
body[class*="gs2-route-vsm"] .gs2-main #unregisteredLinesTable td {
    padding: 7px 10px !important;
    background: var(--gs2-panel) !important;
    color: var(--gs2-text) !important;
    border-bottom: 1px solid var(--gs2-line) !important;
}

body[class*="gs2-route-vsm"] .gs2-main table[id$="LinesTable"] tbody tr:nth-child(even) td,
body[class*="gs2-route-vsm"] .gs2-main #registeredLinesTable tbody tr:nth-child(even) td,
body[class*="gs2-route-vsm"] .gs2-main #unregisteredLinesTable tbody tr:nth-child(even) td {
    background: var(--gs2-table-zebra) !important;
}

body[class*="gs2-route-vsm"] .gs2-main table[id$="LinesTable"] a,
body[class*="gs2-route-vsm"] .gs2-main #registeredLinesTable a,
body[class*="gs2-route-vsm"] .gs2-main #unregisteredLinesTable a {
    color: var(--gs2-link) !important;
}

body[class*="gs2-route-vsm"] .gs2-main textarea {
    background: var(--gs2-card-soft) !important;
    color: var(--gs2-text) !important;
}

body[class*="gs2-route-vsm"] .gs2-main .vsm-report-wrap {
    max-width: none !important;
    margin: 0 !important;
    padding: 0 !important;
    color: var(--gs2-text) !important;
}

body[class*="gs2-route-vsm"] .gs2-main .vsm-report-panel {
    padding: 14px !important;
    border: 1px solid var(--gs2-line) !important;
    border-left: 5px solid var(--gs2-green) !important;
    border-radius: 8px !important;
    background: var(--gs2-panel) !important;
    color: var(--gs2-text) !important;
}

body[class*="gs2-route-vsm"] .gs2-main .vsm-report-panel table.inset {
    border: 0 !important;
    border-left: 0 !important;
    border-radius: 0 !important;
    background: transparent !important;
}

body[class*="gs2-route-vsm"] .gs2-main .vsm-report-panel h3 {
    margin: 0 !important;
    color: var(--gs2-text) !important;
}

body[class*="gs2-route-vsm"] .gs2-main .vsm-report-meta {
    gap: 8px !important;
    margin: 10px 0 12px !important;
}

body[class*="gs2-route-vsm"] .gs2-main .vsm-report-chip {
    border: 1px solid var(--gs2-line) !important;
    border-radius: 6px !important;
    background: var(--gs2-card-soft) !important;
    color: var(--gs2-text) !important;
}

body[class*="gs2-route-vsm"] .gs2-main .vsm-report-chip b {
    color: var(--gs2-text) !important;
}

body[class*="gs2-route-vsm"] .gs2-main .vsm-report-panel a {
    border: 1px solid var(--gs2-line) !important;
    border-radius: 6px !important;
    background: var(--gs2-card-soft) !important;
    color: var(--gs2-link) !important;
    text-decoration: none !important;
}

body[class*="gs2-route-vsm"] .gs2-main .vsm-report-panel a:hover {
    background: var(--gs2-card-hover) !important;
    color: var(--gs2-link-hover) !important;
}

body[class*="gs2-route-vsm"] .gs2-main .vsm-report-panel input[type="text"] {
    min-height: 32px !important;
    border: 1px solid var(--gs2-line) !important;
    border-radius: 6px !important;
    background: var(--gs2-card-soft) !important;
    color: var(--gs2-text) !important;
}

body[class*="gs2-route-vsm"] .gs2-main .vsm-report-panel input[type="submit"] {
    min-height: 32px !important;
    border: 1px solid var(--gs2-blue) !important;
    border-radius: 6px !important;
    background: var(--gs2-blue) !important;
    color: var(--gs2-bg) !important;
}

body[class*="gs2-route-vsm"] .gs2-main .vsm-report-table-wrap {
    max-height: 62vh !important;
    border: 1px solid var(--gs2-line) !important;
    border-radius: 8px !important;
    background: var(--gs2-panel) !important;
}

body[class*="gs2-route-vsm"] .gs2-main #unregisteredLinesTable,
body[class*="gs2-route-vsm"] .gs2-main #registeredLinesTable {
    background: var(--gs2-panel) !important;
    color: var(--gs2-text) !important;
    font-size: 13px !important;
}

body[class*="gs2-route-vsm"] .gs2-main #unregisteredLinesTable th,
body[class*="gs2-route-vsm"] .gs2-main #registeredLinesTable th {
    background: var(--gs2-card-soft) !important;
    color: var(--gs2-text) !important;
    border-bottom: 1px solid var(--gs2-line) !important;
}

body[class*="gs2-route-vsm"] .gs2-main #unregisteredLinesTable td,
body[class*="gs2-route-vsm"] .gs2-main #registeredLinesTable td {
    background: var(--gs2-panel) !important;
    color: var(--gs2-text) !important;
    border-bottom: 1px solid var(--gs2-line) !important;
}

body[class*="gs2-route-vsm"] .gs2-main #unregisteredLinesTable tr:nth-child(even) td,
body[class*="gs2-route-vsm"] .gs2-main #registeredLinesTable tr:nth-child(even) td {
    background: var(--gs2-table-zebra) !important;
}

.gs2-vsm-legacy-shell {
    display: grid;
    gap: 14px;
    color: var(--gs2-text);
}

.gs2-vsm-legacy-shell .vsm-dash-wrap,
.gs2-vsm-legacy-shell .vsm-report-wrap,
.gs2-vsm-legacy-shell .vsm-all-wrap,
.gs2-vsm-legacy-shell .vsm-refresh-wrap,
.gs2-vsm-legacy-shell .vsm-check-wrap,
.gs2-vsm-legacy-shell .vsm-stat-wrap {
    max-width: none !important;
    margin: 0 !important;
    padding: 0 !important;
}

.gs2-vsm-legacy-shell .vsm-dash-head,
.gs2-vsm-legacy-shell .vsm-all-head,
.gs2-vsm-legacy-shell .vsm-refresh-head,
.gs2-vsm-legacy-shell .vsm-check-head,
.gs2-vsm-legacy-shell .vsm-stat-head,
.gs2-vsm-legacy-shell > div:not([class]) > table.inset:first-child,
.gs2-vsm-legacy-shell .vsm-report-panel {
    border: 1px solid var(--gs2-line) !important;
    border-left: 6px solid #0f766e !important;
    border-radius: 8px !important;
    background: linear-gradient(90deg, color-mix(in srgb, #0f766e 8%, transparent), transparent 48%), var(--gs2-panel) !important;
    color: var(--gs2-text) !important;
}

.gs2-vsm-legacy-shell .vsm-dash-head,
.gs2-vsm-legacy-shell .vsm-all-head,
.gs2-vsm-legacy-shell .vsm-refresh-head,
.gs2-vsm-legacy-shell .vsm-check-head,
.gs2-vsm-legacy-shell .vsm-stat-head {
    padding: 16px 18px !important;
}

.gs2-vsm-legacy-shell .vsm-report-panel {
    padding: 14px !important;
}

.gs2-vsm-legacy-shell .vsm-dash-grid {
    display: grid !important;
    grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)) !important;
    gap: 12px !important;
}

.gs2-vsm-legacy-shell .vsm-dash-section,
.gs2-vsm-legacy-shell .vsm-all-card,
.gs2-vsm-legacy-shell .vsm-refresh-panel,
.gs2-vsm-legacy-shell .vsm-check-panel,
.gs2-vsm-legacy-shell .vsm-stat-panel {
    padding: 14px !important;
    border: 1px solid color-mix(in srgb, #0f766e 48%, var(--gs2-line)) !important;
    border-left: 6px solid #0f766e !important;
    border-radius: 8px !important;
    background: color-mix(in srgb, #0f766e 10%, var(--gs2-card-soft)) !important;
    color: var(--gs2-text) !important;
    box-shadow: none !important;
}

.gs2-vsm-legacy-shell .vsm-dash-section:nth-child(2),
.gs2-vsm-legacy-shell .vsm-report-panel {
    border-left-color: #d97706 !important;
    border-color: color-mix(in srgb, #d97706 48%, var(--gs2-line)) !important;
    background: color-mix(in srgb, #d97706 10%, var(--gs2-card-soft)) !important;
}

.gs2-vsm-legacy-shell .vsm-dash-section:nth-child(3) {
    border-left-color: #7c3aed !important;
    border-color: color-mix(in srgb, #7c3aed 48%, var(--gs2-line)) !important;
    background: color-mix(in srgb, #7c3aed 10%, var(--gs2-card-soft)) !important;
}

.gs2-vsm-legacy-shell h3,
.gs2-vsm-legacy-shell .vsm-dash-title,
.gs2-vsm-legacy-shell .vsm-all-title,
.gs2-vsm-legacy-shell .vsm-refresh-title,
.gs2-vsm-legacy-shell .vsm-check-title,
.gs2-vsm-legacy-shell .vsm-stat-title {
    color: var(--gs2-text) !important;
    font-weight: 700 !important;
}

.gs2-vsm-legacy-shell .vsm-dash-sub,
.gs2-vsm-legacy-shell .vsm-dash-note,
.gs2-vsm-legacy-shell .vsm-all-sub,
.gs2-vsm-legacy-shell .vsm-all-note,
.gs2-vsm-legacy-shell .vsm-refresh-sub,
.gs2-vsm-legacy-shell .vsm-check-sub,
.gs2-vsm-legacy-shell .vsm-stat-sub,
.gs2-vsm-legacy-shell .vsm-stat-muted {
    color: var(--gs2-muted) !important;
}

.gs2-vsm-legacy-shell table.inset {
    width: 100% !important;
    border-collapse: collapse !important;
    border: 0 !important;
    background: transparent !important;
    color: var(--gs2-text) !important;
}

.gs2-vsm-legacy-shell table.inset td,
.gs2-vsm-legacy-shell table.inset th {
    background: transparent !important;
    color: var(--gs2-text) !important;
}

.gs2-vsm-legacy-shell .vsm-dash-link,
.gs2-vsm-legacy-shell .vsm-report-panel a,
.gs2-vsm-legacy-shell .vsm-all-btn,
.gs2-vsm-legacy-shell .vsm-refresh-btn,
.gs2-vsm-legacy-shell .vsm-check-btn,
.gs2-vsm-legacy-shell .vsm-stat-btn,
.gs2-vsm-legacy-shell .vsm-stat-help {
    display: block !important;
    padding: 8px 10px !important;
    border: 1px solid var(--gs2-line) !important;
    border-radius: 6px !important;
    background: color-mix(in srgb, var(--gs2-panel) 76%, var(--gs2-card-soft)) !important;
    color: var(--gs2-link) !important;
    text-decoration: none !important;
}

.gs2-vsm-legacy-shell .vsm-report-panel a {
    display: inline-block !important;
}

.gs2-vsm-legacy-shell .vsm-dash-link:hover,
.gs2-vsm-legacy-shell .vsm-report-panel a:hover,
.gs2-vsm-legacy-shell .vsm-all-btn:hover,
.gs2-vsm-legacy-shell .vsm-refresh-btn:hover,
.gs2-vsm-legacy-shell .vsm-check-btn:hover,
.gs2-vsm-legacy-shell .vsm-stat-btn:hover,
.gs2-vsm-legacy-shell .vsm-stat-help:hover {
    background: var(--gs2-card-hover) !important;
    color: var(--gs2-link-hover) !important;
}

.gs2-vsm-legacy-shell .vsm-dash-help,
.gs2-vsm-legacy-shell input[type="submit"] {
    min-height: 32px !important;
    padding: 6px 10px !important;
    border: 1px solid var(--gs2-blue) !important;
    border-radius: 6px !important;
    background: var(--gs2-blue) !important;
    color: var(--gs2-bg) !important;
}

.gs2-vsm-legacy-shell .vsm-refresh-head {
    display: flex !important;
    align-items: flex-start !important;
    justify-content: space-between !important;
    gap: 12px !important;
    margin-bottom: 14px !important;
}

.gs2-vsm-legacy-shell .vsm-all-head {
    display: flex !important;
    align-items: flex-start !important;
    justify-content: space-between !important;
    gap: 12px !important;
    margin-bottom: 14px !important;
}

.gs2-vsm-legacy-shell .vsm-all-title {
    margin: 0 0 4px !important;
    font-size: 1.25rem !important;
    line-height: 1.2 !important;
}

.gs2-vsm-legacy-shell .vsm-all-card {
    display: grid !important;
    gap: 10px !important;
}

.gs2-vsm-legacy-shell .vsm-all-card p {
    margin: 0 !important;
}

.gs2-vsm-legacy-shell .vsm-all-actions {
    display: flex !important;
    flex-wrap: wrap !important;
    gap: 8px !important;
    margin-top: 4px !important;
}

.gs2-vsm-legacy-shell .vsm-all-actions .vsm-all-btn {
    display: inline-flex !important;
    width: auto !important;
    align-items: center !important;
    justify-content: center !important;
}

.gs2-vsm-legacy-shell .vsm-all-primary {
    border-color: color-mix(in srgb, #2563eb 58%, var(--gs2-line)) !important;
    background: color-mix(in srgb, #2563eb 14%, var(--gs2-panel)) !important;
    color: var(--gs2-link) !important;
    font-weight: 700 !important;
}

.gs2-vsm-legacy-shell .vsm-refresh-title {
    margin: 0 0 4px !important;
    font-size: 1.25rem !important;
    line-height: 1.2 !important;
}

.gs2-vsm-legacy-shell .vsm-refresh-panel {
    display: grid !important;
    gap: 8px !important;
}

.gs2-vsm-legacy-shell .vsm-refresh-row {
    padding: 8px 10px !important;
    border: 1px solid var(--gs2-line) !important;
    border-radius: 6px !important;
    background: color-mix(in srgb, var(--gs2-panel) 78%, var(--gs2-card-soft)) !important;
    color: var(--gs2-text) !important;
}

.gs2-vsm-legacy-shell .vsm-refresh-table-wrap {
    max-height: 48vh !important;
    overflow: auto !important;
    margin-top: 8px !important;
    border: 1px solid var(--gs2-line) !important;
    border-radius: 8px !important;
    background: var(--gs2-panel) !important;
}

.gs2-vsm-legacy-shell .vsm-refresh-table {
    width: 100% !important;
    border-collapse: collapse !important;
    background: var(--gs2-panel) !important;
    color: var(--gs2-text) !important;
}

.gs2-vsm-legacy-shell .vsm-refresh-table th {
    position: sticky !important;
    top: 0 !important;
    z-index: 2 !important;
    padding: 8px 10px !important;
    background: var(--gs2-card-soft) !important;
    color: var(--gs2-text) !important;
    border-bottom: 1px solid var(--gs2-line) !important;
    text-align: left !important;
}

.gs2-vsm-legacy-shell .vsm-refresh-table td {
    padding: 7px 10px !important;
    background: var(--gs2-panel) !important;
    color: var(--gs2-text) !important;
    border-bottom: 1px solid var(--gs2-line) !important;
}

.gs2-vsm-legacy-shell .vsm-refresh-table tbody tr:nth-child(even) td {
    background: var(--gs2-table-zebra) !important;
}

.gs2-vsm-legacy-shell input[type="text"],
.gs2-vsm-legacy-shell textarea {
    border: 1px solid var(--gs2-line) !important;
    border-radius: 6px !important;
    background: var(--gs2-card-soft) !important;
    color: var(--gs2-text) !important;
}

.gs2-vsm-legacy-shell .vsm-report-meta {
    display: flex !important;
    flex-wrap: wrap !important;
    gap: 8px !important;
    margin: 10px 0 12px !important;
}

.gs2-vsm-legacy-shell .vsm-report-chip {
    padding: 6px 8px !important;
    border: 1px solid color-mix(in srgb, #d97706 32%, var(--gs2-line)) !important;
    border-radius: 6px !important;
    background: color-mix(in srgb, #d97706 9%, var(--gs2-card-soft)) !important;
    color: var(--gs2-text) !important;
    font-size: 0.78rem !important;
    font-weight: 800 !important;
}

.gs2-vsm-legacy-shell .vsm-report-table-wrap {
    max-height: 62vh !important;
    overflow: auto !important;
    border: 1px solid var(--gs2-line) !important;
    border-radius: 8px !important;
    background: var(--gs2-panel) !important;
}

.gs2-vsm-legacy-shell #registeredLinesTable,
.gs2-vsm-legacy-shell #unregisteredLinesTable {
    width: 100% !important;
    border-collapse: collapse !important;
    background: var(--gs2-panel) !important;
    color: var(--gs2-text) !important;
}

.gs2-vsm-legacy-shell #registeredLinesTable th,
.gs2-vsm-legacy-shell #unregisteredLinesTable th {
    position: sticky !important;
    top: 0 !important;
    z-index: 2 !important;
    padding: 8px 10px !important;
    background: var(--gs2-card-soft) !important;
    color: var(--gs2-text) !important;
    border-bottom: 1px solid var(--gs2-line) !important;
    text-align: left !important;
}

.gs2-vsm-legacy-shell #registeredLinesTable td,
.gs2-vsm-legacy-shell #unregisteredLinesTable td {
    padding: 7px 10px !important;
    background: var(--gs2-panel) !important;
    color: var(--gs2-text) !important;
    border-bottom: 1px solid var(--gs2-line) !important;
}

.gs2-vsm-legacy-shell #registeredLinesTable tbody tr:nth-child(even) td,
.gs2-vsm-legacy-shell #unregisteredLinesTable tbody tr:nth-child(even) td {
    background: var(--gs2-table-zebra) !important;
}

.gs2-table td.gs2-qm-lease-customer-cm,
.gs2-qm-lease-customer-cm {
    color: var(--gs2-text) !important;
    font-weight: 700;
}

.gs2-table td.gs2-qm-lease-customer-cpe,
.gs2-qm-lease-customer-cpe {
    color: var(--gs2-green) !important;
    font-weight: 700;
}

.gs2-table td.gs2-qm-lease-customer-mta,
.gs2-qm-lease-customer-mta {
    color: var(--gs2-red) !important;
    font-weight: 700;
}

.gs2-table td.gs2-qm-lease-customer-stb,
.gs2-qm-lease-customer-stb {
    color: #8b5cf6 !important;
    font-weight: 700;
}

.gs2-table td.gs2-qm-lease-customer-cm *,
.gs2-table td.gs2-qm-lease-customer-cpe *,
.gs2-table td.gs2-qm-lease-customer-mta *,
.gs2-table td.gs2-qm-lease-customer-stb * {
    color: inherit !important;
}

.gs2-staff-control-card {
    border-left: 6px solid var(--gs2-staff-card-accent, var(--gs2-blue));
    background: color-mix(in srgb, var(--gs2-staff-card-accent, var(--gs2-blue)) 6%, var(--gs2-panel));
    box-shadow: inset 1px 0 0 color-mix(in srgb, var(--gs2-staff-card-accent, var(--gs2-blue)) 18%, transparent);
}

.gs2-staff-control-card > summary {
    align-items: start;
    cursor: pointer;
    display: grid;
    gap: 12px;
    grid-template-columns: minmax(0, 1fr) auto;
    list-style: none;
}

.gs2-staff-control-card > summary::-webkit-details-marker {
    display: none;
}

.gs2-staff-control-card > summary h3 {
    margin-top: 0;
}

.gs2-staff-control-card > summary p {
    margin-bottom: 0;
}

.gs2-staff-card-body {
    border: 1px solid color-mix(in srgb, var(--gs2-staff-card-accent, var(--gs2-blue)) 24%, var(--gs2-line));
    border-radius: 8px;
    background: color-mix(in srgb, var(--gs2-card-soft) 82%, var(--gs2-panel));
    margin-top: 14px;
    padding: 12px;
}

.gs2-staff-control-card:not([open]) {
    align-self: start;
}

.gs2-staff-control-card .gs2-action-strip {
    display: grid;
    gap: 10px;
    grid-template-columns: 1fr;
    margin: 0;
}

.gs2-staff-control-card .gs2-action-strip + .gs2-action-strip {
    margin-top: 10px;
}

.gs2-staff-control-card .gs2-action-button {
    border-color: color-mix(in srgb, var(--gs2-staff-card-accent, var(--gs2-blue)) 24%, var(--gs2-line));
    background: color-mix(in srgb, var(--gs2-staff-card-accent, var(--gs2-blue)) 7%, var(--gs2-card-soft));
    justify-content: flex-start;
    min-height: 46px;
    padding: 8px 10px;
    width: 100%;
}

.gs2-staff-control-card .gs2-theme-options {
    margin-top: 0;
}

.gs2-staff-control-card .gs2-theme-option,
.gs2-staff-control-card .gs2-roadmap-item,
.gs2-staff-control-card .gs2-cst-summary-item,
.gs2-staff-control-card .gs2-staff-refresh-confirm {
    border-color: color-mix(in srgb, var(--gs2-staff-card-accent, var(--gs2-blue)) 24%, var(--gs2-line));
    background: color-mix(in srgb, var(--gs2-staff-card-accent, var(--gs2-blue)) 7%, var(--gs2-card-soft));
}

.gs2-staff-control-card .gs2-action-button:hover,
.gs2-staff-control-card .gs2-theme-option:hover,
.gs2-staff-control-card .gs2-roadmap-item:hover,
.gs2-staff-control-card .gs2-cst-summary-item:hover,
.gs2-staff-control-card .gs2-staff-refresh-confirm:hover {
    border-color: var(--gs2-help-hover-border);
    background: color-mix(in srgb, var(--gs2-staff-card-accent, var(--gs2-blue)) 10%, var(--gs2-card-hover));
}

.gs2-staff-theme-card {
    --gs2-staff-card-accent: #0ea5e9;
}

.gs2-staff-provider-view-card {
    --gs2-staff-card-accent: #14b8a6;
}

.gs2-staff-mnt-placeholders {
    --gs2-staff-card-accent: #22c55e;
}

.gs2-staff-reporting-tools {
    --gs2-staff-card-accent: #f59e0b;
}

.gs2-staff-cfg-templates {
    --gs2-staff-card-accent: #8b5cf6;
}

.gs2-staff-vsm-tools {
    --gs2-staff-card-accent: #ec4899;
}

.gs2-staff-refresh-card {
    --gs2-staff-card-accent: #64748b;
}

.gs2-qm-staff-panel.is-ok {
    --gs2-staff-card-accent: var(--gs2-green);
    background: color-mix(in srgb, var(--gs2-badge-ok-bg) 46%, var(--gs2-panel));
}

.gs2-qm-staff-panel.is-danger {
    --gs2-staff-card-accent: var(--gs2-red);
    background: color-mix(in srgb, var(--gs2-red) 8%, var(--gs2-panel));
}

.gs2-staff-provisioning-grid {
    gap: 10px;
    grid-template-columns: 1fr;
    margin-top: 14px;
}

.gs2-staff-provider-view-form {
    display: grid;
    gap: 12px;
}

.gs2-staff-provider-view-form label {
    display: grid;
    gap: 6px;
}

.gs2-staff-provider-view-form label > span {
    color: var(--gs2-muted);
    font-size: 0.78rem;
    font-weight: 700;
    text-transform: uppercase;
}

.gs2-staff-provider-view-form select {
    border: 1px solid color-mix(in srgb, var(--gs2-staff-card-accent, var(--gs2-blue)) 24%, var(--gs2-line));
    border-radius: 8px;
    background: var(--gs2-panel);
    color: var(--gs2-text);
    min-height: 42px;
    padding: 8px 10px;
}

.gs2-provider-view-banner {
    align-items: center;
    background: color-mix(in srgb, #14b8a6 10%, var(--gs2-panel));
    border: 1px solid color-mix(in srgb, #14b8a6 35%, var(--gs2-line));
    border-left: 5px solid #14b8a6;
    border-radius: 8px;
    display: grid;
    gap: 12px;
    grid-template-columns: minmax(0, 1fr) auto;
    margin-bottom: 16px;
    padding: 12px 14px;
}

.gs2-provider-view-banner strong,
.gs2-provider-view-banner span {
    display: block;
}

.gs2-provider-view-banner strong {
    color: var(--gs2-text);
}

.gs2-provider-view-banner span {
    color: var(--gs2-muted);
    font-size: 0.9rem;
}

.gs2-provider-view-banner .gs2-action-button {
    min-height: 40px;
    white-space: nowrap;
}

@media (max-width: 720px) {
    .gs2-provider-view-banner {
        grid-template-columns: 1fr;
    }
}

.gs2-staff-control-card .gs2-cst-summary-item {
    align-items: center;
    display: grid;
    gap: 2px 12px;
    grid-template-columns: minmax(0, 1fr) auto;
    min-height: 46px;
    padding: 8px 10px;
}

.gs2-staff-control-card .gs2-cst-summary-item span {
    color: var(--gs2-text);
    font-size: 13px;
    line-height: 1.2;
    text-transform: none;
}

.gs2-staff-control-card .gs2-cst-summary-item strong {
    grid-column: 2;
    grid-row: 1 / span 2;
    margin: 0;
    font-size: 1.25rem;
    line-height: 1;
}

.gs2-staff-control-card .gs2-cst-summary-item small {
    font-size: 12px;
    font-weight: 400;
    line-height: 1.25;
    text-transform: none;
}

.gs2-staff-control-card .gs2-cst-summary-item.is-ok {
    border-color: var(--gs2-badge-ok-border);
    background: var(--gs2-badge-ok-bg);
}

.gs2-staff-control-card .gs2-cst-summary-item.is-danger {
    border-color: var(--gs2-red);
    background: color-mix(in srgb, var(--gs2-red) 14%, var(--gs2-panel));
}

.gs2-platform-integrity-form {
    align-items: end;
}

.gs2-platform-integrity-actions {
    flex-basis: 100%;
    margin-top: 0.75rem;
}

.gs2-platform-integrity-results {
    max-height: 62vh;
    overflow: auto;
}

.gs2-platform-integrity-results .gs2-table {
    min-width: 1080px;
}

.gs2-platform-integrity-results .gs2-table thead th {
    position: sticky;
    top: 0;
    z-index: 2;
    background: var(--gs2-panel);
}

.gs2-platform-integrity-results .gs2-platform-integrity-missing {
    background: var(--gs2-badge-warn-bg);
}

.gs2-platform-integrity-results .gs2-platform-integrity-missing td {
    border-top-color: var(--gs2-badge-warn-border);
    border-bottom-color: var(--gs2-badge-warn-border);
}

.gs2-platform-stale-results {
    max-height: 62vh;
    overflow: auto;
}

.gs2-platform-stale-results .gs2-table {
    min-width: 980px;
}

.gs2-platform-stale-results .gs2-table thead th {
    position: sticky;
    top: 0;
    z-index: 2;
    background: var(--gs2-panel);
}

.gs2-platform-headend-results {
    max-height: 62vh;
    overflow: auto;
}

.gs2-platform-headend-results .gs2-table {
    min-width: 1040px;
}

.gs2-platform-headend-results .gs2-table thead th {
    position: sticky;
    top: 0;
    z-index: 2;
    background: var(--gs2-panel);
}

.gs2-platform-headend-add-form {
    align-items: end;
}

.gs2-platform-headend-add-actions {
    align-self: end;
    grid-column: 1 / -1;
    margin-top: 0.75rem;
}

.gs2-platform-headend-add-form input,
.gs2-platform-headend-add-form select,
.gs2-platform-headend-edit-table input,
.gs2-platform-headend-edit-table select {
    width: 100%;
    min-width: 88px;
    border-color: color-mix(in srgb, var(--gs2-line) 82%, var(--gs2-blue));
    background: color-mix(in srgb, var(--gs2-card-soft) 82%, var(--gs2-panel));
    color: var(--gs2-text);
}

.gs2-platform-headend-edit-table select[name="dsindex"],
.gs2-platform-headend-edit-table select[name="usindex"] {
    min-width: 72px;
}

.gs2-platform-headend-add-form input:focus,
.gs2-platform-headend-add-form select:focus,
.gs2-platform-headend-edit-table input:focus,
.gs2-platform-headend-edit-table select:focus {
    border-color: var(--gs2-blue);
    box-shadow: 0 0 0 3px var(--gs2-focus);
    outline: none;
}

.gs2-platform-headend-add-form input::placeholder,
.gs2-platform-headend-add-form select:invalid {
    color: var(--gs2-muted);
    font-style: italic;
}

.gs2-preview-toggle {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    min-height: 36px;
    padding: 7px 11px;
    border: 1px solid color-mix(in srgb, #f59e0b 48%, var(--gs2-line));
    border-radius: 6px;
    background: color-mix(in srgb, #f59e0b 12%, var(--gs2-panel));
    color: var(--gs2-text);
    font-weight: 700;
}

.gs2-preview-toggle input {
    width: 18px;
    height: 18px;
    accent-color: #f59e0b;
}

.gs2-filter-bar {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    align-items: end;
    margin: 0 0 14px;
}

.gs2-filter-bar label {
    display: grid;
    gap: 4px;
    min-width: 180px;
    color: var(--gs2-muted);
    font-size: 0.76rem;
    font-weight: 700;
    text-transform: uppercase;
}

.gs2-filter-bar input,
.gs2-filter-bar select {
    min-height: 34px;
    border: 1px solid var(--gs2-line);
    border-radius: 6px;
    background: var(--gs2-card);
    color: var(--gs2-text);
    font: inherit;
    padding: 7px 9px;
}

@media (max-width: 900px) {
    .gs2-cst-summary-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .gs2-cst-form fieldset {
        grid-template-columns: 1fr;
    }

    .gs2-cst-voice-line {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 620px) {
    .gs2-cst-summary-grid {
        grid-template-columns: 1fr;
    }
}

.gs2-sort-button {
    appearance: none;
    border: 0;
    background: transparent;
    color: inherit;
    cursor: pointer;
    font: inherit;
    font-weight: 700;
    padding: 0 14px 0 0;
    position: relative;
    text-align: left;
    text-transform: inherit;
}

.gs2-sort-button::after {
    content: "";
    border-left: 4px solid transparent;
    border-right: 4px solid transparent;
    border-top: 5px solid currentColor;
    opacity: 0.35;
    position: absolute;
    right: 0;
    top: 50%;
    transform: translateY(-40%);
}

.gs2-table th[data-sort-direction="asc"] .gs2-sort-button::after {
    border-top: 0;
    border-bottom: 5px solid currentColor;
    opacity: 0.85;
}

.gs2-table th[data-sort-direction="desc"] .gs2-sort-button::after {
    opacity: 0.85;
}

.gs2-table-scroll {
    overflow-x: auto;
}

.gs2-cm-table {
    min-width: 1120px;
}

.gs2-num {
    text-align: right;
    white-space: nowrap;
}

.gs2-rf-value,
.gs2-status-pill {
    display: inline-flex;
    align-items: center;
    min-height: 24px;
    border: 1px solid var(--gs2-line);
    border-radius: 999px;
    padding: 3px 8px;
    font-size: 12px;
    font-weight: 700;
}

.gs2-rf-value.ok,
.gs2-status-pill.ok {
    color: var(--gs2-green);
    background: var(--gs2-badge-ok-bg);
    border-color: var(--gs2-badge-ok-border);
}

.gs2-rf-value.warn,
.gs2-status-pill.warn {
    color: var(--gs2-red);
    background: var(--gs2-badge-warn-bg);
    border-color: var(--gs2-badge-warn-border);
}

.gs2-rf-value.neutral,
.gs2-status-pill.neutral {
    color: var(--gs2-gray);
    background: var(--gs2-badge-neutral-bg);
}

.gs2-cmcompare-value.modem-a {
    color: var(--gs2-green);
    background: color-mix(in srgb, var(--gs2-green) 12%, transparent);
    border-color: color-mix(in srgb, var(--gs2-green) 45%, var(--gs2-line));
}

.gs2-cmcompare-value.modem-b {
    color: var(--gs2-blue);
    background: color-mix(in srgb, var(--gs2-blue) 12%, transparent);
    border-color: color-mix(in srgb, var(--gs2-blue) 45%, var(--gs2-line));
}

.gs2-cmcompare-value.health-warn {
    box-shadow: inset 0 -2px 0 var(--gs2-red);
}

.gs2-cmcompare-source-marker {
    border: 1px solid var(--gs2-line);
    border-radius: 999px;
    color: var(--gs2-muted);
    font-size: 11px;
    padding: 2px 7px;
}

.gs2-badge.ok {
    color: var(--gs2-green);
    background: var(--gs2-badge-ok-bg);
    border-color: var(--gs2-badge-ok-border);
}

.gs2-async-title-ok {
    color: var(--gs2-green);
}

.gs2-heading-status {
    display: inline-flex;
    align-items: center;
    margin-left: 0.45rem;
    font-size: 0.72rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0;
    color: var(--gs2-gray);
}

.gs2-heading-status.ok {
    color: var(--gs2-green);
}

.gs2-heading-status.warn {
    color: var(--gs2-red);
}

.gs2-badge.warn {
    color: var(--gs2-red);
    background: var(--gs2-badge-warn-bg);
    border-color: var(--gs2-badge-warn-border);
}

.gs2-badge.neutral {
    color: var(--gs2-gray);
    background: var(--gs2-badge-neutral-bg);
}

.gs2-empty,
.gs2-list,
.gs2-help-body {
    border: 1px dashed var(--gs2-dashed-border);
    border-radius: 8px;
    padding: 14px;
    color: var(--gs2-muted);
    background: var(--gs2-card-soft);
}

.gs2-disclosure {
    margin-top: 14px;
    border: 1px solid var(--gs2-line);
    border-radius: 8px;
    background: var(--gs2-card-soft);
}

.gs2-disclosure summary {
    cursor: pointer;
    padding: 12px 14px;
    color: var(--gs2-link);
    font-weight: 700;
}

.gs2-disclosure[open] summary {
    border-bottom: 1px solid var(--gs2-line);
}

.gs2-disclosure .gs2-table {
    border-radius: 0 0 8px 8px;
}

.gs2-list {
    display: grid;
    gap: 8px;
}

.gs2-profile-summary {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 12px;
}

.gs2-profile-summary > div {
    display: grid;
    gap: 4px;
    min-height: 62px;
    padding: 12px;
    border: 1px solid var(--gs2-line);
    border-radius: 8px;
    background: var(--gs2-card-soft);
}

.gs2-profile-form {
    display: grid;
    gap: 16px;
}

.gs2-profile-form-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
}

.gs2-profile-form label {
    display: grid;
    gap: 6px;
    padding: 12px;
    border: 1px solid var(--gs2-line);
    border-radius: 8px;
    background: var(--gs2-card-soft);
}

.gs2-profile-form span {
    color: var(--gs2-muted);
    font-size: 12px;
    font-weight: 700;
}

.gs2-profile-form input,
.gs2-profile-form select {
    min-height: 38px;
    border: 1px solid var(--gs2-line);
    border-radius: 6px;
    background: var(--gs2-panel);
    color: var(--gs2-text);
    padding: 7px 9px;
    font: inherit;
}

.gs2-profile-form input:focus,
.gs2-profile-form select:focus {
    border-color: var(--gs2-blue);
    outline: 3px solid var(--gs2-focus);
}

.gs2-profile-form-actions {
    display: flex;
    align-items: center;
    gap: 12px;
    flex-wrap: wrap;
}

.gs2-profile-form-actions span {
    color: var(--gs2-muted);
    font-size: 13px;
}

.gs2-note {
    margin-top: 12px;
    color: var(--gs2-muted);
    font-size: 13px;
}

.gs2-theme-options {
    display: grid;
    gap: 10px;
    margin-top: 14px;
}

.gs2-theme-profile-options {
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.gs2-theme-option {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    width: 100%;
    min-height: 46px;
    padding: 8px 10px;
    border: 1px solid var(--gs2-line);
    border-radius: 8px;
    background: var(--gs2-card-soft);
    color: var(--gs2-text);
    cursor: pointer;
    font: inherit;
    font-weight: 700;
    text-align: left;
}

.gs2-theme-option:hover {
    border-color: var(--gs2-help-hover-border);
    background: var(--gs2-card-hover);
}

.gs2-theme-option:focus-visible {
    outline: 3px solid var(--gs2-focus);
    outline-offset: 2px;
}

.gs2-theme-option.is-current {
    border-color: var(--gs2-blue);
    background: var(--gs2-card-hover);
    box-shadow: inset 3px 0 0 var(--gs2-blue);
}

.gs2-theme-option-label {
    display: grid;
    gap: 2px;
}

.gs2-theme-option-label span {
    color: var(--gs2-muted);
    font-size: 12px;
    font-weight: 400;
}

.gs2-theme-swatch {
    display: inline-flex;
    gap: 4px;
    flex: 0 0 auto;
}

.gs2-theme-swatch span {
    width: 16px;
    height: 16px;
    border-radius: 3px;
    border: 1px solid rgba(0, 0, 0, 0.18);
}

.gs2-theme-option-action {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 68px;
    min-height: 28px;
    padding: 4px 10px;
    border: 1px solid var(--gs2-line);
    border-radius: 999px;
    background: var(--gs2-panel);
    color: var(--gs2-link);
    font-size: 12px;
    font-weight: 800;
}

.gs2-theme-option.is-current .gs2-theme-option-action {
    border-color: var(--gs2-green);
    background: var(--gs2-badge-ok-bg);
    color: var(--gs2-green);
}

.gs2-staff-refresh-card {
    grid-column: span 2;
}

.gs2-staff-refresh-confirm {
    display: grid;
    gap: 6px;
    margin: 12px 0;
}

.gs2-staff-refresh-confirm span {
    color: var(--gs2-muted);
    font-size: 12px;
    font-weight: 700;
}

.gs2-staff-refresh-confirm input {
    min-height: 34px;
    border: 1px solid var(--gs2-line);
    border-radius: 6px;
    background: var(--gs2-panel);
    color: var(--gs2-text);
    padding: 7px 9px;
    font: inherit;
}

.gs2-staff-refresh-output {
    max-height: 280px;
    overflow: auto;
    white-space: pre-wrap;
    margin-top: 12px;
    padding: 12px;
    border: 1px solid var(--gs2-line);
    border-radius: 8px;
    background: var(--gs2-panel);
    color: var(--gs2-text);
    font-size: 12px;
}

.gs2-import-job-card {
    display: flex;
    align-items: center;
    gap: 14px;
    margin: 14px 0;
    padding: 12px 14px;
    border: 1px solid var(--gs2-line);
    border-left: 5px solid var(--gs2-blue);
    border-radius: 8px;
    background: var(--gs2-panel);
}

.gs2-import-job-card strong {
    display: block;
    color: var(--gs2-text);
    font-size: 13px;
}

.gs2-import-job-card p {
    margin: 3px 0 0;
    color: var(--gs2-muted);
    font-size: 12px;
}

.gs2-login-panel {
    max-width: 520px;
}

.gs2-login-form {
    display: grid;
    gap: 14px;
}

.gs2-login-form label {
    display: grid;
    gap: 6px;
}

.gs2-login-form span {
    color: var(--gs2-muted);
    font-size: 12px;
    font-weight: 700;
}

.gs2-login-form input {
    min-height: 36px;
    border: 1px solid var(--gs2-line);
    border-radius: 6px;
    background: var(--gs2-panel);
    color: var(--gs2-text);
    padding: 7px 9px;
    font: inherit;
}

.gs2-login-error {
    margin-bottom: 14px;
    color: var(--gs2-red);
}

.gs2-preference-form {
    display: flex;
    align-items: end;
    gap: 10px;
    flex-wrap: wrap;
}

.gs2-preference-form label {
    display: grid;
    gap: 6px;
    min-width: min(100%, 320px);
}

.gs2-preference-form span {
    color: var(--gs2-muted);
    font-size: 12px;
    font-weight: 700;
}

.gs2-preference-form select {
    min-height: 38px;
    border: 1px solid var(--gs2-line);
    border-radius: 6px;
    background: var(--gs2-panel);
    color: var(--gs2-text);
    padding: 7px 9px;
    font: inherit;
}

@media (max-width: 920px) {
    .gs2-app-shell {
        grid-template-columns: 1fr;
        grid-template-areas:
            "topbar"
            "sidebar"
            "main";
    }

    .gs2-app-shell.is-sidebar-collapsed {
        grid-template-columns: 1fr;
    }

    html.is-sidebar-collapsed .gs2-app-shell {
        grid-template-columns: 1fr;
    }

    .gs2-sidebar {
        position: static;
    }

    .gs2-app-shell.is-sidebar-collapsed .gs2-sidebar,
    html.is-sidebar-collapsed .gs2-sidebar {
        padding: 18px;
    }

    .gs2-app-shell.is-sidebar-collapsed .gs2-sidebar-head,
    html.is-sidebar-collapsed .gs2-sidebar-head {
        justify-content: flex-start;
    }

    .gs2-app-shell.is-sidebar-collapsed .gs2-sidebar-label,
    .gs2-app-shell.is-sidebar-collapsed .gs2-nav-link,
    html.is-sidebar-collapsed .gs2-sidebar-label,
    html.is-sidebar-collapsed .gs2-nav-link {
        width: auto;
        padding: 9px 10px;
        color: inherit;
    }

    .gs2-app-shell.is-sidebar-collapsed .gs2-nav-link::before,
    html.is-sidebar-collapsed .gs2-nav-link::before {
        content: none;
    }

    .gs2-app-shell.is-sidebar-collapsed .gs2-sidebar-label,
    html.is-sidebar-collapsed .gs2-sidebar-label {
        padding: 0;
    }

    .gs2-app-shell.is-sidebar-collapsed .gs2-sidebar-toggle,
    html.is-sidebar-collapsed .gs2-sidebar-toggle {
        position: static;
    }

    .gs2-nav,
    .gs2-module-grid,
    .gs2-profile-summary,
    .gs2-profile-form-grid,
    .gs2-theme-profile-options,
    .gs2-grid-3,
    .gs2-grid-4,
    .gs2-home-hero,
    .gs2-home-modules,
    .gs2-rf-channel-grid,
    .gs2-rf-workbench,
    .gs2-modem-workbench,
    .gs2-rf-supporting-stats {
        grid-template-columns: 1fr;
    }

    .gs2-health-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .gs2-topbar {
        display: block;
    }

    .gs2-title-group {
        align-items: flex-start;
        display: block;
    }

    .gs2-page-title {
        padding-left: 0;
        border-left: 0;
        margin-top: 12px;
    }

    .gs2-top-actions {
        justify-content: flex-start;
        margin-top: 12px;
    }

    .gs2-account-cluster {
        width: 100%;
        margin-left: 0;
        padding-left: 0;
        border-left: 0;
    }

    .gs2-staff-refresh-card {
        grid-column: auto;
    }
}
