.gp-console {
    --bg0: #05142f;
    --bg1: #0a377e;
    --bg2: #0f4d9f;
    --bg3: #0b7ea9;
    --card: #132f63;
    --line: rgba(161, 201, 255, 0.3);
    --txt: #edf5ff;
    --muted: #bed2ef;
    --cyan: #67deff;
    --green: #34d399;
    --amber: #fbbf24;
    --red: #f87171;
    --focus: #89e5ff;
    --pad: 16px;
    --gap: 14px;
    color: var(--txt);
    padding: 28px 0 56px;
    position: relative;
    overflow: hidden;
    background: radial-gradient(circle at 9% 7%, rgba(87, 164, 255, 0.24), transparent 36%), radial-gradient(circle at 86% 0, rgba(56, 189, 248, 0.24), transparent 34%), radial-gradient(circle at 82% 92%, rgba(52, 211, 153, 0.18), transparent 36%), linear-gradient(145deg, var(--bg0), var(--bg1) 52%, var(--bg2) 82%, var(--bg3));
}

.gp-console::before,
.gp-console::after {
    content: "";
    position: absolute;
    pointer-events: none;
    z-index: 0;
}

.gp-console::before {
    width: 520px;
    height: 520px;
    right: -200px;
    top: -220px;
    border-radius: 50%;
    background: radial-gradient(circle, rgba(107, 255, 216, 0.22), transparent 70%);
    filter: blur(8px);
}

.gp-console::after {
    width: 460px;
    height: 460px;
    left: -160px;
    bottom: -260px;
    border-radius: 50%;
    background: radial-gradient(circle, rgba(96, 147, 255, 0.28), transparent 70%);
    filter: blur(10px);
}

.gp-console,
.gp-console * {
    box-sizing: border-box;
}

.gp-console .shell {
    display: grid;
    gap: 16px;
    position: relative;
    z-index: 1;
}

.gp-console .gp-layout {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(360px, 430px);
    gap: 16px;
    align-items: start;
}

.gp-console .gp-main {
    min-width: 0;
}

.gp-console .gp-mobile-panel {
    position: sticky;
    top: 128px;
    align-self: start;
    display: grid;
    grid-template-columns: repeat(6, minmax(0, 1fr));
    gap: 12px;
    grid-auto-flow: dense;
    border: 1px solid rgba(199, 214, 238, 0.56);
    border-radius: 18px;
    padding: 12px;
    background: linear-gradient(160deg, rgba(249, 251, 255, 0.95), rgba(237, 242, 250, 0.93));
    box-shadow: 0 24px 46px rgba(8, 17, 31, 0.23), 0 12px 26px rgba(8, 17, 31, 0.14);
    backdrop-filter: blur(6px);
}

.gp-console .gp-mobile-panel>* {
    min-width: 0;
}

.gp-console .gp-mobile-panel .span-full {
    grid-column: span 6;
}

.gp-console .gp-mobile-panel .span-half {
    grid-column: span 3;
}

.gp-console .gp-mobile-panel .span-third {
    grid-column: span 2;
}

.gp-console .gp-phone,
.gp-console .gp-device-stack,
.gp-console .gp-side-panels {
    grid-column: span 6;
}

.gp-console .gp-phone {
    position: relative;
    border: 1px solid #d9dee8;
    border-radius: 32px;
    padding: 11px;
    background: linear-gradient(180deg, #fbfcfe, #f2f5fa);
    box-shadow: 0 24px 44px rgba(12, 21, 37, 0.2), 0 10px 20px rgba(12, 21, 37, 0.12);
    overflow: hidden;
}

.gp-console .gp-phone::before {
    content: "";
    position: absolute;
    inset: 2px;
    border-radius: 30px;
    pointer-events: none;
    background: linear-gradient(155deg, rgba(255, 255, 255, 0.78), transparent 38%);
}

.gp-console .gp-phone::after {
    content: "";
    position: absolute;
    right: 16px;
    top: 18px;
    width: 38%;
    height: 22%;
    border-radius: 22px;
    pointer-events: none;
    background: linear-gradient(170deg, rgba(255, 255, 255, 0.42), transparent 72%);
    filter: blur(1px);
}

.gp-console .gp-phone-notch {
    width: 38%;
    height: 9px;
    border-radius: 999px;
    margin: 0 auto 8px;
    background: rgba(164, 173, 190, 0.52);
}

.gp-console .gp-phone-screen {
    border: 1px solid #dce3ef;
    border-radius: 22px;
    background: radial-gradient(circle at 16% 4%, rgba(197, 218, 255, 0.4), transparent 30%), #ffffff;
    padding: 12px;
    display: grid;
    gap: 10px;
    max-height: calc(100vh - 190px);
    overflow: auto;
    position: relative;
    z-index: 1;
}

.gp-console .gp-phone-head {
    border: 1px solid #e2e7f1;
    border-radius: 12px;
    background: #f7f9fc;
    padding: 9px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
}

.gp-console .gp-phone-head p {
    margin: 0;
    font: 700 0.58rem/1 var(--font-headline);
    letter-spacing: 0.09em;
    text-transform: uppercase;
    color: #627087;
}

.gp-console .gp-phone-head strong {
    font: 700 0.82rem/1 var(--font-headline);
    color: #1d2a3e;
}

.gp-console .gp-phone-head .btn {
    min-height: 30px;
    font-size: 0.62rem;
    padding: 0 8px;
}

.gp-console .gp-phone-kpis {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 6px;
}

.gp-console .gp-phone-kpis div {
    border: 1px solid #e2e8f2;
    border-radius: 10px;
    background: #f8fafd;
    padding: 7px 8px;
}

.gp-console .gp-phone-kpis span {
    display: block;
    color: #5f6f88;
    font: 700 0.56rem/1.1 var(--font-headline);
    letter-spacing: 0.07em;
    text-transform: uppercase;
    margin-bottom: 2px;
}

.gp-console .gp-phone-kpis strong {
    font: 700 0.94rem/1 var(--font-headline);
    color: #1c2b40;
}

.gp-console .gp-phone-card {
    border: 1px solid #e1e7f1;
    border-radius: 11px;
    background: #ffffff;
    padding: 8px;
    display: grid;
    gap: 7px;
    box-shadow: 0 6px 16px rgba(13, 24, 43, 0.06);
}

.gp-console .gp-phone-card h3 {
    margin: 0;
    font: 700 0.68rem/1.1 var(--font-headline);
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: #2a3c56;
}

.gp-console .gp-phone-card p {
    margin: 0;
    font-size: 0.71rem;
    color: #3d4f6a;
}

.gp-console .gp-phone-card-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 6px;
}

.gp-console .gp-phone-card-head span {
    font: 700 0.56rem/1 var(--font-headline);
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: #6a7d97;
}

.gp-console .gp-mini-list {
    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
    gap: 6px;
}

.gp-console .gp-mini-list li {
    border: 1px solid #e0e7f2;
    border-radius: 8px;
    background: #f8fbff;
    padding: 6px 7px;
    display: grid;
    gap: 2px;
}

