/*
 * Hide the Perfex default client nav on pages that use the muya-portal-chrome-header.
 * navigation.php (Bootstrap 3 nav) is only used on pages that do NOT include site_chrome_header.php.
 * The .muya-portal-page body class is set by those chrome-header pages.
 */
body.muya-portal-page .navbar.navbar-default:not(#navbar),
body.muya-portal-page .customer-top-submenu,
.navbar-fixed-bottom {
    display: none !important;
}

body[class*="clients"] .content,
body[class*="customers"] .content,
body .muya-cors-client-shell {
    background: linear-gradient(180deg, var(--muya-color-surface-muted) 0%, #eef2f7 100%);
}

/* Full-width portal layout (aligned with homepage) */
.muya-page-container,
.muya-home-container {
    width: 100%;
    max-width: 100%;
    margin-left: auto;
    margin-right: auto;
    padding-left: clamp(1.25rem, 4.5vw, 5rem);
    padding-right: clamp(1.25rem, 4.5vw, 5rem);
}

body.customers #content > .container-fluid.muya-page-container {
    padding-top: 12px;
    padding-bottom: 32px;
}

body.customers #content > .container-fluid.muya-page-container > .row {
    margin-left: 0;
    margin-right: 0;
}

body.customers .navbar > .muya-page-container,
body.customers .footer > .muya-page-container,
body.customers .kb-search .muya-page-container,
body.customers .preview-sticky-container {
    width: 100%;
    max-width: 100%;
}

body.customers .preview-top-wrapper,
body.customers #proposal-wrapper,
body.customers .panel_s,
body.customers .panel_s > .panel-body {
    min-width: 0;
    max-width: 100%;
}

body.customers .preview-top-wrapper > .row,
body.customers #proposal-wrapper > .row {
    margin-left: 0;
    margin-right: 0;
}

body.customers .transaction-html-info-col-left,
body.customers .transaction-html-info-col-right {
    min-width: 0;
}

body.customers .muya-cors-client-shell,
body.customers .muya-portal-page {
    width: 100%;
    max-width: 100%;
    margin-left: auto;
    margin-right: auto;
}

body.customers #content > .muya-page-container > .row > .muya-map-page,
body.customers #content > .muya-page-container > .row > .muya-services-hub,
body.customers #content > .muya-page-container > .row > .muya-geodetic-hub,
body.customers #content > .muya-page-container > .row > .muya-contact-page,
.muya-map-page,
.muya-services-hub,
.muya-geodetic-hub,
.muya-contact-page {
    width: 100%;
    max-width: none;
    min-width: 0;
    margin-left: 0;
    margin-right: 0;
}

.muya-cors-client-shell .panel_s {
    border: 1px solid var(--muya-color-border);
    border-radius: var(--muya-radius-lg);
    box-shadow: var(--muya-shadow-md);
    overflow: hidden;
}

.muya-cors-client-shell .panel_s .panel-body {
    padding: 22px;
}

.muya-client-hero {
    background: linear-gradient(135deg, var(--muya-color-hero-from) 0%, var(--muya-color-hero-mid) 52%, var(--muya-color-hero-to) 100%);
    border-radius: var(--muya-radius-lg);
    color: #fff;
    padding: 24px 28px;
    margin-bottom: 22px;
    box-shadow: 0 18px 38px rgba(15, 23, 42, 0.16);
}

.muya-client-hero h3,
.muya-client-hero h4,
.muya-client-hero p,
.muya-client-hero .text-muted {
    color: #fff !important;
}

.muya-client-hero a:not(.btn) {
    color: #93c5fd !important;
    text-decoration: underline !important;
    text-underline-offset: 3px;
}

.muya-client-hero a:not(.btn):hover,
.muya-client-hero a:not(.btn):focus {
    color: #bfdbfe !important;
    text-decoration: underline !important;
}

.muya-client-hero-title {
    margin: 0 0 6px;
    font-size: 28px;
    font-weight: 800;
    letter-spacing: -0.03em;
}

.muya-client-hero-copy {
    opacity: .88;
    max-width: 760px;
    margin: 0;
}

.muya-client-chip-row {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin-top: 16px;
}

.muya-client-chip {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    padding: 9px 13px;
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.14);
    font-size: 12px;
    font-weight: 700;
    color: inherit;
    text-decoration: none;
    cursor: pointer;
    transition: background 0.18s, border-color 0.18s;
}
.muya-client-chip:hover,
.muya-client-chip:focus {
    background: rgba(255, 255, 255, 0.22);
    color: inherit;
    text-decoration: none;
}

.muya-client-toolbar {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    gap: 12px;
    align-items: center;
    margin-bottom: 18px;
}

.muya-client-toolbar-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    align-items: center;
}

/* Readable pill controls on blue gradient heroes (GNSS dashboard, guides, map, profile, etc.) */
.muya-client-hero .muya-client-toolbar-actions .btn-default,
.muya-client-hero .btn-default,
.muya-svc-hero .btn-default,
.muya-profile-hero-aside .btn-default {
    color: #0f172a !important;
    -webkit-text-fill-color: #0f172a !important;
    background: #fff !important;
    border-color: rgba(255, 255, 255, 0.92) !important;
    text-shadow: none !important;
    text-decoration: none !important;
    box-shadow: 0 6px 16px rgba(15, 23, 42, 0.14);
}

.muya-client-hero .muya-client-toolbar-actions .btn-default:hover,
.muya-client-hero .muya-client-toolbar-actions .btn-default:focus,
.muya-client-hero .muya-client-toolbar-actions .btn-default:focus-visible,
.muya-client-hero .muya-client-toolbar-actions .btn-default:active,
.muya-client-hero .btn-default:hover,
.muya-client-hero .btn-default:focus,
.muya-client-hero .btn-default:focus-visible,
.muya-client-hero .btn-default:active,
.muya-svc-hero .btn-default:hover,
.muya-svc-hero .btn-default:focus,
.muya-svc-hero .btn-default:focus-visible,
.muya-svc-hero .btn-default:active,
.muya-profile-hero-aside .btn-default:hover,
.muya-profile-hero-aside .btn-default:focus,
.muya-profile-hero-aside .btn-default:focus-visible,
.muya-profile-hero-aside .btn-default:active {
    color: #1d4ed8 !important;
    -webkit-text-fill-color: #1d4ed8 !important;
    background: #f8fafc !important;
    border-color: #fff !important;
    text-decoration: none !important;
}

.muya-client-hero .btn-default.btn-sm,
.muya-svc-hero .btn-default.btn-sm {
    min-height: 34px;
    padding: 7px 14px;
    line-height: 1.35;
    font-size: 13px;
    border-radius: 999px;
}

.muya-client-hero .btn-default .fa,
.muya-client-hero .btn-default i[class*="fa-"],
.muya-svc-hero .btn-default .fa,
.muya-svc-hero .btn-default i[class*="fa-"],
.muya-profile-hero-aside .btn-default .fa,
.muya-profile-hero-aside .btn-default i[class*="fa-"] {
    color: inherit !important;
}

.muya-client-hero .btn-default.btn-icon,
.muya-svc-hero .btn-default.btn-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 38px;
    height: 38px;
    min-height: 38px;
    padding: 0 !important;
    border-radius: 10px;
}

.muya-client-hero .btn-default.btn-icon .fa,
.muya-client-hero .btn-default.btn-icon i[class*="fa-"],
.muya-svc-hero .btn-default.btn-icon .fa,
.muya-svc-hero .btn-default.btn-icon i[class*="fa-"] {
    margin: 0 !important;
    font-size: 15px;
    line-height: 1;
}

.muya-client-summary-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
    gap: 14px;
    margin-bottom: 22px;
}

.muya-client-summary-card {
    background: var(--muya-color-surface);
    border: 1px solid var(--muya-color-border);
    border-radius: var(--muya-radius-md);
    padding: 18px;
    box-shadow: var(--muya-shadow-sm);
}

.muya-client-summary-card .muya-client-summary-label {
    color: var(--muya-color-muted);
    font-size: 12px;
    text-transform: uppercase;
    letter-spacing: .06em;
    font-weight: 700;
    margin-bottom: 8px;
}

.muya-client-summary-card .muya-client-summary-value {
    color: var(--muya-color-heading);
    font-size: 24px;
    font-weight: 800;
}

.muya-licence-confidence-wrap {
    background: var(--muya-color-surface);
    border: 1px solid var(--muya-color-border);
    border-radius: var(--muya-radius-md);
    padding: 16px 18px;
    box-shadow: var(--muya-shadow-sm);
}

.muya-licence-confidence-grid {
    margin-bottom: 0;
}

.muya-licence-confidence-card.is-active {
    border-left: 4px solid #22c55e;
}

.muya-licence-confidence-card.is-attention {
    border-left: 4px solid #f59e0b;
}

.muya-licence-confidence-card.is-ready {
    border-left: 4px solid #3b82f6;
}

.muya-licence-confidence-card.is-bonus {
    border-left: 4px solid #a855f7;
}

.muya-licence-confidence-card.is-muted {
    opacity: .92;
}

.muya-licence-confidence-pending-list li {
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 8px;
    padding: 8px 0;
    border-top: 1px solid var(--muya-color-border);
}

.muya-invoice-limit-gate-actions .btn + .btn {
    margin-left: 6px;
}

.muya-client-card {
    background: var(--muya-color-surface);
    border: 1px solid var(--muya-color-border);
    border-radius: var(--muya-radius-lg);
    padding: 20px;
    margin-bottom: 22px;
    box-shadow: var(--muya-shadow-md);
}

.muya-client-card-title {
    margin: 0 0 6px;
    color: var(--muya-color-heading);
    font-size: 18px;
    font-weight: 700;
}

.muya-client-card-subtitle {
    margin: 0;
    color: var(--muya-color-muted);
    font-size: 13px;
}

.muya-client-table-shell {
    border: 1px solid #e2e8f0;
    border-radius: 16px;
    overflow: hidden;
    background: #fff;
}

.muya-client-table-shell .table {
    margin-bottom: 0;
}

.muya-client-table-shell .table > thead > tr > th {
    background: #f8fafc;
    border-bottom: 2px solid #e2e8f0;
    color: #334155;
    font-weight: 700;
}

.muya-client-table-shell .table > tbody > tr > td {
    vertical-align: middle;
    color: #334155;
}

.muya-client-highlight {
    border-radius: var(--muya-radius-md);
    padding: 14px 16px;
    background: var(--muya-color-primary-soft);
    border: 1px solid var(--muya-color-border);
    color: var(--muya-color-primary-hover);
}

.muya-client-empty {
    border: 1px dashed #cbd5e1;
    border-radius: 16px;
    padding: 30px 20px;
    text-align: center;
    background: #f8fafc;
    color: #64748b;
}

.muya-client-empty i {
    display: block;
    font-size: 30px;
    color: #94a3b8;
    margin-bottom: 10px;
}

.muya-svc-empty-state .muya-svc-empty-title {
    margin: 0 0 6px;
    font-size: 16px;
    font-weight: 700;
    color: #0f172a;
}

.muya-svc-empty-state .muya-svc-empty-copy {
    margin: 0 auto;
    max-width: 42ch;
    font-size: 13px;
    line-height: 1.5;
    color: #64748b;
}

.muya-portal-page .section-heading,
.muya-portal-page .section-heading-files,
.muya-portal-page .section-text {
    display: none;
}

.muya-portal-page .panel_s {
    border-radius: 14px;
    border: 1px solid #e2e8f0;
    box-shadow: 0 1px 2px rgba(15, 23, 42, 0.04);
}

.muya-portal-page-gdpr .gdpr-right {
    border: 1px solid #e2e8f0;
    border-radius: 14px;
    padding: 20px;
    background: #fff;
    min-height: 160px;
    margin-bottom: 16px;
}

.muya-portal-page-gdpr .gdpr-right-heading {
    margin-top: 0;
    font-size: 16px;
    font-weight: 700;
    color: #0f172a;
}

.muya-portal-page-calendar #calendar {
    min-height: 520px;
}

.customer-profile-group-heading ~ .row .muya-client-empty {
    margin-top: 8px;
}

.muya-svc-flow-strip {
    margin-bottom: 16px;
    padding: 12px 14px;
    border-radius: 12px;
    border: 1px solid #e2e8f0;
    background: #f8fafc;
}

.muya-svc-flow-strip ol {
    display: flex;
    flex-wrap: wrap;
    gap: 8px 12px;
    list-style: none;
    margin: 0;
    padding: 0;
}

.muya-svc-flow-strip li {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-size: 12px;
    font-weight: 600;
    color: #475569;
}

.muya-svc-flow-strip-num {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 20px;
    height: 20px;
    padding: 0 6px;
    border-radius: 999px;
    background: var(--muya-color-primary-soft);
    color: var(--muya-color-primary-hover);
    font-size: 11px;
    font-weight: 800;
}

.muya-svc-flow-strip li i.fa {
    color: var(--muya-color-primary);
    opacity: 0.85;
}

.muya-svc-section-label {
    display: flex;
    align-items: center;
    gap: 8px;
    margin: 0 0 14px;
    font-size: 14px;
    font-weight: 700;
    color: #0f172a;
}

.muya-svc-section-label .muya-svc-section-num {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 24px;
    height: 24px;
    border-radius: 50%;
    background: var(--muya-color-primary);
    color: #fff;
    font-size: 12px;
    font-weight: 800;
}

.muya-subscribe-steps {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));
    gap: 10px;
    margin-bottom: 18px;
    padding: 12px;
    border-radius: 12px;
    border: 1px dashed #cbd5e1;
    background: #f8fafc;
}

.muya-subscribe-steps .muya-subscribe-step {
    display: flex;
    align-items: flex-start;
    gap: 8px;
    font-size: 12px;
    font-weight: 600;
    color: #475569;
    line-height: 1.4;
}

.muya-subscribe-form-card {
    margin-bottom: 0;
}

/* RTK Subscribe tab — readable labels/controls (theme customizer + BS fade drift) */
.muya-svc-page[data-service="rtk_corrections"] #subscribe_tab.tab-pane,
.muya-svc-page[data-service="rtk_corrections"] #subscribe_tab.tab-pane.fade {
    opacity: 1 !important;
    visibility: visible !important;
}

.muya-svc-page[data-service="rtk_corrections"] #subscribe_tab .muya-subscribe-form-card label,
.muya-svc-page[data-service="rtk_corrections"] #subscribe_tab .muya-subscribe-form-card .control-label,
.muya-svc-page[data-service="rtk_corrections"] #subscribe_tab .muya-subscribe-form-card .radio label,
.muya-svc-page[data-service="rtk_corrections"] #subscribe_tab .muya-subscribe-steps .muya-subscribe-step,
.muya-svc-page[data-service="rtk_corrections"] #subscribe_tab .muya-rtk-catalogue-rates,
.muya-svc-page[data-service="rtk_corrections"] #subscribe_tab .muya-rtk-catalogue-rate-list li {
    color: #334155 !important;
    opacity: 1 !important;
    -webkit-text-fill-color: #334155;
}

.muya-svc-page[data-service="rtk_corrections"] #subscribe_tab .muya-subscribe-form-card .form-control,
.muya-svc-page[data-service="rtk_corrections"] #subscribe_tab .muya-subscribe-form-card .bootstrap-select > .dropdown-toggle,
.muya-svc-page[data-service="rtk_corrections"] #subscribe_tab .muya-subscribe-form-card .bootstrap-select .filter-option,
.muya-svc-page[data-service="rtk_corrections"] #subscribe_tab .muya-subscribe-form-card .bootstrap-select .filter-option-inner,
.muya-svc-page[data-service="rtk_corrections"] #subscribe_tab .muya-subscribe-form-card .bootstrap-select .filter-option-inner-inner {
    color: #0f172a !important;
    background-color: #fff !important;
    opacity: 1 !important;
    -webkit-text-fill-color: #0f172a;
}

.muya-svc-page[data-service="rtk_corrections"] #subscribe_tab .muya-subscribe-form-card,
.muya-svc-page[data-service="rtk_corrections"] #subscribe_tab .muya-rtk-voucher-col,
.muya-svc-page[data-service="rtk_corrections"] #subscribe_tab ._subscribe_btn,
.muya-svc-page[data-service="rtk_corrections"] #subscribe_tab .muya-voucher-redeem-btn {
    pointer-events: auto !important;
    position: relative;
    z-index: 2;
}

.muya-svc-page[data-service="rtk_corrections"] #subscribe_tab .muya-rtk-subscribe-row {
    isolation: isolate;
}

.muya-rtk-subscribe-row.row {
    display: grid !important;
    grid-template-columns: minmax(0, 1.15fr) minmax(260px, 0.85fr);
    gap: 20px;
    align-items: start;
    margin-left: 0;
    margin-right: 0;
    flex-wrap: unset;
}

.muya-rtk-subscribe-row::before,
.muya-rtk-subscribe-row::after {
    content: none !important;
    display: none !important;
}

.muya-rtk-subscribe-row > [class*="col-"] {
    float: none;
    width: 100%;
    max-width: none;
    padding-left: 0;
    padding-right: 0;
    min-width: 0;
}

.muya-rtk-subscribe-row > .muya-rtk-subscribe-form-col {
    grid-column: 1;
    grid-row: 1;
}

.muya-rtk-subscribe-row > .muya-rtk-voucher-col {
    grid-column: 2;
    grid-row: 1;
}

.muya-rtk-subscribe-row > .col-md-12 {
    grid-column: 1 / -1;
    grid-row: 2;
    padding: 0;
    min-height: 0;
}

@media (max-width: 991px) {
    .muya-rtk-subscribe-row.row {
        grid-template-columns: 1fr;
    }

    .muya-rtk-subscribe-row > .muya-rtk-subscribe-form-col,
    .muya-rtk-subscribe-row > .muya-rtk-voucher-col {
        grid-column: 1;
        grid-row: auto;
    }
}

.muya-subscribe-steps .muya-subscribe-step-num {
    flex-shrink: 0;
    width: 22px;
    height: 22px;
    border-radius: 50%;
    background: #eff6ff;
    color: #1d4ed8;
    font-size: 11px;
    font-weight: 800;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

.muya-rinex-search-hint {
    margin: 0 0 14px;
    padding: 10px 12px;
    border-radius: 10px;
    background: #eff6ff;
    border: 1px solid #bfdbfe;
    color: #1e40af;
    font-size: 13px;
    line-height: 1.45;
}

.muya-rinex-search-hint i {
    margin-right: 6px;
}

.muya-svc-cta-row {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    justify-content: center;
    margin-top: 4px;
}

.muya-svc-chip-row {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    justify-content: center;
    margin-bottom: 18px;
}

.muya-svc-chip {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 6px 12px;
    border-radius: 999px;
    background: #fff;
    border: 1px solid #dbeafe;
    color: #1d4ed8;
    font-size: 12px;
    font-weight: 600;
}

.muya-map-layout {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(300px, 380px);
    gap: 20px;
    align-items: stretch;
}

@media (min-width: 1400px) {
    .muya-map-layout {
        grid-template-columns: minmax(0, 1fr) 400px;
    }
}

.muya-map-canvas-shell {
    border-radius: 20px;
    overflow: hidden;
    border: 1px solid #dbe4ee;
    box-shadow: 0 18px 38px rgba(15, 23, 42, 0.08);
    background: #fff;
    position: relative;
    min-height: min(85vh, 960px);
    height: 100%;
}

/* Legacy floating nearest panel must never inject into site footer flow */
#nearest-stations-panel {
    display: none !important;
}

.muya-map-panel {
    background: #fff;
    border: 1px solid #e2e8f0;
    border-radius: 18px;
    padding: 18px;
    box-shadow: 0 12px 28px rgba(15, 23, 42, 0.05);
}

.muya-map-panel h4,
.muya-map-panel h5 {
    margin-top: 0;
    color: #0f172a;
    font-weight: 700;
}

.muya-map-panel p {
    color: #64748b;
}

.muya-map-legend {
    list-style: none;
    padding: 0;
    margin: 0;
}

.muya-map-legend li {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 10px 0;
    border-top: 1px dashed #e2e8f0;
    color: #334155;
}

.muya-map-legend li:first-child {
    border-top: 0;
    padding-top: 0;
}

.muya-map-dot {
    width: 12px;
    height: 12px;
    border-radius: 999px;
    display: inline-block;
}

