:root {
    --gm-navy: #071a3d;
    --gm-blue: #0c3767;
    --gm-teal: #19bdb8;
    --gm-teal2: #2bcfc7;
    --gm-bg: #edf5f8;
    --gm-card: #fff;
    --gm-line: #d4e3ea;
    --gm-text: #071c3c;
    --gm-muted: #718496;
    --gm-green: #087763;
    --gm-purple: #6744a6;
    --gm-yellow: #946b00;
    --gm-red: #a93249
}

* {
    box-sizing: border-box
}

body {
    background: var(--gm-bg)
}

.gm-navbar {
    position: relative;
    top: 0;
    z-index: 100;
    height: 76px;
    background: var(--gm-navy);
    border-bottom: 1px solid rgba(255, 255, 255, .08)
}

.gm-nav-inner {
    width: min(1210px, calc(100% - 36px));
    height: 100%;
    margin: auto;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 25px
}

.gm-brand {
    display: flex;
    align-items: center;
    gap: 11px;
    color: #fff;
    text-decoration: none
}

.gm-brand img {
    width: 44px;
    height: 44px;
    border-radius: 8px;
    background: #fff
}

.gm-brand strong,
.gm-brand span {
    display: block
}

.gm-brand strong {
    font-size: 14px;
    font-weight: 900
}

.gm-brand span {
    margin-top: 2px;
    color: #8fa9c0;
    font-size: 12px
}

.gm-nav-links {
    display: flex;
    align-items: center;
    gap: 4px
}

.gm-nav-links a {
    padding: 9px 10px;
    border-radius: 8px;
    color: #afc0d1;
    font-size: 14px;
    font-weight: 800;
    text-decoration: none;
    white-space: nowrap
}

.gm-nav-links a:hover,
.gm-nav-links a.active {
    color: #30d4ca;
    background: rgba(35, 202, 195, .08)
}

.gm-page {
    width: min(1210px, calc(100% - 36px));
    min-height: calc(100vh - 76px);
    margin: auto;
    padding: 42px 0 75px;
    color: var(--gm-text)
}

.gm-alert {
    margin-bottom: 14px;
    padding: 13px 16px;
    border-radius: 10px;
    font-size: 14px;
    font-weight: 800
}

.gm-alert.success {
    background: #dff7ef;
    color: #08735f
}

.gm-alert.error {
    background: #ffe8ec;
    color: #a52f46
}

.gm-access {
    min-height: 610px;
    display: grid;
    grid-template-columns: 1.2fr .8fr;
    gap: 80px;
    align-items: center
}

.gm-access-copy>span {
    color: #0a9f96;
    font-size: 13px;
    font-weight: 900;
    letter-spacing: .12em
}

.gm-access-copy h1 {
    max-width: 530px;
    margin: 10px 0 12px;
    font-size: 48px;
    line-height: 1.03;
    letter-spacing: -.045em
}

.gm-access-copy>p {
    max-width: 590px;
    margin: 0;
    color: var(--gm-muted);
    font-size: 15px;
    line-height: 1.65
}

.gm-access-notes {
    display: grid;
    gap: 13px;
    margin-top: 35px
}

.gm-access-notes article {
    display: grid;
    grid-template-columns: 37px 1fr;
    gap: 12px;
    align-items: flex-start
}

.gm-access-notes b {
    width: 34px;
    height: 34px;
    display: grid;
    place-items: center;
    border-radius: 9px;
    background: #daf5f1;
    color: #078a7b;
    font-size: 13px
}

.gm-access-notes strong {
    display: block;
    font-size: 14px
}

.gm-access-notes p {
    margin: 3px 0 0;
    color: var(--gm-muted);
    font-size: 14px
}

.gm-access-card {
    padding: 28px;
    border: 1px solid var(--gm-line);
    border-radius: 20px;
    background: #fff;
    box-shadow: 0 22px 55px rgba(18, 57, 78, .1)
}

.gm-access-logo {
    display: flex;
    align-items: center;
    gap: 12px;
    margin-bottom: 25px
}

.gm-access-logo img {
    width: 48px;
    height: 48px;
    border-radius: 9px;
    background: #fff
}

.gm-access-logo span,
.gm-access-logo strong {
    display: block
}

.gm-access-logo span {
    color: #0a9e95;
    font-size: 11px;
    font-weight: 900;
    letter-spacing: .1em
}

.gm-access-logo strong {
    margin-top: 3px;
    font-size: 14px
}

.gm-access-card label {
    display: block;
    margin-bottom: 17px
}