.gp-console .gp-mini-list strong {
    font: 700 0.62rem/1.15 var(--font-headline);
    letter-spacing: 0.03em;
    color: #22354f;
}

.gp-console .gp-mini-list span {
    font-size: 0.66rem;
    color: #5f7392;
}

.gp-console .gp-mini-bars {
    display: grid;
    gap: 6px;
}

.gp-console .gp-mini-bar {
    display: grid;
    grid-template-columns: auto 1fr auto;
    gap: 6px;
    align-items: center;
}

.gp-console .gp-mini-bar span {
    font: 700 0.56rem/1 var(--font-headline);
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: #2f4666;
    min-width: 60px;
}

.gp-console .gp-mini-bar em {
    display: block;
    height: 7px;
    border-radius: 999px;
    background: #dfe8f4;
    overflow: hidden;
    font-style: normal;
}

.gp-console .gp-mini-bar i {
    display: block;
    height: 100%;
    border-radius: inherit;
    background: linear-gradient(90deg, #58e0ff, #35dba6);
}

.gp-console .gp-mini-bar strong {
    font: 700 0.58rem/1 var(--font-headline);
    color: #2a3f5f;
}

.gp-console .gp-device-stack {
    display: grid;
    grid-template-columns: repeat(6, minmax(0, 1fr));
    gap: 10px;
    grid-auto-flow: dense;
}

.gp-console .gp-device {
    position: relative;
    border: 1px solid #d9dfe8;
    border-radius: 20px;
    background: linear-gradient(180deg, #fcfdff, #f2f5fa);
    padding: 9px;
    box-shadow: 0 20px 34px rgba(10, 20, 36, 0.16), 0 8px 16px rgba(10, 20, 36, 0.1);
    overflow: hidden;
    min-width: 0;
    grid-column: span 3;
}

.gp-console .gp-device.span-half {
    grid-column: span 3;
}

.gp-console .gp-device.span-third {
    grid-column: span 2;
}

.gp-console .gp-device.span-full {
    grid-column: span 6;
}

.gp-console .gp-device::before {
    content: "";
    position: absolute;
    inset: 2px;
    border-radius: inherit;
    pointer-events: none;
    background: linear-gradient(150deg, rgba(255, 255, 255, 0.72), transparent 42%);
}

.gp-console .gp-device::after {
    content: "";
    position: absolute;
    right: 8px;
    top: 10px;
    width: 36%;
    height: 20%;
    border-radius: 14px;
    pointer-events: none;
    background: linear-gradient(160deg, rgba(255, 255, 255, 0.4), transparent 70%);
}

.gp-console .gp-device-shell {
    border: 1px solid #dfe6f0;
    border-radius: 14px;
    background: #ffffff;
    padding: 8px;
    display: grid;
    gap: 7px;
    position: relative;
    z-index: 1;
}

.gp-console .gp-device--tablet .gp-device-shell {
    min-height: 124px;
}

.gp-console .gp-device--laptop .gp-device-shell {
    min-height: 108px;
}

.gp-console .gp-device--watch .gp-device-shell,
.gp-console .gp-device--ops .gp-device-shell,
.gp-console .gp-device--desk .gp-device-shell {
    min-height: 92px;
}

.gp-console .gp-device-dots {
    display: flex;
    gap: 4px;
    align-items: center;
}

.gp-console .gp-device-dots span {
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: #cdd7e6;
}

.gp-console .gp-device-line {
    height: 8px;
    border-radius: 999px;
    width: 64%;
    background: #e2e9f4;
}

.gp-console .gp-device-line--wide {
    width: 84%;
}

.gp-console .gp-device-blocks {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 6px;
}

.gp-console .gp-device-blocks span,
.gp-console .gp-device-row span {
    display: block;
    border-radius: 7px;
    background: linear-gradient(145deg, #ebf1f9, #dce7f5);
    min-height: 26px;
}

.gp-console .gp-device-row {
    display: grid;
    gap: 6px;
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.gp-console .gp-device--laptop .gp-device-row:last-child,
.gp-console .gp-device--desk .gp-device-row:last-child {
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.gp-console .gp-device-hinge {
    width: 88%;
    height: 8px;
    margin: 7px auto 0;
    border-radius: 999px;
    background: linear-gradient(180deg, #eef3f9, #d8e1ee);
}

.gp-console .gp-side-panels {
    display: grid;
    grid-template-columns: repeat(12, minmax(0, 1fr));
    gap: 10px;
    align-items: stretch;
    grid-auto-flow: dense;
}

.gp-console .gp-side-panels .card {
    animation: none;
    min-height: 100%;
    border-color: #d2deee;
    background: linear-gradient(165deg, #ffffff, #edf3fa);
    box-shadow: 0 10px 24px rgba(9, 18, 34, 0.14);
    color: #213550;
}

.gp-console .gp-side-panels .card h2 {
    color: #1f324b;
}

.gp-console .gp-side-panels .card .ico {
    color: #2c80ad;
}

.gp-console .gp-side-panels .card .badge {
    border-color: rgba(52, 121, 165, 0.34);
    background: rgba(176, 217, 243, 0.33);
    color: #25506c;
}

.gp-console .gp-side-panels .card.side-full {
    grid-column: span 12 !important;
}

.gp-console .gp-side-panels .card.side-half {
    grid-column: span 6 !important;
}

.gp-console .gp-side-panels .card.side-third {
    grid-column: span 4 !important;
}

.gp-console .gp-side-panels .chart {
    min-height: 176px;
    border-color: #d4dfed;
    background: #f8fbff;
}

.gp-console .gp-side-panels .chart canvas {
    height: 158px !important;
}

.gp-console .gp-side-panels .a-btn {
    border-color: #cdddf1;
    background: #f0f6ff;
    color: #27415f;
}

.gp-console .gp-side-panels .feedback {
    border-color: #d1deed;
    background: #f6faff;
    color: #3a5472;
}

.gp-console .gp-side-panels .focus li {
    border-color: #d4e0ef;
    background: #f6faff;
    color: #37506e;
}

.gp-console .gp-side-panels .focus li strong {
    color: #213854;
}

.gp-console .gp-fill-card {
    min-height: 216px;
    align-content: start;
}

.gp-console .gp-fill-list {
    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
    gap: 7px;
}

.gp-console .gp-fill-list li {
    border: 1px solid var(--line);
    border-radius: 9px;
    background: rgba(8, 20, 50, 0.64);
    padding: 7px 8px;
    display: grid;
    gap: 3px;
}

.gp-console .gp-fill-list strong {
    display: block;
    font: 700 0.68rem/1.2 var(--font-headline);
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: #eff7ff;
}

.gp-console .gp-fill-list span {
    font-size: 0.69rem;
    color: #cfe3ff;
}

.gp-console .head {
    display: flex;
    gap: 14px;
    justify-content: space-between;
    align-items: flex-start;
}

.gp-console .kicker {
    margin: 0;
    font: 700 0.73rem/1 var(--font-headline);
    color: var(--cyan);
    text-transform: uppercase;
    letter-spacing: 0.12em;
}

.gp-console h1 {
    margin: 9px 0 0;
    font: 700 clamp(1.16rem, 2.1vw, 1.86rem)/1.15 var(--font-headline);
    text-transform: uppercase;
    letter-spacing: 0.02em;
    color: #f8fdff;
}

.gp-console .head p {
    margin: 8px 0 0;
    color: var(--muted);
    font-size: 0.9rem;
    max-width: 76ch;
}

.gp-console .meta {
    min-width: 260px;
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 8px;
}

.gp-console .meta div {
    border: 1px solid var(--line);
    border-radius: 10px;
    background: rgba(9, 24, 56, 0.63);
    padding: 8px 10px;
}

.gp-console .meta span {
    display: block;
    font: 700 0.64rem/1.2 var(--font-headline);
    color: var(--muted);
    text-transform: uppercase;
    letter-spacing: 0.08em;
    margin-bottom: 3px;
}

.gp-console .meta strong {
    font: 700 0.86rem/1 var(--font-headline);
    color: #f8fcff;
}

.gp-console .toolbar {
    display: grid;
    grid-template-columns: 1.2fr 0.8fr;
    gap: 12px;
    border: 1px solid var(--line);
    border-radius: 12px;
    background: #0e2b61;
    padding: 12px;
    backdrop-filter: blur(8px);
}

.gp-console .t-left,
.gp-console .t-right {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    align-items: center;
}

.gp-console .t-right {
    justify-content: flex-end;
}

.gp-console .field {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    border: 1px solid var(--line);
    border-radius: 10px;
    padding: 8px 10px;
    background: #0b2450;
}

.gp-console .field label {
    font: 700 0.64rem/1 var(--font-headline);
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--muted);
}

.gp-console select,
.gp-console input {
    border-radius: 10px;
    border: 1px solid rgba(178, 210, 255, 0.48);
    background: #12366f;
    color: #eef6ff;
    min-height: 38px;
    height: 38px;
    font-size: 0.8rem;
    padding: 0 12px;
    width: 220px;
    transition: border-color 0.18s ease, background 0.18s ease, box-shadow 0.18s ease;
}

.gp-console button {
    border-radius: 9px;
    border: 1px solid rgba(161, 201, 255, 0.36);
    background: #12366f;
    color: #eef6ff;
    min-height: 38px;
    font-size: 0.8rem;
    padding: 0 10px;
    transition: border-color 0.18s ease, background 0.18s ease, transform 0.18s ease;
}

.gp-console .field select,
.gp-console .field input {
    width: 220px;
    min-width: 220px;
}

.gp-console form select,
.gp-console form input {
    width: 100%;
    min-width: 0;
}

.gp-console .chips {
    display: inline-flex;
    gap: 6px;
    flex-wrap: wrap;
}

.gp-console .chip,
.gp-console .btn,
.gp-console .density button {
    font: 700 0.7rem/1 var(--font-headline);
    text-transform: uppercase;
    letter-spacing: 0.04em;
    cursor: pointer;
}

.gp-console .chip {
    border-radius: 999px;
    padding: 0 10px;
}

.gp-console .chip.active {
    border-color: rgba(103, 222, 255, 0.85);
    background: rgba(103, 222, 255, 0.22);
}

.gp-console .density {
    display: inline-flex;
    border: 1px solid var(--line);
    border-radius: 9px;
    overflow: hidden;
}

.gp-console .density button {
    border: 0;
    border-right: 1px solid var(--line);
    border-radius: 0;
    min-height: 38px;
    min-width: 102px;
}

.gp-console .density button:last-child {
    border-right: 0;
}

.gp-console .density button[aria-pressed='true'] {
    background: rgba(103, 222, 255, 0.2);
}

.gp-console .btn.live {
    border-color: rgba(52, 211, 153, 0.72);
    background: rgba(8, 88, 63, 0.74);
}

.gp-console .btn.pause {
    border-color: rgba(251, 191, 36, 0.72);
    background: rgba(104, 73, 10, 0.74);
}

.gp-console .mobile-bar {
    display: none;
}

.gp-console .grid {
    display: grid;
    grid-template-columns: repeat(12, minmax(0, 1fr));
    gap: var(--gap);
    grid-auto-flow: dense;
    align-items: stretch;
}

.gp-console .card {
    border: 1px solid rgba(191, 217, 255, 0.5);
    border-radius: 15px;
    background: linear-gradient(165deg, #1a4a8f, #12356b);
    padding: var(--pad);
    display: grid;
    gap: 10px;
    min-width: 0;
    grid-column: span 4;
    box-shadow: 0 14px 35px rgba(4, 9, 27, 0.24);
    animation: gpCardIn 0.44s ease both;
}

.gp-console .grid>.card:nth-of-type(6n + 1) {
    background: linear-gradient(165deg, #1a4a8f, #12356b);
}

.gp-console .grid>.card:nth-of-type(6n + 2) {
    background: linear-gradient(165deg, #1b5f7f, #114c6a);
}

.gp-console .grid>.card:nth-of-type(6n + 3) {
    background: linear-gradient(165deg, #6848b6, #4f3892);
}

.gp-console .grid>.card:nth-of-type(6n + 4) {
    background: linear-gradient(165deg, #a2552b, #7e3d1e);
}

.gp-console .grid>.card:nth-of-type(6n + 5) {
    background: linear-gradient(165deg, #2f6c9a, #1f5277);
}

.gp-console .grid>.card:nth-of-type(6n + 6) {
    background: linear-gradient(165deg, #3b728d, #275d75);
}

.gp-console .card:nth-child(2n) {
    animation-delay: 0.05s;
}

.gp-console .card:nth-child(3n) {
    animation-delay: 0.09s;
}

@keyframes gpCardIn {
    from {
        opacity: 0;
        transform: translateY(14px) scale(0.99);
    }

    to {
        opacity: 1;
        transform: translateY(0) scale(1);
    }
}

.gp-console .card--xl {
    grid-column: span 8;
}

.gp-console .card--xl[data-span='9'] {
    grid-column: span 9;
}

.gp-console .card--xl[data-span='10'] {
    grid-column: span 10;
}

.gp-console .card--xl[data-span='11'] {
    grid-column: span 11;
}

.gp-console .card--xl[data-span='12'] {
    grid-column: span 12;
}

.gp-console .card--lg {
    grid-column: span 6;
}

.gp-console .card--lg[data-span='7'] {
    grid-column: span 7;
}

.gp-console .card--lg[data-span='8'] {
    grid-column: span 8;
}

.gp-console .card--md {
    grid-column: span 4;
}

.gp-console .card--md[data-span='5'] {
    grid-column: span 5;
}

.gp-console .card--md[data-span='6'] {
    grid-column: span 6;
}

.gp-console .card--sm {
    grid-column: span 4;
}

.gp-console .card--sm[data-span='4'] {
    grid-column: span 4;
}

.gp-console .card--xs {
    grid-column: span 4;
}

.gp-console .card--xs[data-span='3'] {
    grid-column: span 4;
}

.gp-console .card[data-span='3'] {
    --card-span: 3;
}

.gp-console .card[data-span='4'] {
    --card-span: 4;
}

.gp-console .card[data-span='6'] {
    --card-span: 6;
}

.gp-console .card[data-span='9'] {
    --card-span: 9;
}

.gp-console .card[data-span='12'] {
    --card-span: 12;
}

.gp-console .grid>.card[data-span],
.gp-console .gp-side-panels>.card[data-span] {
    grid-column: span var(--card-span, 12) !important;
}

.gp-console .card-head {
    display: flex;
    justify-content: space-between;
    gap: 10px;
    align-items: center;
    flex-wrap: wrap;
}

.gp-console .card-pop-btn {
    border: 1px solid rgba(159, 206, 255, 0.54);
    background: rgba(8, 49, 93, 0.62);
    color: #ecf6ff;
    border-radius: 999px;
    min-height: 30px;
    height: 30px;
    padding: 0 9px;
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font: 700 0.57rem/1 var(--font-headline);
    letter-spacing: 0.05em;
    text-transform: uppercase;
    cursor: pointer;
    margin-left: auto;
}

.gp-console .card-pop-btn span:first-child {
    font-size: 0.72rem;
    line-height: 1;
}

.gp-console .title {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    min-width: 0;
}

.gp-console .ico {
    width: 17px;
    height: 17px;
    color: var(--cyan);
    flex: 0 0 auto;
}

.gp-console .ico svg {
    width: 100%;
    height: 100%;
    fill: currentColor;
}

.gp-console h2 {
    margin: 0;
    font: 700 0.9rem/1.1 var(--font-headline);
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: #f6fbff;
}

.gp-console h3 {
    margin: 0;
    font: 700 0.8rem/1.2 var(--font-headline);
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: #f1f8ff;
}

.gp-console .sub {
    margin: -4px 0 0;
    color: var(--muted);
    font-size: 0.75rem;
}

.gp-console .badge {
    border: 1px solid rgba(103, 222, 255, 0.64);
    border-radius: 999px;
    padding: 4px 9px;
    font: 700 0.64rem/1 var(--font-headline);
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: #ddf6ff;
    background: rgba(9, 67, 104, 0.56);
    white-space: nowrap;
}

.gp-console .badge.alert {
    border-color: rgba(248, 113, 113, 0.72);
    background: rgba(125, 31, 31, 0.52);
    color: #ffe2e2;
}

.gp-console .kpis {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 8px;
}

.gp-console .tile {
    border: 1px solid var(--line);
    border-radius: 10px;
    background: rgba(7, 20, 49, 0.68);
    padding: 8px;
}

.gp-console .tile span {
    display: block;
    color: var(--muted);
    font: 700 0.62rem/1.2 var(--font-headline);
    text-transform: uppercase;
    letter-spacing: 0.06em;
    margin-bottom: 3px;
}

.gp-console .tile strong {
    font: 700 1.1rem/1 var(--font-headline);
}

.gp-console .tile.risk {
    border-color: rgba(248, 113, 113, 0.72);
    background: rgba(110, 32, 32, 0.45);
}

.gp-console .overall {
    display: grid;
    grid-template-columns: minmax(160px, 190px) 1fr;
    gap: 12px;
    align-items: center;
}

.gp-console .gauge {
    width: 172px;
    height: 172px;
    border-radius: 50%;
    display: grid;
    place-items: center;
    margin-inline: auto;
    background: conic-gradient(var(--green) 0deg, rgba(143, 173, 230, 0.24) 0 360deg);
    box-shadow: inset 0 0 0 1px rgba(183, 216, 255, 0.22);
}

.gp-console .gauge-in {
    width: 128px;
    height: 128px;
    border-radius: 50%;
    background: rgba(6, 17, 41, 0.96);
    border: 1px solid var(--line);
    display: grid;
    place-items: center;
    text-align: center;
    padding: 8px;
}

.gp-console .gauge-in strong {
    font: 700 1.46rem/1 var(--font-headline);
}

.gp-console .gauge-in span {
    font: 700 0.6rem/1.2 var(--font-headline);
    color: var(--muted);
    text-transform: uppercase;
    letter-spacing: 0.06em;
}

.gp-console .summary p {
    margin: 0;
    color: #d9e8ff;
    font-size: 0.8rem;
}

.gp-console .summary ul {
    list-style: none;
    margin: 8px 0 0;
    padding: 0;
    display: grid;
    gap: 5px;
}

.gp-console .summary li {
    display: flex;
    justify-content: space-between;
    gap: 8px;
    font-size: 0.74rem;
    border-bottom: 1px solid rgba(156, 192, 245, 0.24);
    padding-bottom: 3px;
}

.gp-console .summary strong {
    font-family: var(--font-headline);
}

.gp-console .gantt-wrap {
    border: 1px solid var(--line);
    border-radius: 10px;
    overflow-x: auto;
    background: rgba(7, 19, 44, 0.65);
}

.gp-console table {
    width: 100%;
    border-collapse: collapse;
    min-width: 760px;
}

.gp-console th,
.gp-console td {
    font-size: 0.72rem;
    color: #e7f0ff;
    text-align: left;
    padding: 8px 9px;
    border-bottom: 1px solid rgba(156, 192, 245, 0.19);
}

.gp-console th {
    font: 700 0.66rem/1 var(--font-headline);
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: #bfd2f0;
    background: rgba(10, 25, 60, 0.78);
    position: sticky;
    top: 0;
}

.gp-console .track,
.gp-console .meter {
    height: 9px;
    border-radius: 999px;
    background: rgba(121, 151, 204, 0.24);
    overflow: hidden;
}

.gp-console .track span,
.gp-console .meter span {
    display: block;
    height: 100%;
    border-radius: inherit;
    background: linear-gradient(90deg, #58e0ff, #35dba6);
}

.gp-console .mods-head {
    display: flex;
    justify-content: space-between;
    gap: 8px;
    align-items: center;
    flex-wrap: wrap;
    color: var(--muted);
    font-size: 0.74rem;
}

.gp-console .mods {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 9px;
    max-height: 456px;
    overflow: auto;
    padding-right: 2px;
}

.gp-console .mod {
    border: 1px solid var(--line);
    border-radius: 10px;
    background: rgba(8, 20, 49, 0.66);
    padding: 9px;
    display: grid;
    gap: 7px;
    min-height: 170px;
    transition: border-color 0.2s ease, transform 0.2s ease, box-shadow 0.2s ease;
}

.gp-console .mod:hover {
    transform: translateY(-1px);
    border-color: rgba(103, 222, 255, 0.74);
    box-shadow: 0 10px 26px rgba(4, 14, 35, 0.3);
}

.gp-console .mod.selected {
    border-color: rgba(103, 222, 255, 0.88);
    box-shadow: 0 0 0 2px rgba(103, 222, 255, 0.26), 0 10px 24px rgba(7, 20, 47, 0.32);
}

.gp-console .mod.risk {
    border-color: rgba(248, 113, 113, 0.74);
    background: linear-gradient(180deg, rgba(97, 27, 40, 0.45), rgba(32, 19, 46, 0.76));
}

.gp-console .mh {
    display: flex;
    justify-content: space-between;
    gap: 6px;
    align-items: center;
}

.gp-console .mh code {
    font: 700 0.62rem/1 var(--font-headline);
    color: #d6e8ff;
    letter-spacing: 0.08em;
}

.gp-console .mh span {
    border: 1px solid var(--line);
    border-radius: 999px;
    padding: 3px 6px;
    font: 700 0.58rem/1 var(--font-headline);
    color: #d6e8ff;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    max-width: 68%;
    overflow: hidden;
    white-space: nowrap;
    text-overflow: ellipsis;
}

.gp-console .mod h3 {
    margin: 0;
    font: 700 0.75rem/1.28 var(--font-headline);
    text-transform: uppercase;
    letter-spacing: 0.03em;
}

.gp-console .mod p {
    margin: 0;
    color: var(--muted);
    font-size: 0.69rem;
    line-height: 1.34;
}

.gp-console .pills {
    display: flex;
    gap: 5px;
    flex-wrap: wrap;
}

.gp-console .pill {
    border: 1px solid var(--line);
    border-radius: 999px;
    padding: 2px 6px;
    font: 700 0.6rem/1 var(--font-headline);
    color: #d4e7ff;
    text-transform: uppercase;
    letter-spacing: 0.04em;
}

.gp-console .pill.ok {
    border-color: rgba(52, 211, 153, 0.75);
    color: #ddfff3;
    background: rgba(8, 90, 63, 0.49);
}

.gp-console .pill.r {
    border-color: rgba(248, 113, 113, 0.75);
    color: #ffe4e4;
    background: rgba(118, 29, 29, 0.5);
}

.gp-console .mf {
    display: flex;
    justify-content: space-between;
    font-size: 0.7rem;
    color: #dce9ff;
}

.gp-console .empty {
    border: 1px dashed var(--line);
    border-radius: 9px;
    padding: 9px;
    text-align: center;
    color: #d7e5ff;
    font-size: 0.78rem;
}

.gp-console .sum {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 7px;
}

.gp-console .sum div,
.gp-console .mini div {
    border: 1px solid var(--line);
    border-radius: 9px;
    background: rgba(8, 19, 46, 0.64);
    padding: 8px;
}

.gp-console .sum span,
.gp-console .mini span {
    display: block;
    color: var(--muted);
    font: 700 0.6rem/1.2 var(--font-headline);
    letter-spacing: 0.05em;
    text-transform: uppercase;
    margin-bottom: 2px;
}

.gp-console .sum strong,
.gp-console .mini strong {
    font: 700 0.95rem/1 var(--font-headline);
}

.gp-console .issues {
    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
    gap: 6px;
    max-height: 196px;
    overflow: auto;
}

.gp-console .issue {
    border: 1px solid var(--line);
    border-radius: 9px;
    background: rgba(9, 22, 54, 0.68);
    padding: 7px 8px;
    display: grid;
    gap: 4px;
}

.gp-console .ih {
    display: flex;
    justify-content: space-between;
    gap: 8px;
    font-size: 0.67rem;
}

.gp-console .ih strong {
    font: 700 0.72rem/1.2 var(--font-headline);
    text-transform: uppercase;
    letter-spacing: 0.03em;
    color: #f2f8ff;
}

.gp-console .issue p {
    margin: 0;
    font-size: 0.72rem;
    color: #dbe8ff;
}

.gp-console .ops-feed {
    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
    gap: 6px;
    max-height: 250px;
    overflow: auto;
}

.gp-console .ops-feed li {
    border: 1px solid var(--line);
    border-radius: 9px;
    background: rgba(8, 20, 50, 0.64);
    padding: 7px 8px;
    display: grid;
    gap: 3px;
}

.gp-console .ops-feed strong {
    font: 700 0.69rem/1.2 var(--font-headline);
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: #f2f9ff;
}

.gp-console .ops-feed span {
    font-size: 0.69rem;
    color: #cde1ff;
}

.gp-console .sev {
    border: 1px solid transparent;
    border-radius: 999px;
    padding: 2px 7px;
    font: 700 0.58rem/1 var(--font-headline);
    text-transform: uppercase;
    letter-spacing: 0.05em;
}

.gp-console .sev.critical {
    border-color: rgba(248, 113, 113, 0.75);
    background: rgba(124, 33, 33, 0.52);
    color: #ffe5e5;
}

.gp-console .sev.major {
    border-color: rgba(251, 191, 36, 0.72);
    background: rgba(98, 69, 10, 0.55);
    color: #fff5d9;
}

.gp-console .sev.minor {
    border-color: rgba(90, 214, 255, 0.72);
    background: rgba(11, 72, 108, 0.56);
    color: #e1f7ff;
}

.gp-console form {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 7px;
    border: 1px solid var(--line);
    border-radius: 9px;
    background: rgba(8, 19, 46, 0.64);
    padding: 8px;
}

.gp-console .f {
    display: grid;
    gap: 3px;
}

.gp-console .f.full {
    grid-column: 1 / -1;
}

.gp-console .f label {
    color: var(--muted);
    font: 700 0.6rem/1 var(--font-headline);
    letter-spacing: 0.06em;
    text-transform: uppercase;
}

.gp-console .chart {
    min-height: 210px;
    border: 1px solid var(--line);
    border-radius: 10px;
    background: rgba(8, 20, 50, 0.62);
    padding: 8px;
}

.gp-console .chart--tall {
    min-height: 262px;
}

.gp-console .chart canvas {
    width: 100% !important;
    height: 192px !important;
}

.gp-console .chart--tall canvas {
    height: 244px !important;
}

.gp-console #gpAreaBars {
    height: 320px !important;
}

.gp-console .map-wrap {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 280px;
    gap: 10px;
}

.gp-console .map-view {
    border: 1px solid var(--line);
    border-radius: 12px;
    min-height: 338px;
    background: radial-gradient(circle at 24% 10%, rgba(96, 147, 255, 0.22), transparent 28%), linear-gradient(140deg, rgba(16, 44, 92, 0.95), rgba(8, 24, 59, 0.96));
    overflow: hidden;
}

.gp-console .map-view .map-fallback {
    height: 100%;
    display: grid;
    place-items: center;
    text-align: center;
    padding: 14px;
    color: #d8e7ff;
    font-size: 0.78rem;
}

.gp-console .map-fallback-live {
    align-content: start;
    gap: 8px;
    padding: 10px;
}

.gp-console .map-fallback-head {
    border: 1px solid rgba(173, 206, 255, 0.36);
    border-radius: 9px;
    padding: 8px;
    background: rgba(7, 19, 45, 0.72);
}

.gp-console .map-fallback-head strong {
    display: block;
    font: 700 0.72rem/1.2 var(--font-headline);
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: #e8f3ff;
    margin-bottom: 3px;
}

.gp-console .map-fallback-head p {
    margin: 0;
    font-size: 0.68rem;
    color: #c8dcfb;
}

.gp-console .map-fallback-canvas {
    position: relative;
    min-height: 250px;
    border: 1px solid rgba(160, 197, 245, 0.34);
    border-radius: 10px;
    background:
        radial-gradient(circle at 18% 15%, rgba(103, 222, 255, 0.16), transparent 36%),
        linear-gradient(155deg, rgba(8, 24, 56, 0.9), rgba(5, 15, 36, 0.96));
    overflow: hidden;
}

.gp-console .map-fallback-canvas svg {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
}

.gp-console .fallback-route {
    fill: none;
    stroke-width: 1.7;
    stroke-linecap: round;
    stroke-dasharray: 2.5 2.3;
}

.gp-console .fallback-route.route-airport_corridor {
    stroke: rgba(34, 211, 238, 0.88);
}

.gp-console .fallback-route.route-village_line {
    stroke: rgba(167, 139, 250, 0.88);
}

.gp-console .fallback-route.route-stadium_ring {
    stroke: rgba(52, 211, 153, 0.86);
}

.gp-console .fallback-route.route-cluster_loop {
    stroke: rgba(251, 191, 36, 0.84);
}

.gp-console .fallback-marker {
    position: absolute;
    transform: translate(-50%, -50%);
    display: inline-flex;
    align-items: center;
    gap: 4px;
    border: 1px solid rgba(189, 217, 255, 0.42);
    border-radius: 999px;
    padding: 2px 6px;
    background: rgba(8, 20, 49, 0.84);
    color: #f2f9ff;
    box-shadow: 0 6px 12px rgba(5, 10, 24, 0.34);
    pointer-events: none;
}

.gp-console .fallback-marker span {
    font-size: 0.75rem;
    line-height: 1;
}

.gp-console .fallback-marker small {
    font: 700 0.54rem/1 var(--font-headline);
    letter-spacing: 0.03em;
}

.gp-console .map-side {
    border: 1px solid var(--line);
    border-radius: 11px;
    background: rgba(8, 20, 48, 0.66);
    padding: 8px;
    display: grid;
    gap: 8px;
    align-content: start;
}

.gp-console .map-status {
    border: 1px solid var(--line);
    border-radius: 8px;
    background: rgba(8, 19, 44, 0.62);
    padding: 7px;
}

.gp-console .map-status span {
    display: block;
    font: 700 0.56rem/1 var(--font-headline);
    letter-spacing: 0.07em;
    text-transform: uppercase;
    color: var(--muted);
    margin-bottom: 2px;
}

.gp-console .map-status strong {
    font: 700 0.72rem/1.2 var(--font-headline);
    color: #e8f3ff;
}

.gp-console .map-stats {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 6px;
}

.gp-console .map-stats div {
    border: 1px solid var(--line);
    border-radius: 8px;
    background: rgba(8, 20, 50, 0.63);
    padding: 6px;
}

.gp-console .map-stats span {
    display: block;
    color: var(--muted);
    font: 700 0.54rem/1.15 var(--font-headline);
    letter-spacing: 0.05em;
    text-transform: uppercase;
    margin-bottom: 2px;
}

.gp-console .map-stats strong {
    font: 700 0.9rem/1 var(--font-headline);
}

.gp-console .map-legend {
    display: grid;
    gap: 4px;
    border: 1px solid var(--line);
    border-radius: 8px;
    background: rgba(8, 20, 49, 0.63);
    padding: 6px;
    font: 700 0.6rem/1.2 var(--font-headline);
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: #e2efff;
}

.gp-console .map-legend span {
    display: inline-flex;
    gap: 6px;
    align-items: center;
}

.gp-console .veh-icon {
    width: 12px;
    height: 12px;
    border-radius: 3px;
    display: inline-block;
    position: relative;
    background: currentColor;
    color: #22d3ee;
}

.gp-console .veh-icon::before,
.gp-console .veh-icon::after {
    content: "";
    position: absolute;
    width: 3px;
    height: 3px;
    border-radius: 50%;
    background: #f1f7ff;
    bottom: -2px;
}

.gp-console .veh-icon::before {
    left: 1px;
}

.gp-console .veh-icon::after {
    right: 1px;
}

.gp-console .veh-icon--bus {
    color: #f97316;
    border-radius: 2px;
}

.gp-console .veh-icon--car {
    color: #22d3ee;
}

.gp-console .veh-icon--escort {
    color: #a78bfa;
    clip-path: polygon(50% 0, 100% 40%, 80% 100%, 20% 100%, 0 40%);
}

.gp-console .map-legend .dot {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    display: inline-block;
}

.gp-console .map-legend .dot.bus {
    background: #f97316;
}

.gp-console .map-legend .dot.car {
    background: #22d3ee;
}

.gp-console .map-legend .dot.escort {
    background: #a78bfa;
}

.gp-console .map-feed {
    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
    gap: 5px;
    max-height: 154px;
    overflow: auto;
}

.gp-console .map-feed li {
    border: 1px solid var(--line);
    border-radius: 8px;
    background: rgba(6, 16, 40, 0.61);
    padding: 6px 7px;
    display: flex;
    justify-content: space-between;
    gap: 6px;
}

.gp-console .map-feed strong {
    font: 700 0.6rem/1.2 var(--font-headline);
    text-transform: uppercase;
    letter-spacing: 0.03em;
    color: #eff8ff;
}

.gp-console .map-feed span {
    font-size: 0.62rem;
    color: #cde0ff;
    white-space: nowrap;
}

.gp-console .mini {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 7px;
}

.gp-console .actions,
.gp-console .focus {
    display: grid;
    gap: 7px;
}

.gp-console .a-btn {
    text-align: left;
    font: 700 0.7rem/1 var(--font-headline);
    letter-spacing: 0.04em;
    text-transform: uppercase;
    cursor: pointer;
}

.gp-console .feedback {
    border: 1px dashed var(--line);
    border-radius: 8px;
    padding: 8px;
    min-height: 48px;
    color: #d7e6ff;
    font-size: 0.73rem;
}

.gp-console .focus ul {
    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
    gap: 6px;
}

.gp-console .focus li {
    border: 1px solid var(--line);
    border-radius: 9px;
    background: rgba(8, 20, 50, 0.64);
    padding: 8px;
    font-size: 0.72rem;
    color: #dbe8ff;
}

.gp-console .focus li strong {
    display: block;
    font: 700 0.69rem/1.2 var(--font-headline);
    text-transform: uppercase;
    letter-spacing: 0.04em;
    margin-bottom: 2px;
}

.gp-console .dep-toolbar {
    display: flex;
    justify-content: flex-end;
    gap: 7px;
    flex-wrap: wrap;
}

.gp-console .dep-wrap {
    display: grid;
    grid-template-columns: 1.4fr 0.8fr;
    gap: 10px;
}

.gp-console .dep-graph {
    width: 100%;
    min-height: 330px;
    border: 1px solid var(--line);
    border-radius: 10px;
    background: radial-gradient(circle at 12% 9%, rgba(103, 222, 255, 0.12), transparent 45%), rgba(6, 16, 40, 0.72);
}

.gp-console .dep-edge {
    stroke: rgba(126, 170, 228, 0.38);
    stroke-width: 1.5;
}

.gp-console .dep-edge.active {
    stroke: rgba(103, 222, 255, 0.78);
    stroke-width: 2;
}

.gp-console .dep-edge.dim {
    opacity: 0.2;
}

.gp-console .dep-group-label {
    fill: rgba(199, 220, 248, 0.68);
    font: 700 10px/1 var(--font-headline);
    text-transform: uppercase;
    letter-spacing: 0.07em;
}

.gp-console .dep-node {
    cursor: pointer;
    transition: opacity 0.2s ease;
}

.gp-console .dep-node circle {
    stroke: rgba(233, 246, 255, 0.68);
    stroke-width: 1.4;
}

.gp-console .dep-node text {
    fill: #f7fdff;
    font: 700 10px/1 var(--font-headline);
    text-anchor: middle;
    dominant-baseline: central;
    pointer-events: none;
}

.gp-console .dep-node.risk circle {
    stroke: rgba(248, 113, 113, 0.88);
    stroke-width: 2;
}

.gp-console .dep-node.selected circle {
    stroke: rgba(103, 222, 255, 0.95);
    stroke-width: 2.6;
    filter: drop-shadow(0 0 8px rgba(103, 222, 255, 0.55));
}

.gp-console .dep-node.dim {
    opacity: 0.3;
}

.gp-console .dep-info {
    border: 1px solid var(--line);
    border-radius: 10px;
    background: rgba(8, 20, 48, 0.66);
    padding: 10px;
    display: grid;
    gap: 8px;
    align-content: start;
}

.gp-console .dep-info p {
    margin: 0;
    font-size: 0.74rem;
    color: #d8e7ff;
}

.gp-console .dep-info ul {
    margin: 0;
    padding: 0;
    display: grid;
    gap: 6px;
}

.gp-console .dep-info li {
    border: 1px solid var(--line);
    border-radius: 8px;
    background: rgba(6, 16, 39, 0.62);
    padding: 6px 7px;
    font-size: 0.7rem;
    color: #dbebff;
}

.gp-console .collapse[hidden] {
    display: none;
}

body.gp-modal-open {
    overflow: hidden;
}

.gp-console .gp-card-modal {
    position: fixed;
    inset: 0;
    z-index: 2100;
    padding: 14px;
    display: grid;
    place-items: center;
}

.gp-console .gp-card-modal[hidden] {
    display: none;
}

.gp-console .gp-card-modal-backdrop {
    position: absolute;
    inset: 0;
    background: rgba(3, 12, 30, 0.76);
    backdrop-filter: blur(5px);
    opacity: 0;
    transition: opacity 0.18s ease;
}

.gp-console .gp-card-modal-panel {
    position: relative;
    width: min(1300px, 100%);
    height: calc(100vh - 28px);
    border: 1px solid rgba(170, 206, 255, 0.44);
    border-radius: 14px;
    background: linear-gradient(160deg, rgba(7, 21, 48, 0.98), rgba(5, 16, 40, 0.98));
    display: grid;
    grid-template-rows: auto minmax(0, 1fr);
    overflow: hidden;
    box-shadow: 0 30px 58px rgba(2, 7, 20, 0.62);
    transform: translateY(10px) scale(0.985);
    opacity: 0;
    transition: opacity 0.2s ease, transform 0.2s ease;
}

.gp-console .gp-card-modal.is-open .gp-card-modal-backdrop {
    opacity: 1;
}

.gp-console .gp-card-modal.is-open .gp-card-modal-panel {
    opacity: 1;
    transform: translateY(0) scale(1);
}

.gp-console .gp-card-modal-head {
    border-bottom: 1px solid rgba(154, 192, 243, 0.28);
    padding: 11px 14px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    background: rgba(6, 20, 47, 0.92);
}

.gp-console .gp-card-modal-kicker {
    margin: 0 0 3px;
    font: 700 0.57rem/1 var(--font-headline);
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: #8acfff;
}

.gp-console .gp-card-modal-head h2 {
    margin: 0;
    font: 700 0.92rem/1.12 var(--font-headline);
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: #f5fbff;
}

.gp-console .gp-card-modal-meta {
    display: inline-block;
    margin-top: 4px;
    font: 700 0.58rem/1 var(--font-headline);
    letter-spacing: 0.05em;
    text-transform: uppercase;
    color: #c3ddff;
}

.gp-console .gp-card-modal-close {
    border: 1px solid rgba(165, 208, 255, 0.56);
    border-radius: 999px;
    background: rgba(8, 59, 108, 0.72);
    color: #ebf7ff;
    min-height: 32px;
    height: 32px;
    padding: 0 12px;
    font: 700 0.62rem/1 var(--font-headline);
    letter-spacing: 0.05em;
    text-transform: uppercase;
    cursor: pointer;
}

.gp-console .gp-card-modal-content {
    min-height: 0;
    overflow: auto;
    padding: 12px;
    display: grid;
    align-content: start;
}

.gp-console .gp-card-modal-content>.card {
    --card-span: 12;
    grid-column: 1 / -1 !important;
    margin: 0;
    animation: none;
}

.gp-console .gp-card-modal-content>.card.in-popup {
    max-width: none;
}

.gp-console .gp-card-modal-content>.card.in-popup .mods,
.gp-console .gp-card-modal-content>.card.in-popup .issues,
.gp-console .gp-card-modal-content>.card.in-popup .map-feed {
    max-height: none;
}

.gp-console .gp-card-modal-content>.card.in-popup .chart canvas {
    height: 310px !important;
}

.gp-console .gp-card-modal-content>.card.in-popup .chart--tall canvas {
    height: 370px !important;
}

.gp-console .gp-card-modal-content>.card.in-popup #gpAreaBars {
    height: 440px !important;
}

.gp-console .gp-card-modal-content>.card.in-popup .map-view {
    min-height: 56vh;
}

.gp-console button:focus-visible,
.gp-console input:focus-visible,
.gp-console select:focus-visible,
.gp-console .mod:focus-visible,
.gp-console .dep-node:focus-visible {
    outline: 2px solid var(--focus);
    outline-offset: 2px;
}

.gp-console button:hover,
.gp-console .chip:hover,
.gp-console .a-btn:hover {
    border-color: rgba(103, 222, 255, 0.75);
    background: rgba(11, 60, 106, 0.76);
    color: #fff;
}

.gp-console .gp-side-panels .a-btn:hover {
    border-color: #bdd2eb;
    background: #e5f0ff;
    color: #1f3b5a;
}

.gp-console.compact {
    --pad: 11px;
    --gap: 9px;
}

.gp-console.compact h2 {
    font-size: 0.82rem;
}

.gp-console.compact .sub,
.gp-console.compact .mod p,
.gp-console.compact .summary p,
.gp-console.compact .dep-info p,
.gp-console.compact .gp-phone-card p {
    font-size: 0.67rem;
}

.gp-console.compact .chart canvas {
    height: 165px !important;
}

.gp-console.compact .chart--tall canvas {
    height: 216px !important;
}

@media (min-width: 768px) and (max-width: 1199px) {
    .gp-console .card[data-span='12'],
    .gp-console .card[data-span='9'] {
        --card-span: 12;
    }

    .gp-console .card[data-span='6'] {
        --card-span: 6;
    }

    .gp-console .card[data-span='4'],
    .gp-console .card[data-span='3'] {
        --card-span: 6;
    }
}

@media (max-width: 767px) {
    .gp-console .card[data-span] {
        --card-span: 12;
    }
}

@media (max-width: 1240px) {
    .gp-console .gp-layout {
        grid-template-columns: minmax(0, 1fr) 360px;
    }

    .gp-console .gp-mobile-panel {
        gap: 10px;
        padding: 10px;
    }

    .gp-console .gp-phone-screen {
        max-height: calc(100vh - 228px);
    }

    .gp-console .mods {
        grid-template-columns: repeat(3, 1fr);
    }

    .gp-console .dep-wrap {
        grid-template-columns: 1fr;
    }

    .gp-console .dep-graph {
        min-height: 300px;
    }
}

@media (max-width: 1180px) {
    .gp-console .gp-layout {
        grid-template-columns: 1fr;
    }

    .gp-console .gp-mobile-panel {
        position: static;
        top: auto;
        grid-template-columns: repeat(6, minmax(0, 1fr));
        gap: 10px;
    }

    .gp-console .gp-phone {
        max-width: none;
    }

    .gp-console .gp-phone-screen {
        max-height: 500px;
    }

    .gp-console .gp-device-stack {
        min-width: 0;
        align-content: start;
    }

    .gp-console .gp-side-panels {
        grid-column: 1 / -1;
        grid-template-columns: repeat(12, minmax(0, 1fr));
    }

    .gp-console .map-wrap {
        grid-template-columns: 1fr;
    }

    .gp-console .grid {
        grid-template-columns: repeat(12, minmax(0, 1fr));
    }

    .gp-console .mods {
        grid-template-columns: repeat(2, 1fr);
    }

    .gp-console .toolbar {
        grid-template-columns: 1fr;
    }

    .gp-console .t-right {
        justify-content: flex-start;
    }

    .gp-console .head {
        flex-direction: column;
    }

    .gp-console .meta {
        min-width: 0;
        width: 100%;
    }
}

@media (max-width: 760px) {
    .gp-console {
        padding-top: 18px;
    }

    .gp-console .gp-card-modal {
        padding: 8px;
    }

    .gp-console .gp-card-modal-panel {
        height: calc(100vh - 16px);
        border-radius: 10px;
    }

    .gp-console .gp-card-modal-head {
        padding: 10px;
    }

    .gp-console .gp-card-modal-head h2 {
        font-size: 0.81rem;
    }

    .gp-console .gp-card-modal-content {
        padding: 8px;
    }

    .gp-console .gp-card-modal-content>.card.in-popup .chart canvas {
        height: 222px !important;
    }

    .gp-console .gp-card-modal-content>.card.in-popup .chart--tall canvas {
        height: 262px !important;
    }

    .gp-console .gp-card-modal-content>.card.in-popup #gpAreaBars {
        height: 290px !important;
    }

    .gp-console .gp-card-modal-content>.card.in-popup .map-view {
        min-height: 42vh;
    }

    .gp-console .gp-mobile-panel {
        grid-template-columns: repeat(6, minmax(0, 1fr));
        padding: 9px;
    }

    .gp-console .gp-phone {
        grid-column: 1 / -1;
        max-width: 100%;
        margin-inline: 0;
    }

    .gp-console .gp-phone-screen {
        max-height: 420px;
    }

    .gp-console .gp-mobile-panel .span-half,
    .gp-console .gp-mobile-panel .span-third {
        grid-column: span 3;
    }

    .gp-console .gp-device-stack {
        grid-template-columns: repeat(6, minmax(0, 1fr));
    }

    .gp-console .gp-device {
        border-radius: 18px;
    }

    .gp-console .gp-side-panels {
        grid-template-columns: repeat(12, minmax(0, 1fr));
    }

    .gp-console .gp-side-panels .card {
        grid-column: span 12 !important;
    }

    .gp-console .toolbar {
        display: none;
    }

    .gp-console .mobile-bar {
        display: grid;
        grid-template-columns: 1.2fr 1.2fr 0.9fr auto;
        gap: 7px;
        border: 1px solid var(--line);
        border-radius: 11px;
        background: rgba(6, 18, 45, 0.93);
        padding: 8px;
        position: sticky;
        top: 114px;
        z-index: 140;
        backdrop-filter: blur(8px);
    }

    .gp-console .mobile-bar input,
    .gp-console .mobile-bar select,
    .gp-console .mobile-bar button {
        width: 100%;
        min-width: 0;
    }

    .gp-console .grid {
        grid-template-columns: repeat(12, minmax(0, 1fr));
        gap: 10px;
    }

    .gp-console .p1 {
        order: 1;
    }

    .gp-console .p2 {
        order: 2;
    }

    .gp-console .p3 {
        order: 3;
    }

    .gp-console .p4 {
        order: 4;
    }

    .gp-console .p5 {
        order: 5;
    }

    .gp-console .p6 {
        order: 6;
    }

    .gp-console .p7 {
        order: 7;
    }

    .gp-console .p8 {
        order: 8;
    }

    .gp-console .p9 {
        order: 9;
    }

    .gp-console .p10 {
        order: 10;
    }

    .gp-console .p11 {
        order: 11;
    }

    .gp-console .kpis {
        grid-template-columns: repeat(2, 1fr);
    }

    .gp-console .gp-phone-kpis,
    .gp-console .map-stats {
        grid-template-columns: repeat(2, 1fr);
    }

    .gp-console .overall {
        grid-template-columns: 1fr;
    }

    .gp-console .gauge {
        width: 154px;
        height: 154px;
    }

    .gp-console .gauge-in {
        width: 114px;
        height: 114px;
    }

    .gp-console .mods {
        grid-template-columns: 1fr;
        max-height: 360px;
    }

    .gp-console .ops-feed {
        max-height: 210px;
    }

    .gp-console .mod p {
        display: none;
    }

    .gp-console .desktop-row {
        display: none;
    }

    .gp-console form {
        grid-template-columns: 1fr;
    }

    .gp-console .chart {
        min-height: 184px;
    }

    .gp-console .chart canvas {
        height: 168px !important;
    }

    .gp-console .chart--tall {
        min-height: 214px;
    }

    .gp-console .chart--tall canvas {
        height: 196px !important;
    }

    .gp-console #gpAreaBars {
        height: 250px !important;
    }

    .gp-console .dep-graph {
        min-height: 260px;
    }

    .gp-console .map-view {
        min-height: 300px;
    }

}

@media (max-width: 520px) {
    .gp-console .gp-phone {
        max-width: 100%;
    }

    .gp-console .gp-mobile-panel {
        grid-template-columns: repeat(6, minmax(0, 1fr));
        padding: 8px;
    }

    .gp-console .gp-mobile-panel .span-half,
    .gp-console .gp-mobile-panel .span-third,
    .gp-console .gp-device {
        grid-column: span 6;
    }

    .gp-console .gp-device-stack {
        grid-template-columns: repeat(6, minmax(0, 1fr));
    }

    .gp-console .mobile-bar {
        grid-template-columns: 1fr;
        top: 108px;
    }

    .gp-console .sum,
    .gp-console .mini,
    .gp-console .meta,
    .gp-console .map-stats,
    .gp-console .gp-phone-kpis {
        grid-template-columns: 1fr;
    }
}