.muya-map-dot.is-green { background: #16a34a; }
.muya-map-dot.is-red { background: #dc2626; }
.muya-map-dot.is-blue { background: #2563eb; }
.muya-map-dot.is-amber { background: #d97706; }

.muya-map-legend-markers .muya-map-legend-icon {
    flex-shrink: 0;
    width: 20px;
    height: auto;
    object-fit: contain;
    filter: drop-shadow(0 1px 2px rgba(15, 23, 42, 0.12));
}

.muya-map-legend-markers .muya-map-legend-icon.is-round {
    width: 18px;
    height: 18px;
}

.muya-map-legend-heading {
    margin: 16px 0 8px;
    font-size: 13px;
    font-weight: 700;
    color: #0f172a;
    text-transform: uppercase;
    letter-spacing: 0.04em;
}

.muya-map-canvas-shell .muya-map-sidebar-tabs ul {
    width: 52px;
}

.muya-map-canvas-shell .muya-map-sidebar-tabs li a {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 4px;
    padding: 10px 6px !important;
    line-height: 1.1;
    font-size: 9px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.02em;
}

.muya-map-canvas-shell .muya-map-sidebar-tabs .muya-sidebar-tab-label {
    display: block;
    max-width: 44px;
    text-align: center;
    word-break: break-word;
}

.muya-map-canvas-shell .sidebar-pane {
    padding: 14px 16px;
}

.muya-map-canvas-shell .sidebar-header {
    font-size: 15px;
    font-weight: 700;
    color: #0f172a;
    border-bottom: 1px solid #e2e8f0;
    padding-bottom: 10px;
    margin-bottom: 12px;
}

.muya-map-canvas-shell .leaflet-marker-icon {
    transition: transform 0.15s ease;
}

.muya-map-canvas-shell .leaflet-marker-icon:hover {
    transform: scale(1.08);
    z-index: 1000 !important;
}

.muya-nearest-stations {
    margin-top: 18px;
}

.muya-nearest-stations-list {
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.muya-account-status-pill {
    margin-left: 8px;
    vertical-align: middle;
}

.muya-account-dropdown-summary {
    padding: 10px 12px 0;
}

.muya-account-dropdown-card {
    background: #f8fafc;
    border: 1px solid #e2e8f0;
    border-radius: 14px;
    padding: 12px;
    display: flex;
    flex-direction: column;
    gap: 6px;
}

.muya-account-dropdown-card small {
    color: #64748b;
}

.muya-account-verification-card {
    margin-top: 20px;
}

.muya-client-card-head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 12px;
    flex-wrap: wrap;
}

.muya-access-pill {
    font-size: 12px;
    padding: 7px 10px;
    border-radius: 999px;
}

.muya-account-summary {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
    gap: 12px;
    margin-top: 18px;
}

.muya-account-summary-item {
    border: 1px solid #e2e8f0;
    border-radius: 14px;
    background: #f8fafc;
    padding: 14px 16px;
}

.muya-account-summary-label {
    display: block;
    color: #64748b;
    font-size: 12px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .06em;
    margin-bottom: 8px;
}

.muya-account-summary-value {
    color: #0f172a;
    font-weight: 700;
}

.muya-verification-tile {
    border: 1px solid #e2e8f0;
    border-radius: 16px;
    background: #fff;
    padding: 18px;
    box-shadow: 0 8px 20px rgba(15, 23, 42, 0.04);
    min-height: 100%;
}

.muya-verification-tile-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 10px;
}

.muya-verification-tile-head h5 {
    margin: 0;
    font-weight: 700;
    color: #0f172a;
}

.muya-map-point-search {
    position: relative;
    z-index: 50;
    margin-bottom: 14px;
}

.muya-map-point-search label {
    display: block;
    font-weight: 600;
    color: #0f172a;
    margin-bottom: 6px;
    font-size: 13px;
}

.muya-map-point-search .input-group {
    display: flex;
    flex-wrap: nowrap;
    align-items: stretch;
    width: 100%;
}

.muya-map-point-search .input-group > .input-group-text,
.muya-map-point-search .input-group > .input-group-addon {
    display: flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 auto;
    padding: 0 12px;
    min-height: 38px;
    background: #f8fafc;
    border: 1px solid #cbd5e1;
    border-right: 0;
    border-radius: var(--muya-radius-sm, 8px) 0 0 var(--muya-radius-sm, 8px);
    color: #64748b;
}

.muya-map-point-search .input-group > .form-control {
    flex: 1 1 auto;
    width: 1%;
    min-width: 0;
    margin-left: 0;
    border-radius: 0;
}

.muya-map-point-search .input-group > .btn {
    flex: 0 0 auto;
    min-height: 38px;
    border-radius: 0 var(--muya-radius-sm, 8px) var(--muya-radius-sm, 8px) 0;
    display: inline-flex;
    align-items: center;
    gap: 6px;
}

.muya-map-point-search .input-group > .btn.is-loading {
    cursor: wait;
}

.muya-map-point-search .input-group > .form-control:focus {
    z-index: 2;
}

.muya-map-point-search .input-group > .input-group-text + .form-control:focus,
.muya-map-point-search .input-group > .input-group-addon + .form-control:focus {
    border-left-color: var(--muya-color-secondary, #2563eb);
}

.muya-map-point-search-results {
    position: relative;
    z-index: 1;
    width: 100%;
    max-height: 240px;
    overflow-y: auto;
    margin: 4px 0 0;
    padding: 0;
    list-style: none;
    background: #fff;
    border: 1px solid #e2e8f0;
    border-radius: 10px;
    box-shadow: 0 12px 28px rgba(15, 23, 42, 0.12);
}

.muya-map-point-search-results:empty,
.muya-map-point-search-results[hidden] {
    display: none;
}

.muya-map-point-search-results li button {
    display: block;
    width: 100%;
    text-align: left;
    border: 0;
    background: transparent;
    padding: 10px 12px;
    border-bottom: 1px solid #f1f5f9;
    cursor: pointer;
}

.muya-map-point-search-results li:last-child button {
    border-bottom: 0;
}

.muya-map-point-search-results li button:hover,
.muya-map-point-search-results li button:focus {
    background: #f1f5f9;
}

.muya-map-point-search-results .muya-search-item-type {
    display: block;
    font-size: 11px;
    color: #64748b;
    margin-top: 2px;
}

@media (max-width: 480px) {
    .muya-map-point-search .input-group > .btn span {
        position: absolute;
        width: 1px;
        height: 1px;
        padding: 0;
        margin: -1px;
        overflow: hidden;
        clip: rect(0, 0, 0, 0);
        white-space: nowrap;
        border: 0;
    }
}

.muya-map-toolbar,
.muya-map-filter-grid {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
}

.muya-map-filter-grid {
    margin: 16px 0 12px;
}

.muya-map-filter-grid .btn {
    flex: 1 1 140px;
}

.muya-map-filter-check {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    margin-bottom: 0;
    white-space: nowrap;
}

.muya-map-filter-check input[type="checkbox"] {
    margin: 0;
}

.muya-map-health-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(120px, 1fr));
    gap: 10px;
    margin: 16px 0;
}

.muya-map-health-card {
    border: 1px solid #e2e8f0;
    border-radius: 14px;
    background: #f8fafc;
    padding: 12px;
}

.muya-map-health-card strong {
    display: block;
    color: #0f172a;
    font-size: 22px;
    font-weight: 800;
}

.muya-map-health-card span {
    color: #64748b;
    font-size: 12px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .05em;
}

.muya-control-cluster-wrap {
    background: transparent;
    border: none;
}

.muya-control-cluster {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    height: 100%;
    border-radius: 50%;
    background: rgba(37, 99, 235, 0.88);
    color: #fff;
    font-size: 12px;
    font-weight: 800;
    border: 2px solid #fff;
    box-shadow: 0 2px 8px rgba(15, 23, 42, 0.25);
}

.muya-control-cluster span {
    line-height: 1;
}

.muya-map-server-status {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    margin: 16px 0;
}

.muya-map-server-chip {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    border-radius: 999px;
    padding: 9px 12px;
    background: #f8fafc;
    border: 1px solid #e2e8f0;
    color: #334155;
    font-weight: 700;
}

.muya-map-server-chip.is-online {
    border-color: rgba(22, 163, 74, .25);
    background: rgba(22, 163, 74, .08);
    color: #166534;
}

.muya-map-server-chip.is-offline {
    border-color: rgba(220, 38, 38, .25);
    background: rgba(220, 38, 38, .08);
    color: #991b1b;
}

.muya-map-server-chip.is-unknown {
    border-color: rgba(100, 116, 139, .25);
    background: rgba(100, 116, 139, .08);
    color: #475569;
}

/* Shared client portal polish */
.navbar .muya-client-brand {
    display: inline-flex;
    align-items: center;
    max-width: 260px;
    min-height: 50px;
    padding-top: 6px;
    padding-bottom: 6px;
    overflow: hidden;
}

.navbar .muya-client-brand img {
    max-height: 38px;
    max-width: 100%;
    object-fit: contain;
}

.navbar .muya-client-brand span {
    display: block;
    max-width: 100%;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    color: #0f172a;
    font-weight: 800;
    font-size: 18px;
    line-height: 1.15;
}

.muya-client-account-toggle {
    display: inline-flex !important;
    align-items: center;
    gap: 6px;
    max-width: 340px;
}

.muya-account-name {
    display: inline-block;
    max-width: 140px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.muya-account-status-pill {
    display: inline-flex;
    align-items: center;
    max-width: 165px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    margin-left: 4px;
    border-radius: 999px;
    padding: 5px 8px;
}

.muya-service-tabs-wrap {
    overflow-x: auto;
    overflow-y: hidden;
    border-bottom: 1px solid #e5e7eb;
    margin-bottom: 20px;
}

.muya-service-tabs {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    border-bottom: 0;
}

.muya-service-tabs > li {
    float: none;
    margin-bottom: 0;
}

.muya-service-tabs > li > a {
    border: 1px solid transparent !important;
    border-radius: 6px 6px 0 0 !important;
    color: #334155;
    font-weight: 600;
    white-space: nowrap;
}

.muya-service-tabs:not(.muya-svc-tabs) > li.active > a,
.muya-service-tabs:not(.muya-svc-tabs) > li.active > a:focus,
.muya-service-tabs:not(.muya-svc-tabs) > li.active > a:hover {
    background: #1f2937 !important;
    border-color: #1f2937 !important;
    color: #fff !important;
}

.muya-map-stage {
    position: relative;
    min-height: min(85vh, 960px);
    height: 100%;
    overflow: hidden;
    max-width: 100%;
}

.muya-map-canvas-shell .no-space,
.muya-map-canvas-shell .muya-map-stage-inner {
    float: none;
    width: 100%;
    min-height: inherit;
    height: 100%;
    padding: 0;
    position: relative;
}

#map.muya-map-canvas,
#map.sidebar-map {
    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    width: 100% !important;
    min-height: min(85vh, 960px);
    background: #eef2f7;
    z-index: 1;
}

.muya-map-nearby-title-row {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px;
    margin-bottom: 6px;
}

.muya-map-nearby-title-row .muya-map-nearby-title {
    margin: 0;
}

.muya-map-search-origin-badge {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    padding: 3px 10px;
    border-radius: 999px;
    font-size: 11px;
    font-weight: 600;
    background: #e0f2fe;
    color: #0369a1;
}

.muya-map-nearby-type-counts {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-top: 8px;
}

.muya-map-type-pill {
    display: inline-flex;
    align-items: center;
    padding: 3px 10px;
    border-radius: 999px;
    font-size: 11px;
    font-weight: 600;
}

.muya-map-type-pill.is-cors {
    background: #ecfdf5;
    color: #047857;
}

.muya-map-type-pill.is-control {
    background: #eff6ff;
    color: #1d4ed8;
}

.muya-map-recommended-badge {
    display: inline-block;
    margin-left: 6px;
    padding: 1px 7px;
    border-radius: 999px;
    font-size: 10px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.03em;
    background: #059669;
    color: #fff;
    vertical-align: middle;
}

.muya-map-network-stats {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin-bottom: 16px;
}

.muya-map-network-stat {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 8px 12px;
    border-radius: 10px;
    background: #f8fafc;
    border: 1px solid #e2e8f0;
    font-size: 12px;
    color: #334155;
}

.muya-map-network-stat strong {
    font-size: 14px;
    color: #0f172a;
}

.muya-map-toolbar .btn-success.active {
    background: #059669;
    border-color: #059669;
}

.muya-map-toolbar .btn-info.active {
    background: #0284c7;
    border-color: #0284c7;
}

.muya-map-toolbar .btn-primary.active {
    background: #2563eb;
    border-color: #2563eb;
}

.muya-map-nearby-section {
    border-top: 1px solid #e2e8f0;
    padding: 16px 18px 18px;
    background: #f8fafc;
}

.muya-map-nearby-head {
    margin-bottom: 12px;
}

.muya-map-nearby-title {
    margin: 0 0 6px;
    font-size: 16px;
    font-weight: 700;
    color: #0f172a;
}

.muya-map-nearby-summary {
    margin: 0;
    font-size: 13px;
}

.muya-map-nearby-table {
    margin-bottom: 0;
    background: #fff;
    border-radius: 10px;
    overflow: hidden;
}

.muya-map-nearby-table thead th {
    background: #f1f5f9;
    color: #334155;
    font-size: 12px;
    text-transform: uppercase;
    letter-spacing: 0.03em;
    border-bottom-width: 1px;
    white-space: nowrap;
}

.muya-map-nearby-table tbody tr.is-recommended {
    background: #ecfdf5;
}

.muya-map-nearby-table tbody tr:hover {
    background: #eff6ff;
}

.muya-map-nearby-actions {
    white-space: nowrap;
}

.muya-map-nearby-actions .btn + .btn {
    margin-left: 4px;
}

.muya-map-nearby-empty {
    padding: 20px;
    text-align: center;
    background: #fff;
    border-radius: 10px;
    border: 1px dashed #cbd5e1;
}

.muya-map-canvas-shell .sidebar-left {
    z-index: 1200;
}

.muya-map-canvas-shell .leaflet-container {
    width: 100%;
    height: 100%;
}

.muya-map-canvas-shell .leaflet-tile-pane img {
    max-width: none !important;
    max-height: none !important;
}

/*
 * Tile rendering fix — base map showed only the top-left tile (grey elsewhere).
 * Leaflet keeps every tile at visibility:hidden until its <img> fires `load`,
 * at which point it adds `.leaflet-tile-loaded` to reveal it. When tiles are
 * served instantly from the browser/disk cache the load event is missed for
 * most tiles, so they download fine but stay hidden. Forcing inherited
 * visibility makes already-downloaded tiles paint regardless.
 */
.muya-map-canvas-shell .leaflet-tile {
    visibility: inherit !important;
}

/* ============================================================
   GNSS Receiver modals — add / view / edit (modern redesign)
   ============================================================ */
.muya-receiver-modal .modal-dialog {
    width: 500px;
    max-width: calc(100% - 24px);
    margin: 30px auto;
}
.muya-receiver-modal .modal-content {
    border: 0;
    border-radius: 16px;
    overflow: hidden;
    box-shadow: 0 26px 64px rgba(15, 23, 42, 0.30);
    max-height: calc(100vh - 60px);
    display: flex;
    flex-direction: column;
}
.muya-receiver-modal .modal-header {
    position: relative;
    padding: 20px 24px;
    background: linear-gradient(135deg, #0b2455 0%, #2563eb 100%);
    border-bottom: 0;
}
.muya-receiver-modal .modal-header .close {
    position: absolute;
    top: 14px;
    right: 16px;
    margin: 0;
    width: 32px;
    height: 32px;
    border-radius: 8px;
    color: #fff;
    opacity: 0.85;
    font-size: 22px;
    font-weight: 400;
    text-shadow: none;
    transition: background 0.15s ease, opacity 0.15s ease;
}
.muya-receiver-modal .modal-header .close:hover,
.muya-receiver-modal .modal-header .close:focus {
    opacity: 1;
    background: rgba(255, 255, 255, 0.16);
    color: #fff;
}
.muya-rcv-modal-head {
    display: flex;
    align-items: center;
    gap: 14px;
    padding-right: 36px;
}
.muya-rcv-modal-icon {
    flex: 0 0 44px;
    width: 44px;
    height: 44px;
    border-radius: 12px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: rgba(255, 255, 255, 0.16);
    color: #fff;
    font-size: 19px;
}
.muya-rcv-modal-headings {
    min-width: 0;
}
.muya-receiver-modal .modal-title {
    color: #fff;
    font-size: 18px;
    font-weight: 700;
    line-height: 1.25;
    margin: 0;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
.muya-rcv-modal-sub {
    display: block;
    margin-top: 2px;
    font-size: 12.5px;
    font-weight: 400;
    color: rgba(255, 255, 255, 0.82);
}
.muya-receiver-modal .modal-body {
    padding: 16px 20px;
    background: #fff;
    overflow-y: auto;
    flex: 1 1 auto;
}
.muya-receiver-modal .modal-footer {
    margin: 12px -20px -16px;
    padding: 12px 20px;
    background: #f8fafc;
    border-top: 1px solid #eef2f7;
    text-align: right;
}
.muya-receiver-modal .modal-footer .btn {
    min-width: 104px;
    border-radius: 8px;
    font-weight: 600;
}
.muya-receiver-modal .modal-footer .btn-info {
    background: #2563eb;
    border-color: #2563eb;
    color: #fff !important;
}
.muya-receiver-modal .modal-footer .btn-info:hover,
.muya-receiver-modal .modal-footer .btn-info:focus {
    background: #1d4ed8;
    border-color: #1d4ed8;
    color: #fff !important;
}
.muya-receiver-modal .modal-footer .btn-default {
    border: 1px solid #d0d7e2;
    color: #5a6a85;
    background: #fff;
}
.muya-receiver-modal .modal-footer .btn-default:hover,
.muya-receiver-modal .modal-footer .btn-default:focus {
    background: #f1f5f9;
    border-color: #94a3b8;
    color: #1e293b;
}

/* Bootstrap-select in modals */
.muya-receiver-modal .bootstrap-select > .dropdown-toggle {
    height: 36px;
    border-radius: 8px;
    border: 1px solid #d8dee9 !important;
    background-color: #fff !important;
    color: #374151 !important;
    box-shadow: none !important;
    transition: border-color 0.15s ease, box-shadow 0.15s ease;
}
.muya-receiver-modal .bootstrap-select > .dropdown-toggle:hover,
.muya-receiver-modal .bootstrap-select > .dropdown-toggle:focus,
.muya-receiver-modal .bootstrap-select.open > .dropdown-toggle {
    border-color: #2563eb !important;
    box-shadow: 0 0 0 3px rgba(37, 99, 235, 0.15) !important;
    outline: none !important;
}
.muya-receiver-modal .bootstrap-select > .dropdown-toggle .filter-option {
    color: #374151;
}
.muya-receiver-modal .bootstrap-select > .dropdown-toggle.bs-placeholder .filter-option-inner-inner {
    color: #9ca3af;
}

/* Form fields */
.muya-receiver-modal .form-group {
    margin-bottom: 10px;
}
.muya-receiver-modal .control-label {
    font-weight: 600;
    font-size: 12px;
    color: #334155;
    margin-bottom: 3px;
}
.muya-receiver-modal .form-control {
    height: 36px;
    border-radius: 8px;
    border: 1px solid #d8dee9;
    box-shadow: none;
    font-size: 13px;
    transition: border-color 0.15s ease, box-shadow 0.15s ease;
}
.muya-receiver-modal textarea.form-control {
    height: auto;
    min-height: 56px;
    resize: none;
}
.muya-receiver-modal .form-control:focus {
    border-color: #2563eb;
    box-shadow: 0 0 0 3px rgba(37, 99, 235, 0.15);
}
.muya-receiver-modal .form-group small.text-muted {
    display: none;
}

/* 2-column grid for optional fields */
.muya-rcv-optional-grid {
    display: flex;
    flex-wrap: wrap;
    gap: 0 12px;
}
.muya-rcv-optional-grid > .form-group {
    flex: 1 1 calc(50% - 6px);
    min-width: 0;
}
.muya-rcv-optional-grid > .form-group.muya-full-width {
    flex: 1 1 100%;
}

/* Section divider with label */
.muya-rcv-section {
    display: flex;
    align-items: center;
    gap: 10px;
    margin: 12px 0 8px;
}
.muya-rcv-section:first-child {
    margin-top: 2px;
}
.muya-rcv-section-title {
    font-size: 11.5px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: #2563eb;
    white-space: nowrap;
}
.muya-rcv-section-title i {
    margin-right: 6px;
}
.muya-rcv-section-title em {
    color: #94a3b8;
    font-style: normal;
    font-weight: 500;
    text-transform: none;
    letter-spacing: 0;
}
.muya-rcv-section::after {
    content: "";
    flex: 1 1 auto;
    height: 1px;
    background: #eef2f7;
}

/* View details — definition rows */
.muya-rcv-info {
    border: 1px solid #eef2f7;
    border-radius: 12px;
    overflow: hidden;
}
.muya-rcv-info-row {
    display: flex;
    gap: 14px;
    padding: 11px 16px;
    border-top: 1px solid #f1f5f9;
}
.muya-rcv-info-row:first-child {
    border-top: 0;
}
.muya-rcv-info-row:nth-child(even) {
    background: #fafbfd;
}
.muya-rcv-info-label {
    flex: 0 0 42%;
    font-weight: 600;
    font-size: 13px;
    color: #64748b;
}
.muya-rcv-info-value {
    flex: 1 1 auto;
    font-size: 13.5px;
    color: #0f172a;
    word-break: break-word;
}
.muya-rcv-info-row.muya-rcv-info-subheading {
    background: #f8fafc !important;
    gap: 8px;
    align-items: baseline;
}
.muya-rcv-info-row.muya-rcv-info-subheading strong {
    font-size: 12px;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: #334155;
}
.muya-rcv-info-row .muya-coord-units {
    font-size: 11px;
    color: #94a3b8;
    font-weight: 500;
}

/* Tabs inside the view modal */
.muya-receiver-modal .nav-tabs {
    border-bottom: 1px solid #eef2f7;
    margin-bottom: 18px;
    gap: 4px;
}
.muya-receiver-modal .nav-tabs > li > a {
    border: 0;
    border-radius: 8px 8px 0 0;
    color: #64748b;
    font-weight: 600;
    font-size: 13px;
    padding: 9px 14px;
    margin: 0;
}
.muya-receiver-modal .nav-tabs > li > a:hover {
    background: #f1f5f9;
    color: #2563eb;
    border: 0;
}
.muya-receiver-modal .nav-tabs > li.active > a,
.muya-receiver-modal .nav-tabs > li.active > a:hover,
.muya-receiver-modal .nav-tabs > li.active > a:focus {
    color: #ffffff !important;
    background: #2563eb !important;
    border: 0 !important;
    border-radius: 8px 8px 0 0 !important;
    border-bottom: 2px solid #2563eb !important;
}
.muya-receiver-modal .tab-content {
    padding-left: 0 !important;
}

/* Fix Bootstrap-3 input-group-addon broken by Bootstrap-5 flex rules */
.muya-receiver-modal .input-group {
    display: flex !important;
    align-items: stretch;
    flex-wrap: nowrap;
    width: 100%;
}
.muya-receiver-modal .input-group .form-control {
    flex: 1 1 auto;
    min-width: 0;
    border-radius: 8px 0 0 8px !important;
    border-right: 0 !important;
}
.muya-receiver-modal .input-group-addon {
    display: flex !important;
    align-items: center;
    justify-content: center;
    padding: 0 12px;
    background: #f8fafc;
    border: 1px solid #d8dee9;
    border-left: 0;
    border-radius: 0 8px 8px 0 !important;
    color: #64748b;
    cursor: pointer;
    white-space: nowrap;
    min-width: 40px;
    transition: background 0.15s ease, color 0.15s ease;
}
.muya-receiver-modal .input-group-addon:hover {
    background: #eef2f7;
    color: #2563eb;
}
.muya-receiver-modal .input-group-addon a,
.muya-receiver-modal .input-group-addon a:hover {
    color: inherit;
    text-decoration: none;
}
.muya-receiver-modal .input-group .form-control:focus {
    border-color: #2563eb;
    border-right: 0 !important;
}
.muya-receiver-modal .input-group .form-control:focus + .input-group-addon {
    border-color: #2563eb;
}
.muya-receiver-modal #map,
.muya-receiver-modal .muya-receiver-track-map {
    height: 320px;
    border-radius: 12px;
}

@media (max-width: 640px) {
    .muya-receiver-modal .modal-dialog {
        margin: 8px auto;
        width: calc(100% - 16px);
    }
    .muya-rcv-info-label {
        flex-basis: 45%;
    }
}

/* Wider variant — table-driven modals (e.g. My Active Licences) need more
   room than the 500px default used by the add/edit/view receiver forms. */
.muya-receiver-modal-lg .modal-dialog {
    width: 900px;
}
.muya-receiver-modal-lg .modal-content {
    max-height: calc(100vh - 60px);
}
.muya-receiver-modal-lg .modal-body .table {
    margin-bottom: 0;
}
.muya-receiver-modal-lg .modal-body thead th {
    border-bottom: 2px solid #eef2f7;
    color: #475569;
    font-weight: 700;
}

.muya-map-panel {
    overflow: visible;
    max-height: none;
}

.muya-map-panel .btn {
    white-space: normal;
    text-align: left;
}

.muya-cors-client-shell .bootstrap-select,
.muya-cors-client-shell .bootstrap-select > .dropdown-toggle,
.muya-cors-client-shell select.form-control,
.muya-cors-client-shell input.form-control {
    width: 100% !important;
}

.muya-cors-client-shell .tab-content,
.muya-cors-client-shell .table-responsive {
    width: 100%;
}

.muya-admin-verification-profile .panel-title {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
}

@media (max-width: 991px) {
    .muya-map-canvas-shell,
    #map.sidebar-map {
        min-height: min(68vh, 680px);
    }

    #map.muya-map-canvas {
        min-height: min(68vh, 680px);
    }

    .muya-map-stage {
        min-height: min(68vh, 680px);
    }

    .muya-map-page .muya-map-canvas-shell,
    .muya-map-page .muya-map-stage,
    .muya-map-page #map.muya-map-canvas,
    .muya-map-page #map.sidebar-map {
        min-height: var(--muya-map-shell-min-height-md);
    }

    .muya-map-panel {
        position: static;
        max-height: none;
    }

    .muya-client-account-toggle {
        max-width: 100%;
    }

    .muya-account-name,
    .muya-account-status-pill {
        max-width: none;
    }

    .muya-map-layout {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 767px) {
    .muya-service-tabs {
        flex-wrap: nowrap;
        min-width: max-content;
    }

    .muya-client-hero {
        border-radius: 14px;
        padding: 18px;
    }

    .muya-client-hero-title {
        font-size: 23px;
    }
}

/* ============================================================
   NEAREST STATION CARDS
   ============================================================ */
.muya-nearest-stations-list {
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.muya-nearest-station-card {
    padding: 14px;
    border: 1px solid #e2e8f0;
    border-radius: 14px;
    background: #f8fafc;
    transition: transform .15s ease, box-shadow .15s ease, border-color .15s ease;
}

.muya-nearest-station-card:hover {
    transform: translateY(-2px);
    box-shadow: 0 8px 20px rgba(15, 23, 42, 0.08);
    border-color: #cbd5e1;
}

.muya-nearest-station-card h6 {
    margin: 0 0 4px;
    font-size: 14px;
    font-weight: 700;
    color: #0f172a;
}

.muya-nearest-station-meta {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-top: 10px;
}

.muya-nearest-station-meta span {
    padding: 5px 10px;
    border-radius: 999px;
    background: #fff;
    border: 1px solid #dbe4ee;
    color: #475569;
    font-size: 11px;
    font-weight: 700;
}

/* ============================================================
   MAP TOOLBAR
   ============================================================ */
.muya-map-toolbar {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin-bottom: 16px;
}

.muya-map-toolbar .btn {
    border-radius: 999px;
}

.muya-map-toolbar .btn.active,
.muya-map-toolbar .btn:active {
    background: #0f172a;
    color: #fff;
    border-color: #0f172a;
}

/* ============================================================
   MAP POPUP TABLE (replaces inline <style> injected per popup)
   ============================================================ */
.muya-popup-table > tbody > tr > td {
    padding: 3px 5px;
    font-size: 11px;
    border: 1px solid rgba(226, 232, 240, .7);
    background: rgba(0, 0, 0, .01);
    vertical-align: middle;
}

.muya-popup-table > tbody > tr > td:first-child {
    color: #64748b;
    font-weight: 600;
    white-space: nowrap;
    width: 40%;
}

.muya-popup-table-responsive h6 {
    font-weight: 700;
    font-size: 12px;
    margin: 8px 0 4px;
    color: #0f172a;
}

.muya-popup-table-responsive p {
    font-size: 11px;
    margin: 2px 0;
    color: #334155;
}

.muya-popup-table > tbody > tr.muya-popup-coord-heading > td {
    background: rgba(37, 99, 235, .06);
    border-top: 1px solid rgba(37, 99, 235, .15);
    color: #0f172a;
    font-size: 11px;
    padding-top: 6px;
}

.muya-popup-table > tbody > tr.muya-popup-coord-heading .muya-coord-units {
    color: #64748b;
    font-weight: 500;
    margin-left: 4px;
}

.muya-popup-table > tbody > tr.muya-popup-coord-note > td {
    background: rgba(248, 250, 252, .9);
    border-top: none;
    font-size: 10px;
    padding-top: 2px;
    padding-bottom: 6px;
}

.leaflet-popup-content .muya-map-popup-placeholder {
    margin: 8px 0 4px;
    padding: 8px 10px;
    font-size: 11px;
    line-height: 1.45;
    border-radius: 6px;
    word-wrap: break-word;
    overflow-wrap: anywhere;
}

.leaflet-popup-content .muya-map-popup-placeholder .fa {
    margin-right: 4px;
}

/* Traverse / photo popups — block layout so async images do not cover text */
.leaflet-popup-content .muya-traverse-popup {
    min-width: 200px;
    max-width: 280px;
    text-align: left;
    line-height: 1.45;
}

.leaflet-popup-content .muya-traverse-popup__head {
    display: block;
    padding-right: 24px;
    margin-bottom: 4px;
    font-size: 13px;
}

.leaflet-popup-content .muya-traverse-popup__coords {
    display: block;
    font-size: 12px;
}

.leaflet-popup-content .muya-traverse-popup__photo {
    display: block;
    clear: both;
    margin-top: 8px;
    overflow: hidden;
}

.leaflet-popup-content .muya-traverse-popup__photo img {
    display: block;
    width: 100%;
    max-width: 240px;
    height: auto;
    margin: 0;
    border-radius: 4px;
    vertical-align: top;
}

.leaflet-popup:has(.muya-traverse-popup) .leaflet-popup-content {
    width: auto !important;
    max-width: 300px;
}

/* Kenya reference / CORS map — zone lookup popup on click */
.leaflet-popup.muya-zone-click-popup-wrap .leaflet-popup-content {
    width: auto !important;
    max-width: 300px;
    margin: 10px 14px;
}

.muya-zone-click-popup {
    text-align: left;
    line-height: 1.45;
    font-size: 12px;
}

.muya-zone-click-popup__title {
    font-weight: 700;
    font-size: 13px;
    margin-bottom: 6px;
    padding-right: 18px;
}

.muya-zone-click-popup__band {
    margin-top: 6px;
    padding: 4px 8px;
    border-radius: 4px;
    background: rgba(37, 99, 235, 0.08);
    color: #1e40af;
    font-size: 11px;
}

.muya-zone-click-popup__warn {
    margin-top: 6px;
    font-size: 11px;
    color: #b45309;
}

.muya-zone-click-popup__coords {
    margin-top: 8px;
    font-size: 11px;
}

/* ============================================================
   LIVE STATUS COMPONENT  (moved from live_status.php inline)
   ============================================================ */
.receiver-status-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(250px, 1fr));
    gap: 15px;
    padding: 8px 0;
}

.receiver-card {
    border: 1px solid #e2e8f0;
    border-radius: 14px;
    padding: 16px;
    background: #fff;
    box-shadow: 0 4px 12px rgba(15, 23, 42, 0.05);
    transition: transform .18s ease, box-shadow .18s ease;
}

.receiver-card:hover {
    box-shadow: 0 8px 22px rgba(15, 23, 42, 0.1);
    transform: translateY(-2px);
}

.receiver-card.online {
    border-left: 4px solid #22c55e;
}

.receiver-card.offline {
    border-left: 4px solid #ef4444;
}

.receiver-card .receiver-name {
    font-weight: 700;
    font-size: 15px;
    color: #0f172a;
    margin-bottom: 6px;
}

.receiver-card .receiver-info {
    font-size: 13px;
    color: #64748b;
    margin-bottom: 4px;
}

.receiver-card .receiver-status {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-top: 10px;
}

.receiver-card .receiver-tracking {
    margin-top: 10px;
    border-top: 1px dashed #e2e8f0;
    border-bottom: 1px dashed #e2e8f0;
    padding: 8px 0;
}

.receiver-card .receiver-track-row {
    display: flex;
    justify-content: space-between;
    gap: 8px;
    margin-bottom: 4px;
}

.receiver-card .receiver-track-row:last-child {
    margin-bottom: 0;
}

.receiver-card .receiver-track-label {
    font-size: 11px;
    color: #64748b;
    font-weight: 600;
}

.receiver-card .receiver-track-value {
    font-size: 11px;
    color: #1e293b;
    text-align: right;
}

.receiver-card .status-indicator {
    width: 11px;
    height: 11px;
    border-radius: 50%;
    flex-shrink: 0;
}

@keyframes muya-receiver-pulse {
    0%   { box-shadow: 0 0 0 0 rgba(34, 197, 94, 0.5); }
    70%  { box-shadow: 0 0 0 8px rgba(34, 197, 94, 0); }
    100% { box-shadow: 0 0 0 0 rgba(34, 197, 94, 0); }
}

.receiver-card .status-indicator.online {
    background: #22c55e;
    animation: muya-receiver-pulse 2s infinite;
}

.receiver-card .status-indicator.offline {
    background: #ef4444;
}

.receiver-card .hours-remaining {
    margin-top: 12px;
    padding: 10px;
    background: #f8fafc;
    border-radius: 10px;
    text-align: center;
    border: 1px solid #e2e8f0;
}

.receiver-card .hours-remaining .hours {
    font-size: 22px;
    font-weight: 800;
    color: #2563eb;
    line-height: 1;
}

.receiver-card .hours-remaining .label {
    font-size: 11px;
    color: #64748b;
    margin-top: 3px;
}

.receiver-card .receiver-actions {
    margin-top: 10px;
}

.receiver-card .receiver-actions .btn {
    width: 100%;
    border-radius: 8px;
    font-size: 12px;
    font-weight: 600;
}

@media (max-width: 768px) {
    .receiver-status-grid {
        grid-template-columns: 1fr;
    }
}

/* ============================================================
   HEALTH GAUGE COMPONENT  (moved from health_gauge.php inline)
   ============================================================ */
.health-gauges {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(190px, 1fr));
    gap: 20px;
    padding: 8px;
}

.health-gauge {
    text-align: center;
}

.gauge-container {
    position: relative;
    width: 140px;
    height: 140px;
    margin: 0 auto 10px;
}

.gauge-svg {
    transform: rotate(-90deg);
}

.gauge-background {
    fill: none;
    stroke: #e2e8f0;
    stroke-width: 11;
}

.gauge-progress {
    fill: none;
    stroke-width: 11;
    stroke-linecap: round;
    transition: stroke-dashoffset 1s ease;
}