.gm-access-card label>span {
    display: block;
    margin-bottom: 7px;
    font-size: 13px;
    font-weight: 850
}

.gm-access-card input {
    width: 100%;
    height: 49px;
    padding: 0 14px;
    border: 1px solid #cadde5;
    border-radius: 9px;
    background: #fff;
    color: var(--gm-text);
    font: inherit;
    font-size: 13px;
    outline: none
}

.gm-access-card input:focus {
    border-color: #18bcb5;
    box-shadow: 0 0 0 3px rgba(24, 188, 181, .1)
}

.gm-otp-input {
    text-align: center;
    letter-spacing: .3em;
    font-size: 20px !important;
    font-weight: 900 !important
}

.gm-otp-copy {
    margin-bottom: 20px;
    padding: 14px;
    border-radius: 10px;
    background: #eef8f7
}

.gm-otp-copy span,
.gm-otp-copy strong {
    display: block
}

.gm-otp-copy span {
    color: #718a85;
    font-size: 12px;
    font-weight: 850
}

.gm-otp-copy strong {
    margin-top: 5px;
    font-size: 14px
}

.gm-primary,
.gm-secondary,
.gm-banner-btn,
.gm-switch {
    border: 0;
    text-decoration: none;
    cursor: pointer;
    font: 800 11px inherit
}

.gm-primary {
    min-height: 46px;
    width: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 0 17px;
    border-radius: 9px;
    background: linear-gradient(90deg, #0ea9a5, #28ccc4);
    color: #fff
}

.gm-primary.compact {
    width: auto
}

.gm-secondary {
    min-height: 44px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0 16px;
    border: 1px solid #ccdee5;
    border-radius: 9px;
    background: #fff;
    color: #153959
}

.gm-text-link {
    display: block;
    margin-top: 13px;
    color: #138c84;
    font-size: 13px;
    font-weight: 800;
    text-align: center;
    text-decoration: none
}

.gm-entry {
    overflow: hidden;
    border: 1px solid var(--gm-line);
    border-radius: 21px;
    background: #f9fcfd;
    box-shadow: 0 20px 55px rgba(15, 51, 72, .075)
}

.gm-entry-hero {
    min-height: 165px;
    padding: 34px 38px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 25px;
    color: #fff;
    background: linear-gradient(115deg, #071a3d, #0a3766 63%, #0a8d98 140%)
}

.gm-entry-hero>div:first-child>span {
    color: #2ad4cb;
    font-size: 12px;
    font-weight: 900;
    letter-spacing: .11em
}

.gm-entry-hero h1 {
    margin: 7px 0 4px;
    color: #fff;
    font-size: 35px;
    letter-spacing: .02em
}

.gm-entry-hero p {
    margin: 0;
    color: #aac1d3;
    font-size: 14px
}

.gm-entry-actions {
    display: flex;
    align-items: center;
    gap: 10px
}

.gm-entry-actions form {
    margin: 0
}

.gm-status {
    display: inline-flex;
    padding: 8px 10px;
    border-radius: 999px;
    background: rgba(255, 255, 255, .11);
    color: #fff;
    font-size: 12px;
    font-weight: 900
}

.gm-status.REGISTERED {
    background: #dff6eb;
    color: #08725e
}

.gm-status.READY_FOR_PAYMENT {
    background: #e0f2ff;
    color: #136da8
}

.gm-status.PENDING_UITM_REVIEW {
    background: #fff0c7;
    color: #8c6500
}

.gm-status.PAYMENT_PENDING,
.gm-status.PAYMENT_REVIEW {
    background: #eee6ff;
    color: #6742a5
}

.gm-switch {
    min-height: 38px;
    padding: 0 13px;
    border: 1px solid rgba(255, 255, 255, .18);
    border-radius: 8px;
    background: rgba(255, 255, 255, .07);
    color: #fff
}

.gm-summary {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    background: #fff;
    border-bottom: 1px solid var(--gm-line)
}

.gm-summary article {
    padding: 20px 23px;
    border-right: 1px solid var(--gm-line)
}

.gm-summary article:last-child {
    border-right: 0
}

.gm-summary span,
.gm-info-grid span,
.gm-performers span,
.gm-submission-current span {
    display: block;
    color: #748797;
    font-size: 11px;
    font-weight: 900;
    letter-spacing: .04em
}

.gm-summary strong {
    display: block;
    margin-top: 6px;
    font-size: 14px
}

.gm-summary small {
    display: block;
    margin-top: 4px;
    color: #8a9ba8;
    font-size: 12px
}

.gm-action-banner {
    margin: 18px;
    padding: 21px 23px;
    display: grid;
    grid-template-columns: 45px 1fr auto;
    gap: 15px;
    align-items: center;
    border: 1px solid;
    border-radius: 15px
}

.gm-action-banner.warning {
    border-color: #edd08a;
    background: #fffaf0
}

.gm-action-banner.ready {
    border-color: #b9e6dc;
    background: #effaf7
}

.gm-action-banner.pending {
    border-color: #d9cef4;
    background: #f7f3ff
}

.gm-action-banner.registered {
    border-color: #b8e5d8;
    background: #eefaf6
}

.gm-action-icon {
    width: 42px;
    height: 42px;
    display: grid;
    place-items: center;
    border-radius: 50%;
    background: #fff;
    font-size: 17px;
    font-weight: 900
}

.gm-action-banner>div:nth-child(2)>span {
    color: #0b9e94;
    font-size: 11px;
    font-weight: 900;
    letter-spacing: .1em
}

.gm-action-banner h2 {
    margin: 4px 0;
    font-size: 18px
}

.gm-action-banner p {
    margin: 0;
    color: #617788;
    font-size: 13px;
    line-height: 1.5
}

.gm-banner-btn {
    min-height: 42px;
    display: inline-flex;
    align-items: center;
    padding: 0 15px;
    border-radius: 9px;
    background: #16b3ad;
    color: #fff
}

.gm-banner-btn.dark {
    background: #0a315c
}

.gm-payment-actions {
    display: flex;
    gap: 9px;
    flex-wrap: wrap;
    padding: 0 18px 18px
}

.gm-payment-actions form {
    margin: 0
}

.warning-btn {
    border-color: #e5c981;
    background: #fff9e9;
    color: #8b6500
}

.gm-content-grid {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 320px;
    gap: 17px;
    padding: 18px;
    border-top: 1px solid var(--gm-line)
}

.gm-main-column,
.gm-side-column {
    display: grid;
    gap: 17px;
    align-content: start
}

.gm-card {
    overflow: hidden;
    border: 1px solid var(--gm-line);
    border-radius: 15px;
    background: #fff
}

.gm-card>header {
    min-height: 70px;
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 16px 18px;
    border-bottom: 1px solid var(--gm-line);
    background: #f8fbfc
}

.gm-card>header>b {
    width: 35px;
    height: 35px;
    display: grid;
    place-items: center;
    border-radius: 9px;
    background: #e2f7f4;
    color: #078b7d;
    font-size: 12px
}

.gm-card header span {
    display: block;
    color: #08a298;
    font-size: 11px;
    font-weight: 900;
    letter-spacing: .1em
}

.gm-card header h2 {
    margin: 4px 0 0;
    font-size: 17px
}

.gm-info-grid {
    display: grid;
    grid-template-columns: 1fr 1fr
}

.gm-info-grid article {
    min-height: 79px;
    padding: 17px;
    border-right: 1px solid var(--gm-line);
    border-bottom: 1px solid var(--gm-line)
}

.gm-info-grid article:nth-child(2n) {
    border-right: 0
}

.gm-info-grid strong {
    display: block;
    margin-top: 6px;
    overflow-wrap: anywhere;
    font-size: 14px
}

.gm-performers {
    padding: 11px
}

.gm-performers article {
    display: grid;
    grid-template-columns: 40px 1.4fr repeat(3, 1fr);
    gap: 15px;
    align-items: center;
    padding: 14px;
    border: 1px solid var(--gm-line);
    border-radius: 11px
}

.gm-performers i {
    width: 34px;
    height: 34px;
    display: grid;
    place-items: center;
    border-radius: 50%;
    background: #12a99e;
    color: #fff;
    font-style: normal;
    font-size: 13px;
    font-weight: 900
}

.gm-performers strong,
.gm-performers small {
    display: block
}

.gm-performers strong {
    margin-top: 4px;
    font-size: 13px
}

.gm-performers small {
    margin-top: 3px;
    color: #8496a4;
    font-size: 11px
}

.gm-submission-current {
    display: grid;
    grid-template-columns: 100px 1fr 1fr 1.4fr;
    gap: 15px;
    padding: 18px
}

.gm-submission-current>div {
    padding: 13px;
    border-radius: 10px;
    background: #f6fafb
}

.gm-submission-current strong {
    display: block;
    margin-top: 5px;
    font-size: 14px
}

.gm-submission-status {
    display: inline-flex !important;
    width: max-content;
    padding: 6px 8px;
    border-radius: 999px;
    background: #edf2f3
}

.gm-submission-status.ACCEPTED {
    background: #ddf6eb;
    color: #08735d
}

.gm-submission-status.SUBMITTED,
.gm-submission-status.UNDER_REVIEW {
    background: #eee7ff;
    color: #6743a4
}

.gm-submission-status.REJECTED {
    background: #ffe5e9;
    color: #aa3047
}

.gm-submission-empty {
    display: flex;
    gap: 14px;
    align-items: center;
    padding: 22px
}

.gm-submission-empty i {
    width: 44px;
    height: 44px;
    flex: 0 0 44px;
    display: grid;
    place-items: center;
    border-radius: 50%;
    background: #e1f7f4;
    color: #078879;
    font-style: normal;
    font-weight: 900
}

.gm-submission-empty span {
    color: #0a9e95;
    font-size: 11px;
    font-weight: 900
}

.gm-submission-empty h3 {
    margin: 5px 0;
    font-size: 14px
}

.gm-submission-empty p {
    margin: 0;
    color: var(--gm-muted);
    font-size: 13px
}

.gm-submission-message {
    margin: 0 18px 15px;
    padding: 13px 15px;
    border-radius: 10px
}

.gm-submission-message strong {
    display: block;
    font-size: 14px
}

.gm-submission-message p {
    margin: 4px 0 0;
    font-size: 13px;
    line-height: 1.5
}

.gm-submission-message.accepted {
    background: #e8f9f2;
    color: #08725e
}

.gm-submission-message.pending {
    background: #f2edff;
    color: #6540a0
}

.gm-submission-message.rejected {
    background: #fff0f2;
    color: #a83348
}

.gm-submission-action {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 20px;
    padding: 16px 18px;
    border-top: 1px solid var(--gm-line);
    background: #f8fbfc
}

.gm-submission-action span {
    display: block;
    color: #7b8d9a;
    font-size: 11px;
    font-weight: 900
}

.gm-submission-action span.open {
    color: #07927f
}

.gm-submission-action strong {
    display: block;
    margin-top: 4px;
    font-size: 14px
}

.gm-submission-action a {
    min-height: 40px;
    display: inline-flex;
    align-items: center;
    padding: 0 14px;
    border-radius: 8px;
    background: #10aaa4;
    color: #fff;
    font-size: 13px;
    font-weight: 900;
    text-decoration: none
}

.gm-table-wrap {
    overflow: auto
}

.gm-table {
    width: 100%;
    min-width: 720px;
    border-collapse: collapse
}

.gm-table th {
    padding: 10px 12px;
    background: #edf6f8;
    color: #6e8291;
    font-size: 11px;
    text-align: left
}

.gm-table td {
    padding: 12px;
    border-top: 1px solid #dfebef;
    font-size: 13px
}

.gm-table td strong,
.gm-table td small {
    display: block
}

.gm-table td small {
    margin-top: 3px;
    color: #8798a4;
    font-size: 11px
}

.gm-payment-status {
    display: inline-flex;
    padding: 6px 8px;
    border-radius: 999px;
    background: #edf2f3;
    font-size: 11px;
    font-weight: 900
}

.gm-payment-status.SUCCESS {
    background: #ddf5ea;
    color: #08725e
}

.gm-payment-status.PENDING,
.gm-payment-status.PENDING_CONFIRMATION {
    background: #eee7ff;
    color: #6743a4
}

.gm-payment-status.FAILED,
.gm-payment-status.REJECTED {
    background: #ffe5e9;
    color: #aa3047
}

.gm-progress-card {
    padding-bottom: 9px
}

.gm-progress-card>header>b {
    display: none
}

.gm-progress-step {
    display: grid;
    grid-template-columns: 34px 1fr;
    gap: 11px;
    align-items: center;
    padding: 13px 16px
}

.gm-progress-step i {
    width: 32px;
    height: 32px;
    display: grid;
    place-items: center;
    border-radius: 50%;
    background: #edf2f3;
    color: #718591;
    font-style: normal;
    font-size: 12px;
    font-weight: 900
}

.gm-progress-step.done i {
    background: #dcf5ea;
    color: #08725e
}

.gm-progress-step.current i {
    background: #fff0c9;
    color: #8f6800
}

.gm-progress-step strong,
.gm-progress-step span {
    display: block
}

.gm-progress-step strong {
    font-size: 13px
}

.gm-progress-step span {
    margin-top: 3px;
    color: #8496a2;
    font-size: 11px
}

.gm-help {
    padding: 20px
}

.gm-help>span {
    color: #0aa096;
    font-size: 11px;
    font-weight: 900;
    letter-spacing: .1em
}

.gm-help h2 {
    margin: 6px 0;
    font-size: 17px
}

.gm-help p {
    margin: 0;
    color: #718694;
    font-size: 13px;
    line-height: 1.55
}

.gm-help a {
    display: inline-block;
    margin-top: 14px;
    color: #079287;
    font-size: 13px;
    font-weight: 900;
    text-decoration: none
}

@media(max-width:1050px) {
    .gm-nav-links a:not(.active):not(:last-child) {
        display: none
    }

    .gm-content-grid {
        grid-template-columns: 1fr
    }

    .gm-side-column {
        grid-template-columns: 1fr 1fr
    }
}

@media(max-width:800px) {
    .gm-access {
        grid-template-columns: 1fr;
        gap: 35px;
        padding: 30px 0
    }

    .gm-access-copy h1 {
        font-size: 38px
    }

    .gm-summary {
        grid-template-columns: 1fr 1fr
    }

    .gm-summary article:nth-child(2) {
        border-right: 0
    }

    .gm-action-banner {
        grid-template-columns: 45px 1fr
    }

    .gm-banner-btn {
        grid-column: 2
    }

    .gm-performers article {
        grid-template-columns: 40px 1.5fr 1fr
    }

    .gm-submission-current {
        grid-template-columns: 1fr 1fr
    }
}

@media(max-width:580px) {
    .gm-navbar {
        height: 66px
    }

    .gm-nav-inner,
    .gm-page {
        width: calc(100% - 20px)
    }

    .gm-brand span {
        display: none
    }

    .gm-nav-links a {
        display: none !important
    }

    .gm-nav-links a.active {
        display: block !important
    }

    .gm-page {
        padding: 20px 0 45px
    }

    .gm-access-copy h1 {
        font-size: 32px
    }

    .gm-access-card {
        padding: 20px
    }

    .gm-entry-hero {
        padding: 24px 20px;
        align-items: flex-start;
        flex-direction: column
    }

    .gm-entry-actions {
        width: 100%;
        justify-content: space-between
    }

    .gm-summary {
        grid-template-columns: 1fr
    }

    .gm-summary article {
        border-right: 0
    }

    .gm-action-banner {
        margin: 10px;
        grid-template-columns: 40px 1fr;
        padding: 17px
    }

    .gm-payment-actions {
        padding: 0 10px 10px;
        display: grid
    }

    .gm-payment-actions>* {
        width: 100%
    }

    .gm-payment-actions form button,
    .gm-payment-actions a {
        width: 100%
    }

    .gm-content-grid {
        padding: 10px
    }

    .gm-info-grid {
        grid-template-columns: 1fr
    }

    .gm-info-grid article {
        border-right: 0
    }

    .gm-performers article {
        grid-template-columns: 38px 1fr
    }

    .gm-submission-current {
        grid-template-columns: 1fr
    }

    .gm-submission-action {
        align-items: flex-start;
        flex-direction: column
    }

    .gm-submission-action a {
        width: 100%;
        justify-content: center
    }

    .gm-side-column {
        grid-template-columns: 1fr
    }
}
.gm-submission-action small { display:block; margin-top:6px; font-size:13px; }
.gm-portal-closed { padding:12px; color:#506579; background:#e8eef3; border-radius:8px; font-size:14px; }
.gm-info-grid strong, .gm-performer strong { overflow-wrap:anywhere; }

.gm-contact-edit { padding:22px; margin-bottom:18px; border:1px solid #d4e3ea; border-radius:14px; background:#fff; }
.gm-contact-edit h2 { font-size:22px; margin:0 0 10px; }
.gm-contact-edit p { font-size:14px; line-height:1.6; color:#526b7e; }
.gm-contact-edit summary { font-size:16px; color:#087e79; cursor:pointer; font-weight:700; }
.gm-contact-edit label { display:grid; gap:8px; margin-top:16px; font-size:15px; }
.gm-contact-edit input:not([type=hidden]) { width:100%; min-width:0; padding:12px; border:1px solid #bdd1dd; border-radius:8px; font:inherit; }
.gm-contact-edit button { padding:12px 18px; background:#087e79; color:white; border:0; border-radius:8px; font:inherit; cursor:pointer; }
.gm-contact-edit :focus-visible { outline:3px solid #16b8b2; outline-offset:3px; }