.gauge-progress.excellent { stroke: #22c55e; }
.gauge-progress.good      { stroke: #0ea5e9; }
.gauge-progress.fair      { stroke: #f59e0b; }
.gauge-progress.poor      { stroke: #ef4444; }

.gauge-text {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    font-size: 28px;
    font-weight: 800;
    color: #0f172a;
    line-height: 1;
}

.gauge-label {
    font-weight: 700;
    font-size: 13px;
    color: #0f172a;
    margin-top: 8px;
}

.gauge-sublabel {
    font-size: 11px;
    color: #64748b;
    margin-top: 2px;
}

@media (max-width: 768px) {
    .health-gauges {
        grid-template-columns: 1fr 1fr;
    }
}

/* ============================================================
   CASHBACK WIDGET  (moved from cashback_widget.php inline)
   ============================================================ */
.cashback-summary {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));
    gap: 14px;
    margin-bottom: 20px;
}

.muya-cashback-stat-card {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 16px 18px;
    border-radius: 14px;
    color: #fff;
    box-shadow: 0 6px 18px rgba(15, 23, 42, 0.14);
    min-height: 88px;
}

.muya-cashback-stat-card:nth-child(1) { background: linear-gradient(135deg, #0f172a 0%, #2563eb 100%); }
.muya-cashback-stat-card:nth-child(2) { background: linear-gradient(135deg, #1e293b 0%, #7c3aed 100%); }
.muya-cashback-stat-card:nth-child(3) { background: linear-gradient(135deg, #0369a1 0%, #06b6d4 100%); }

.muya-cashback-stat-icon {
    font-size: 28px;
    opacity: 0.95;
    flex-shrink: 0;
    color: #fff;
    text-shadow: 0 1px 2px rgba(15, 23, 42, 0.35);
}

.muya-cashback-stat-content {
    min-width: 0;
}

/* Override .muya-cors-client-shell h4 heading color on gradient cards */
.muya-cors-client-shell .muya-cashback-stat-card .muya-cashback-stat-value,
.muya-cors-client-shell .muya-cashback-stat-card .muya-cashback-stat-content h4,
.muya-cashback-stat-card .muya-cashback-stat-value,
.muya-cashback-stat-card .muya-cashback-stat-content h4 {
    margin: 0;
    font-size: 1.65rem;
    font-weight: 800;
    line-height: 1.15;
    color: #fff !important;
    text-shadow: 0 1px 3px rgba(15, 23, 42, 0.45);
    letter-spacing: -0.02em;
}

.muya-cors-client-shell .muya-cashback-stat-card .muya-cashback-stat-label,
.muya-cors-client-shell .muya-cashback-stat-card .muya-cashback-stat-content p,
.muya-cashback-stat-card .muya-cashback-stat-label,
.muya-cashback-stat-card .muya-cashback-stat-content p {
    margin: 6px 0 0;
    font-size: 0.8125rem;
    font-weight: 700;
    line-height: 1.3;
    color: rgba(255, 255, 255, 0.96) !important;
    text-shadow: 0 1px 2px rgba(15, 23, 42, 0.35);
    letter-spacing: 0.02em;
    text-transform: none;
    opacity: 1;
}

.muya-cashback-section-title {
    margin: 0 0 12px;
    font-size: 15px;
    font-weight: 700;
    color: #0f172a;
    letter-spacing: 0.01em;
}

.muya-cashback-status-badge {
    display: inline-block;
    padding: 3px 8px;
    border-radius: 999px;
    font-size: 11px;
    font-weight: 700;
}

.muya-cashback-status-badge.pending  { background: #fef3c7; color: #92400e; }
.muya-cashback-status-badge.approved { background: #e0f2fe; color: #075985; }
.muya-cashback-status-badge.applied  { background: #dcfce7; color: #166534; }
.muya-cashback-status-badge.rejected { background: #fee2e2; color: #991b1b; }

@media (max-width: 768px) {
    .cashback-summary {
        grid-template-columns: 1fr;
    }
}

/* ============================================================
   GNSS RECEIVER DASHBOARD (client)
   ============================================================ */
.muya-client-panel {
    background: #fff;
    border: 1px solid #e2e8f0;
    border-radius: 16px;
    overflow: hidden;
    box-shadow: 0 8px 24px rgba(15, 23, 42, 0.05);
    margin-bottom: 22px;
}

.muya-client-panel-head {
    padding: 16px 20px;
    border-bottom: 1px solid #e2e8f0;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    background: #f8fafc;
}

.muya-client-panel-title {
    margin: 0;
    font-size: 16px;
    font-weight: 700;
    color: #0f172a;
    display: flex;
    align-items: center;
    gap: 8px;
}

.muya-client-panel-body {
    padding: 20px;
}

/* Quick-action buttons grid */
.muya-quick-actions-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
    gap: 14px;
}

.muya-quick-action-btn {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 10px;
    padding: 22px 16px;
    border-radius: 14px;
    border: 2px solid transparent;
    font-weight: 700;
    font-size: 13px;
    text-decoration: none !important;
    transition: transform .15s ease, box-shadow .15s ease;
    color: #fff !important;
    text-align: center;
}

.muya-quick-action-btn:hover {
    transform: translateY(-3px);
    box-shadow: 0 12px 28px rgba(15, 23, 42, 0.14);
    color: #fff !important;
}

.muya-quick-action-btn i {
    font-size: 24px;
}

.muya-quick-action-btn.is-primary { background: linear-gradient(135deg, #1d4ed8, #3b82f6); }
.muya-quick-action-btn.is-info    { background: linear-gradient(135deg, #0369a1, #0ea5e9); }
.muya-quick-action-btn.is-success { background: linear-gradient(135deg, #15803d, #22c55e); }

/* ============================================================
   CLIENT NOTIFICATIONS BELL (gnss_receiver_dashboard hero, etc.)
   ============================================================ */
.notifications-bell {
    position: relative;
    display: inline-block;
}

.notifications-bell .btn-icon {
    position: relative;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 38px;
    height: 38px;
    min-height: 38px;
    padding: 0 !important;
}

.notifications-bell .btn-icon .fa {
    margin: 0 !important;
    font-size: 15px;
    line-height: 1;
}

.notifications-bell .badge {
    position: absolute;
    top: 4px;
    right: 4px;
    padding: 3px 6px;
    border-radius: 10px;
    font-size: 10px;
    line-height: 1.2;
}

.notifications-dropdown {
    position: absolute;
    right: 0;
    top: 48px;
    width: 340px;
    max-width: min(340px, calc(100vw - 24px));
    background: #fff;
    border: 1px solid #e2e8f0;
    border-radius: 16px;
    box-shadow: 0 20px 50px rgba(15, 23, 42, 0.16);
    z-index: 1050;
    overflow: hidden;
}

.notifications-dropdown .dropdown-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 10px;
    padding: 14px 16px;
    border-bottom: 1px solid #e2e8f0;
    background: #f8fafc;
}

.notifications-dropdown .dropdown-header h5 {
    margin: 0;
    font-size: 14px;
    font-weight: 700;
    color: #0f172a;
}

.notifications-dropdown .dropdown-body {
    max-height: 320px;
    overflow-y: auto;
    padding: 8px 0;
}

.notifications-dropdown .dropdown-footer {
    padding: 12px 16px;
    border-top: 1px solid #e2e8f0;
    background: #f8fafc;
    text-align: center;
}

.notifications-dropdown .dropdown-footer a {
    font-weight: 600;
    color: #2563eb;
}

.notification-item {
    padding: 12px 16px;
    border-bottom: 1px solid #f1f5f9;
    cursor: pointer;
}

.notification-item:hover {
    background: #f8fafc;
}

.notification-item.unread {
    background: #eff6ff;
}

.notification-title {
    font-weight: 600;
    color: #0f172a;
    font-size: 13px;
}

.notification-message {
    color: #64748b;
    font-size: 12px;
    margin-top: 4px;
}

.notification-time {
    color: #94a3b8;
    font-size: 11px;
    margin-top: 4px;
}

/* ============================================================
   ACCOUNT ICON DROPDOWN  (navigation.php + frontend.php)
   ============================================================ */
.muya-account-icon-dropdown {
    min-width: 440px !important;
    max-width: calc(100vw - 16px) !important;
    padding: 0 !important;
    border-radius: 18px !important;
    border: 1px solid #e2e8f0 !important;
    box-shadow: 0 24px 60px rgba(15, 23, 42, 0.16) !important;
    right: 0 !important;
    left: auto !important;
}

.navbar .dropdown ul.muya-account-icon-dropdown {
    padding: 0 !important;
    background: #fff !important;
    border-radius: 18px !important;
}

.navbar .dropdown ul.muya-account-icon-dropdown > li > a,
.navbar .dropdown ul.muya-account-icon-dropdown .muya-acct-icon-btn {
    text-transform: none;
    font-weight: inherit;
    color: inherit;
}

.navbar .dropdown ul.muya-account-icon-dropdown > li:hover > a {
    color: inherit;
    background: transparent;
}

/* gradient header */
.muya-acct-head {
    background: linear-gradient(135deg, #0f172a 0%, #1e293b 55%, #1d4ed8 100%);
    padding: 12px 14px;
    color: #fff;
    display: flex;
    align-items: center;
    gap: 10px;
    text-decoration: none;
}

.muya-acct-head-avatar {
    width: 38px;
    height: 38px;
    border-radius: 50%;
    border: 2px solid rgba(255, 255, 255, 0.35);
    object-fit: cover;
    flex-shrink: 0;
}

.muya-acct-head-info {
    flex: 1;
    min-width: 0;
}

.muya-acct-head-name {
    font-weight: 700;
    font-size: 14px;
    color: #fff;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.muya-acct-head-email {
    margin-top: 2px;
    font-size: 11px;
    font-weight: 500;
    color: rgba(255, 255, 255, 0.82);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.muya-acct-head-badge {
    display: inline-block;
    margin-top: 6px;
    padding: 2px 8px;
    border-radius: 999px;
    font-size: 10px;
    font-weight: 700;
    background: rgba(255, 255, 255, 0.18);
    color: #fff;
}

.muya-acct-head-badge--success {
    background: rgba(34, 197, 94, 0.25);
}

.muya-acct-head-badge--info {
    background: rgba(56, 189, 248, 0.25);
}

.muya-acct-head-badge--warning {
    background: rgba(251, 191, 36, 0.28);
}

.muya-acct-cta-row {
    padding: 0;
    border-bottom: 1px solid #e2e8f0;
}

.muya-acct-verify-cta {
    display: flex !important;
    align-items: center;
    gap: 10px;
    padding: 12px 16px !important;
    background: linear-gradient(90deg, #fff7ed, #fef3c7) !important;
    color: #9a3412 !important;
    font-size: 12px;
    font-weight: 700;
    text-decoration: none !important;
    /* ".navbar a" (style.css) injects a 999px pill radius here too —
       this is a full-width row, not a pill. */
    border-radius: 0 !important;
}

.muya-acct-verify-cta:hover {
    background: linear-gradient(90deg, #ffedd5, #fde68a) !important;
    color: #7c2d12 !important;
}

.muya-acct-verify-cta .fa-angle-right {
    margin-left: auto;
}

/* verification chips row */
.muya-acct-verify-row {
    padding: 8px 14px;
    background: #f8fafc;
    border-bottom: 1px solid #e2e8f0;
}

.muya-acct-verify-chips {
    display: flex;
    gap: 8px;
    flex-wrap: wrap;
}

.muya-acct-verify-chip {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    padding: 4px 9px;
    border-radius: 999px;
    font-size: 11px;
    font-weight: 700;
    border: 1px solid transparent;
}

.muya-acct-verify-chip.is-ok {
    background: #dcfce7;
    color: #166534;
    border-color: rgba(22, 163, 74, .2);
}

.muya-acct-verify-chip.is-warn {
    background: #fef3c7;
    color: #92400e;
    border-color: rgba(217, 119, 6, .2);
}

.muya-acct-stats-row {
    padding: 8px 14px;
    background: #ffffff;
    border-bottom: 1px solid #e2e8f0;
}

.muya-acct-stats-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 6px;
}

.muya-acct-stat-item {
    background: #f8fafc;
    border: 1px solid #e2e8f0;
    border-radius: 10px;
    text-align: center;
    padding: 8px 6px;
}

.muya-acct-stat-num {
    display: block;
    color: #1e3a8a;
    font-size: 15px;
    font-weight: 800;
    line-height: 1.2;
}

.muya-acct-stat-label {
    display: block;
    color: #475569;
    font-size: 10px;
    font-weight: 700;
    line-height: 1.3;
    margin-top: 2px;
}

/* icon grid — same card styling as the stats row above (.muya-acct-stat-item) */
.muya-acct-grid-li {
    padding: 8px 14px 10px;
}

.muya-acct-icon-grid {
    display: grid;
    /* minmax(0, 1fr), not bare 1fr — without it, a track's minimum width
       defaults to its content's intrinsic size, so a long unbreakable
       label (e.g. "Announcements") silently widens its own column past
       the others, making the grid look uneven/unprofessional. */
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 6px;
}

.muya-acct-icon-btn {
    display: flex !important;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: 8px 2px;
    background: #f8fafc;
    border: 1px solid #e2e8f0;
    /* !important: ".navbar a" (style.css, pill-shaped top-level nav
       links) has higher specificity than ".muya-acct-icon-btn" alone
       and was winning, rendering these as full circles/pills instead
       of the intended rounded-rectangle card matching .muya-acct-stat-item. */
    border-radius: 10px !important;
    text-decoration: none !important;
    color: #334155 !important;
    transition: background .14s ease, color .14s ease, border-color .14s ease;
    gap: 3px;
    min-height: 48px;
    position: relative;
    cursor: pointer;
}

.muya-acct-icon-btn:hover,
.muya-acct-icon-btn:focus {
    background: #eff6ff !important;
    border-color: #bfdbfe !important;
    color: #1d4ed8 !important;
    text-decoration: none !important;
}

.muya-acct-icon-btn .acct-icon i,
.muya-acct-verify-chip i,
.muya-acct-verify-cta i,
.muya-acct-logout-item i,
.muya-acct-lang-item i {
    line-height: 1;
}

.muya-account-icon-dropdown .fa,
.muya-account-icon-dropdown .fas,
.muya-account-icon-dropdown .far {
    font-family: "Font Awesome 6 Free", FontAwesome;
    font-style: normal;
    font-weight: 900;
}

.muya-account-icon-dropdown .far {
    font-weight: 400;
}

.muya-account-icon-dropdown .bi {
    font-family: bootstrap-icons !important;
    font-style: normal;
    font-weight: normal !important;
    display: inline-block;
    line-height: 1;
}

.muya-acct-icon-btn .acct-icon {
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 26px;
    color: #475569;
    transition: color .14s ease;
    flex-shrink: 0;
}

.muya-acct-icon-btn:hover .acct-icon,
.muya-acct-icon-btn:focus .acct-icon {
    color: #1d4ed8;
}

.muya-acct-icon-btn .acct-label {
    font-size: 10.5px;
    font-weight: 700;
    text-align: center;
    line-height: 1.3;
    width: 100%;
    white-space: normal;
    /* A single long word (e.g. "Announcements") has no space to wrap
       on, so without this it silently overflows its column width
       instead of breaking onto a second line. overflow-wrap (not
       word-break) so multi-word labels still prefer breaking at the
       space between words, only breaking mid-word as a last resort. */
    overflow-wrap: break-word;
}

/* badge dot for announcements */
.muya-acct-badge-dot {
    position: absolute;
    top: 7px;
    right: calc(50% - 19px);
    min-width: 14px;
    height: 14px;
    border-radius: 999px;
    background: #ef4444;
    color: #fff;
    font-size: 9px;
    font-weight: 800;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 0 3px;
    line-height: 1;
    z-index: 1;
}

/* danger (logout) icon btn */
.muya-acct-icon-btn.is-danger .acct-icon {
    background: #fee2e2;
    color: #dc2626;
}

.muya-acct-icon-btn.is-danger {
    color: #dc2626 !important;
}

.muya-acct-icon-btn.is-danger:hover {
    background: #fff5f5 !important;
    color: #991b1b !important;
}

.muya-acct-icon-btn.is-danger:hover .acct-icon {
    background: #fecaca;
    color: #991b1b;
}

/* language row */
.muya-acct-lang-item > a {
    display: flex !important;
    align-items: center;
    gap: 8px;
    padding: 7px 14px;
    font-size: 13px;
    font-weight: 600;
    color: #334155 !important;
    text-decoration: none !important;
    background: #f8fafc;
    border-top: 1px solid #e2e8f0;
    /* ".navbar a" (style.css) injects a 999px pill radius here too —
       this is a full-width row, not a pill. */
    border-radius: 0 !important;
    transition: background .14s ease, color .14s ease;
}

.muya-acct-lang-item > a:hover {
    background: #eff6ff !important;
    color: #1d4ed8 !important;
}

.muya-acct-lang-item > a .acct-lang-icon {
    width: 26px;
    height: 26px;
    border-radius: 8px;
    background: #e0f2fe;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 13px;
    color: #0369a1;
}

.muya-acct-lang-arrow {
    margin-left: auto;
    color: #94a3b8;
    font-size: 12px;
    transition: transform .14s ease;
}

.muya-acct-lang-item.open .muya-acct-lang-arrow {
    transform: rotate(90deg);
}

/* Collapsible language list — plain expand/collapse, not the site's
   unrelated ".navbar .dropdown ul" hover-flyout (which was hiding this
   with no way to open it via click). */
.muya-acct-lang-submenu {
    /* !important throughout: ".navbar .dropdown ul" (style.css, a
       different hover-flyout menu elsewhere) has higher specificity
       and was forcing visibility:hidden/opacity:0/position:absolute on
       this list regardless of the display toggle below. */
    display: none !important;
    position: static !important;
    visibility: visible !important;
    opacity: 1 !important;
    margin: 0 !important;
    padding: 4px 0 !important;
    list-style: none;
    background: #fff;
    border-top: 1px solid #e2e8f0;
    box-shadow: none !important;
}

.muya-acct-lang-item.open > .muya-acct-lang-submenu {
    display: block !important;
}

.muya-acct-lang-submenu > li {
    min-width: 0 !important;
}

.muya-acct-lang-submenu > li > a {
    display: block !important;
    padding: 8px 14px 8px 44px !important;
    font-size: 13px !important;
    font-weight: 500 !important;
    text-transform: none !important;
    color: #334155 !important;
    text-decoration: none !important;
    border-radius: 0 !important;
}

.muya-acct-lang-submenu > li > a:hover,
.muya-acct-lang-submenu > li.active > a {
    background: #eff6ff;
    color: #1d4ed8;
}

/* logout row (full-width) */
.muya-acct-logout-item > a {
    display: flex !important;
    align-items: center;
    gap: 8px;
    padding: 7px 14px;
    font-size: 13px;
    font-weight: 700;
    color: #dc2626 !important;
    text-decoration: none !important;
    background: #fff;
    border-top: 1px solid #e2e8f0;
    /* ".navbar a" (style.css) injects a 999px pill radius here too —
       this is a full-width row, not a pill. */
    border-radius: 0 !important;
    transition: background .14s ease, color .14s ease;
}

.muya-acct-logout-item > a:hover {
    background: #eff6ff !important;
    color: #1d4ed8 !important;
}

.muya-acct-logout-item > a .acct-logout-icon {
    width: 26px;
    height: 26px;
    border-radius: 8px;
    background: #fee2e2;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 13px;
    color: #dc2626;
    transition: background .14s ease, color .14s ease;
}

.muya-acct-logout-item > a:hover .acct-logout-icon {
    background: #dbeafe;
    color: #1d4ed8;
}

@media (max-width: 400px) {
    .muya-account-icon-dropdown {
        min-width: 280px !important;
    }

    .muya-acct-icon-grid {
        grid-template-columns: repeat(3, 1fr);
    }
}

/* Navbar link hover — full pill hit area */
.navbar-default .navbar-nav > li > a {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 8px 14px !important;
    line-height: 1.35 !important;
    border-radius: 999px;
    margin: 4px 2px;
    transition: color 0.18s ease, background 0.18s ease;
}

.navbar-default .navbar-nav > li.customers-nav-item-login > a,
.navbar-default .navbar-nav > li._customers-nav-item-login > a {
    line-height: 1.35 !important;
}

.navbar-default .navbar-nav a:hover,
.navbar-default .navbar-nav .active > a,
.navbar-default .navbar-nav .active > a:focus,
.navbar-default .navbar-nav li:hover > a,
.navbar-default .navbar-nav > li > a:focus-visible {
    color: #47b2e4;
    background: rgba(71, 178, 228, 0.12);
}

/* ============================================================
   TAILWIND-STYLE UTILITY ALIASES
   Used in gnss_receiver_dashboard.php and cors_connections.php
   which were generated with tw-* classes before Tailwind was
   removed from the bundle. Aliased here so no PHP edits needed.
   ============================================================ */
.tw-font-semibold  { font-weight: 600; }
.tw-font-bold      { font-weight: 700; }
.tw-mb-0  { margin-bottom: 0 !important; }
.tw-mb-1  { margin-bottom: 4px !important; }
.tw-mb-2  { margin-bottom: 8px !important; }
.tw-mb-3  { margin-bottom: 12px !important; }
.tw-mb-4  { margin-bottom: 16px !important; }
.tw-mb-5  { margin-bottom: 20px !important; }
.tw-mb-6  { margin-bottom: 24px !important; }
.tw-mt-0  { margin-top: 0 !important; }
.tw-mt-4  { margin-top: 16px !important; }
.tw-text-primary   { color: #1d4ed8 !important; }
.tw-text-success   { color: #16a34a !important; }
.tw-text-info      { color: #0284c7 !important; }
.tw-text-warning   { color: #d97706 !important; }
.tw-text-danger    { color: #dc2626 !important; }
.tw-text-neutral-600 { color: #64748b !important; }
.tw-text-neutral-800 { color: #1e293b !important; }

/* ============================================================
   LEAFLET MAP CONTAINER — consistent height across all views
   (map_detail.php, machine_view.php, any inline #map)
   ============================================================ */
#map,
.muya-receiver-track-map {
    height: 400px;
    width: 100%;
    position: relative;
    z-index: 0;
}

/* ============================================================
   MAP DETAIL TAB RESPONSIVE FIX
   (moved from map_detail.php inline @media)
   ============================================================ */
@media (max-width: 768px) {
    .nav-tabs > li { width: auto; }
}

/* ============================================================
   MAP DETAIL TABLE STYLING
   (moved from map_detail.php inline <style>)
   ============================================================ */
.muya-detail-table > tbody > tr > td {
    padding: 5px 10px;
    font-size: 12px;
    border: 1px solid rgba(241, 241, 241, 0.62);
    background: rgba(0, 0, 0, 0.012);
}

.muya-detail-table-wrapper h6 { font-weight: bold; }
.muya-detail-table-wrapper p  { font-size: 12px; margin: 2px; }

/* ============================================================
   ON/OFF TOGGLE SWITCH
   (moved from rtk_corrections.php inline <style>)
   ============================================================ */
.onoffswitch {
    position: relative;
    width: 50px;
    -webkit-user-select: none;
    -moz-user-select: none;
    -ms-user-select: none;
}

.onoffswitch-checkbox { display: none; }

.onoffswitch-label {
    display: block;
    overflow: hidden;
    cursor: pointer;
    height: 20px;
    padding: 0;
    line-height: 22px;
    border: 1px solid #bfcbd9;
    border-radius: 22px;
    background-color: #bfcbd9;
    transition: background-color 0.3s ease-in;
}

.onoffswitch-label::before {
    content: '';
    display: block;
    width: 20px;
    margin: 0;
    background: #fff;
    position: absolute;
    top: 0;
    bottom: 0;
    right: 30px;
    border: 1px solid #bfcbd9;
    border-radius: 20px;
    transition: all 0.3s ease-in 0s;
}

.onoffswitch-checkbox:checked + .onoffswitch-label {
    background-color: #84c529;
}

.onoffswitch-checkbox:checked + .onoffswitch-label,
.onoffswitch-checkbox:checked + .onoffswitch-label::before {
    border-color: #84c529;
}

.onoffswitch-checkbox:checked + .onoffswitch-label::before {
    right: 0;
}

/* ============================================================
   SELECT PLACEHOLDER HELPER (render_select_with_input_group)
   (moved from rtk_corrections.php inline <style>)
   ============================================================ */
.select-placeholder label {
    --tw-blur: none;
    opacity: 1;
}

.select-placeholder .input-group { display: block; }

.select-placeholder::after { display: none !important; }

/* ============================================================
   RTK PRICING TIERS — client comparison grid
   ============================================================ */
.muya-rtk-pricing {
    margin: 18px 0 22px;
}

.muya-rtk-pricing-status {
    border: 1px solid #dbeafe;
    border-radius: 16px;
    background: linear-gradient(135deg, #f8fbff 0%, #eff6ff 55%, #f0fdf4 100%);
    padding: 18px 20px;
    margin-bottom: 16px;
    box-shadow: 0 10px 24px rgba(37, 99, 235, 0.06);
}

.muya-rtk-pricing-status-grid {
    display: grid;
    grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr);
    gap: 18px 24px;
    align-items: center;
}

.muya-rtk-pricing-kicker {
    margin: 0 0 8px;
    font-size: 12px;
    font-weight: 700;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: #64748b;
}

.muya-rtk-pricing-current {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    gap: 10px 14px;
    margin-bottom: 6px;
}

.muya-rtk-pricing-badge {
    display: inline-flex;
    align-items: center;
    padding: 6px 14px;
    border-radius: 999px;
    background: var(--muya-rtk-tier-color, #64748b);
    color: #fff;
    font-size: 15px;
    font-weight: 700;
    letter-spacing: 0.02em;
    box-shadow: 0 4px 12px rgba(15, 23, 42, 0.12);
}

.muya-rtk-pricing-badge.is-standard {
    background: #475569;
}

.muya-rtk-pricing-discount {
    font-size: 28px;
    font-weight: 800;
    line-height: 1;
    color: #0f172a;
}

.muya-rtk-pricing-discount span {
    font-size: 13px;
    font-weight: 600;
    color: #64748b;
    margin-left: 4px;
}

.muya-rtk-pricing-summary {
    margin: 0;
    color: #334155;
    font-size: 14px;
    line-height: 1.5;
}

.muya-rtk-pricing-progress-block {
    padding: 14px 16px;
    border-radius: 12px;
    background: rgba(255, 255, 255, 0.72);
    border: 1px solid rgba(148, 163, 184, 0.35);
}

.muya-rtk-pricing-progress-head {
    display: flex;
    justify-content: space-between;
    gap: 12px;
    align-items: flex-start;
    margin-bottom: 10px;
    font-size: 13px;
    color: #475569;
    line-height: 1.45;
}

.muya-rtk-pricing-progress-head strong {
    flex-shrink: 0;
    color: #1d4ed8;
    font-size: 14px;
}

.muya-rtk-pricing-progress-track {
    height: 8px;
    border-radius: 999px;
    background: #e2e8f0;
    overflow: hidden;
}

.muya-rtk-pricing-progress-fill {
    display: block;
    height: 100%;
    border-radius: inherit;
    background: linear-gradient(90deg, #2563eb 0%, #16a34a 100%);
    transition: width 0.35s ease;
}

.muya-rtk-pricing-stats {
    list-style: none;
    margin: 14px 0 0;
    padding: 12px 0 0;
    border-top: 1px solid rgba(148, 163, 184, 0.25);
    display: flex;
    flex-wrap: wrap;
    gap: 10px 18px;
}

.muya-rtk-pricing-stats li {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    font-size: 13px;
    color: #475569;
}

.muya-rtk-pricing-stats li i {
    color: #2563eb;
    width: 14px;
    text-align: center;
}

.muya-rtk-pricing-stats strong {
    color: #0f172a;
}

.muya-rtk-pricing-incentives {
    margin: 0 0 16px;
    padding: 14px 16px;
    border: 1px solid rgba(37, 99, 235, 0.15);
    border-radius: 12px;
    background: rgba(239, 246, 255, 0.65);
}

.muya-rtk-pricing-incentive-list {
    list-style: none;
    margin: 8px 0 0;
    padding: 0;
    display: grid;
    gap: 8px;
}

.muya-rtk-pricing-incentive-list li {
    display: flex;
    align-items: flex-start;
    gap: 8px;
    font-size: 13px;
    color: #334155;
}

.muya-rtk-pricing-incentive-list li i {
    color: #2563eb;
    margin-top: 2px;
    width: 14px;
    text-align: center;
}

.muya-rtk-pricing-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(min(100%, 190px), 1fr));
    gap: 12px;
}

.muya-rtk-pricing-card {
    position: relative;
    border: 1px solid #e2e8f0;
    border-radius: 14px;
    background: #fff;
    overflow: hidden;
    transition: transform 0.18s ease, box-shadow 0.18s ease, border-color 0.18s ease;
}

.muya-rtk-pricing-card::before {
    content: '';
    display: block;
    height: 4px;
    background: var(--muya-rtk-tier-color, #64748b);
}

.muya-rtk-pricing-card.is-current {
    border-color: var(--muya-rtk-tier-color, #2563eb);
    box-shadow: 0 14px 30px rgba(37, 99, 235, 0.14);
    transform: translateY(-2px);
}

.muya-rtk-pricing-card.is-passed {
    opacity: 0.72;
}

.muya-rtk-pricing-card.is-future {
    background: #f8fafc;
}

.muya-rtk-pricing-card-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    padding: 12px 14px 0;
}

.muya-rtk-pricing-card-name {
    font-size: 14px;
    font-weight: 700;
    color: #0f172a;
}

.muya-rtk-pricing-card-tag {
    display: inline-flex;
    align-items: center;
    padding: 3px 8px;
    border-radius: 999px;
    background: var(--muya-rtk-tier-color, #2563eb);
    color: #fff;
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 0.04em;
    text-transform: uppercase;
}

.muya-rtk-pricing-card-tag.is-muted {
    background: #e2e8f0;
    color: #64748b;
}

.muya-rtk-pricing-card-body {
    padding: 10px 14px 14px;
}

.muya-rtk-pricing-card-rate {
    display: flex;
    align-items: baseline;
    gap: 6px;
    margin-bottom: 8px;
}

.muya-rtk-pricing-card-pct {
    font-size: 26px;
    font-weight: 800;
    line-height: 1;
    color: var(--muya-rtk-tier-color, #0f172a);
}

.muya-rtk-pricing-card-off {
    font-size: 12px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: #64748b;
}

.muya-rtk-pricing-card-range {
    margin: 0 0 8px;
    font-size: 12px;
    font-weight: 600;
    color: #475569;
    line-height: 1.45;
}

.muya-rtk-pricing-card-range i {
    margin-right: 4px;
    color: #94a3b8;
}

.muya-rtk-pricing-card-desc {
    margin: 0;
    font-size: 12px;
    line-height: 1.5;
    color: #64748b;
}

@media (max-width: 991px) {
    .muya-rtk-pricing-status-grid {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 767px) {
    .muya-rtk-pricing-status {
        padding: 16px;
    }

    .muya-rtk-pricing-discount {
        font-size: 24px;
    }

    .muya-rtk-pricing-grid {
        grid-template-columns: 1fr;
    }

    .muya-rtk-pricing-stats {
        flex-direction: column;
        gap: 8px;
    }
}

/* Legacy tier strip (admin / old markup) */
.muya-rtk-tier-strip {
    display: grid;
    grid-auto-flow: column;
    grid-auto-columns: minmax(160px, 1fr);
    gap: 10px;
    margin: 15px 0;
    overflow-x: auto;
    padding-bottom: 4px;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: thin;
}

@media (min-width: 1200px) {
    .muya-rtk-tier-strip {
        grid-auto-flow: row;
        grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
        grid-auto-columns: unset;
        overflow-x: visible;
    }
}

.muya-rtk-tier-card {
    border: 1px solid #dfe5ef;
    border-radius: 6px;
    background: #fff;
    min-height: 72px;
    overflow: hidden;
    transition: box-shadow .15s ease;
}

.muya-rtk-tier-card.active {
    border-width: 2px;
    box-shadow: 0 6px 18px rgba(15, 23, 42, .08);
}

.muya-rtk-tier-toggle {
    width: 100%;
    display: block;
    text-align: left;
    background: #fff;
    border: 0;
    padding: 12px;
    color: #1f2937;
    cursor: pointer;
}

.muya-rtk-tier-toggle:focus {
    outline: 2px solid rgba(59, 130, 246, .25);
    outline-offset: -2px;
}

.muya-rtk-tier-card h5 {
    margin: 0;
    font-weight: 700;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
}

.muya-rtk-tier-detail {
    display: block;
    padding: 0 12px 12px;
}

.muya-rtk-tier-meta {
    display: flex;
    justify-content: space-between;
    gap: 10px;
    font-size: 12px;
    color: #475569;
}

.muya-rtk-current {
    border-left: 4px solid #16a34a;
    background: #f0fdf4;
    padding: 12px;
    border-radius: 6px;
    margin-bottom: 12px;
}

.onoffswitch-checkbox:disabled + .onoffswitch-label { opacity: 0.5; }

@media (max-width: 767px) {
    .muya-rtk-tier-strip { grid-template-columns: 1fr; }
    .muya-rtk-current { font-size: 13px; }
}

/* ============================================================
   SERVICE PAGE HEADER COMPONENT
   (shared by RTK, RINEX, CORS Install, GNSS Training pages)
   ============================================================ */
.muya-service-header {
    background: linear-gradient(135deg, #0f172a 0%, #1e3a6b 52%, #2563eb 100%);
    border-radius: 18px;
    padding: 20px 24px 16px;
    margin-bottom: 18px;
    color: #fff;
    box-shadow: 0 14px 30px rgba(15, 23, 42, 0.14);
}

.muya-service-heading {
    margin: 0 0 6px;
    font-size: 18px;
    font-weight: 700;
    color: #fff;
}

.muya-service-heading i { margin-right: 6px; }

.muya-service-copy {
    margin: 0 0 12px;
    font-size: 13px;
    color: rgba(255,255,255,.85);
    line-height: 1.5;
}

/* Active chip style for services hero */
.muya-client-chip.active {
    background: rgba(255,255,255,.3);
    border-color: rgba(255,255,255,.6);
    font-weight: 700;
}

/* ============================================================
   SERVICE INNER TABS (RINEX, RTK sub-navigation)
   ============================================================ */
.muya-service-inner-tabs {
    border-bottom: 2px solid #dfe5ef;
    margin-bottom: 0;
}

.muya-service-inner-tabs > li > a {
    border-radius: 4px 4px 0 0;
    font-size: 13px;
}

/* ============================================================
   CORS INSTALLATION CTA CARD
   ============================================================ */
.muya-cta-card {
    background: linear-gradient(180deg, #f8faff 0%, #eff6ff 100%);
    border: 1px solid #dbe4f5;
    border-left: 4px solid #2563eb;
    border-radius: 16px;
    padding: 28px 24px;
    text-align: center;
    margin-bottom: 16px;
}

.muya-cta-heading {
    margin: 0 0 8px;
    font-size: 16px;
    font-weight: 700;
    color: #1a3a6b;
}

.muya-cta-copy {
    margin: 0 0 16px;
    color: #475569;
    font-size: 13px;
}

/* ============================================================
   GNSS TRAINING IFRAME WRAPPER
   ============================================================ */
.muya-iframe-wrap {
    position: relative;
    min-height: 200px;
}

.muya-iframe-loading {
    text-align: center;
    padding: 40px;
    color: #64748b;
    font-size: 15px;
}

.muya-iframe-loading .fa-spinner { margin-right: 6px; }

/* ============================================================
   TRACKER MAP CONTAINER
   ============================================================ */
.muya-tracker-map-shell {
    border: 1px solid #e2e8f0;
    border-radius: 12px;
    padding: 12px;
    background: #fff;
    box-shadow: 0 8px 24px rgba(15, 23, 42, 0.06);
}

.muya-tracker-map-stage {
    position: relative;
    min-height: 380px;
}

.muya-tracker-map {
    height: 100%;
    min-height: 380px;
    width: 100%;
    border-radius: 6px;
    border: 1px solid #dfe5ef;
}

.muya-tracker-points-section {
    margin-top: 14px;
    padding-top: 14px;
    border-top: 1px solid #e2e8f0;
}

.muya-tracker-points-title {
    margin: 0 0 6px;
    font-size: 15px;
    font-weight: 700;
    color: #0f172a;
}

.muya-tracker-points-hint {
    margin: 0 0 10px;
}

.muya-tracker-points-table {
    margin-bottom: 0;
    background: #fff;
}

.muya-tracker-points-table thead th {
    background: #f1f5f9;
    font-size: 12px;
    text-transform: uppercase;
    letter-spacing: 0.03em;
    white-space: nowrap;
}

.muya-tracker-points-table tbody tr {
    cursor: pointer;
}

.muya-tracker-points-table tbody tr.is-selected {
    background: #eff6ff;
}

.muya-tracker-points-table tbody tr:hover {
    background: #f8fafc;
}

.muya-tracker-marker-pin {
    color: #fff;
    border-radius: 50%;
    width: 26px;
    height: 26px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 11px;
    font-weight: 700;
    border: 2px solid #fff;
    box-shadow: 0 2px 6px rgba(0, 0, 0, 0.25);
}

/* Leaflet inside Bootstrap/Perfex: global img { max-width:100% } squashes tiles to a thin strip */
.muya-tracker-map-shell .leaflet-container,
.muya-tracker-map.leaflet-container,
#tracker_map.leaflet-container {
    height: 500px;
    min-height: 500px;
    width: 100%;
    z-index: 1;
}

.muya-tracker-map-shell .leaflet-tile-pane img,
.muya-tracker-map .leaflet-tile-pane img,
#tracker_map .leaflet-tile-pane img,
#admin_tracker_map .leaflet-tile-pane img {
    max-width: none !important;
    max-height: none !important;
}

.muya-tracker-map-shell .leaflet-container,
.muya-tracker-map.leaflet-container {
    width: 100%;
    height: 100%;
}

/* ============================================================
   SERVICE SET GRID (service_set.php)
   ============================================================ */
.muya-cors-client-shell .services .no-border {
    border: none;
    background: transparent !important;
}

.muya-service-rich-content {
    line-height: 1.65;
    color: #334155;
    margin-bottom: 1rem;
}

.muya-service-rich-content p {
    margin: 0 0 0.85rem;
}

.muya-service-rich-content ul,
.muya-service-rich-content ol {
    margin: 0 0 1rem 1.25rem;
    padding: 0;
}

.muya-service-rich-content li {
    margin-bottom: 0.35rem;
}

.muya-service-rich-content strong {
    font-weight: 600;
}

/* ============================================================
   BACK TO TOP BUTTON (terms.php, privacy.php)
   ============================================================ */
.muya-back-to-top {
    display: none;
    position: fixed;
    bottom: 30px;
    right: 30px;
    z-index: 9999;
    background: #337ab7;
    color: #fff;
    border-radius: 50%;
    width: 40px;
    height: 40px;
    text-align: center;
    line-height: 40px;
    font-size: 18px;
    text-decoration: none;
}
.muya-back-to-top:hover,
.muya-back-to-top:focus {
    background: #286090;
    color: #fff;
    text-decoration: none;
}

/* ============================================================
   HOMEPAGE — ABOUT SECTION: QUALITY OF SERVICE ASSURANCE
   ============================================================ */
.muya-about-applications-heading {
    margin-top: 35px;
}

.muya-qos-intro {
    margin-top: 6px;
    margin-bottom: 14px;
    color: #475569;
}

.muya-qos-badges {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin-bottom: 35px;
}

.muya-qos-badge {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    padding: 8px 16px;
    border-radius: 999px;
    background: #eff6ff;
    color: #1d4ed8;
    font-size: 13px;
    font-weight: 600;
    border: 1px solid #bfdbfe;
}

.muya-qos-badge i {
    font-size: 15px;
}

/* ============================================================
   ABOUT PAGE
   ============================================================ */
.muya-about-layout {
    display: grid;
    grid-template-columns: repeat(12, minmax(0, 1fr));
    gap: 22px;
}

.muya-about-panel {
    margin-bottom: 0;
}

.muya-about-panel--intro {
    grid-column: 1 / -1;
}

.muya-about-intro-grid {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 22px;
    align-items: start;
}

@media (min-width: 992px) {
    .muya-about-intro-grid {
        grid-template-columns: minmax(180px, 240px) minmax(0, 1fr);
    }
}

.muya-about-logo-wrap img {
    max-width: 100%;
    height: auto;
}

.muya-about-feature-list {
    margin: 16px 0 0;
    padding: 0;
    list-style: none;
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.muya-about-feature-list li {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    padding: 10px 12px;
    border: 1px solid #e2e8f0;
    border-radius: 10px;
    background: #f8fafc;
    color: #334155;
    font-size: 0.92rem;
    line-height: 1.45;
    transition: background .14s ease, border-color .14s ease;
}

.muya-about-feature-list li:hover {
    background: #eff6ff;
    border-color: #bfdbfe;
}

.muya-about-feature-list li i {
    color: #2563eb;
    font-size: 1rem;
    margin-top: 2px;
    flex-shrink: 0;
}

.muya-about-panel--mission,
.muya-about-panel--tech {
    grid-column: 1 / -1;
}

@media (min-width: 992px) {
    .muya-about-panel--mission {
        grid-column: span 7;
    }

    .muya-about-panel--tech {
        grid-column: span 5;
    }
}

.muya-about-panel--policies {
    grid-column: 1 / -1;
}

.muya-about-values-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(min(100%, 220px), 1fr));
    gap: 18px;
    margin-top: 18px;
}

.muya-about-value-card {
    padding: 18px;
    border: 1px solid #e2e8f0;
    border-radius: 16px;
    background: #f8fafc;
    text-align: center;
}

.muya-about-value-card h5 {
    margin: 12px 0 8px;
    font-weight: 700;
}

.muya-about-value-card p {
    margin: 0;
}

/* ============================================================
   CONTACT PAGE
   ============================================================ */
.muya-contact-grid {
    display: grid;
    grid-template-columns: minmax(300px, 0.95fr) minmax(0, 1.55fr);
    gap: 22px;
    margin-top: 8px;
    align-items: start;
    width: 100%;
}

.muya-contact-column {
    min-width: 0;
}

.muya-contact-column .info,
.muya-contact-column .muya-contact-info-card {
    height: 100%;
}

@media (max-width: 991px) {
    .muya-contact-grid {
        grid-template-columns: 1fr;
    }
}

.muya-contact-panel {
    border: 1px solid #e2e8f0 !important;
    border-radius: 18px !important;
    box-shadow: 0 12px 26px rgba(15, 23, 42, 0.05) !important;
    background: #fff;
    margin-bottom: 0;
    height: 100%;
}

.muya-contact-panel .panel-body {
    padding: 24px !important;
    margin-top: 0 !important;
    border: none !important;
}

.muya-contact-details-panel .address,
.muya-contact-details-panel .email,
.muya-contact-details-panel .phone {
    margin-bottom: 18px;
    padding: 12px 14px 12px 40px;
    margin-left: -14px;
    margin-right: -14px;
    border-radius: 12px;
    position: relative;
    transition: background 0.18s ease;
}

.muya-contact-details-panel .address:hover,
.muya-contact-details-panel .email:hover,
.muya-contact-details-panel .phone:hover {
    background: #f0f9ff;
}

.muya-contact-details-panel .address i,
.muya-contact-details-panel .email i,
.muya-contact-details-panel .phone i {
    position: absolute;
    left: 10px;
    top: 14px;
    color: #2563eb;
    font-size: 18px;
    transition: color 0.18s ease, background 0.18s ease;
}

.muya-contact-details-panel .address:hover i,
.muya-contact-details-panel .email:hover i,
.muya-contact-details-panel .phone:hover i {
    color: #1d4ed8;
}

.muya-contact-details-panel h4 {
    font-size: 13px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: #64748b;
    margin: 0 0 6px;
}

.muya-contact-form-head h3 {
    margin: 0 0 8px;
    font-weight: 800;
    color: #0f172a;
}

.muya-contact-lead-form .form-control {
    border-radius: 10px;
    min-height: 42px;
    border-color: #cbd5e1;
    box-shadow: none;
}

.muya-contact-lead-form .form-control:focus {
    border-color: #2563eb;
    box-shadow: 0 0 0 3px rgba(37, 99, 235, 0.15);
}

.muya-contact-form-actions .muya-btn-primary {
    border-radius: 999px;
    padding: 10px 22px;
    font-weight: 700;
    background: linear-gradient(135deg, #1d4ed8, #2563eb);
    border: none;
}

.muya-contact-notice {
    margin-bottom: 16px;
}

.muya-contact-map-embed {
    border-radius: 12px;
    overflow: hidden;
    margin-top: 12px;
    border: 1px solid #e2e8f0;
}

.muya-contact-map-embed iframe {
    border: 0;
    width: 100%;
    height: 290px;
    min-height: 220px;
    display: block;
}

.muya-contact-form-iframe {
    border-radius: 12px;
    border: 1px solid #e2e8f0;
}

/* ============================================================
   RTK / SERVICE TAB PANES
   ============================================================ */
.muya-rtk-tab-content {
    padding: 18px 4px 8px;
}

/* BS3 sets .fade { opacity:0 } until .in; BS5 uses .show — ensure active panes stay visible */
.muya-cors-client-shell .tab-content > .tab-pane.fade.active,
.muya-cors-client-shell .tab-content > .tab-pane.fade.in,
.muya-cors-client-shell .tab-content > .tab-pane.fade.show,
.muya-svc-workspace .tab-content > .tab-pane.fade.active,
.muya-svc-workspace .tab-content > .tab-pane.fade.in,
.muya-svc-workspace .tab-content > .tab-pane.fade.show,
.muya-svc-page .tab-content > .tab-pane.fade.active,
.muya-svc-page .tab-content > .tab-pane.fade.in,
.muya-svc-page .tab-content > .tab-pane.fade.show,
.muya-profile-page .tab-content > .tab-pane.active,
.muya-profile-page .tab-content > .tab-pane.show,
.muya-map-detail-tabs + .tab-content > .tab-pane.active,
.muya-map-detail-tabs + .tab-content > .tab-pane.show {
    display: block !important;
    opacity: 1 !important;
    visibility: visible !important;
}

.muya-cors-client-shell .tab-content > .tab-pane:not(.active):not(.show),
.muya-svc-workspace .tab-content > .tab-pane:not(.active):not(.show),
.muya-profile-page .tab-content > .tab-pane:not(.active):not(.show) {
    display: none !important;
}

.muya-tab-section-title {
    margin: 0 0 14px;
    font-size: 16px;
    font-weight: 700;
    color: #0f172a;
}

.muya-service-inner-tabs > li.active > a,
.muya-service-inner-tabs > li.active > a:focus,
.muya-service-inner-tabs > li.active > a:hover {
    background: #eff6ff !important;
    border-color: #bfdbfe !important;
    color: #1d4ed8 !important;
    font-weight: 700;
}

.muya-rtk-catalogue-rates {
    margin-bottom: 14px;
    padding: 12px 14px;
    border-radius: 10px;
    background: #f8fafc;
    border: 1px solid #e2e8f0;
}

.muya-rtk-catalogue-rate-list {
    list-style: none;
    margin: 8px 0 0;
    padding: 0;
    display: grid;
    gap: 6px;
}

.muya-rtk-catalogue-rate-list li {
    display: flex;
    justify-content: space-between;
    gap: 12px;
    font-size: 13px;
}

.muya-rtk-catalogue-vat-note {
    margin: 8px 0 0;
    font-size: 12px;
}

.muya-rtk-quote-preview {
    margin: 12px 0 14px;
    padding: 14px 16px;
    border-radius: 10px;
    border: 1px solid #bfdbfe;
    background: #eff6ff;
}

.muya-rtk-quote-row {
    display: flex;
    justify-content: space-between;
    gap: 12px;
    padding: 4px 0;
    font-size: 13px;
}

.muya-rtk-quote-row.is-discount {
    color: #047857;
}

.muya-rtk-quote-row.is-warning {
    color: #b45309;
    font-size: 12px;
}

.muya-rtk-quote-row.is-muted {
    color: #64748b;
    font-size: 12px;
}

.muya-rtk-quote-total {
    display: flex;
    justify-content: space-between;
    gap: 12px;
    margin-top: 10px;
    padding-top: 10px;
    border-top: 1px solid #93c5fd;
    font-size: 15px;
    font-weight: 700;
    color: #1e3a8a;
}

.muya-rtk-quote-extra {
    margin: 8px 0 0;
    font-size: 12px;
}

.muya-rtk-pricing-summary.is-muted {
    color: #64748b;
    font-size: 12px;
}

.muya-rtk-machine-actions-col {
    min-width: 132px;
    white-space: nowrap;
}

.muya-rtk-machine-actions {
    display: inline-flex;
    flex-wrap: nowrap;
    align-items: center;
    gap: 6px;
}

.muya-rtk-machine-actions .btn-icon {
    width: 34px;
    height: 34px;
    padding: 0;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 8px;
}

.muya-client-table-shell table tbody td .muya-rtk-machine-actions,
.muya-client-table-shell .dataTables_wrapper table tbody td .muya-rtk-machine-actions,
.muya-client-table-shell .dataTables_wrapper.table-loading table tbody td .muya-rtk-machine-actions,
.muya-client-table-shell .dataTables_wrapper.muya-cors-dt-ready table tbody td .muya-rtk-machine-actions,
.muya-client-table-shell table tbody td .muya-gnss-receiver-actions,
.muya-client-table-shell .dataTables_wrapper table tbody td .muya-gnss-receiver-actions,
.muya-client-table-shell .dataTables_wrapper.table-loading table tbody td .muya-gnss-receiver-actions,
.muya-client-table-shell .dataTables_wrapper.muya-cors-dt-ready table tbody td .muya-gnss-receiver-actions,
.muya-svc-workspace .dataTables_wrapper.table-loading table tbody td .muya-rtk-machine-actions,
.muya-rtk-tab-content .dataTables_wrapper.table-loading table tbody td .muya-rtk-machine-actions {
    opacity: 1 !important;
    pointer-events: auto;
    position: relative;
    z-index: 2;
}

.muya-client-table-shell table tbody td .muya-rtk-machine-actions .btn,
.muya-client-table-shell table tbody td .muya-rtk-machine-actions a,
.muya-client-table-shell .dataTables_wrapper.table-loading table tbody td .muya-rtk-machine-actions .btn,
.muya-client-table-shell .dataTables_wrapper.table-loading table tbody td .muya-rtk-machine-actions a,
.muya-client-table-shell table tbody td .muya-gnss-receiver-actions .btn,
.muya-client-table-shell table tbody td .muya-gnss-receiver-actions a,
.muya-svc-workspace .dataTables_wrapper.table-loading table tbody td .muya-rtk-machine-actions .btn,
.muya-svc-workspace .dataTables_wrapper.table-loading table tbody td .muya-rtk-machine-actions a {
    pointer-events: auto;
}

/* Action buttons render as bare links (no background, dark grey text)
   without this — a generic reset elsewhere strips Bootstrap 3's solid
   .btn-info/.btn-primary colouring on anchor-tag buttons. Restore the
   branded fill and force white text so the labels stay readable. */
.muya-gnss-receiver-actions a.btn-info,
.muya-gnss-receiver-actions a.btn-primary {
    color: #fff !important;
    border-color: transparent !important;
}
.muya-gnss-receiver-actions a.btn-info {
    background-color: #0ea5e9 !important;
}
.muya-gnss-receiver-actions a.btn-info:hover,
.muya-gnss-receiver-actions a.btn-info:focus {
    background-color: #0284c7 !important;
    color: #fff !important;
}
.muya-gnss-receiver-actions a.btn-primary {
    background-color: #2563eb !important;
}
.muya-gnss-receiver-actions a.btn-primary:hover,
.muya-gnss-receiver-actions a.btn-primary:focus {
    background-color: #1d4ed8 !important;
    color: #fff !important;
}

/* Same root cause as the action buttons above — a generic reset renders
   this badge with a near-white background but leaves the text colour at
   white, making the subscription count effectively invisible. */
.muya-rcv-count-badge {
    background-color: #475569 !important;
    color: #fff !important;
}

.muya-service-status-actions {
    display: inline-flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 10px;
}

.muya-service-status-actions .label {
    margin: 0;
    display: inline-flex;
    align-items: center;
    vertical-align: middle;
    padding: 5px 10px;
    font-size: 12px;
    line-height: 1.3;
}

a.muya-service-pay-btn,
.muya-service-pay-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    min-height: 32px;
    padding: 6px 14px !important;
    font-size: 13px !important;
    font-weight: 700;
    line-height: 1.25;
    letter-spacing: 0.02em;
    white-space: nowrap;
    text-decoration: none !important;
    color: #fff !important;
    background: linear-gradient(135deg, var(--muya-color-primary, #2563eb) 0%, var(--muya-color-primary-hover, #1d4ed8) 100%) !important;
    border: 1px solid var(--muya-color-primary-hover, #1d4ed8) !important;
    border-radius: 8px;
    box-shadow: 0 4px 10px rgba(37, 99, 235, 0.28);
    vertical-align: middle;
}

a.muya-service-pay-btn:hover,
a.muya-service-pay-btn:focus,
a.muya-service-pay-btn:active,
.muya-service-pay-btn:hover,
.muya-service-pay-btn:focus,
.muya-service-pay-btn:active {
    color: #fff !important;
    background: var(--muya-color-primary-hover, #1d4ed8) !important;
    border-color: var(--muya-color-primary-hover, #1d4ed8) !important;
    text-decoration: none !important;
    box-shadow: 0 6px 14px rgba(37, 99, 235, 0.35);
}

.muya-service-pay-btn .fa,
.muya-service-pay-btn i[class*="fa-"] {
    margin: 0;
    font-size: 12px;
    opacity: 0.95;
}

.muya-file-download-link {
    color: var(--muya-color-primary, #2563eb);
    font-weight: 600;
    text-decoration: none;
}

.muya-file-download-link:hover,
.muya-file-download-link:focus {
    color: var(--muya-color-primary-hover, #1d4ed8);
    text-decoration: underline;
}

.muya-file-download-link .fa {
    margin-right: 4px;
    opacity: 0.85;
}

.muya-client-table-shell table tbody td .muya-service-status-actions,
.muya-client-table-shell .dataTables_wrapper table tbody td .muya-service-status-actions,
.muya-client-table-shell .dataTables_wrapper.table-loading table tbody td .muya-service-status-actions,
.muya-client-table-shell .dataTables_wrapper.muya-cors-dt-ready table tbody td .muya-service-status-actions,
.muya-svc-workspace table tbody td .muya-service-status-actions,
.muya-svc-workspace .dataTables_wrapper table tbody td .muya-service-status-actions,
.muya-svc-workspace .dataTables_wrapper.table-loading table tbody td .muya-service-status-actions,
.muya-svc-workspace .dataTables_wrapper.muya-cors-dt-ready table tbody td .muya-service-status-actions,
.muya-rtk-tab-content .dataTables_wrapper.table-loading table tbody td .muya-service-status-actions,
.muya-rtk-tab-content .dataTables_wrapper.muya-cors-dt-ready table tbody td .muya-service-status-actions,
#enterprise-module-wrapper .dataTables_wrapper.table-loading table tbody td .muya-service-status-actions,
#enterprise-module-wrapper .dataTables_wrapper.muya-cors-dt-ready table tbody td .muya-service-status-actions {
    opacity: 1 !important;
    pointer-events: auto;
    position: relative;
    z-index: 2;
}

.muya-client-table-shell table tbody td .muya-service-status-actions .muya-service-pay-btn,
.muya-client-table-shell .dataTables_wrapper.table-loading table tbody td .muya-service-status-actions .muya-service-pay-btn,
.muya-svc-workspace table tbody td .muya-service-status-actions .muya-service-pay-btn,
.muya-svc-workspace .dataTables_wrapper.table-loading table tbody td .muya-service-status-actions .muya-service-pay-btn,
.muya-rtk-tab-content .dataTables_wrapper.table-loading table tbody td .muya-service-status-actions .muya-service-pay-btn,
#enterprise-module-wrapper .dataTables_wrapper.table-loading table tbody td .muya-service-status-actions .muya-service-pay-btn {
    pointer-events: auto;
    cursor: pointer;
    position: relative;
    z-index: 3;
}

.muya-gnss-receiver-row-focus > td,
.muya-rtk-machine-row-highlight > td {
    background-color: #eff6ff !important;
    box-shadow: inset 0 0 0 1px #93c5fd;
}

.muya-voucher-card {
    background: linear-gradient(145deg, #0b203c 0%, #1e3a6a 100%);
    border: 1px solid #0b203c;
    width: 100%;
    padding: 18px 20px;
    border-radius: 14px;
    color: #fff;
    box-shadow: 0 14px 28px rgba(11, 32, 60, 0.22);
}

.muya-cors-client-shell .muya-voucher-card {
    background: #fff;
    border: 1px solid #e2e8f0;
    border-radius: 16px;
    color: #334155;
    box-shadow: 0 10px 24px rgba(15, 23, 42, 0.06);
    padding: 0;
    margin-bottom: 0;
}

.muya-cors-client-shell .muya-voucher-card-head {
    display: flex;
    align-items: flex-start;
    gap: 12px;
    padding: 16px 18px 12px;
    background: linear-gradient(180deg, #f8fafc 0%, #fff 100%);
    border-bottom: 1px solid #e2e8f0;
}

.muya-cors-client-shell .muya-voucher-card-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 40px;
    height: 40px;
    border-radius: 12px;
    background: #eff6ff;
    color: #2563eb;
    font-size: 18px;
    flex-shrink: 0;
}

.muya-cors-client-shell .muya-voucher-card-title {
    margin: 0 0 4px;
    line-height: 1.3;
    font-size: 16px;
    font-weight: 700;
    color: #0f172a;
}

.muya-cors-client-shell .muya-voucher-card-note {
    margin: 0;
    font-size: 12px;
    line-height: 1.45;
    color: #64748b;
}

.muya-cors-client-shell .muya-voucher-card-body {
    padding: 14px 18px 18px;
    overflow: visible;
}

.muya-cors-client-shell .muya-voucher-card-body .bootstrap-select .dropdown-menu {
    z-index: 1060;
}

.muya-cors-client-shell .muya-voucher-card-body .form-group {
    margin-bottom: 12px;
}

.muya-cors-client-shell .muya-voucher-card-body label {
    color: #475569;
    font-weight: 600;
    font-size: 13px;
}

.muya-cors-client-shell .muya-voucher-redeem-row {
    display: flex;
    gap: 10px;
    align-items: stretch;
}

.muya-cors-client-shell .muya-voucher-code-input {
    flex: 1 1 auto;
    min-width: 0;
    height: 42px;
    border: 1px solid #cbd5e1;
    border-radius: 10px;
    background: #fff;
    box-shadow: none;
    font-size: 14px;
}

.muya-cors-client-shell .muya-voucher-code-input:focus {
    border-color: #2563eb;
    box-shadow: 0 0 0 3px rgba(37, 99, 235, 0.12);
}

.muya-cors-client-shell .muya-voucher-redeem-btn {
    flex: 0 0 auto;
    height: 42px;
    border-radius: 10px;
    padding: 0 16px;
    font-weight: 700;
    white-space: nowrap;
}

.muya-cors-client-shell .muya-voucher-card .form-control,
.muya-cors-client-shell .muya-voucher-card .bootstrap-select > .dropdown-toggle {
    border-radius: 10px !important;
    border-color: #cbd5e1;
    background: #fff;
    color: #0f172a;
    min-height: 42px;
}

.muya-cors-client-shell .muya-voucher-card .bootstrap-select > .dropdown-toggle:focus,
.muya-cors-client-shell .muya-voucher-card .bootstrap-select > .dropdown-toggle:hover {
    border-color: #2563eb;
}

.muya-voucher-card h3 {
    margin: 0 0 12px;
    line-height: 1.3;
    font-size: 18px;
    font-weight: 700;
}

.muya-voucher-card .form-control,
.muya-voucher-card .bootstrap-select > .dropdown-toggle {
    border-radius: 10px !important;
}

.muya-voucher-card small {
    color: rgba(255, 255, 255, 0.82);
}

.muya-voucher-card #voucher_redeem_btn {
    cursor: pointer;
}

@media (max-width: 767px) {
    .muya-cors-client-shell .muya-voucher-redeem-row {
        flex-direction: column;
    }

    .muya-cors-client-shell .muya-voucher-redeem-btn {
        width: 100%;
    }
}

.muya-tracker-filters-card {
    border: 1px solid #e2e8f0;
    border-radius: 16px;
    overflow: hidden;
    box-shadow: 0 8px 20px rgba(15, 23, 42, 0.04);
    margin-bottom: 18px;
}

.muya-tracker-filters-card .panel-heading {
    background: #f8fafc;
    border-bottom: 1px solid #e2e8f0;
    padding: 12px 16px;
}

.muya-tracker-filters-card .panel-body {
    padding: 16px;
}

.muya-rinex-search-grid .form-group {
    margin-bottom: 12px;
}

.muya-rinex-search-grid label {
    font-weight: 600;
    color: #334155;
}

.muya-cors-client-shell .input-group.date,
.muya-svc-workspace .input-group.date,
.muya-rinex-post-form .input-group.date,
.muya-profile-page .section-profile .input-group.date {
    display: flex;
    flex-wrap: nowrap;
    align-items: stretch;
    width: 100%;
}

.muya-cors-client-shell .input-group.date > .form-control,
.muya-svc-workspace .input-group.date > .form-control,
.muya-rinex-post-form .input-group.date > .form-control,
.muya-profile-page .section-profile .input-group.date > .form-control {
    display: block;
    flex: 1 1 auto;
    width: 1% !important;
    min-width: 0;
    min-height: 38px;
}

.muya-cors-client-shell .input-group.date > .form-control:not(:last-child),
.muya-svc-workspace .input-group.date > .form-control:not(:last-child),
.muya-rinex-post-form .input-group.date > .form-control:not(:last-child),
.muya-profile-page .section-profile .input-group.date > .form-control:not(:last-child) {
    border-top-right-radius: 0;
    border-bottom-right-radius: 0;
}

.muya-cors-client-shell .input-group.date > .form-control:not(:first-child),
.muya-svc-workspace .input-group.date > .form-control:not(:first-child),
.muya-rinex-post-form .input-group.date > .form-control:not(:first-child),
.muya-profile-page .section-profile .input-group.date > .form-control:not(:first-child) {
    border-top-left-radius: 0;
    border-bottom-left-radius: 0;
}

.muya-cors-client-shell .input-group.date > .input-group-addon,
.muya-svc-workspace .input-group.date > .input-group-addon,
.muya-rinex-post-form .input-group.date > .input-group-addon,
.muya-profile-page .section-profile .input-group.date > .input-group-addon {
    display: flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 auto;
    width: auto;
    min-width: 42px;
    min-height: 38px;
    padding: 0 12px;
    line-height: 1;
    background: #f8fafc;
    border-color: var(--muya-color-border-strong, #cbd5e1);
    color: #64748b;
    cursor: pointer;
}

.muya-cors-client-shell .input-group.date > .input-group-addon:first-child,
.muya-svc-workspace .input-group.date > .input-group-addon:first-child,
.muya-rinex-post-form .input-group.date > .input-group-addon:first-child,
.muya-profile-page .section-profile .input-group.date > .input-group-addon:first-child {
    border-right: 0;
    border-top-right-radius: 0;
    border-bottom-right-radius: 0;
}

.muya-cors-client-shell .input-group.date > .input-group-addon:last-child,
.muya-svc-workspace .input-group.date > .input-group-addon:last-child,
.muya-rinex-post-form .input-group.date > .input-group-addon:last-child,
.muya-profile-page .section-profile .input-group.date > .input-group-addon:last-child {
    border-left: 0;
    border-top-left-radius: 0;
    border-bottom-left-radius: 0;
}

.muya-cors-client-shell .input-group.date > .input-group-addon .calendar-icon,
.muya-svc-workspace .input-group.date > .input-group-addon .calendar-icon,
.muya-rinex-post-form .input-group.date > .input-group-addon .calendar-icon,
.muya-profile-page .section-profile .input-group.date > .input-group-addon .calendar-icon,
.muya-cors-client-shell .input-group.date > .input-group-addon i,
.muya-svc-workspace .input-group.date > .input-group-addon i,
.muya-rinex-post-form .input-group.date > .input-group-addon i,
.muya-profile-page .section-profile .input-group.date > .input-group-addon i {
    display: block;
    line-height: 1;
    font-size: 14px;
}

.muya-cors-client-shell .input-group.date > .form-control:focus,
.muya-svc-workspace .input-group.date > .form-control:focus,
.muya-rinex-post-form .input-group.date > .form-control:focus,
.muya-profile-page .section-profile .input-group.date > .form-control:focus {
    z-index: 2;
}

/* ============================================================
   DATATABLES (client area)
   ============================================================ */
.muya-client-table-shell .dataTables_wrapper {
    padding: 12px 14px 14px;
}

.muya-client-table-shell .dataTables_length {
    display: none !important;
}

.muya-client-table-shell .dataTables_length label,
.muya-client-table-shell .dataTables_filter label {
    font-weight: 600;
    color: #475569;
    font-size: 13px;
}

.muya-client-table-shell .dataTables_length select {
    margin: 0 6px;
    border-radius: 8px;
    min-width: 72px;
}

.muya-client-table-shell .dataTables_filter input {
    border-radius: 8px;
    border-color: #cbd5e1;
    margin-left: 8px;
}

.muya-client-table-shell .dataTables_info {
    color: #64748b;
    font-size: 13px;
    padding-top: 10px;
}

.muya-client-table-shell .dataTables_paginate {
    padding-top: 8px;
}

.muya-client-table-shell .pagination > li > a {
    border-radius: 8px;
    margin-left: 4px;
}

/* ============================================================
   GNSS Receivers table — compact layout, no horizontal scroll
   ============================================================ */

/* Reduce section header row margins */
#rtk_machines_tab > .row {
    margin-bottom: 4px !important;
}
#rtk_machines_tab > .row > .col-md-12 > .row.mbot15 {
    margin-bottom: 8px !important;
}

/* Fixed layout bypasses DataTables auto-sizing */
#rtk_machines_tab .muya-client-table-shell .table {
    table-layout: fixed !important;
    width: 100% !important;
}

/* Pin narrow columns; fluid columns share the remaining space */
#rtk_machines_tab .muya-client-table-shell .table th:nth-child(1),
#rtk_machines_tab .muya-client-table-shell .table td:nth-child(1) {
    width: 38px !important;
    text-align: center;
}
#rtk_machines_tab .muya-client-table-shell .table th:nth-child(4),
#rtk_machines_tab .muya-client-table-shell .table td:nth-child(4) {
    width: 120px !important;
}
#rtk_machines_tab .muya-client-table-shell .table th:nth-child(5),
#rtk_machines_tab .muya-client-table-shell .table td:nth-child(5) {
    width: 110px !important;
}
#rtk_machines_tab .muya-client-table-shell .table th:nth-child(6),
#rtk_machines_tab .muya-client-table-shell .table td:nth-child(6) {
    width: 100px !important;
}
#rtk_machines_tab .muya-client-table-shell .table th:nth-child(7),
#rtk_machines_tab .muya-client-table-shell .table td:nth-child(7) {
    width: 70px !important;
    text-align: center;
}
#rtk_machines_tab .muya-client-table-shell .table th:nth-child(8),
#rtk_machines_tab .muya-client-table-shell .table td:nth-child(8) {
    width: 108px !important;
}

/* Compact th / td */
#rtk_machines_tab .muya-client-table-shell .table > thead > tr > th,
#rtk_machines_tab .muya-client-table-shell .table > tbody > tr > td {
    padding: 7px 10px;
    font-size: 13px;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

/* Row hover highlight */
#rtk_machines_tab .muya-client-table-shell .table > tbody > tr:hover > td {
    background: #f0f7ff;
}

/* Compact action buttons */
#rtk_machines_tab .muya-rtk-machine-actions {
    display: flex;
    gap: 4px;
    align-items: center;
}
#rtk_machines_tab .muya-rtk-machine-actions .btn.btn-icon {
    width: 28px;
    height: 28px;
    padding: 0;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 12px;
    border-radius: 6px;
}

/* DataTables wrapper tighter */
#rtk_machines_tab .dataTables_wrapper {
    padding: 8px 14px 12px;
}

/* Perfex adds .table-loading to DataTables wrappers (opacity:0 rows + skeleton).
   initMuyaCorsDeferredTables clears it; these rules prevent stuck skeleton state. */
.muya-cors-client-shell .dataTables_wrapper.table-loading,
.muya-svc-workspace .dataTables_wrapper.table-loading,
.muya-rtk-tab-content .dataTables_wrapper.table-loading,
.muya-client-table-shell .dataTables_wrapper.table-loading {
    background: none !important;
    pointer-events: auto !important;
}

.muya-cors-client-shell .dataTables_wrapper.table-loading::before,
.muya-cors-client-shell .dataTables_wrapper.table-loading::after,
.muya-svc-workspace .dataTables_wrapper.table-loading::before,
.muya-svc-workspace .dataTables_wrapper.table-loading::after,
.muya-rtk-tab-content .dataTables_wrapper.table-loading::before,
.muya-rtk-tab-content .dataTables_wrapper.table-loading::after,
.muya-client-table-shell .dataTables_wrapper.table-loading::before,
.muya-client-table-shell .dataTables_wrapper.table-loading::after,
.muya-cors-client-shell .dataTables_wrapper.muya-cors-dt-ready::before,
.muya-cors-client-shell .dataTables_wrapper.muya-cors-dt-ready::after,
.muya-svc-workspace .dataTables_wrapper.muya-cors-dt-ready::before,
.muya-svc-workspace .dataTables_wrapper.muya-cors-dt-ready::after {
    display: none !important;
    content: none !important;
    pointer-events: none !important;
    opacity: 0 !important;
}

body:not(.modal-open) > .modal-backdrop,
body:not(.modal-open) .modal-backdrop,
.muya-cors-client-shell:not(.modal-open) .modal-backdrop,
body:not(.modal-open) > .dropdown-backdrop,
body:not(.modal-open) .dropdown-backdrop {
    display: none !important;
    opacity: 0 !important;
    pointer-events: none !important;
}

body > .bootstrap-select.bs-container:not(.open):not(.show) {
    display: none !important;
    pointer-events: none !important;
}

body.modal-open .modal-backdrop {
    z-index: 1040;
}

body.modal-open .modal.in,
body.modal-open .modal.show {
    z-index: 1050;
}

/* Bootstrap 3/5 CSS coexistence fix:
   Bootstrap 5 CSS (.fade:not(.show){opacity:0}, specificity 0,2,0) is loaded after Bootstrap 3
   CSS (.fade.in{opacity:1}, specificity 0,2,0) and wins due to source order, making BS3 modals
   invisible. These rules use higher specificity (0,3,0+) to restore correct BS3 modal behavior. */
.modal.fade.in {
    opacity: 1;
}
.modal.fade.in .modal-dialog {
    -webkit-transform: translate(0, 0);
    -o-transform: translate(0, 0);
    transform: translate(0, 0);
}
.modal-backdrop.fade.in {
    opacity: 0.5;
}

.muya-cors-client-shell .dataTables_wrapper.table-loading table tbody tr,
.muya-cors-client-shell .dataTables_wrapper.table-loading table thead th,
.muya-svc-workspace .dataTables_wrapper.table-loading table tbody tr,
.muya-svc-workspace .dataTables_wrapper.table-loading table thead th,
.muya-rtk-tab-content .dataTables_wrapper.table-loading table tbody tr,
.muya-rtk-tab-content .dataTables_wrapper.table-loading table thead th,
.muya-client-table-shell .dataTables_wrapper.table-loading table tbody tr,
.muya-client-table-shell .dataTables_wrapper.table-loading table thead th {
    opacity: 1 !important;
}

.muya-cors-client-shell .dataTables_wrapper.table-loading table thead tr,
.muya-svc-workspace .dataTables_wrapper.table-loading table thead tr,
.muya-rtk-tab-content .dataTables_wrapper.table-loading table thead tr,
.muya-client-table-shell .dataTables_wrapper.table-loading table thead tr {
    height: auto !important;
    min-height: 0 !important;
}

.muya-rtk-tab-content > .tab-pane.active,
.muya-rtk-tab-content > .tab-pane.show {
    display: block !important;
    opacity: 1 !important;
    visibility: visible !important;
    pointer-events: auto !important;
    position: relative;
    z-index: 1;
}
.muya-rtk-tab-content .muya-rtk-add-receiver-btn,
.muya-rtk-tab-content .muya-rtk-machine-actions,
.muya-rtk-tab-content .muya-rtk-machine-actions .btn,
.muya-rtk-tab-content .muya-rtk-machine-actions a,
.muya-rtk-tab-content .muya-rtk-licence-actions,
.muya-rtk-tab-content .muya-rtk-licence-actions .btn,
.muya-rtk-tab-content .muya-rtk-licence-actions a,
.muya-rtk-tab-content .onoffswitch,
.muya-rtk-tab-content .onoffswitch-label {
    pointer-events: auto !important;
    position: relative;
    z-index: 2;
}

.muya-client-table-shell table tbody td .muya-rtk-licence-actions,
.muya-client-table-shell .dataTables_wrapper.table-loading table tbody td .muya-rtk-licence-actions,
.muya-client-table-shell .dataTables_wrapper.muya-cors-dt-ready table tbody td .muya-rtk-licence-actions,
.muya-svc-workspace .dataTables_wrapper.table-loading table tbody td .muya-rtk-licence-actions,
.muya-rtk-tab-content .dataTables_wrapper.table-loading table tbody td .muya-rtk-licence-actions {
    opacity: 1 !important;
    pointer-events: auto;
    position: relative;
    z-index: 2;
}

.muya-client-table-shell table tbody td .muya-rtk-licence-actions .btn,
.muya-client-table-shell table tbody td .muya-rtk-licence-actions a,
.muya-client-table-shell .dataTables_wrapper.table-loading table tbody td .muya-rtk-licence-actions .btn,
.muya-client-table-shell .dataTables_wrapper.table-loading table tbody td .muya-rtk-licence-actions a,
.muya-rtk-tab-content .dataTables_wrapper.table-loading table tbody td .muya-rtk-licence-actions .btn,
.muya-rtk-tab-content .dataTables_wrapper.table-loading table tbody td .muya-rtk-licence-actions a {
    pointer-events: auto;
    cursor: pointer;
}

.muya-svc-page[data-service="rtk_corrections"] .muya-licence-confidence-wrap,
.muya-svc-page[data-service="rtk_corrections"] .muya-licence-confidence-wrap a,
.muya-svc-page[data-service="rtk_corrections"] .muya-licence-confidence-wrap .btn,
.muya-svc-page[data-service="rtk_corrections"] .muya-licence-confidence-pending-item .muya-service-pay-btn {
    pointer-events: auto !important;
    position: relative;
    z-index: 2;
}

.muya-licence-confidence-pending-item .muya-service-pay-btn {
    margin-left: 8px;
    flex-shrink: 0;
}

.muya-cors-client-shell .dataTables_wrapper.muya-cors-dt-ready,
.muya-svc-workspace .dataTables_wrapper.muya-cors-dt-ready,
.muya-rtk-tab-content .dataTables_wrapper.muya-cors-dt-ready {
    background: none !important;
}

.muya-cors-client-shell .dataTables_wrapper.muya-cors-dt-ready table tbody tr,
.muya-cors-client-shell .dataTables_wrapper.muya-cors-dt-ready table thead th,
.muya-svc-workspace .dataTables_wrapper.muya-cors-dt-ready table tbody tr,
.muya-svc-workspace .dataTables_wrapper.muya-cors-dt-ready table thead th,
.muya-rtk-tab-content .dataTables_wrapper.muya-cors-dt-ready table tbody tr,
.muya-rtk-tab-content .dataTables_wrapper.muya-cors-dt-ready table thead th {
    opacity: 1 !important;
}

.muya-cors-client-shell .dataTables_wrapper.muya-cors-dt-ready table thead tr,
.muya-svc-workspace .dataTables_wrapper.muya-cors-dt-ready table thead tr,
.muya-rtk-tab-content .dataTables_wrapper.muya-cors-dt-ready table thead tr {
    height: auto !important;
    min-height: 0 !important;
}

.muya-rtk-tab-content > .tab-pane.active,
.muya-rtk-tab-content > .tab-pane.show {
    display: block !important;
    opacity: 1 !important;
    visibility: visible !important;
}

.muya-rtk-tab-content > .tab-pane:not(.active):not(.show) {
    display: none !important;
}

/* ============================================================
   PORTAL CHROME NAV ACTIVE
   ============================================================ */
.muya-portal-chrome-nav a.is-active {
    color: #fff;
    background: rgba(255, 255, 255, 0.18);
}

/* ============================================================
   FULL-AREA TAB / BUTTON HOVERS
   ============================================================ */
.muya-service-tabs > li,
.muya-svc-tabs > li,
.muya-service-inner-tabs > li,
.muya-map-detail-tabs > li,
.muya-cors-client-shell .nav-tabs > li {
    display: flex;
    margin-bottom: 0;
}

.muya-service-tabs > li > a,
.muya-svc-tabs > li > a,
.muya-service-inner-tabs > li > a,
.muya-map-detail-tabs > li > a,
.muya-cors-client-shell .nav-tabs > li > a {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    box-sizing: border-box;
}

.muya-cors-client-shell .nav-tabs > li,
.muya-cors-client-shell .nav-tabs > li:hover,
.muya-cors-client-shell .nav-tabs > li:focus,
.muya-cors-client-shell .nav-tabs > li.active {
    background: transparent !important;
    border-radius: 0 !important;
}

.muya-service-tabs > li:hover > a,
.muya-service-tabs > li > a:hover,
.muya-service-tabs > li > a:focus,
.muya-svc-tabs > li:hover > a,
.muya-svc-tabs > li > a:hover,
.muya-svc-tabs > li > a:focus,
.muya-service-inner-tabs > li:hover > a,
.muya-service-inner-tabs > li > a:hover,
.muya-service-inner-tabs > li > a:focus,
.muya-map-detail-tabs > li:hover > a,
.muya-map-detail-tabs > li > a:hover,
.muya-map-detail-tabs > li > a:focus,
.muya-cors-client-shell .nav-tabs > li:hover > a,
.muya-cors-client-shell .nav-tabs > li > a:hover,
.muya-cors-client-shell .nav-tabs > li > a:focus {
    text-decoration: none;
}

.muya-svc-workspace .muya-service-inner-tabs > li > a:hover,
.muya-svc-workspace .muya-service-inner-tabs > li:hover > a,
.muya-svc-workspace .muya-service-inner-tabs > li > a:focus {
    color: #1d4ed8;
    background: #eff6ff;
    border-color: #dbeafe #dbeafe transparent;
}

.muya-svc-quickbar-link,
.muya-profile-page .muya-profile-shortcut,
.muya-quick-action-btn,
.muya-client-chip {
    position: relative;
}

@media (max-width: 991px) {
    .muya-portal-chrome-header .container-fluid.muya-page-container {
        flex-direction: column;
        align-items: stretch !important;
        gap: 10px;
    }

    .muya-portal-chrome-nav {
        width: 100%;
        max-width: 100%;
        overflow-x: auto;
        flex-wrap: nowrap;
        padding-bottom: 4px;
        justify-content: flex-start;
    }

    .muya-voucher-card {
        margin-top: 16px;
    }
}

/* ============================================================
   Services hub — single hero + tab nav (no duplicate headers)
   ============================================================ */
.muya-service-page-hero .muya-client-hero-title i {
    margin-right: 8px;
    opacity: 0.92;
}

.muya-service-panel {
    border: 0;
    box-shadow: 0 10px 28px rgba(15, 23, 42, 0.08);
    border-radius: 16px;
    overflow: visible;
}

.muya-service-panel .panel-body {
    padding: 20px 22px 24px;
    overflow: visible;
}

.muya-service-tabs-wrap {
    margin: 0 0 4px;
    border-bottom: 1px solid #e2e8f0;
}

.muya-service-tabs {
    display: flex;
    flex-wrap: wrap;
    gap: 4px;
    border-bottom: none !important;
}

.muya-service-tabs > li {
    float: none;
    margin-bottom: 0;
}

.muya-service-tabs > li > a {
    border: 1px solid transparent;
    border-radius: 10px 10px 0 0;
    color: #475569;
    font-weight: 600;
    font-size: 13px;
    padding: 10px 14px;
    margin-right: 0;
}

.muya-service-tabs > li > a i {
    margin-right: 5px;
    opacity: 0.85;
}

.muya-service-tabs > li.active > a,
.muya-service-tabs > li > a:hover,
.muya-service-tabs > li > a:focus {
    color: var(--muya-color-primary-hover);
    background: var(--muya-color-primary-soft);
    border-color: var(--muya-color-border) var(--muya-color-border) transparent;
}

.muya-service-panel-content {
    padding-top: 16px;
}

.muya-service-body {
    padding: 0 !important;
}

.muya-service-details-panel {
    border: 1px solid #e2e8f0;
    border-radius: 12px;
    overflow: hidden;
    background: #f8fafc;
}

.muya-service-details-toggle {
    width: 100%;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    border: 0;
    background: transparent;
    padding: 12px 16px;
    font-size: 14px;
    font-weight: 600;
    color: #334155;
    text-align: left;
}

.muya-service-details-toggle i.fa-info-circle {
    margin-right: 6px;
    color: #2563eb;
}

.muya-service-details-chevron {
    transition: transform 0.2s ease;
    color: #64748b;
}

.muya-service-details-toggle:not(.collapsed) .muya-service-details-chevron {
    transform: rotate(180deg);
}

.muya-service-details-body {
    padding: 0 16px 16px;
    border-top: 1px solid #e2e8f0;
    background: #fff;
}

.muya-service-rich-content {
    font-size: 14px;
    line-height: 1.6;
    color: #334155;
}

.muya-ntrip-card {
    border-radius: 12px;
    border: 1px solid #bfdbfe;
    background: linear-gradient(180deg, #f0f9ff 0%, #eff6ff 100%);
    padding: 18px 20px;
}

.muya-ntrip-card-extra {
    margin-bottom: 18px;
    padding-bottom: 4px;
}

.muya-ntrip-card-extra-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    align-items: center;
}

.muya-ntrip-card-title {
    margin: 0 0 14px;
    font-size: 15px;
    font-weight: 700;
    color: #1e3a8a;
}

.muya-ntrip-grid {
    display: grid;
    gap: 12px;
}

@media (min-width: 640px) {
    .muya-ntrip-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

.muya-ntrip-row {
    background: rgba(255, 255, 255, 0.72);
    border: 1px solid #dbeafe;
    border-radius: 10px;
    padding: 10px 12px;
}

.muya-ntrip-label {
    display: block;
    font-size: 11px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: #64748b;
    margin-bottom: 4px;
}

.muya-ntrip-value {
    font-size: 18px;
    color: #0f172a;
    font-variant-numeric: tabular-nums;
}

.muya-ntrip-hint {
    margin: 6px 0 0;
    font-size: 12px;
    line-height: 1.45;
}

.muya-rtk-subscription-note {
    border-radius: 10px;
}

.muya-service-catalog-grid {
    margin-top: 4px;
}

.muya-service-catalog-card {
    display: flex;
    flex-direction: column;
    height: 100%;
    border: 1px solid #e2e8f0;
    border-radius: 14px;
    overflow: hidden;
    background: #fff;
    box-shadow: 0 8px 22px rgba(15, 23, 42, 0.06);
    transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.muya-service-catalog-card:hover {
    transform: translateY(-2px);
    box-shadow: 0 14px 28px rgba(15, 23, 42, 0.1);
}

.muya-service-catalog-media {
    display: block;
    overflow: hidden;
    aspect-ratio: 16 / 10;
    background: #f1f5f9;
}

.muya-service-catalog-media img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.muya-service-catalog-body {
    padding: 16px;
    display: flex;
    flex-direction: column;
    gap: 10px;
    flex: 1;
}

.muya-service-catalog-title {
    margin: 0;
    font-size: 17px;
    font-weight: 700;
}

.muya-service-catalog-title a {
    color: #0f172a;
}

.muya-service-catalog-excerpt {
    margin: 0;
    color: #64748b;
    font-size: 13px;
    line-height: 1.5;
    flex: 1;
}

/* ============================================================
   Front-end UI system — buttons, tabs, forms, legal pages
   ============================================================ */
.muya-client-hero-title .fa,
.muya-client-hero-title i[class*="fa-"] {
    margin-right: 10px;
    opacity: 0.92;
    font-size: 0.92em;
}

.muya-cors-client-shell .btn {
    border-radius: 10px;
    font-weight: 600;
    transition: transform 0.15s ease, box-shadow 0.15s ease, background 0.15s ease;
}

.muya-cors-client-shell .btn:active {
    transform: translateY(1px);
}

.muya-cors-client-shell .btn-info,
.muya-cors-client-shell .btn-primary,
.muya-cors-client-shell .muya-btn-primary {
    background: linear-gradient(135deg, var(--muya-color-primary) 0%, var(--muya-color-primary-hover) 100%);
    border: 1px solid var(--muya-color-primary-hover);
    color: #fff;
    box-shadow: 0 8px 18px var(--muya-color-primary-soft);
}

.muya-cors-client-shell .btn-info:hover,
.muya-cors-client-shell .btn-info:focus,
.muya-cors-client-shell .btn-primary:hover,
.muya-cors-client-shell .btn-primary:focus,
.muya-cors-client-shell .muya-btn-primary:hover,
.muya-cors-client-shell .muya-btn-primary:focus {
    background: var(--muya-color-primary-hover);
    border-color: var(--muya-color-primary-hover);
    color: #fff;
}

.muya-cors-client-shell .btn-success {
    background: linear-gradient(135deg, var(--muya-color-success) 0%, #15803d 100%);
    border-color: #166534;
    color: #fff;
    box-shadow: 0 6px 14px rgba(22, 163, 74, 0.22);
}

.muya-cors-client-shell .btn-success:hover,
.muya-cors-client-shell .btn-success:focus {
    background: #15803d;
    border-color: #14532d;
    color: #fff;
}

.muya-cors-client-shell .btn-default {
    background: var(--muya-color-surface);
    border: 1px solid var(--muya-color-border-strong);
    color: var(--muya-color-body);
}

.muya-cors-client-shell .btn-default:hover,
.muya-cors-client-shell .btn-default:focus {
    background: var(--muya-color-surface-muted);
    border-color: var(--muya-color-muted);
    color: var(--muya-color-heading);
}

.muya-cors-client-shell .btn-lg {
    padding: 12px 22px;
    font-size: 15px;
}

.muya-cors-client-shell .btn-xs {
    border-radius: 8px;
    padding: 3px 8px;
}

.muya-cors-client-shell .btn .fa,
.muya-cors-client-shell .btn i[class*="fa-"] {
    margin-right: 6px;
}

.muya-cors-client-shell .btn .fa:last-child,
.muya-cors-client-shell .btn i[class*="fa-"]:last-child {
    margin-right: 0;
    margin-left: 6px;
}

.muya-cors-client-shell .btn .fa:only-child,
.muya-cors-client-shell .btn i[class*="fa-"]:only-child {
    margin: 0;
}

.muya-cors-client-shell .form-control,
.muya-cors-client-shell .selectpicker {
    border-radius: var(--muya-radius-sm);
    border-color: var(--muya-color-border-strong);
    min-height: 38px;
}

.muya-cors-client-shell .form-control:focus {
    border-color: var(--muya-color-secondary);
    box-shadow: var(--muya-focus-ring);
}

.muya-cors-client-shell label.control-label {
    font-weight: 600;
    color: var(--muya-color-body);
    font-size: 13px;
}

.muya-cors-client-shell .alert {
    border-radius: 12px;
    border-width: 1px;
}

.muya-legal-toc .panel-body ol {
    margin: 0;
    padding-left: 1.25rem;
}

.muya-legal-toc .panel-body ol a {
    color: var(--muya-color-link);
    font-weight: 600;
    text-decoration: none;
}

.muya-legal-toc .panel-body ol a:hover {
    text-decoration: underline;
}

.muya-legal-content {
    font-size: 15px;
    line-height: 1.65;
    color: #334155;
}

.muya-control-point-disclaimer {
    border-radius: 12px;
    border-color: #fcd34d;
    background: #fffbeb;
    color: #78350f;
}

.muya-control-point-disclaimer--compact {
    padding: 10px 12px;
    font-size: 13px;
}

.muya-control-point-disclaimer-title {
    font-weight: 700;
    margin: 0 0 6px;
}

.muya-control-point-disclaimer-copy {
    line-height: 1.55;
}

.muya-control-point-disclaimer--compact .muya-control-point-disclaimer-copy {
    font-size: 12px;
    line-height: 1.45;
}

.muya-map-sidebar-notices {
    display: flex;
    flex-direction: column;
    gap: 10px;
    margin-bottom: 12px;
}

.muya-map-sidebar-notices .muya-control-point-disclaimer {
    margin-bottom: 0;
}

.muya-map-sidebar-placeholder {
    margin-bottom: 0;
    padding: 10px 12px;
    border-radius: 10px;
    font-size: 12px;
    line-height: 1.45;
    border-color: #93c5fd;
    background: #eff6ff;
    color: #1e3a8a;
}

.muya-map-sidebar-placeholder-title {
    font-weight: 700;
    margin-bottom: 4px;
}

.muya-map-sidebar-placeholder-title .fa {
    margin-right: 4px;
}

.muya-map-sidebar-placeholder-copy {
    color: #1e40af;
}

.muya-geodetic-subscription-notice {
    border-radius: 12px;
}

.muya-legal-content h4,
.muya-legal-content h5,
.muya-legal-content [id] {
    color: #0f172a;
    margin-top: 1.5em;
    scroll-margin-top: 110px;
}

.muya-coordinate-guide-page .muya-coordinate-guide-tabs a {
    scroll-margin-top: 110px;
}

@media (max-width: 767px) {
    .muya-coordinate-guide-page .muya-client-table-shell {
        -webkit-overflow-scrolling: touch;
    }

    .muya-coordinate-guide-page .muya-client-toolbar-actions {
        flex-wrap: wrap;
        gap: 8px;
    }
}

.muya-control-point-suggest {
    border-radius: 16px;
    border: 1px solid #e2e8f0;
    background: #fff;
    padding: 18px 20px;
    margin-top: 16px;
    box-shadow: 0 8px 22px rgba(15, 23, 42, 0.05);
}

.muya-control-point-suggest h5 {
    margin: 0 0 8px;
    font-weight: 700;
    color: #0f172a;
}

.muya-control-point-suggest h5 .fa {
    margin-right: 8px;
    color: #2563eb;
}

.muya-verification-result-card {
    max-width: 520px;
    margin: 40px auto;
    text-align: center;
    padding: 36px 28px;
}

.muya-verification-result-card .fa {
    margin-bottom: 12px;
}

.muya-verification-result-card h2 {
    font-weight: 800;
    margin-bottom: 12px;
}

.muya-login-portal {
    max-width: 520px;
    margin: 0 auto;
}

.muya-auth-page {
    width: 100%;
    max-width: 1480px;
    margin: 24px auto 48px;
    /* Keep the cards off the viewport edge on small screens. */
    padding-left: 16px;
    padding-right: 16px;
    box-sizing: border-box;
}

/*
 * The auth layouts are Bootstrap `.row`s, whose negative side margins
 * (-12px) otherwise pull the rounded hero/card flush to — and past — the
 * viewport edge on narrow screens. Scope-override (0,2,0 specificity beats
 * `.row`) so the cards stay inside the page padding.
 */
.muya-auth-page .muya-auth-heading-row,
.muya-auth-page .muya-login-layout {
    margin-left: 0;
    margin-right: 0;
}

.muya-auth-eyebrow {
    display: inline-block;
    color: var(--muya-color-primary, #2563eb);
    font-size: 12px;
    font-weight: 800;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    margin-bottom: 6px;
}

.muya-auth-intro {
    color: var(--muya-color-muted, #64748b);
    font-size: 16px;
    line-height: 1.7;
    max-width: 680px;
}
.muya-auth-welcome p {
    font-size: 16px;
    line-height: 1.7;
    max-width: 680px;
}

.muya-auth-card {
    border: 1px solid var(--muya-color-border, #e2e8f0);
    border-radius: 20px;
    overflow: hidden;
    box-shadow: 0 20px 50px rgba(15, 23, 42, 0.09);
}

.muya-auth-card .panel-body {
    padding: clamp(22px, 3vw, 38px);
}

.muya-auth-form-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 46px;
    height: 46px;
    margin-bottom: 14px;
    border-radius: 14px;
    color: #fff;
    background: linear-gradient(135deg, var(--muya-color-primary, #2563eb), #0f766e);
    box-shadow: 0 12px 24px rgba(37, 99, 235, 0.2);
}

.muya-auth-form-copy {
    margin: -10px 0 22px;
    color: var(--muya-color-muted, #64748b);
    font-size: 15px;
    line-height: 1.6;
}

.muya-auth-card .panel-footer {
    padding: 18px clamp(22px, 3vw, 38px);
    background: #f8fafc;
    border-top-color: #e2e8f0;
}

.muya-auth-card .form-control,
.muya-auth-card .bootstrap-select > .btn {
    min-height: 44px;
    border-radius: 9px;
    border-color: #cbd5e1;
}

.muya-auth-card .form-control:focus {
    border-color: var(--muya-color-primary, #2563eb);
    box-shadow: 0 0 0 3px rgba(37, 99, 235, 0.12);
}

.muya-auth-welcome {
    padding: clamp(30px, 5vw, 72px);
    border-radius: 24px;
    background: linear-gradient(135deg, var(--muya-color-hero-from, #0f172a), var(--muya-color-hero-to, #334155));
    color: #fff !important;
}

/* Force white text — Perfex global heading/paragraph rules override without !important */
.muya-auth-welcome h1,
.muya-auth-welcome h2,
.muya-auth-welcome h3,
.muya-auth-welcome h4 {
    color: #fff !important;
    font-size: clamp(34px, 4vw, 54px);
    line-height: 1.08;
    font-weight: 800;
    letter-spacing: -0.04em;
    margin: 10px 0 18px;
}

.muya-auth-welcome p,
.muya-auth-welcome .muya-auth-eyebrow {
    color: rgba(255, 255, 255, 0.82) !important;
}

.muya-auth-benefits span {
    color: #fff !important;
}

.muya-auth-benefits {
    display: grid;
    gap: 12px;
    margin-top: 28px;
}

.muya-auth-benefits span {
    font-weight: 600;
}

.muya-auth-benefits .fa {
    color: #86efac;
    margin-right: 8px;
}

.muya-register-benefits {
    display: flex;
    flex-wrap: wrap;
    gap: 8px 18px;
    margin-top: 14px;
    color: #334155;
}

.muya-register-benefits span {
    font-size: 13px;
}

.muya-register-benefits .fa {
    color: #16a34a;
}

.muya-login-layout {
    display: flex;
    align-items: stretch;
    gap: clamp(24px, 4vw, 56px);
}

.muya-login-layout > [class*="col-"] {
    float: none;
    flex: 1 1 0;
    padding-left: 0;
    padding-right: 0;
}

.muya-login-page .muya-login-layout {
    width: 100%;
}

.muya-login-page .muya-login-pane {
    min-width: 0;
    box-sizing: border-box;
}

.muya-login-page .muya-login-pane-hero {
    display: flex;
}

.muya-login-page .muya-auth-welcome {
    width: 100%;
    min-height: 520px;
    padding: clamp(34px, 5vw, 72px) !important;
    box-sizing: border-box;
    overflow: hidden;
}

.muya-login-page .muya-auth-welcome h1 {
    max-width: 10.5em;
    font-size: clamp(32px, 3.45vw, 54px);
    overflow-wrap: break-word;
    word-break: normal;
}

.muya-login-page .muya-auth-welcome p {
    max-width: 620px;
}

.muya-register-page .register-heading {
    margin: 0 0 5px;
    color: #0f172a;
    letter-spacing: -0.03em;
}

/* Register hero banner — matches the login page's premium gradient treatment. */
.muya-register-page .muya-auth-heading-row {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 18px;
    margin: 0 0 24px;
    padding: clamp(24px, 3.5vw, 44px);
    border-radius: 22px;
    background: linear-gradient(135deg, var(--muya-color-hero-from, #0f172a), var(--muya-color-hero-to, #334155));
    box-shadow: 0 20px 50px rgba(15, 23, 42, 0.12);
    color: #fff;
}

.muya-register-page .muya-auth-heading-row > [class*="col-"] {
    float: none;
    padding-left: 0;
    padding-right: 0;
}

.muya-register-page .muya-auth-heading-row .col-md-8 {
    flex: 1 1 420px;
    width: auto;
}

.muya-register-page .muya-auth-heading-row .register-heading {
    color: #fff;
    font-size: clamp(30px, 3.4vw, 44px);
    font-weight: 800;
    margin: 6px 0 12px;
}

.muya-register-page .muya-auth-heading-row .muya-auth-eyebrow {
    color: rgba(255, 255, 255, 0.72);
}

.muya-register-page .muya-auth-intro {
    color: rgba(255, 255, 255, 0.85);
    font-size: 15px;
}

.muya-register-page .muya-register-benefits {
    color: rgba(255, 255, 255, 0.92);
}

.muya-register-page .muya-register-benefits .fa {
    color: #86efac;
}

.muya-register-page .muya-auth-language {
    flex: 0 0 auto;
    margin: 0 0 0 auto;
    width: 260px;
    max-width: 100%;
}

.muya-register-page .panel-footer .btn-primary {
    min-width: 180px;
    padding: 11px 26px;
    font-size: 15px;
    font-weight: 600;
}

.muya-register-page .muya-auth-card > .panel-body {
    background:
        radial-gradient(circle at top right, rgba(37, 99, 235, 0.06), transparent 34%),
        #fff;
}

.muya-register-page .register-contact-info-heading,
.muya-register-page .register-company-info-heading {
    display: flex;
    align-items: center;
    min-height: 42px;
    margin: 0 0 16px;
    padding: 10px 14px;
    border-radius: 12px;
    color: #0f172a;
    background: #f1f5f9;
    border: 1px solid #e2e8f0;
}

.muya-register-account-type-group {
    padding: 16px 18px;
    border: 1px solid #dbeafe;
    border-radius: 14px;
    background: #eff6ff;
}

.muya-register-account-type-group .radio {
    display: inline-flex;
    margin: 10px 22px 0 0;
}

.muya-auth-existing-account {
    float: left;
    padding: 9px 0;
    color: #64748b;
}

.muya-auth-existing-account a {
    font-weight: 700;
}

.muya-auth-language {
    max-width: 320px;
    margin-left: auto;
}

.muya-password-page {
    max-width: 1180px;
    min-height: 54vh;
}

.muya-password-page::after {
    content: '';
    display: table;
    clear: both;
}

.muya-password-page .panel_s {
    width: 100%;
}

@media (max-width: 991px) {
    .muya-login-layout {
        display: block;
    }

    .muya-auth-welcome {
        margin-bottom: 24px;
    }

    .muya-login-portal {
        max-width: 620px;
    }

    .muya-login-page .muya-auth-welcome {
        min-height: auto;
    }

    .muya-login-page .muya-auth-welcome h1 {
        max-width: 12em;
        font-size: clamp(30px, 8vw, 44px);
    }
}

@media (max-width: 767px) {
    .muya-auth-page {
        margin-top: 12px;
    }

    .muya-auth-welcome {
        padding: 30px 24px;
    }

    .muya-login-page .muya-auth-welcome {
        padding: 28px 24px !important;
        border-radius: 20px;
    }

    .muya-auth-welcome h1 {
        font-size: 34px;
    }

    .muya-login-page .muya-auth-welcome h1 {
        font-size: clamp(29px, 9vw, 38px);
        line-height: 1.12;
    }

    .muya-auth-language {
        max-width: none;
    }

    .muya-auth-existing-account {
        float: none;
        display: block;
        padding: 0 0 12px;
        text-align: left;
    }

    .muya-password-page > [class*="col-"] {
        float: none;
        width: 100%;
        margin-left: 0;
    }

    body.customers .preview-sticky-container .tw-flex,
    body.customers .preview-sticky-container [class*="tw-space-x-"] {
        flex-wrap: wrap;
        row-gap: 8px;
    }
}

.muya-login-portal .panel_s {
    border-radius: 18px;
    overflow: hidden;
}

.muya-login-portal .login-heading {
    font-weight: 800;
    letter-spacing: -0.02em;
    color: #0f172a;
}

.muya-login-portal .login-form .btn-primary {
    width: 100%;
    padding: 12px;
    font-size: 15px;
}

.muya-login-portal .checkbox {
    position: relative;
    min-height: 22px;
}

.muya-login-portal .checkbox input[type="checkbox"] {
    position: absolute;
    opacity: 0;
    width: 18px;
    height: 18px;
    margin: 0;
    cursor: pointer;
    z-index: 2;
}

.muya-login-portal .checkbox label {
    position: relative;
    padding-left: 28px;
    cursor: pointer;
    font-weight: 500;
    color: var(--muya-color-body, #334155);
    user-select: none;
}

.muya-login-portal .checkbox label::before {
    content: '';
    position: absolute;
    left: 0;
    top: 2px;
    width: 18px;
    height: 18px;
    border: 2px solid var(--muya-color-border-strong, #cbd5e1);
    border-radius: 4px;
    background: var(--muya-color-surface, #fff);
    transition: border-color 0.2s ease, background 0.2s ease;
}

.muya-login-portal .checkbox input[type="checkbox"]:checked + label::before {
    background: var(--muya-color-primary, #2563eb);
    border-color: var(--muya-color-primary, #2563eb);
}

.muya-login-portal .checkbox input[type="checkbox"]:checked + label::after {
    content: '';
    position: absolute;
    left: 6px;
    top: 5px;
    width: 5px;
    height: 9px;
    border: solid #fff;
    border-width: 0 2px 2px 0;
    transform: rotate(45deg);
}

.muya-login-portal .checkbox input[type="checkbox"]:focus-visible + label::before {
    box-shadow: var(--muya-focus-ring, 0 0 0 3px rgba(37, 99, 235, 0.15));
}

.muya-cta-card {
    border-radius: 16px;
    padding: 28px 24px;
    margin-top: 20px;
    box-shadow: 0 12px 28px rgba(26, 58, 107, 0.08);
}

/* Auth login final responsive guard. Loaded late so portal/bootstrap row rules
   cannot squeeze the hero into a narrow half-column on tablet/mobile widths. */
@media (max-width: 991px) {
    body.customers .muya-login-page .muya-login-layout {
        display: block !important;
        margin-left: 0 !important;
        margin-right: 0 !important;
    }

    body.customers .muya-login-page .muya-login-layout > .muya-login-pane {
        display: block !important;
        float: none !important;
        width: 100% !important;
        max-width: 100% !important;
        flex: 0 0 100% !important;
        padding-left: 0 !important;
        padding-right: 0 !important;
    }

    body.customers .muya-login-page .muya-login-pane-hero {
        margin-bottom: 24px;
    }

    body.customers .muya-login-page .muya-auth-welcome {
        min-height: 0;
        padding: clamp(28px, 6vw, 42px) !important;
    }

    body.customers .muya-login-page .muya-auth-welcome h1 {
        max-width: 760px;
        font-size: clamp(30px, 7vw, 44px);
        overflow-wrap: normal;
        word-break: normal;
    }

    body.customers .muya-login-page .muya-login-portal {
        max-width: 620px;
    }
}

@media (max-width: 480px) {
    body.customers .muya-login-page .muya-auth-welcome {
        padding: 24px 20px !important;
    }

    body.customers .muya-login-page .muya-auth-welcome h1 {
        font-size: clamp(28px, 9vw, 36px);
        line-height: 1.14;
    }
}

/* Google's reCAPTCHA widget iframe is a fixed 304px wide - it doesn't reflow
   itself. .muya-auth-card has overflow:hidden for its rounded corners, so on
   narrow viewports the card's padded content width drops below 304px and the
   widget gets silently clipped (Google logo/branding/Privacy-Terms links cut
   off, sometimes just the checkbox visible). Scale the whole widget down to
   fit instead of touching the card's overflow - the negative margin-bottom
   removes the now-empty space transform:scale() leaves reserved below it.
   Tiers measured directly against .panel-body's actual padded content width
   at each breakpoint (not the card's outer width, which is 44px wider) -
   content width drops steeply here because .muya-login-layout collapses from
   a two-column to a single-column stack around 991px, so a single scale
   factor badly undershoots at the low end of any wide range. */
.muya-auth-card .g-recaptcha {
    transform-origin: 0 0;
}

@media (max-width: 480px) {
    .muya-auth-card .g-recaptcha {
        transform: scale(0.8);
        margin-bottom: -16px;
    }
}

@media (max-width: 420px) {
    .muya-auth-card .g-recaptcha {
        transform: scale(0.66);
        margin-bottom: -27px;
    }
}

@media (max-width: 375px) {
    .muya-auth-card .g-recaptcha {
        transform: scale(0.58);
        margin-bottom: -33px;
    }
}

@media (max-width: 340px) {
    .muya-auth-card .g-recaptcha {
        transform: scale(0.42);
        margin-bottom: -45px;
    }
}

@media (max-width: 300px) {
    .muya-auth-card .g-recaptcha {
        transform: scale(0.38);
        margin-bottom: -48px;
    }
}

.muya-cta-card .btn {
    margin-top: 8px;
}

.muya-iframe-wrap {
    border: 1px solid #e2e8f0;
    border-radius: 14px;
    overflow: hidden;
    background: #f8fafc;
}

.muya-iframe-loading {
    padding: 14px;
    text-align: center;
    color: #64748b;
    margin: 0;
}

.muya-rinex-search-grid .form-group {
    margin-bottom: 12px;
}

.muya-rinex-post-actions {
    margin-top: 16px;
    padding-top: 16px;
    border-top: 1px solid #e2e8f0;
}

.muya-rinex-post-row-focus > td {
    background-color: #eff6ff !important;
    box-shadow: inset 0 0 0 1px #93c5fd;
}

.muya-service-body .nav-tabs:not(.muya-service-tabs) {
    margin-bottom: 0;
}

.muya-map-detail-tabs {
    border-bottom: 2px solid #e2e8f0;
    margin-bottom: 0;
}

.muya-map-detail-tabs > li > a {
    font-weight: 600;
    color: #475569;
    border-radius: 10px 10px 0 0;
}

.muya-map-detail-tabs > li.active > a,
.muya-map-detail-tabs > li > a:hover {
    color: #1d4ed8;
    background: #eff6ff;
}

.muya-cors-client-shell .modal-content {
    border-radius: 16px;
    overflow: hidden;
    border: 1px solid #e2e8f0;
}

.muya-cors-client-shell .modal-header {
    background: #f8fafc;
    border-bottom: 1px solid #e2e8f0;
}

.muya-cors-client-shell .modal-title {
    font-weight: 700;
    color: #0f172a;
}

.muya-cors-client-shell .modal-footer {
    background: #f8fafc;
    border-top: 1px solid #e2e8f0;
}

.muya-tracker-filter-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    align-items: center;
}

@media (max-width: 767px) {
    .muya-cors-client-shell .btn-lg {
        width: 100%;
    }

    .muya-tracker-filter-actions .btn {
        flex: 1 1 auto;
    }
}

/* RTK subscription alert + map CTA */
.muya-rtk-subscription-note {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
}

.muya-rtk-subscription-note-text {
    flex: 1 1 240px;
    line-height: 1.55;
}

.muya-rtk-subscription-note .btn {
    flex-shrink: 0;
    white-space: nowrap;
}

/* Frontend navbar: status dot instead of truncated pill */
.muya-account-status-dot {
    display: inline-block;
    width: 10px;
    height: 10px;
    padding: 0;
    border-radius: 50%;
    margin-left: 4px;
    vertical-align: middle;
    border: 2px solid rgba(255, 255, 255, 0.85);
    box-shadow: 0 0 0 1px rgba(15, 23, 42, 0.15);
}

.muya-front-account-toggle {
    display: inline-flex !important;
    align-items: center;
    gap: 6px;
    max-width: min(100%, 280px);
}

.muya-front-account-name {
    max-width: 160px;
}

/* Homepage account toggle pill */
.muya-front-account-toggle {
    display: inline-flex !important;
    align-items: center;
    gap: 10px;
    max-width: min(100%, 300px);
    padding: 6px 12px 6px 6px !important;
    margin-left: 8px;
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.1);
    border: 1px solid rgba(255, 255, 255, 0.22);
    backdrop-filter: blur(8px);
    transition: background .2s ease, border-color .2s ease, box-shadow .2s ease;
    text-decoration: none !important;
    color: #fff !important;
}

.muya-front-account-toggle:hover,
.muya-front-account.muya-front-account--open > .muya-front-account-toggle {
    background: rgba(255, 255, 255, 0.16);
    border-color: rgba(255, 255, 255, 0.35);
    color: #fff !important;
}

.muya-front-account-avatar-wrap {
    position: relative;
    flex-shrink: 0;
}

.muya-front-account-avatar-wrap .client-profile-image-small {
    width: 34px;
    height: 34px;
    border: 2px solid rgba(255, 255, 255, 0.45);
}

.muya-front-account-status {
    position: absolute;
    right: -1px;
    bottom: -1px;
    width: 11px;
    height: 11px;
    padding: 0;
    border-radius: 50%;
    border: 2px solid #37517e;
    margin: 0;
}

.muya-front-account-text {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    min-width: 0;
    line-height: 1.2;
}

.muya-front-account-greeting {
    font-size: 10px;
    font-weight: 600;
    letter-spacing: 0.02em;
    text-transform: uppercase;
    opacity: 0.82;
    max-width: 140px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.muya-front-account-chevron {
    font-size: 14px;
    opacity: 0.85;
    transition: transform .2s ease;
    flex-shrink: 0;
}

.muya-front-account.muya-front-account--open .muya-front-account-chevron {
    transform: rotate(180deg);
}

.navbar .muya-front-account .dropdown-menu.dropdown-active,
.navbar .muya-front-account:hover > .dropdown-menu {
    opacity: 1 !important;
    visibility: visible !important;
    top: calc(100% + 10px) !important;
    display: block !important;
}

/* Client-portal Bootstrap 3 mobile nav (navigation.php): .navbar-collapse.in
   gets Bootstrap's default "overflow-y: auto" below 768px, which clips the
   absolutely-positioned account .dropdown-menu (li.muya-client-account) once
   it extends past the collapse panel's bottom edge — so long dropdowns (head
   info + stats + icon grid + language + logout) get visibly cut off instead
   of overlaying on top of the page. Same overflow-clips-a-nested-dropdown
   bug class as the panel_s/select2 and rtk-profile fixes above; override
   just this container so the dropdown can escape it, without touching the
   unrelated .collapsing transition class that drives the accordion
   expand/collapse animation.

   Bootstrap 3 also caps this same panel at "max-height: 340px" below 768px
   (its built-in mobile-menu default), which is what forced the nav LINK LIST
   itself into an internal scrollbar whenever it had more items than fit in
   340px, rather than the panel just growing to show every item. Removing the
   cap lets it expand to its natural (full) height instead. */
@media (max-width: 767px) {
    .navbar.navbar-default .navbar-collapse.in {
        overflow: visible;
        max-height: none;
    }
}

/* Public homepage mobile menu (frontend.php): #header.fixed-top has its own
   backdrop-filter (style.css) for the glassy translucent bar. backdrop-filter
   (like transform/filter) creates a NEW CONTAINING BLOCK for any
   position:fixed descendant - so #navbar.navbar-mobile (the full-viewport
   mobile menu overlay, toggled on via JS adding the .navbar-mobile class)
   ends up positioned/sized relative to the ~72px-tall header bar instead of
   the viewport, collapsing the whole menu (and its ul, which then computes an
   ~20px height) into a barely-visible sliver instead of a full-screen
   overlay. Disabling the header's backdrop-filter only while the mobile menu
   is open removes the rogue containing block; the header itself is covered
   by the menu overlay at that point anyway; so nothing is visually lost. */
@media (max-width: 991px) {
    #header.fixed-top:has(.navbar-mobile) {
        backdrop-filter: none;
        -webkit-backdrop-filter: none;
    }
}

/* Public homepage mobile menu theme: style.css's default ".navbar-mobile ul"
   is a white card (base theme's own light popup style), but the item text
   color actually being applied (".navbar a" -> var(--muya-color-nav-text))
   is a light slate meant for a DARK background, so on the white card it read
   as low-contrast/washed-out. Rather than patch the mismatched text color,
   give the mobile overlay the same dark navy "glass" theme as the desktop
   header/nav bar it's standing in for, so it reads as one consistent brand
   surface instead of a jarring plain-white popup, and the existing light
   link color becomes fully legible. */
@media (max-width: 991px) {
    .navbar.navbar-mobile ul {
        background-color: #0b203c;
        border: 1px solid rgba(255, 255, 255, 0.08);
    }

    .navbar.navbar-mobile ul li {
        border-bottom: 1px solid rgba(255, 255, 255, 0.08);
    }

    .navbar.navbar-mobile ul li:last-child {
        border-bottom: none;
    }

    .navbar.navbar-mobile ul li a {
        color: #e2e8f0;
    }

    .navbar.navbar-mobile ul li a:hover,
    .navbar.navbar-mobile ul li a:focus {
        color: #ffffff;
        background-color: rgba(37, 99, 235, 0.15);
    }
}

.navbar-mobile .muya-front-account .dropdown-menu {
    position: static !important;
    opacity: 1 !important;
    visibility: visible !important;
    box-shadow: none !important;
    margin: 8px 0 0 !important;
    display: none;
    width: 100%;
    max-width: 100%;
}

.navbar-mobile .muya-front-account .dropdown-menu.dropdown-active {
    display: block !important;
}

.navbar-mobile .muya-front-account-toggle {
    max-width: 100%;
    width: 100%;
    margin-left: 0;
}

/* Collapse panels — expanded by default (Bootstrap 3 .in / BS5 .show) */
.muya-service-details-panel > .collapse.in,
.muya-service-details-panel > .collapse.show {
    display: block;
    height: auto;
}

.muya-service-details-body.collapse {
    transition: height 0.25s ease;
}

.muya-service-details-body.collapsing {
    transition: height 0.25s ease;
}

/* Bootstrap-select inside client shell */
.muya-cors-client-shell .bootstrap-select.open,
.muya-cors-client-shell .bootstrap-select.show,
.muya-cors-client-shell .bootstrap-select.dropup.open,
.muya-cors-client-shell .bootstrap-select.dropup.show {
    position: relative;
    z-index: 1075;
}

.muya-cors-client-shell .bootstrap-select .dropdown-menu,
.muya-cors-client-shell .bootstrap-select .dropdown-menu.open,
.muya-cors-client-shell .bootstrap-select .dropdown-menu.show {
    z-index: 1076 !important;
    background-color: #fff !important;
    background-clip: padding-box;
    opacity: 1 !important;
    border-radius: 12px;
    border: 1px solid #e2e8f0 !important;
    box-shadow: 0 16px 32px rgba(15, 23, 42, 0.12);
    overflow: hidden;
}

.muya-cors-client-shell .bootstrap-select .dropdown-menu.inner {
    background-color: #fff !important;
    opacity: 1 !important;
    /* Was min(360px, 100vh - 120px) — that only ever bites below a 480px
       viewport, so on any normal desktop window the menu rendered at a
       fixed 360px regardless of how much room was actually left below
       the trigger, pushing long lists (12 months, Flex 2000) past the
       visible window. 270px keeps a short, obviously-scrollable list on
       every viewport while still leaving headroom below the trigger. */
    max-height: min(270px, calc(100vh - 160px)) !important;
    overflow-y: auto !important;
    overscroll-behavior: contain;
}

.muya-cors-client-shell .bootstrap-select .dropdown-menu li a {
    padding: 8px 14px;
    background-color: #fff;
    color: #0f172a;
}

.muya-cors-client-shell .bootstrap-select .dropdown-menu li a:hover,
.muya-cors-client-shell .bootstrap-select .dropdown-menu li a:focus {
    background-color: #f8fafc;
    color: #0f172a;
}

.muya-cors-client-shell .bootstrap-select .dropdown-menu li.selected a {
    background: #eff6ff;
    color: #1d4ed8;
}

.muya-rinex-search-grid .form-group,
.muya-rinex-search-grid .bootstrap-select,
.muya-svc-workspace .tab-content,
.muya-svc-workspace #search_file_tab,
.muya-tracker-section,
.muya-tracker-card,
.muya-tracker-filter-grid,
.muya-tracker-filter-grid .form-group,
.muya-tracker-filter-grid .bootstrap-select,
/* The rule above targets .muya-svc-workspace, but the actual services page
   (views/client/services.php) wraps this content in .muya-cors-client-shell
   .muya-svc-main.panel_s instead - a class that never existed here, so this
   exception never matched and the year/month/day/cors-station dropdowns on
   the RINEX search tab were clipped by .panel_s's own `overflow: hidden`
   (set a few rules up, for rounded-corner clipping). Target the real
   ancestor directly. */
.muya-cors-client-shell .muya-svc-main.panel_s,
.muya-cors-client-shell .muya-svc-main.panel_s .panel-body,
.muya-cors-client-shell .muya-svc-main.panel_s .muya-service-panel-content,
.muya-cors-client-shell .muya-svc-main.panel_s .tab-content,
.muya-cors-client-shell .muya-svc-main.panel_s .tab-pane {
    overflow: visible;
}

.bootstrap-select.bs-container .dropdown-menu,
.bootstrap-select.bs-container .dropdown-menu.open,
.bootstrap-select.bs-container .dropdown-menu.show {
    z-index: 10060 !important;
    background-color: #fff !important;
    opacity: 1 !important;
    border: 1px solid #e2e8f0 !important;
    border-radius: 12px;
    box-shadow: 0 16px 32px rgba(15, 23, 42, 0.12);
}

.bootstrap-select.bs-container .dropdown-menu.inner {
    background-color: #fff !important;
    opacity: 1 !important;
    max-height: min(360px, calc(100vh - 120px)) !important;
    overflow-y: auto !important;
    overscroll-behavior: contain;
}

.bootstrap-select.bs-container .dropdown-menu li a {
    background-color: #fff;
    color: #0f172a;
}

.bootstrap-select.bs-container .dropdown-menu li a:hover,
.bootstrap-select.bs-container .dropdown-menu li a:focus {
    background-color: #f8fafc;
}

.bootstrap-select.bs-container .dropdown-menu li.selected a {
    background: #eff6ff;
    color: #1d4ed8;
}

.bootstrap-select.bs-container {
    position: absolute !important;
    z-index: 10060 !important;
    display: none;
    padding: 0;
}

.bootstrap-select.bs-container.open,
.bootstrap-select.bs-container.show {
    display: block !important;
}

.bootstrap-select.bs-container > .dropdown-menu {
    position: static !important;
    top: auto !important;
    left: auto !important;
    right: auto !important;
    float: none !important;
    transform: none !important;
    display: block !important;
    visibility: visible !important;
    opacity: 1 !important;
    margin: 0 !important;
}

.bootstrap-select.muya-selectpicker-body-host:not(.bs-container) > .dropdown-menu {
    display: none !important;
}

.bootstrap-select.bs-container.open > .dropdown-menu,
.bootstrap-select.bs-container.show > .dropdown-menu,
.bootstrap-select.open:not(.bs-container) > .dropdown-menu,
.bootstrap-select.show:not(.bs-container) > .dropdown-menu {
    display: block !important;
    visibility: visible !important;
    opacity: 1 !important;
    pointer-events: auto !important;
}

/* Service tab active state — rounded top to match panel */
.muya-service-tabs > li.active > a {
    border-radius: 12px 12px 0 0;
}

/* Legal pages — long URLs */
.muya-legal-content a {
    word-break: break-word;
    overflow-wrap: anywhere;
}

/* Tracker loading hidden when map has points */
.muya-tracker-map-wrap.has-data .muya-tracker-loading {
    display: none;
}

/* Tier pricing accordions */
.muya-rtk-tier-panel .panel-heading {
    transition: background-color 0.2s ease;
}

.muya-rtk-tier-panel .panel-collapse.collapse.in {
    animation: muyaFadeIn 0.25s ease;
}

@keyframes muyaFadeIn {
    from {
        opacity: 0;
        transform: translateY(-4px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

/* FAQ / frontend accordions */
#faq .accordion-button,
.frontend-faq .accordion-button {
    transition: background-color 0.2s ease, color 0.2s ease;
}

/* ============================================================
   Services hub redesign — hero, workflow, workspace, tabs
   ============================================================ */
.muya-services-hub {
    width: 100%;
    max-width: 100%;
    margin: 0;
}

.muya-svc-hero {
    background: linear-gradient(135deg, #0f172a 0%, #1e293b 52%, #2563eb 100%);
    border-radius: 20px;
    color: #fff !important;
    padding: 28px 30px;
    margin-bottom: 22px;
    box-shadow: 0 18px 38px rgba(15, 23, 42, 0.16);
    overflow: hidden;
}

.muya-svc-hero-grid {
    display: grid;
    gap: 24px;
    align-items: center;
}

@media (min-width: 768px) {
    .muya-svc-hero-grid {
        grid-template-columns: minmax(0, 1.15fr) minmax(0, 0.85fr);
    }
}

.muya-svc-hero-badge {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    padding: 6px 12px;
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.14);
    font-size: 11px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    margin-bottom: 12px;
    color: #fff !important;
}

.muya-svc-hero-title {
    margin: 0 0 10px;
    font-size: clamp(1.5rem, 2.5vw, 2rem);
    font-weight: 800;
    letter-spacing: -0.03em;
    color: #fff !important;
}

.muya-svc-hero-text {
    margin: 0 0 18px;
    font-size: 15px;
    line-height: 1.55;
    color: rgba(255, 255, 255, 0.88) !important;
    max-width: 56ch;
}

.muya-svc-hero a:not(.btn) {
    color: #93c5fd !important;
    text-decoration: underline !important;
    text-underline-offset: 3px;
}

.muya-svc-hero a:not(.btn):hover,
.muya-svc-hero a:not(.btn):focus {
    color: #bfdbfe !important;
    text-decoration: underline !important;
}

.muya-svc-workflow {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    list-style: none;
    margin: 0;
    padding: 0;
}

.muya-svc-workflow li {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 8px 12px;
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.12);
    font-size: 12px;
    font-weight: 600;
    color: #fff;
}

.muya-svc-workflow-num {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 20px;
    height: 20px;
    border-radius: 50%;
    background: rgba(255, 255, 255, 0.22);
    font-size: 11px;
    font-weight: 800;
}

.muya-svc-workflow li i.fa {
    opacity: 0.9;
}

.muya-svc-hero-media {
    border-radius: 14px;
    overflow: hidden;
    box-shadow: 0 12px 28px rgba(0, 0, 0, 0.22);
    aspect-ratio: 16 / 10;
    background: rgba(255, 255, 255, 0.06);
}

.muya-svc-hero-media img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.muya-svc-main {
    margin-bottom: 24px;
}

.muya-svc-panel-content {
    padding-top: 12px;
}

.muya-svc-page {
    min-width: 0;
}

.muya-svc-quickbar {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-bottom: 16px;
    padding-bottom: 14px;
    border-bottom: 1px solid #e2e8f0;
}

.muya-svc-quickbar-link {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 7px 14px;
    border-radius: 999px;
    border: 1px solid #dbeafe;
    background: #f8fafc;
    color: #1d4ed8;
    font-size: 12px;
    font-weight: 600;
    text-decoration: none;
    transition: background 0.18s ease, border-color 0.18s ease, color 0.18s ease;
}

.muya-svc-quickbar-link:hover,
.muya-svc-quickbar-link:focus {
    background: #eff6ff;
    border-color: #93c5fd;
    color: #1e40af;
    text-decoration: none;
}

.muya-svc-workspace {
    min-width: 0;
}

.muya-svc-guest-gate {
    display: grid;
    gap: 20px;
    margin-top: 8px;
}

@media (min-width: 768px) {
    .muya-svc-guest-gate {
        grid-template-columns: minmax(0, 1fr) minmax(0, 0.95fr);
        align-items: start;
    }
}

.muya-svc-guest-gate-intro {
    padding: 20px 22px;
    border-radius: 14px;
    border: 1px solid #e2e8f0;
    background: linear-gradient(180deg, #f8fafc 0%, #f1f5f9 100%);
}

.muya-svc-guest-gate-intro > .fa-lock {
    font-size: 22px;
    color: #2563eb;
    margin-bottom: 10px;
}

.muya-svc-guest-gate-intro h4 {
    margin: 0 0 8px;
    font-size: 17px;
    font-weight: 700;
    color: #0f172a;
}

.muya-svc-guest-gate-intro p {
    margin: 0 0 14px;
    font-size: 14px;
    line-height: 1.55;
    color: #475569;
}

.muya-svc-guest-benefits {
    list-style: none;
    margin: 0;
    padding: 0;
}

.muya-svc-guest-benefits li {
    display: flex;
    align-items: flex-start;
    gap: 8px;
    margin-bottom: 8px;
    font-size: 13px;
    color: #334155;
    line-height: 1.45;
}

.muya-svc-guest-benefits li i {
    color: #16a34a;
    margin-top: 2px;
}

.muya-svc-guest-login {
    border-radius: 14px;
    overflow: hidden;
}

.muya-svc-guest-login-title {
    margin: 0 0 14px;
    font-size: 15px;
    font-weight: 700;
    color: #0f172a;
}

/* Pill nav — scrollable on mobile */
.muya-svc-tabs-wrap {
    overflow-x: auto;
    overflow-y: hidden;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: thin;
    margin: 0 0 4px;
    padding-bottom: 2px;
    border-bottom: 1px solid #e2e8f0;
}

.muya-svc-tabs {
    display: flex;
    flex-wrap: nowrap;
    gap: 6px;
    border-bottom: none !important;
    min-width: min-content;
    padding-bottom: 4px;
}

.muya-svc-tabs > li {
    float: none;
    margin-bottom: 0;
    flex: 0 0 auto;
}

.muya-svc-tabs > li > a {
    display: inline-flex;
    align-items: center;
    border: 1px solid #e2e8f0 !important;
    border-radius: 999px !important;
    color: #475569;
    font-weight: 600;
    font-size: 13px;
    padding: 9px 16px;
    margin-right: 0;
    white-space: nowrap;
    background: #fff;
    transition: background 0.18s ease, border-color 0.18s ease, color 0.18s ease;
}

.muya-svc-tabs > li > a i {
    margin-right: 6px;
    opacity: 0.85;
}

.muya-svc-tabs > li.active > a,
.muya-svc-tabs > li.active > a:focus,
.muya-svc-tabs > li.active > a:hover,
.muya-svc-tabs > li > a:hover,
.muya-svc-tabs > li > a:focus {
    color: #fff !important;
    background: #2563eb !important;
    border-color: #2563eb !important;
}

/* Pill tabs: hover/active styling lives on the anchor only (no square li background) */
.muya-svc-tabs.nav-tabs > li,
.muya-svc-tabs.nav-tabs > li:hover,
.muya-svc-tabs.nav-tabs > li:focus,
.muya-svc-tabs.nav-tabs > li.active {
    background: transparent !important;
    border: none !important;
    border-radius: 0 !important;
}

.muya-svc-tabs.nav-tabs > li > a {
    border-radius: 999px !important;
}

/* Inner tabs inside workspace */
.muya-svc-workspace .muya-service-inner-tabs {
    display: flex;
    flex-wrap: wrap;
    gap: 4px;
    border-bottom: 1px solid #e2e8f0;
    margin: 0 0 16px;
    padding-bottom: 0;
}

.muya-svc-workspace .muya-service-inner-tabs > li {
    float: none;
    margin-bottom: 0;
}

.muya-svc-workspace .muya-service-inner-tabs > li > a {
    border: 1px solid transparent;
    border-radius: 8px 8px 0 0;
    color: #64748b;
    font-weight: 600;
    font-size: 13px;
    padding: 9px 14px;
    margin-right: 0;
}

.muya-svc-workspace .muya-service-inner-tabs > li.active > a,
.muya-svc-workspace .muya-service-inner-tabs > li.active > a:focus,
.muya-svc-workspace .muya-service-inner-tabs > li.active > a:hover {
    color: #1d4ed8;
    background: #eff6ff;
    border-color: #dbeafe #dbeafe transparent;
}

@media (max-width: 767px) {
    .muya-svc-hero {
        padding: 20px 18px;
    }

    .muya-svc-hero-media {
        order: -1;
        max-height: 180px;
        aspect-ratio: auto;
    }

    .muya-svc-workflow li {
        width: 100%;
    }
}

/* —— Client profile page —— */
.muya-profile-page.muya-cors-client-shell {
    width: 100%;
    max-width: 100%;
    margin-left: auto;
    margin-right: auto;
    padding-top: 8px;
}

/* Theme index.php wraps profile markup in an extra .row without a column — neutralize it */
.muya-profile-page > .row {
    display: contents;
}

.muya-profile-page .row:has(> .section-profile) {
    display: contents;
}

.muya-profile-page {
    display: grid;
    grid-template-columns: 1fr;
    gap: 22px;
    align-items: start;
}

.muya-profile-page > .muya-client-hero,
.muya-profile-page > .muya-client-summary-grid,
.muya-profile-page > .customer-top-submenu,
.muya-profile-page > .clearfix {
    grid-column: 1 / -1;
}

.muya-profile-page .section-profile {
    display: contents;
    width: 100%;
    margin: 0;
    clear: both;
}

.muya-profile-page .section-profile::before,
.muya-profile-page .section-profile::after {
    content: none;
    display: none;
}

.muya-profile-page .section-profile > .col-md-8,
.muya-profile-page .section-profile > .col-md-4 {
    float: none !important;
    width: 100% !important;
    max-width: none;
    padding-left: 0;
    padding-right: 0;
    min-width: 0;
}

.muya-profile-page .muya-profile-verification-bottom {
    grid-column: 1 / -1;
    margin-top: 0;
}

/*
 * Account-shortcuts layout, scoped to the panel wrapper itself.
 * The page renders this panel OUTSIDE `.muya-profile-page`, so the
 * `.muya-profile-page .muya-profile-shortcut*` rules below never matched and the
 * links collapsed to inline run-on text. These wrapper-scoped copies guarantee
 * the stacked layout regardless of ancestor.
 */
.muya-profile-shortcuts .muya-profile-shortcuts-list {
    display: flex;
    flex-direction: column;
}

.muya-profile-shortcuts .muya-profile-shortcut {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 14px 16px;
    color: var(--muya-color-text, #334155);
    text-decoration: none;
    border-bottom: 1px solid #eef2f7;
    transition: background 0.15s ease, color 0.15s ease;
}

.muya-profile-shortcuts .muya-profile-shortcut:last-child {
    border-bottom: 0;
}

.muya-profile-shortcuts .muya-profile-shortcut:hover,
.muya-profile-shortcuts .muya-profile-shortcut:focus-visible {
    background: #f8fafc;
    color: var(--muya-color-primary, #2563eb);
    text-decoration: none;
}

.muya-profile-shortcuts .muya-profile-shortcut-icon {
    flex: 0 0 36px;
    width: 36px;
    height: 36px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 10px;
    background: rgba(37, 99, 235, 0.08);
    color: var(--muya-color-primary, #2563eb);
    font-size: 15px;
}

.muya-profile-shortcuts .muya-profile-shortcut-copy {
    flex: 1 1 auto;
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 2px;
}

.muya-profile-shortcuts .muya-profile-shortcut-label {
    font-weight: 600;
    line-height: 1.3;
}

.muya-profile-shortcuts .muya-profile-shortcut-desc {
    font-size: 12px;
    line-height: 1.35;
    color: #64748b;
}

.muya-profile-shortcuts .muya-profile-shortcut-badge {
    flex: 0 0 auto;
    min-width: 22px;
    height: 22px;
    padding: 0 6px;
    border-radius: 999px;
    background: #ef4444;
    color: #fff;
    font-size: 11px;
    font-weight: 700;
    line-height: 22px;
    text-align: center;
}

.muya-profile-shortcuts .muya-profile-shortcut-arrow {
    flex: 0 0 auto;
    margin-left: auto;
    color: #94a3b8;
    font-size: 16px;
}

@media (min-width: 992px) {
    .muya-profile-page {
        grid-template-columns: minmax(0, 1.65fr) minmax(280px, 0.85fr);
    }

    .muya-profile-page .section-profile > .col-md-8 {
        grid-column: 1;
        grid-row: 3;
    }

    .muya-profile-page .section-profile > .col-md-4 {
        grid-column: 2;
        grid-row: 3 / 5;
        align-self: start;
    }

    .muya-profile-page .muya-profile-verification-bottom {
        grid-column: 1 / -1;
    }
}

@media (max-width: 991px) {
    .muya-profile-page .section-profile > .col-md-8,
    .muya-profile-page .section-profile > .col-md-4,
    .muya-profile-page .muya-profile-verification-bottom {
        grid-column: 1 / -1;
        grid-row: auto;
    }
}

.muya-profile-hero-grid {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 20px;
    align-items: center;
}

.muya-profile-hero-aside {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 10px;
    text-align: center;
}

.muya-profile-hero-avatar {
    width: 88px;
    height: 88px;
    border-radius: 50%;
    object-fit: cover;
    border: 3px solid rgba(255, 255, 255, 0.85);
    box-shadow: 0 8px 24px rgba(15, 23, 42, 0.2);
}

.muya-profile-hero-link {
    border-radius: 999px;
}

.muya-profile-hero .muya-access-pill,
.muya-profile-hero-aside .muya-access-pill {
    display: inline-block;
    max-width: 100%;
    font-weight: 700;
    letter-spacing: 0.01em;
    box-shadow: 0 4px 12px rgba(15, 23, 42, 0.14);
}

.muya-profile-hero .muya-access-pill.label-info,
.muya-profile-hero-aside .muya-access-pill.label-info {
    background: #fff !important;
    color: #1d4ed8 !important;
}

.muya-profile-hero .muya-access-pill.label-warning,
.muya-profile-hero-aside .muya-access-pill.label-warning {
    background: #fff !important;
    color: #b45309 !important;
}

.muya-profile-hero .muya-access-pill.label-success,
.muya-profile-hero-aside .muya-access-pill.label-success {
    background: #fff !important;
    color: #15803d !important;
}

.muya-profile-hero-aside .muya-profile-hero-link {
    min-height: 36px;
    padding: 8px 16px;
    font-weight: 600;
    line-height: 1.35;
    white-space: normal;
    max-width: 100%;
    text-align: center;
}

.muya-profile-page .muya-profile-section-title,
.muya-profile-page .section-profile h4.section-text {
    display: none;
}

.muya-profile-page .section-profile .panel_s {
    border-radius: 18px;
    border: 1px solid #e2e8f0;
    box-shadow: 0 12px 28px rgba(15, 23, 42, 0.05);
    overflow: hidden;
}

.muya-profile-page .contact-profile-change-password-section {
    scroll-margin-top: 110px;
    display: flex;
    flex-direction: column;
    gap: 22px;
}

.muya-profile-page .contact-profile-change-password-section > .panel_s {
    margin-bottom: 0;
}

.muya-profile-page .section-profile .checkbox,
.muya-profile-page .section-profile .checkbox.checkbox-info,
.muya-profile-page .section-profile .checkbox.checkbox-primary,
.muya-profile-page .section-profile .checkbox.checkbox-success,
.muya-profile-page .section-profile .checkbox.checkbox-danger {
    position: relative;
    margin-top: 0;
    margin-bottom: 12px;
    padding-left: 0;
}

.muya-profile-page .section-profile .checkbox label,
.muya-profile-page .section-profile .checkbox.checkbox-info label {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    min-height: 22px;
    padding-left: 30px;
    margin: 0;
    font-weight: 600;
    color: var(--muya-color-text, #334155);
    cursor: pointer;
    vertical-align: middle;
}

.muya-profile-page .section-profile .checkbox label::before,
.muya-profile-page .section-profile .checkbox label:before,
.muya-profile-page .section-profile .checkbox.checkbox-info label::before,
.muya-profile-page .section-profile .checkbox.checkbox-info label:before {
    content: '' !important;
    display: block !important;
    position: absolute;
    left: 0;
    top: 50%;
    width: 18px;
    height: 18px;
    margin-top: -9px;
    margin-left: 0 !important;
    border: 2px solid var(--muya-color-border-strong, #94a3b8);
    border-radius: 4px;
    background: #fff !important;
    box-shadow: none !important;
    transition: border-color 0.15s, background 0.15s, box-shadow 0.15s;
}

.muya-profile-page .section-profile .checkbox label::after,
.muya-profile-page .section-profile .checkbox label:after,
.muya-profile-page .section-profile .checkbox.checkbox-info label::after,
.muya-profile-page .section-profile .checkbox.checkbox-info label:after {
    content: '' !important;
    display: block !important;
    position: absolute;
    left: 6px;
    top: 50%;
    width: 5px;
    height: 9px;
    margin-top: -6px;
    margin-left: 0 !important;
    padding: 0 !important;
    border: solid #fff;
    border-width: 0 2px 2px 0;
    background: transparent !important;
    box-shadow: none !important;
    font-family: inherit !important;
    font-size: 0 !important;
    line-height: 1 !important;
    transform: rotate(45deg) scale(0);
    transition: transform 0.15s ease;
}

.muya-profile-page .section-profile .checkbox input[type="checkbox"],
.muya-profile-page .section-profile .checkbox.checkbox-info input[type="checkbox"] {
    position: absolute;
    left: 0;
    top: 50%;
    margin-top: -9px;
    opacity: 0;
    width: 18px;
    height: 18px;
    margin-left: 0;
    margin-right: 0;
    cursor: pointer;
    z-index: 2;
}

.muya-profile-page .section-profile .checkbox label,
.muya-profile-page .section-profile .checkbox.checkbox-info label {
    position: relative;
    z-index: 1;
    cursor: pointer;
    user-select: none;
}

.muya-profile-page .section-profile .checkbox input[type="checkbox"]:checked + label::before,
.muya-profile-page .section-profile .checkbox input[type="checkbox"]:checked + label:before,
.muya-profile-page .section-profile .checkbox.checkbox-info input[type="checkbox"]:checked + label::before,
.muya-profile-page .section-profile .checkbox.checkbox-info input[type="checkbox"]:checked + label:before {
    background: var(--muya-color-primary, #2563eb) !important;
    border-color: var(--muya-color-primary, #2563eb) !important;
}

.muya-profile-page .section-profile .checkbox input[type="checkbox"]:checked + label::after,
.muya-profile-page .section-profile .checkbox input[type="checkbox"]:checked + label:after,
.muya-profile-page .section-profile .checkbox.checkbox-info input[type="checkbox"]:checked + label::after,
.muya-profile-page .section-profile .checkbox.checkbox-info input[type="checkbox"]:checked + label:after {
    transform: rotate(45deg) scale(1);
    color: #fff !important;
}

.muya-profile-page .section-profile .checkbox input[type="checkbox"]:focus-visible + label::before,
.muya-profile-page .section-profile .checkbox input[type="checkbox"]:focus-visible + label:before,
.muya-profile-page .section-profile .checkbox.checkbox-info input[type="checkbox"]:focus-visible + label::before,
.muya-profile-page .section-profile .checkbox.checkbox-info input[type="checkbox"]:focus-visible + label:before {
    box-shadow: 0 0 0 3px rgba(37, 99, 235, 0.25);
}

.muya-profile-page .section-profile .custom-field-inline-edit-link {
    float: none;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 28px;
    height: 28px;
    margin: 0 8px 4px 0;
    border-radius: 8px;
    background: var(--muya-color-primary-soft, #eff6ff);
    color: var(--muya-color-primary, #2563eb);
    text-decoration: none;
    vertical-align: middle;
    overflow: visible;
}

.muya-profile-page .section-profile .custom-field-inline-edit-link:hover,
.muya-profile-page .section-profile .custom-field-inline-edit-link:focus-visible {
    background: var(--muya-color-primary, #2563eb);
    color: #fff;
    text-decoration: none;
}

.muya-profile-page .section-profile .custom-field-inline-edit-link i {
    display: block;
    line-height: 1;
    font-size: 13px;
    margin: 0;
}

.muya-profile-page .section-profile .btn-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 34px;
    height: 34px;
    padding: 0 !important;
    overflow: visible;
    border-radius: 8px;
}

.muya-profile-page .section-profile .btn-icon i,
.muya-profile-page .section-profile .btn-icon .fa {
    margin: 0 !important;
    line-height: 1;
    font-size: 14px;
}

.muya-profile-page .muya-profile-verification-bottom {
    margin-top: 28px;
    scroll-margin-top: 110px;
}

.muya-profile-page .muya-profile-verification-bottom #verification-center {
    scroll-margin-top: 110px;
}

.muya-profile-page .muya-profile-verification-bottom .muya-account-verification-card {
    margin-top: 0;
}

.muya-profile-page .muya-profile-shortcuts {
    scroll-margin-top: 110px;
}

.muya-profile-page .muya-profile-shortcuts-heading {
    margin-bottom: 14px;
}

.muya-profile-page .muya-profile-shortcuts-panel {
    margin-bottom: 0;
}

.muya-profile-page .muya-profile-shortcuts-list {
    display: flex;
    flex-direction: column;
}

.muya-profile-page .muya-profile-shortcut {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 14px 16px;
    color: var(--muya-color-text, #334155);
    text-decoration: none;
    border-bottom: 1px solid #eef2f7;
    transition: background 0.15s ease, color 0.15s ease;
}

.muya-profile-page .muya-profile-shortcut:last-child {
    border-bottom: 0;
}

.muya-profile-page .muya-profile-shortcut:hover,
.muya-profile-page .muya-profile-shortcut:focus-visible {
    background: #f8fafc;
    color: var(--muya-color-primary, #2563eb);
    text-decoration: none;
}

.muya-profile-page .muya-profile-shortcut-icon {
    flex: 0 0 36px;
    width: 36px;
    height: 36px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 10px;
    background: rgba(37, 99, 235, 0.08);
    color: var(--muya-color-primary, #2563eb);
    font-size: 15px;
}

.muya-profile-page .muya-profile-shortcut-copy {
    flex: 1 1 auto;
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 2px;
}

.muya-profile-page .muya-profile-shortcut-label {
    font-weight: 600;
    line-height: 1.3;
}

.muya-profile-page .muya-profile-shortcut-desc {
    font-size: 12px;
    line-height: 1.35;
    color: #64748b;
}

.muya-profile-page .muya-profile-shortcut:hover .muya-profile-shortcut-desc,
.muya-profile-page .muya-profile-shortcut:focus-visible .muya-profile-shortcut-desc {
    color: #475569;
}

.muya-profile-page .muya-profile-shortcut-badge {
    flex: 0 0 auto;
    min-width: 22px;
    height: 22px;
    padding: 0 6px;
    border-radius: 999px;
    background: #ef4444;
    color: #fff;
    font-size: 11px;
    font-weight: 700;
    line-height: 22px;
    text-align: center;
}

.muya-profile-page .muya-profile-shortcut-arrow {
    flex: 0 0 auto;
    color: #94a3b8;
    font-size: 16px;
}

.muya-profile-page .muya-profile-shortcut:hover .muya-profile-shortcut-arrow,
.muya-profile-page .muya-profile-shortcut:focus-visible .muya-profile-shortcut-arrow {
    color: var(--muya-color-primary, #2563eb);
}

.muya-profile-page .profile-image-upload-group input[type="file"] {
    border: 1px dashed #cbd5e1;
    border-radius: 12px;
    padding: 12px;
    background: #f8fafc;
}

.muya-profile-page .client-profile-image-thumb {
    border-radius: 14px;
    border: 1px solid #e2e8f0;
}

.muya-profile-page .contact-profile-save-section .btn-primary {
    border-radius: 10px;
    padding: 10px 22px;
    font-weight: 600;
}

.muya-profile-page > .muya-client-summary-grid {
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: thin;
}

.muya-profile-summary-grid {
    margin-bottom: 22px;
}

.muya-profile-summary-value-compact {
    font-size: 18px;
}

.muya-profile-summary-muted {
    font-size: 16px;
    font-weight: 600;
    color: #64748b;
}

.muya-profile-summary-link {
    display: inline-block;
    margin-top: 6px;
    font-weight: 600;
}

.muya-brand-rankings-list {
    list-style: none;
    margin: 0;
    padding: 0;
}

.muya-brand-rankings-item {
    margin-bottom: 14px;
}

.muya-brand-rankings-item:last-child {
    margin-bottom: 0;
}

.muya-brand-rankings-meta {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    gap: 8px 12px;
    margin-bottom: 6px;
}

.muya-brand-rankings-rank {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 26px;
    height: 26px;
    border-radius: 999px;
    background: #e0f2fe;
    color: #0369a1;
    font-size: 12px;
    font-weight: 800;
}

.muya-brand-rankings-name {
    flex: 1 1 auto;
    font-weight: 700;
    color: #0f172a;
}

.muya-brand-rankings-stats {
    font-size: 13px;
    color: #475569;
}

.muya-brand-rankings-bar {
    height: 8px;
    margin-bottom: 0;
    border-radius: 999px;
    overflow: hidden;
    background: #f1f5f9;
}

.muya-brand-rankings-bar-fill {
    height: 100%;
    border-radius: 999px;
    background: linear-gradient(90deg, #38bdf8, #2563eb);
}

@media (max-width: 991px) {
    .muya-profile-hero-grid {
        grid-template-columns: 1fr;
    }

    .muya-profile-hero-aside {
        flex-direction: row;
        justify-content: flex-start;
        flex-wrap: wrap;
    }
}

/* —— CORS map page enhancements —— */
.muya-map-page .muya-map-layers-note {
    margin: 0 0 10px;
    line-height: 1.45;
}

.muya-map-page .muya-map-layers-root {
    max-height: none;
    overflow: visible;
    padding-right: 0;
    min-height: 120px;
}

.muya-map-page .muya-map-layers-root::after {
    content: '';
    display: table;
    clear: both;
}

.muya-map-page .muya-map-layers-root .leaflet-control-layers {
    position: static;
    float: none;
    clear: none;
    box-shadow: none;
    border: 0;
    background: transparent;
    width: 100%;
    max-width: 100%;
    line-height: 1.35;
}

.muya-map-page .muya-map-layers-root .leaflet-control-layers-list {
    font-size: 12px;
    color: #334155;
    height: auto !important;
    max-height: none !important;
    overflow: visible !important;
    padding-right: 0;
}

.muya-map-page .muya-map-layers-root .leaflet-control-layers-expanded .leaflet-control-layers-list.leaflet-control-layers-scrollbar,
.muya-map-page .muya-map-layers-root .leaflet-control-layers-list.leaflet-control-layers-scrollbar {
    height: auto !important;
    max-height: none !important;
    overflow: visible !important;
}

.muya-map-page .muya-map-layers-root .leaflet-control-layers-overlays,
.muya-map-page .muya-map-layers-root .leaflet-control-layers-base {
    display: block;
}

.muya-map-page .muya-map-layers-root .leaflet-control-layers-group-label {
    font-weight: 700;
    color: #0f172a;
    margin-top: 10px;
}

.muya-map-page .muya-map-layers-root .leaflet-control-layers-overlays label:not(.leaflet-control-layers-group-label),
.muya-map-page .muya-map-layers-root .leaflet-control-layers-base label:not(.leaflet-control-layers-group-label) {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto;
    align-items: start;
    column-gap: 8px;
    row-gap: 4px;
    padding: 6px 2px 6px 0;
    margin: 0;
    cursor: pointer;
    pointer-events: auto;
    min-width: 0;
}

.muya-map-page .muya-map-layers-root .leaflet-control-layers-overlays label > .muya-layer-label-text,
.muya-map-page .muya-map-layers-root .leaflet-control-layers-base label > .muya-layer-label-text,
.muya-map-page .muya-map-layers-root .leaflet-control-layers-overlays label > span:not(.leaflet-control-layers-group-name),
.muya-map-page .muya-map-layers-root .leaflet-control-layers-base label > span:not(.leaflet-control-layers-group-name) {
    grid-column: 2;
    min-width: 0;
    line-height: 1.45;
    word-break: break-word;
}

.muya-map-page .muya-map-layers-root .leaflet-control-layers-overlays label > .muya-layer-label-icon,
.muya-map-page .muya-map-layers-root .leaflet-control-layers-base label > .muya-layer-label-icon {
    grid-column: 3;
    grid-row: 1;
    align-self: center;
    flex-shrink: 0;
    width: auto;
    max-height: 22px;
    object-fit: contain;
}

.muya-map-page .muya-map-layers-root .leaflet-control-layers-selector {
    pointer-events: auto;
    cursor: pointer;
    flex-shrink: 0;
    grid-column: 1;
    grid-row: 1;
    margin-top: 2px;
    width: 14px;
    height: 14px;
    min-width: 14px;
    min-height: 14px;
    opacity: 1;
    visibility: visible;
    position: static;
    appearance: auto;
    -webkit-appearance: checkbox;
}

.muya-map-page .muya-map-layers-root .leaflet-control-layers.muya-map-layers-docked {
    pointer-events: auto;
}

.muya-map-page .muya-map-layers-root .leaflet-control-layers-toggle {
    display: none !important;
}

.muya-map-page .muya-map-layers-symbols-only {
    border-top: 1px dashed #e2e8f0;
    margin-top: 12px;
    padding-top: 12px;
}

.muya-map-page .muya-map-layers-root img[id="cors_png"],
.muya-map-page .muya-map-layers-root img[id="controls_png"] {
    width: auto;
    max-height: 22px;
    object-fit: contain;
}

.muya-map-page .muya-map-filter-grid {
    margin: 16px 0 12px;
    height: auto;
    max-height: none;
    overflow: visible;
}

.muya-map-page .muya-map-filter-grid .btn {
    flex: 1 1 calc(50% - 5px);
    min-width: 0;
}

.muya-map-page .muya-map-toolbar .btn {
    border-radius: 10px;
    font-weight: 600;
    margin-bottom: 6px;
}

.muya-map-page .muya-map-toolbar .muya-nearest-toolbar-btn.active {
    box-shadow: inset 0 0 0 2px rgba(255, 255, 255, 0.35);
}

.muya-map-page #map.muya-map-canvas,
.muya-map-page #map.sidebar-map {
    background: #e8eef4;
}

.muya-map-page .muya-map-project-info {
    margin: 0 0 18px;
    border: 1px solid #e2e8f0;
    border-radius: 12px;
    background: #f8fafc;
    overflow: hidden;
}

.muya-map-page .muya-map-project-info-body {
    padding: 0 14px 14px;
    border-top: 1px dashed #e2e8f0;
    font-size: 13px;
    color: #475569;
}

@media (max-width: 991px) {
    .muya-map-layout {
        grid-template-columns: 1fr;
    }

    .muya-map-panel {
        order: 2;
    }

    .muya-map-page .muya-map-layers-root .leaflet-control-layers-list {
        max-height: none !important;
    }
}

@media (max-width: 767px) {
    .muya-map-page .muya-map-filter-grid .btn {
        flex: 1 1 100%;
    }

    .muya-map-page .muya-map-layers-root .leaflet-control-layers-overlays label:not(.leaflet-control-layers-group-label),
    .muya-map-page .muya-map-layers-root .leaflet-control-layers-base label:not(.leaflet-control-layers-group-label) {
        font-size: 13px;
    }
}

/* Map guide — layers documentation panel */
.muya-map-page .muya-map-layers-guide {
    margin: 0 0 18px;
    border: 1px solid #e2e8f0;
    border-radius: 12px;
    background: #f8fafc;
    overflow: visible;
}

.muya-map-page .muya-map-layers-guide-summary {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 12px 14px;
    cursor: pointer;
    font-weight: 700;
    color: #0f172a;
    list-style: none;
}

.muya-map-page .muya-map-layers-guide-summary::-webkit-details-marker {
    display: none;
}

.muya-map-page .muya-map-layers-guide-summary::after {
    content: "+";
    margin-left: auto;
    flex: 0 0 auto;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 22px;
    height: 22px;
    border-radius: 50%;
    background: #e2e8f0;
    color: #334155;
    font-size: 15px;
    font-weight: 700;
    line-height: 1;
}

.muya-map-page .muya-map-layers-guide[open] > .muya-map-layers-guide-summary::after,
.muya-map-page .muya-map-project-info[open] > .muya-map-layers-guide-summary::after {
    content: "−";
}

.muya-map-page .muya-map-summary-text {
    flex: 1 1 auto;
    min-width: 0;
}

.muya-map-page .muya-map-summary-chevron {
    display: none;
}

.muya-map-page .muya-map-layers-guide-body {
    padding: 0 14px 14px;
    border-top: 1px dashed #e2e8f0;
    height: auto;
    max-height: none;
    overflow: visible;
    box-sizing: border-box;
}

.muya-map-page .muya-map-layer-group {
    padding: 12px 0 0;
}

.muya-map-page .muya-map-layer-group h6 {
    margin: 0 0 6px;
    font-size: 13px;
    font-weight: 700;
    color: #1e293b;
    text-transform: uppercase;
    letter-spacing: 0.03em;
}

.muya-map-page .muya-map-layers-guide-legend li {
    padding: 6px 0;
    font-size: 13px;
}

.muya-map-page .muya-map-layers-guide-chips {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    flex-wrap: wrap;
    gap: 8px 14px;
}

.muya-map-page .muya-map-layers-guide-chips li {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 13px;
    color: #334155;
}

.muya-map-page .muya-map-layers-guide-jump {
    display: inline-block;
    margin-top: 4px;
    font-weight: 600;
    white-space: nowrap;
}

.muya-map-page #muya-map-layers-guide {
    scroll-margin-top: 100px;
}

.muya-map-page .muya-map-layers-mirror-docs {
    margin-top: 14px;
    padding-top: 14px;
    border-top: 1px dashed #e2e8f0;
}

.muya-map-page .muya-map-layers-mirror-docs .muya-map-layers-mirror-section {
    margin-bottom: 10px;
}

.muya-map-page .muya-map-layers-mirror-docs .muya-map-layers-mirror-heading {
    margin-bottom: 4px;
}

.muya-map-page .muya-map-layers-mirror {
    background: #fff;
    border: 1px solid #e2e8f0;
    border-radius: 10px;
    padding: 12px;
}

.muya-map-page .muya-map-layers-mirror-lead {
    margin: 0 0 12px;
    line-height: 1.45;
}

.muya-map-page .muya-map-layers-mirror-section {
    padding: 10px 0 0;
    border-top: 1px dashed #e2e8f0;
}

.muya-map-page .muya-map-layers-mirror-section:first-of-type {
    border-top: 0;
    padding-top: 0;
}

.muya-map-page .muya-map-layers-mirror-heading {
    margin: 0 0 8px;
    font-size: 12px;
    font-weight: 700;
    color: #dc1f25;
    text-transform: none;
    letter-spacing: 0;
}

.muya-map-page .muya-map-layers-mirror-list {
    list-style: none;
    margin: 0;
    padding: 0;
}

.muya-map-page .muya-map-layers-mirror-list > li {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 4px 0;
    font-size: 12px;
    color: #334155;
    line-height: 1.35;
}

.muya-map-page .muya-map-layers-mirror-list-icons > li {
    flex-wrap: wrap;
}

.muya-map-page .muya-layer-glyph {
    flex-shrink: 0;
    width: 14px;
    height: 14px;
    border: 2px solid #94a3b8;
    border-radius: 3px;
    background: #fff;
    position: relative;
}

.muya-map-page .muya-map-layers-mirror-list.is-radio .muya-layer-glyph {
    border-radius: 50%;
}

.muya-map-page .muya-map-layers-mirror-list.is-radio .muya-layer-glyph::after {
    content: '';
    position: absolute;
    inset: 3px;
    border-radius: 50%;
    background: transparent;
}

.muya-map-page .muya-map-layers-mirror-list.is-radio > li:first-child .muya-layer-glyph::after {
    background: #2563eb;
}

.muya-map-page .muya-layer-glyph.is-check.is-on {
    background: #2563eb;
    border-color: #2563eb;
}

.muya-map-page .muya-layer-glyph.is-check.is-on::after {
    content: '\2713';
    position: absolute;
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #fff;
    font-size: 10px;
    line-height: 1;
}

.muya-map-page .muya-map-layers-mirror-hint {
    margin: 6px 0 0;
}

.muya-map-page .muya-map-layers-mirror-symbols {
    margin-top: 4px;
}

.muya-map-page .muya-map-layers-mirror-symbols .muya-map-layers-guide-legend {
    border-top: 0;
    padding-top: 0;
}

.muya-receiver-brand-guides .muya-brand-guide-card--compact {
    height: 100%;
    margin-bottom: 0;
}

.muya-receiver-brand-guides .muya-brand-guide-steps {
    font-size: 12px;
}

/* GNSS connectivity guide (East Africa) */
.muya-connectivity-guide-page .muya-connectivity-apn-disclaimer {
    margin-bottom: 16px;
}

.muya-connectivity-guide-tabs {
    margin-bottom: 0;
}

.muya-connectivity-tab-content {
    padding-top: 16px;
}

.muya-connectivity-apn-table code {
    font-size: 12px;
    white-space: nowrap;
}

.muya-connectivity-apn-table th {
    font-size: 12px;
    white-space: nowrap;
}

.muya-connectivity-brand-jump {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.muya-connectivity-brand-jump .muya-brand-jump-chip.active {
    border-color: var(--chip-accent, #2563eb);
    box-shadow: 0 0 0 1px var(--chip-accent, #2563eb);
}

.muya-connectivity-brand-card {
    border-left: 4px solid var(--brand-accent, #64748b);
    scroll-margin-top: 80px;
}

.muya-connectivity-brand-card--active {
    box-shadow: 0 0 0 2px var(--brand-accent, #2563eb);
}

.muya-connectivity-brand-dot {
    display: inline-block;
    width: 10px;
    height: 10px;
    border-radius: 50%;
    background: var(--brand-accent, #64748b);
    margin-right: 8px;
    vertical-align: middle;
}

.muya-connectivity-note-block,
.muya-connectivity-faq-item {
    margin-bottom: 18px;
    padding-bottom: 18px;
    border-bottom: 1px solid #e2e8f0;
}

.muya-connectivity-note-block:last-child,
.muya-connectivity-faq-item:last-child {
    margin-bottom: 0;
    padding-bottom: 0;
    border-bottom: 0;
}

.muya-connectivity-note-block h5,
.muya-connectivity-faq-item h5 {
    margin: 0 0 8px;
    font-size: 15px;
    font-weight: 700;
    color: #0f172a;
}

.muya-connectivity-brand-params li {
    margin-bottom: 6px;
    font-size: 13px;
}

.muya-connectivity-ntrip-steps ol {
    margin: 12px 0 0;
    padding-left: 20px;
}

/* Coordinate systems guide (East Africa) */
.muya-coordinate-location-helper {
    margin: 16px 0;
    padding: 16px;
    border: 1px solid #dbe3ea;
    border-radius: 8px;
    background: #f8fafc;
}

.muya-coordinate-location-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.muya-coordinate-location-actions .btn {
    margin-bottom: 0;
}

.muya-coordinate-location-result {
    display: grid;
    grid-template-columns: minmax(180px, 1.2fr) minmax(120px, 0.6fr) minmax(220px, 1.4fr);
    gap: 12px;
    margin-top: 14px;
}

.muya-coordinate-location-result > div {
    min-height: 74px;
    padding: 12px;
    border: 1px solid #dbe3ea;
    border-radius: 8px;
    background: #fff;
}

.muya-coordinate-result-label {
    display: block;
    margin-bottom: 6px;
    color: #64748b;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.02em;
    text-transform: uppercase;
}

.muya-coordinate-location-result strong,
.muya-coordinate-location-result code {
    color: #0f172a;
    font-size: 15px;
}

.muya-coordinate-kenya-reference-callout {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 14px;
    margin: 16px 0;
    padding: 14px 16px;
    border: 1px solid #bfdbfe;
    border-radius: 8px;
    background: #eff6ff;
}

.muya-coordinate-kenya-reference-callout h5 {
    margin: 0 0 6px;
    color: #0f172a;
    font-size: 15px;
    font-weight: 700;
}

.muya-coordinate-kenya-reference-callout p {
    margin: 0;
    color: #334155;
    font-size: 13px;
    line-height: 1.5;
}

.muya-geodetic-reference-map-section {
    scroll-margin-top: 90px;
}

.muya-coordinate-reference-map {
    position: relative;
    overflow: hidden;
    min-height: 520px;
    border: 1px solid #dbe3ea;
    border-radius: 8px;
    background: #f8fafc;
}

.muya-coordinate-leaflet-map {
    width: 100%;
    min-height: 520px;
    height: 520px;
    background: #dbeafe;
}

.muya-coordinate-map-label {
    display: flex;
    align-items: center;
    justify-content: center;
    min-width: 78px;
    min-height: 22px;
    padding: 2px 8px;
    border: 1px solid rgba(15, 23, 42, 0.2);
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.88);
    color: #0f172a;
    font-size: 12px;
    font-weight: 800;
    line-height: 1.1;
    text-align: center;
    box-shadow: 0 4px 10px rgba(15, 23, 42, 0.12);
}

.muya-coordinate-zone-map-label {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    width: 116px;
    min-height: 40px;
    padding: 4px 8px;
    border: 1px solid rgba(15, 23, 42, 0.18);
    border-radius: 6px;
    background: rgba(255, 255, 255, 0.9);
    color: #0f172a;
    font-size: 12px;
    line-height: 1.2;
    text-align: center;
    box-shadow: 0 4px 12px rgba(15, 23, 42, 0.13);
}

.muya-coordinate-zone-map-label strong {
    font-size: 13px;
}

.muya-coordinate-zone-map-label span {
    color: #334155;
    font-weight: 700;
}

.muya-coordinate-boundary-label {
    display: flex;
    align-items: center;
    justify-content: center;
    min-width: 48px;
    min-height: 22px;
    border: 1px solid rgba(15, 23, 42, 0.22);
    border-radius: 999px;
    background: rgba(15, 23, 42, 0.88);
    color: #fff;
    font-size: 12px;
    font-weight: 800;
    line-height: 1;
    text-align: center;
    box-shadow: 0 4px 12px rgba(15, 23, 42, 0.22);
}

.muya-coordinate-guide-line-label {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    min-width: 72px;
    min-height: 20px;
    padding: 2px 6px;
    border: 1px solid rgba(15, 23, 42, 0.2);
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.92);
    color: #0f172a;
    font-size: 11px;
    font-weight: 800;
    line-height: 1;
    text-align: right;
    box-shadow: 0 4px 10px rgba(15, 23, 42, 0.16);
}

.muya-coordinate-cassini-label {
    display: flex;
    align-items: center;
    justify-content: center;
    min-width: 62px;
    min-height: 20px;
    padding: 2px 6px;
    border: 1px dashed #d97706;
    border-radius: 999px;
    background: rgba(255, 247, 237, 0.94);
    color: #92400e;
    font-size: 11px;
    font-weight: 800;
    line-height: 1;
    text-align: center;
    box-shadow: 0 4px 10px rgba(146, 64, 14, 0.16);
}

.muya-coordinate-regional-reference-label {
    display: flex;
    align-items: center;
    justify-content: center;
    min-width: 170px;
    min-height: 24px;
    padding: 3px 8px;
    border: 1px solid rgba(15, 23, 42, 0.18);
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.94);
    color: #0f172a;
    font-size: 11px;
    font-weight: 800;
    line-height: 1.1;
    text-align: center;
    box-shadow: 0 5px 12px rgba(15, 23, 42, 0.16);
}

.muya-coordinate-hemisphere-label {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    justify-content: center;
    min-width: 132px;
    min-height: 36px;
    padding: 4px 8px;
    border-left: 4px solid #0f172a;
    border-radius: 6px;
    background: rgba(255, 255, 255, 0.9);
    color: #334155;
    font-size: 11px;
    font-weight: 700;
    line-height: 1.25;
    box-shadow: 0 4px 12px rgba(15, 23, 42, 0.14);
}

.muya-coordinate-hemisphere-label strong {
    color: #0f172a;
    font-size: 12px;
}

.muya-coordinate-reference-map .leaflet-container {
    font-family: inherit;
}

.muya-coordinate-map-status-control,
.muya-coordinate-map-instruction-control {
    max-width: 260px;
    padding: 9px 11px;
    border: 1px solid rgba(15, 23, 42, 0.16);
    border-radius: 8px;
    background: rgba(255, 255, 255, 0.94);
    color: #334155;
    font-size: 12px;
    line-height: 1.4;
    box-shadow: 0 8px 18px rgba(15, 23, 42, 0.14);
}

.muya-coordinate-map-status-control strong {
    display: block;
    color: #0f172a;
    font-size: 13px;
}

.muya-coordinate-map-status-control span {
    display: block;
    margin-top: 3px;
}

.muya-coordinate-map-instruction-control {
    max-width: 230px;
    color: #0f172a;
    font-weight: 700;
}

.muya-coordinate-map-instruction-control .fa {
    margin-right: 5px;
    color: #2563eb;
}

.muya-coordinate-reference-map-legend {
    display: flex;
    flex-wrap: wrap;
    gap: 10px 18px;
    margin-top: 14px;
    margin-bottom: 4px;
    color: #334155;
    font-size: 13px;
    font-weight: 600;
}

.muya-coordinate-reference-map-legend span {
    display: inline-flex;
    align-items: center;
    gap: 7px;
}

.muya-coordinate-legend-swatch {
    display: inline-block;
    width: 18px;
    height: 10px;
    border-radius: 2px;
}

.muya-coordinate-legend-zone {
    background: #eef6ff;
    border: 1px solid #93c5fd;
}

.muya-coordinate-legend-equator {
    height: 2px;
    background: #0f172a;
}

.muya-coordinate-legend-cassini {
    background: rgba(245, 158, 11, 0.28);
    border: 2px dashed #d97706;
}

.muya-coordinate-legend-kenya {
    background: rgba(16, 185, 129, 0.18);
    border: 2px solid #059669;
}

.muya-coordinate-legend-east-africa {
    background: rgba(20, 184, 166, 0.14);
    border: 2px solid #0f766e;
}

.muya-coordinate-legend-regional {
    background: rgba(125, 211, 252, 0.18);
    border: 2px dashed #0891b2;
}

.muya-coordinate-legend-country {
    background: #fbbf24;
    border: 1px solid #334155;
}

.muya-coordinate-country-crs-panel {
    margin-top: 20px;
    padding-top: 16px;
    border-top: 1px solid #e2e8f0;
}

.muya-coordinate-country-crs-heading {
    margin: 0 0 6px;
    font-size: 15px;
    font-weight: 600;
    color: #0f172a;
}

.muya-coordinate-country-crs-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
    gap: 12px;
    margin-top: 12px;
}

.muya-coordinate-country-crs-card {
    padding: 12px 14px;
    border: 1px solid #e2e8f0;
    border-radius: 8px;
    background: #f8fafc;
}

.muya-coordinate-country-crs-card strong {
    display: block;
    margin-bottom: 6px;
    color: #0f172a;
    font-size: 14px;
}

.muya-coordinate-country-crs-utm {
    font-size: 12px;
    color: #475569;
    margin-bottom: 4px;
}

.muya-coordinate-country-crs-label {
    font-weight: 600;
    margin-right: 4px;
}

.muya-coordinate-country-crs-epsg {
    margin-bottom: 6px;
}

.muya-coordinate-country-crs-epsg code {
    font-size: 11px;
    word-break: break-word;
}

.muya-coordinate-country-crs-modern {
    margin: 0;
    font-size: 11px;
    line-height: 1.45;
    color: #64748b;
}

.muya-coordinate-popup-crs {
    display: block;
    margin-top: 6px;
    font-size: 12px;
    line-height: 1.4;
    color: #334155;
}

.muya-coordinate-legend-site {
    position: relative;
    background: rgba(37, 99, 235, 0.18);
    border: 2px solid #2563eb;
    border-radius: 999px;
}

.muya-coordinate-system-stack {
    margin-top: 18px;
}

.muya-coordinate-zone-matrix {
    margin-top: 18px;
}

.muya-coordinate-index-heading {
    margin: 0 0 10px;
    color: #0f172a;
    font-size: 15px;
    font-weight: 700;
}

.muya-coordinate-index-line,
.muya-coordinate-index-swatch,
.muya-coordinate-index-dot {
    display: inline-block;
    vertical-align: middle;
}

.muya-coordinate-index-line {
    width: 42px;
    height: 0;
    border-top: 4px solid #0f172a;
}

.muya-coordinate-index-line.is-zone {
    border-top-color: #2563eb;
}

.muya-coordinate-index-line.is-guide {
    border-top-color: #334155;
    border-top-style: dashed;
}

.muya-coordinate-index-line.is-equator {
    border-top-style: dashed;
}

.muya-coordinate-index-swatch {
    width: 38px;
    height: 18px;
    border-radius: 4px;
}

.muya-coordinate-index-swatch.is-selected {
    border: 2px dashed #dc2626;
    background: #fecaca;
}

.muya-coordinate-index-dot {
    width: 16px;
    height: 16px;
    border-radius: 999px;
}

.muya-coordinate-index-dot.is-site {
    border: 3px solid #dc2626;
    background: #f87171;
}

.muya-coordinate-index-dot.is-reference {
    border: 2px solid #1d4ed8;
    background: #60a5fa;
}

.muya-coordinate-zone-matrix h5,
.muya-coordinate-system-stack h5 {
    margin: 0 0 10px;
    color: #0f172a;
    font-size: 15px;
    font-weight: 700;
}

@media (max-width: 767px) {
    .muya-coordinate-location-result {
        grid-template-columns: 1fr;
    }

    .muya-coordinate-location-actions .btn {
        width: 100%;
    }

    .muya-coordinate-kenya-reference-callout {
        align-items: stretch;
        flex-direction: column;
    }
}

.muya-service-details-seamless {
    padding: 0;
    margin-bottom: 20px;
    border: 0;
    background: transparent;
}

.muya-geodetic-prose {
    margin: 24px 0 28px;
    color: #334155;
    font-size: 14px;
    line-height: 1.65;
}

.muya-geodetic-prose-block {
    margin-bottom: 28px;
}

.muya-geodetic-prose-block:last-child {
    margin-bottom: 0;
}

.muya-geodetic-prose-heading {
    margin: 0 0 12px;
    font-size: 17px;
    font-weight: 700;
    color: #0f172a;
}

.muya-geodetic-prose-heading .fa {
    margin-right: 8px;
    color: #2563eb;
}

.muya-geodetic-prose-block p {
    margin: 0 0 10px;
}

.muya-geodetic-steps {
    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
    gap: 14px;
}

@media (min-width: 768px) {
    .muya-geodetic-steps {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

.muya-geodetic-step {
    display: flex;
    gap: 12px;
    align-items: flex-start;
}

.muya-geodetic-step-num {
    flex-shrink: 0;
    width: 28px;
    height: 28px;
    border-radius: 999px;
    background: #dbeafe;
    color: #1d4ed8;
    font-size: 13px;
    font-weight: 800;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

.muya-geodetic-step-body p {
    margin: 4px 0 0;
    color: #64748b;
    font-size: 13px;
}

.muya-geodetic-step-title {
    color: #0f172a;
    font-size: 14px;
}

.muya-geodetic-receiver-callout {
    padding: 16px 0 4px;
    border-top: 1px solid #e2e8f0;
}

.muya-geodetic-receiver-links {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin-top: 10px;
}

.muya-geodetic-faq-list {
    display: grid;
    gap: 8px;
}

.muya-geodetic-faq-item {
    border: 0;
    border-bottom: 1px solid #e2e8f0;
    padding: 0 0 10px;
}

.muya-geodetic-faq-item summary {
    cursor: pointer;
    font-weight: 600;
    color: #0f172a;
    list-style: none;
    padding: 8px 0;
}

.muya-geodetic-faq-item summary::-webkit-details-marker {
    display: none;
}

.muya-geodetic-faq-item summary::before {
    content: '+';
    display: inline-block;
    width: 1.2em;
    margin-right: 6px;
    color: #2563eb;
    font-weight: 700;
}

.muya-geodetic-faq-item[open] summary::before {
    content: '−';
}

.muya-geodetic-faq-answer p {
    margin: 0 0 8px;
    padding-left: 1.5em;
    color: #64748b;
    font-size: 13px;
    line-height: 1.55;
}

.muya-geodetic-faq-answer p:last-child,
.muya-geodetic-faq-answer ul:last-child {
    margin-bottom: 0;
}

.muya-geodetic-faq-answer ul {
    margin: 0 0 8px;
    padding-left: 3em;
    color: #64748b;
    font-size: 13px;
    line-height: 1.55;
}

.muya-geodetic-faq-answer code {
    font-size: 12px;
    background: #f1f5f9;
    padding: 1px 4px;
    border-radius: 3px;
}

.muya-geodetic-faq-answer a {
    font-weight: 600;
}

.muya-geodetic-hub-overview {
    margin: 0 0 22px;
    padding: 16px 18px;
    background: #f8fafc;
    border: 1px solid #e2e8f0;
    border-radius: 12px;
}

.muya-geodetic-hub-lead {
    margin: 0 0 10px;
    color: #334155;
    line-height: 1.6;
}

.muya-geodetic-hub-bullets,
.muya-geodetic-highlights ul,
.muya-geodetic-tips-list,
.muya-geodetic-related-links {
    margin: 0;
    padding-left: 20px;
    color: #475569;
    line-height: 1.55;
}

.muya-geodetic-hub-bullets li,
.muya-geodetic-highlights li,
.muya-geodetic-tips-list li,
.muya-geodetic-related-links li {
    margin-bottom: 6px;
}

.muya-geodetic-highlights h5 {
    margin: 0 0 8px;
    font-size: 14px;
    font-weight: 700;
    color: #0f172a;
}

.muya-geodetic-tips-callout {
    background: #fffbeb;
    border: 1px solid #fde68a;
    border-radius: 10px;
    padding: 14px 16px;
}

.muya-geodetic-related-links a {
    font-weight: 600;
}

.muya-geodetic-workspace-tabs-wrap {
    margin: 0 0 16px;
}

.muya-geodetic-service-panel {
    margin-top: 0;
}

.muya-geodetic-panel-content {
    padding-top: 16px;
}

.muya-geodetic-hub-cards {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(min(100%, 300px), 1fr));
    gap: 22px;
    margin-top: 8px;
}

.muya-geodetic-hub-cards > [class*="col-"] {
    float: none;
    width: 100%;
    max-width: none;
    padding-left: 0;
    padding-right: 0;
    min-width: 0;
}

.muya-geodetic-hub-card {
    height: 100%;
    padding: 22px;
    margin-bottom: 0;
    background: #fff;
    border: 1px solid #e2e8f0;
    border-radius: 18px;
    box-shadow: 0 12px 28px rgba(15, 23, 42, 0.05);
}

.muya-geodetic-hub-card h4 {
    margin: 0 0 10px;
    font-size: 16px;
    font-weight: 700;
    color: #0f172a;
}

.muya-geodetic-hub-card h4 .fa {
    margin-right: 8px;
    color: #2563eb;
}

.muya-geodetic-hub-card p {
    color: #64748b;
    font-size: 14px;
    line-height: 1.55;
    margin-bottom: 14px;
}

.muya-geodetic-workspace {
    padding: 0;
    border: 0;
    background: transparent;
    box-shadow: none;
}

.muya-geodetic-workspace-inner {
    padding: 0;
}

.geodetic-batch-progress {
    height: 22px;
    margin-bottom: 0;
    background: rgba(15, 23, 42, 0.08);
    border-radius: 999px;
    overflow: hidden;
    box-shadow: inset 0 1px 2px rgba(15, 23, 42, 0.08);
}

.geodetic-batch-progress .progress-bar {
    line-height: 22px;
    font-size: 12px;
    font-weight: 600;
    background: linear-gradient(90deg, #0ea5e9, #22c55e);
    border-radius: 999px;
    transition: width 0.35s ease;
}

#geodetic-batch-payment-wrap .panel-body {
    border-left: 4px solid #0ea5e9;
}

#geodetic-batch-download-wrap .btn.disabled {
    pointer-events: none;
    opacity: 0.55;
}

.muya-geodetic-reference-map-section {
    margin: 28px 0 32px;
}

.muya-geodetic-reference-map-section.is-compact {
    margin: 20px 0 24px;
}

.muya-geodetic-reference-map-section.is-compact .muya-geodetic-prose-block {
    margin-bottom: 10px;
}

.muya-geodetic-reference-map-section.is-compact .muya-geodetic-reference-map-copy {
    display: none;
}

.muya-geodetic-reference-map-section.is-compact .muya-geodetic-reference-map-hint {
    display: block;
    margin: 4px 0 10px;
    font-size: 12px;
    line-height: 1.45;
    color: #64748b;
}

.muya-geodetic-location-assistant {
    margin-bottom: 14px;
    padding: 14px 16px;
    border-radius: 10px;
    background: #f8fafc;
    border: 1px solid #e2e8f0;
}

.muya-geodetic-location-assistant-title {
    margin: 0 0 6px;
    font-size: 15px;
    font-weight: 700;
    color: #0f172a;
}

.muya-geodetic-location-assistant-copy {
    margin: 0 0 10px;
}

.muya-geodetic-location-assistant-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    align-items: center;
}

.muya-geodetic-location-coords {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    align-items: center;
    flex: 1 1 280px;
}

.muya-geodetic-location-coords .form-control {
    width: 150px;
    max-width: 100%;
}

.muya-geodetic-location-result {
    margin-top: 12px;
    margin-bottom: 0;
}

.muya-geodetic-location-result-title {
    margin: 0 0 8px;
    font-size: 14px;
    font-weight: 700;
}

.muya-geodetic-location-result-summary {
    margin: 0 0 8px;
}

.muya-geodetic-location-result-list {
    margin: 0 0 8px;
    padding-left: 18px;
}

.muya-geodetic-location-result-list li {
    margin-bottom: 4px;
}

.muya-geodetic-location-coord-readout {
    margin-bottom: 0;
}

.muya-geodetic-reference-map-copy {
    margin: 0 0 14px;
    font-size: 14px;
    line-height: 1.6;
}

.muya-geodetic-reference-map-wrap {
    display: grid;
    gap: 12px;
}

.muya-geodetic-reference-legend {
    display: flex;
    flex-wrap: wrap;
    gap: 10px 18px;
    padding: 12px 14px;
    border-radius: 10px;
    background: #f8fafc;
    border: 1px solid #e2e8f0;
}

.muya-geodetic-reference-legend-item {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    margin: 0;
    font-size: 13px;
    font-weight: 600;
    color: #334155;
    cursor: pointer;
}

.muya-geodetic-reference-legend-item .muya-geodetic-layer-toggle {
    appearance: none;
    -webkit-appearance: none;
    position: relative;
    width: 18px;
    height: 18px;
    margin: 0;
    flex-shrink: 0;
    border: 2px solid var(--muya-color-border-strong, #cbd5e1);
    border-radius: 4px;
    background: var(--muya-color-surface, #fff);
    cursor: pointer;
    transition: border-color 0.2s ease, background 0.2s ease, box-shadow 0.2s ease;
}

.muya-geodetic-reference-legend-item .muya-geodetic-layer-toggle:checked {
    background: var(--muya-color-primary, #2563eb);
    border-color: var(--muya-color-primary, #2563eb);
}

.muya-geodetic-reference-legend-item .muya-geodetic-layer-toggle:checked::after {
    content: '';
    position: absolute;
    left: 5px;
    top: 1px;
    width: 5px;
    height: 9px;
    border: solid #fff;
    border-width: 0 2px 2px 0;
    transform: rotate(45deg);
}

.muya-geodetic-reference-legend-item .muya-geodetic-layer-toggle:focus-visible {
    outline: none;
    box-shadow: var(--muya-focus-ring, 0 0 0 3px rgba(37, 99, 235, 0.15));
}

.muya-geodetic-legend-swatch {
    width: 14px;
    height: 14px;
    border-radius: 3px;
    border: 1px solid rgba(15, 23, 42, 0.15);
    flex-shrink: 0;
}

.muya-geodetic-legend-swatch--utm36n { background: rgba(37, 99, 235, 0.45); }
.muya-geodetic-legend-swatch--utm36s { background: rgba(37, 99, 235, 0.22); border-style: dashed; }
.muya-geodetic-legend-swatch--utm37n { background: rgba(124, 58, 237, 0.45); }
.muya-geodetic-legend-swatch--utm37s { background: rgba(124, 58, 237, 0.22); border-style: dashed; }
.muya-geodetic-legend-swatch--utm36 { background: rgba(37, 99, 235, 0.45); }
.muya-geodetic-legend-swatch--utm37 { background: rgba(124, 58, 237, 0.45); }
.muya-geodetic-legend-swatch--cassini { background: rgba(245, 158, 11, 0.35); }
.muya-geodetic-legend-swatch--kenref { background: rgba(16, 185, 129, 0.45); }

.muya-map-canvas-shell.muya-geodetic-reference-map-shell {
    min-height: 0;
    height: auto;
    border-radius: 12px;
    overflow: hidden;
    border: 1px solid #e2e8f0;
    box-shadow: 0 8px 24px rgba(15, 23, 42, 0.06);
}

.muya-geodetic-reference-map-shell .muya-map-stage {
    position: relative;
    min-height: 360px;
    height: min(52vh, 520px);
}

.muya-geodetic-reference-map-shell.is-compact .muya-map-stage {
    min-height: 260px;
    height: min(42vh, 360px);
}

.muya-geodetic-reference-map-shell .muya-geodetic-reference-map {
    position: absolute;
    inset: 0;
    width: 100% !important;
    height: 100% !important;
    min-height: 0;
    background: #eef2ff;
}

.muya-geodetic-reference-map-shell .leaflet-container {
    width: 100% !important;
    height: 100% !important;
}

.muya-geodetic-reference-map {
    width: 100%;
    background: #eef2ff;
}

@media (max-width: 767px) {
    .muya-geodetic-reference-map-shell .muya-map-stage {
        min-height: 280px;
        height: min(48vh, 400px);
    }

    .muya-geodetic-reference-map-shell.is-compact .muya-map-stage {
        min-height: 240px;
        height: min(40vh, 300px);
    }
}

/* --------------------------------------------------------------------------
   Client onboarding guides
   -------------------------------------------------------------------------- */
.muya-onboarding-page .muya-onboarding-tabs {
    margin-bottom: 16px;
}

.muya-onboarding-panel-intro {
    color: #475569;
    margin-bottom: 16px;
}

.muya-onboarding-quickref {
    margin-bottom: 20px;
    padding: 12px 14px;
    background: #f8fafc;
    border-radius: 8px;
    border: 1px solid #e2e8f0;
}

.muya-onboarding-quickref summary {
    cursor: pointer;
    font-weight: 600;
    color: #0f172a;
}

.muya-onboarding-quickref-list {
    margin: 10px 0 0;
    padding-left: 20px;
}

.muya-onboarding-steps {
    list-style: none;
    margin: 0;
    padding: 0;
}

.muya-onboarding-step {
    padding: 16px 0;
    border-bottom: 1px solid #e2e8f0;
}

.muya-onboarding-step:last-child {
    border-bottom: 0;
}

.muya-onboarding-step-head {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-bottom: 8px;
}

.muya-onboarding-step-num {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 28px;
    height: 28px;
    border-radius: 50%;
    background: var(--muya-color-primary, #2563eb);
    color: #fff;
    font-size: 13px;
    font-weight: 700;
    flex-shrink: 0;
}

.muya-onboarding-step-title {
    margin: 0;
    font-size: 16px;
    font-weight: 600;
}

.muya-onboarding-step-body {
    margin: 0 0 8px;
    color: #475569;
}

.muya-onboarding-step-tip {
    display: flex;
    gap: 8px;
    align-items: flex-start;
    padding: 10px 12px;
    margin-bottom: 10px;
    background: #fffbeb;
    border: 1px solid #fde68a;
    border-radius: 6px;
    font-size: 13px;
    color: #92400e;
}

.muya-onboarding-step-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.muya-onboarding-banner {
    position: relative;
    padding: 18px 44px 18px 20px;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 14px;
}

.muya-onboarding-banner-copy {
    margin: 0;
    line-height: 1.55;
    max-width: 100%;
}

.muya-onboarding-banner-copy .fa {
    margin-right: 8px;
}

.muya-onboarding-banner .btn {
    margin: 0;
}

.muya-onboarding-banner-dismiss {
    position: absolute;
    top: 8px;
    right: 12px;
    opacity: 0.6;
}

.muya-onboarding-checklist-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
}

.muya-onboarding-checklist-title {
    margin: 0;
    font-size: 15px;
}

.muya-onboarding-checklist-items {
    list-style: none;
    margin: 10px 0;
    padding: 0;
}

.muya-onboarding-checklist-items li {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 4px 0;
}

.muya-onboarding-checklist-items li.is-done {
    color: #64748b;
}

.muya-onboarding-inline-link a,
.muya-onboarding-hero-link {
    font-weight: 600;
    white-space: nowrap;
}

.muya-onboarding-footer {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
}

/* Per-service onboarding guides */
.muya-svc-onboard-banner summary {
    cursor: pointer;
    font-weight: 600;
    padding: 12px 14px;
    list-style: none;
    display: grid;
    grid-template-columns: auto 1fr auto;
    align-items: center;
    gap: 6px 10px;
}

.muya-svc-onboard-banner summary::after {
    content: "+";
    grid-column: 3;
    grid-row: 1 / span 2;
    align-self: center;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 22px;
    height: 22px;
    border-radius: 50%;
    background: #e2e8f0;
    color: #334155;
    font-size: 15px;
    font-weight: 700;
    line-height: 1;
}

.muya-svc-onboard-banner[open] > summary::after {
    content: "−";
}

.muya-svc-onboard-banner summary > .fa {
    grid-row: 1 / span 2;
    align-self: start;
    margin-top: 2px;
    color: #2563eb;
}

.muya-svc-onboard-banner-meta {
    grid-column: 2;
    font-size: 12px;
    font-weight: 500;
    color: #64748b !important;
    line-height: 1.4;
}

.muya-svc-onboard-banner summary::-webkit-details-marker {
    display: none;
}

.muya-svc-onboard-banner-body {
    padding: 0 14px 14px;
    border-top: 1px solid #e2e8f0;
}

.muya-svc-onboard-preview-steps {
    list-style: none;
    margin: 12px 0;
    padding: 0;
}

.muya-svc-onboard-preview-steps li {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 4px 0;
    color: #475569;
}

.muya-svc-onboard-prereq-list {
    margin: 8px 0 0;
    padding-left: 20px;
}

.muya-svc-onboard-hub-card .muya-client-card-title {
    font-size: 16px;
}

.muya-svc-onboard-hub-excerpt {
    min-height: 3.2em;
    margin-bottom: 12px;
}

.muya-svc-onboard-hub-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.muya-svc-onboard-paid-badge {
    font-size: 10px;
    font-weight: 600;
    vertical-align: middle;
    margin-left: 6px;
}

.muya-svc-onboard-issue {
    padding: 10px 0;
    border-bottom: 1px solid #e2e8f0;
}

.muya-svc-onboard-issue:last-child {
    border-bottom: 0;
}

.muya-svc-onboard-post-title {
    margin: 0 0 8px;
    font-size: 15px;
}

/* ============================================================
   Frontend UI visibility (client portal + geodetic tools)
   ============================================================ */
body.customers,
body[class*="clients"] {
    overflow-x: clip;
}

.muya-cors-client-shell,
.muya-portal-page {
    max-width: 100%;
    min-width: 0;
}

.muya-map-page {
    overflow-x: clip;
    --muya-map-shell-min-height: min(108vh, 1280px);
    --muya-map-shell-min-height-md: min(76vh, 760px);
}

.muya-map-page .muya-map-canvas-shell,
.muya-map-page .muya-map-stage,
.muya-map-page #map.muya-map-canvas,
.muya-map-page #map.sidebar-map {
    min-height: var(--muya-map-shell-min-height);
}

.muya-map-layout,
.muya-map-panel,
.muya-geodetic-reference-map-wrap,
.muya-geodetic-location-assistant,
.muya-geodetic-panel-content {
    min-width: 0;
    max-width: 100%;
}

.muya-map-canvas-shell {
    max-width: 100%;
}

.muya-cors-client-shell .form-control,
.muya-cors-client-shell select.form-control,
.muya-cors-client-shell textarea.form-control,
.muya-svc-workspace .form-control,
.muya-svc-workspace select.form-control,
.muya-geodetic-location-coords .form-control {
    max-width: 100%;
    box-sizing: border-box;
}

.muya-cors-client-shell .bootstrap-select {
    display: block;
    max-width: 100%;
}

.muya-cors-client-shell .bootstrap-select > .dropdown-toggle {
    max-width: 100%;
}

#geodetic-location-result[hidden],
.muya-map-nearby-section[hidden] {
    display: none !important;
}

.muya-geodetic-location-result.alert-info {
    color: #0f172a;
}

.muya-geodetic-location-result.alert-info .muya-geodetic-location-result-title,
.muya-geodetic-location-result.alert-info .muya-geodetic-location-result-summary,
.muya-geodetic-location-result.alert-info .muya-geodetic-location-result-list {
    color: inherit;
}

.muya-geodetic-location-result .text-muted,
.muya-cors-client-shell .alert .text-muted {
    color: #475569 !important;
}

.muya-geodetic-reference-map-hint {
    margin: 0 0 12px;
    line-height: 1.45;
}

@media (max-width: 767px) {
    .muya-client-chip {
        font-size: 11px;
        padding: 7px 10px;
    }

    .muya-cors-client-shell .form-horizontal .control-label {
        text-align: left;
        padding-bottom: 4px;
    }

    .muya-geodetic-location-coords {
        flex-direction: column;
        align-items: stretch;
    }

    .muya-geodetic-location-coords .form-control {
        width: 100%;
    }
}

/* ============================================================
   Homepage Android app section + floating service-page promo
   ============================================================ */
.muya-home-android-app {
    padding: 48px 0 56px;
}

.muya-home-android-app-inner {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 24px 32px;
    padding: 28px 32px;
    border-radius: 20px;
    background: linear-gradient(135deg, #eff6ff 0%, #f8fafc 52%, #ecfdf5 100%);
    border: 1px solid #dbeafe;
    box-shadow: 0 16px 36px rgba(15, 23, 42, 0.08);
}

.muya-home-android-app-title {
    margin: 0 0 10px;
    font-size: clamp(1.35rem, 2.2vw, 1.75rem);
    font-weight: 800;
    color: #0f172a;
    letter-spacing: -0.02em;
}

.muya-home-android-app-text {
    margin: 0 0 10px;
    max-width: 58ch;
    color: #334155;
    line-height: 1.6;
}

.muya-home-android-app-tip {
    max-width: 58ch;
}

.muya-home-android-app-action {
    flex: 0 0 auto;
}

.muya-home-android-app-badge {
    height: 56px;
}

.muya-android-app-promo {
    position: fixed;
    right: 20px;
    bottom: 20px;
    z-index: 1040;
    width: min(320px, calc(100vw - 32px));
    padding: 16px 16px 14px;
    border-radius: 16px;
    border: 1px solid #dbeafe;
    background: #fff;
    box-shadow: 0 18px 42px rgba(15, 23, 42, 0.18);
}

.muya-android-app-promo-dismiss {
    position: absolute;
    top: 8px;
    right: 10px;
    border: 0;
    background: transparent;
    color: #64748b;
    font-size: 22px;
    line-height: 1;
    padding: 0;
    cursor: pointer;
}

.muya-android-app-promo-dismiss:hover,
.muya-android-app-promo-dismiss:focus-visible {
    color: #0f172a;
}

.muya-android-app-promo-body {
    display: flex;
    align-items: flex-start;
    gap: 12px;
    padding-right: 18px;
    margin-bottom: 12px;
}

.muya-android-app-promo-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 40px;
    height: 40px;
    border-radius: 12px;
    background: linear-gradient(135deg, #15803d 0%, #22c55e 100%);
    color: #fff;
    flex-shrink: 0;
    font-size: 22px;
}

.muya-android-app-promo-title {
    display: block;
    margin: 0 0 4px;
    font-size: 14px;
    font-weight: 700;
    color: #0f172a;
}

.muya-android-app-promo-text {
    margin: 0;
    font-size: 12px;
    line-height: 1.45;
    color: #64748b;
}

.muya-android-app-promo-cta {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    width: 100%;
    border-radius: 10px;
}

@media (max-width: 767px) {
    .muya-home-android-app-inner {
        padding: 22px 20px;
    }

    .muya-home-android-app-action {
        width: 100%;
    }

    .muya-android-app-promo {
        right: 12px;
        bottom: 12px;
        left: 12px;
        width: auto;
    }
}

/* ── Skip navigation link (accessibility) ────────────────────────────────── */
.muya-skip-to-map {
    position: absolute;
    top: -100px;
    left: 12px;
    z-index: 9999;
    background: var(--muya-color-primary, #2563eb);
    color: #fff;
    padding: 8px 16px;
    border-radius: 0 0 6px 6px;
    font-size: 14px;
    font-weight: 600;
    text-decoration: none;
    transition: top 0.1s ease;
}

.muya-skip-to-map:focus {
    top: 0;
    outline: 3px solid #fff;
    outline-offset: 2px;
    color: #fff;
}

/* ── Onboarding panel AJAX fade ───────────────────────────────────────────── */
#muya-onboarding-panel {
    transition: opacity 0.15s ease, transform 0.2s, box-shadow 0.2s, border-color 0.2s;
}

/* ── Wallet balance card — visually prominent "hero" balance display ──────── */
.muya-wallet-balance-card {
    background: linear-gradient(135deg, var(--muya-color-hero-from) 0%, var(--muya-color-hero-to) 100%);
    color: #fff;
    border-radius: var(--muya-radius-lg);
    padding: 28px 24px;
    text-align: center;
    box-shadow: var(--muya-shadow-hero);
    border: none;
    margin-bottom: 22px;
}

.muya-wallet-balance-label {
    font-size: 12px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    opacity: 0.8;
    margin: 0 0 8px;
    color: #fff;
}

.muya-wallet-balance-amount {
    font-size: 42px;
    font-weight: 800;
    line-height: 1;
    color: #fff;
    margin-bottom: 10px;
    letter-spacing: -0.03em;
}

.muya-wallet-balance-note {
    opacity: 0.75;
    font-size: 12px;
    color: #fff;
    margin: 0;
}

/* ── Wallet payment preference (auto-pay vs ask-first) radio cards ───────── */
.muya-wallet-preference-options {
    display: flex;
    flex-direction: column;
    gap: 10px;
    margin-bottom: 16px;
}

.muya-wallet-preference-option {
    display: grid;
    grid-template-columns: auto 1fr;
    grid-template-areas: "radio title" "radio desc";
    column-gap: 10px;
    align-items: start;
    padding: 12px 14px;
    border: 1px solid #e2e8f0;
    border-radius: 10px;
    background: #f8fafc;
    cursor: pointer;
    font-weight: 400;
    margin: 0;
    transition: background .14s ease, border-color .14s ease;
}

.muya-wallet-preference-option:hover {
    background: #eff6ff;
    border-color: #bfdbfe;
}

.muya-wallet-preference-option input[type="radio"] {
    grid-area: radio;
    margin: 3px 0 0;
}

.muya-wallet-preference-option-title {
    grid-area: title;
    font-weight: 700;
    color: #1e293b;
}

.muya-wallet-preference-option-desc {
    grid-area: desc;
    color: #64748b;
    font-size: 0.88rem;
}

.muya-wallet-preference-option:has(input:checked) {
    background: #eff6ff;
    border-color: #2563eb;
}

/* RTK Corrections duration picker (#duration) — shows every option in one
   compacted list instead of a short internally-scrollable one (unlike
   other selects on this page, its option count is always small and
   bounded — max 12, for Months — so there's no risk of pushing past the
   viewport the way long lists like Flex bundles or CORS station lists
   can). The max-height override itself is applied inline by JS on
   shown.bs.select (see rtk_corrections.php); this just makes each row
   shorter so the full list stays compact. */
.muya-rtk-duration-full-list {
    overflow-y: visible !important;
}
.muya-rtk-duration-full-list li > a {
    padding: 6px 14px !important;
    font-size: 13px;
}
