:root {
    --gx-mobile-deep: #063d32;
    --gx-mobile-deep-2: #092f28;
    --gx-mobile-green: #00866c;
    --gx-mobile-green-soft: #e6f5ef;
    --gx-mobile-olive: #7d9448;
    --gx-mobile-ink: #1c2925;
    --gx-mobile-muted: #6d7b75;
    --gx-mobile-line: #d8e3da;
    --gx-mobile-bg: #edf3ee;
    --gx-mobile-card: #ffffff;
    --gx-mobile-warning: #b16a00;
    --gx-mobile-warning-bg: #fff5df;
    --gx-mobile-danger: #b52e27;
    --gx-mobile-danger-bg: #fff0ee;
    --gx-mobile-info: #245b7a;
    --gx-mobile-info-bg: #eaf3f8;
    --gx-mobile-shadow: 0 18px 44px rgba(18, 55, 43, .12);
}

* {
    box-sizing: border-box;
}

html {
    background: var(--gx-mobile-bg);
}

body.gx-mobile-body {
    min-height: 100vh;
    margin: 0;
    color: var(--gx-mobile-ink);
    background:
        radial-gradient(circle at 14% 4%, rgba(0, 134, 108, .13), transparent 28%),
        radial-gradient(circle at 90% 96%, rgba(125, 148, 72, .11), transparent 27%),
        var(--gx-mobile-bg);
    font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}

button,
input,
select,
textarea {
    font: inherit;
}

button,
a {
    -webkit-tap-highlight-color: transparent;
}

.gx-mobile-shell {
    width: min(520px, 100%);
    min-height: 100vh;
    margin: 0 auto;
    position: relative;
    overflow-x: hidden;
    background: #f7faf7;
    box-shadow: 0 0 70px rgba(18, 55, 43, .10);
}

.gx-mobile-topbar {
    position: sticky;
    top: 0;
    z-index: 80;
    min-height: 72px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: max(12px, env(safe-area-inset-top)) 18px 12px;
    color: #fff;
    background:
        linear-gradient(145deg, var(--gx-mobile-deep), var(--gx-mobile-deep-2));
    box-shadow: 0 8px 24px rgba(6, 61, 50, .17);
}

.gx-mobile-brand {
    display: flex;
    align-items: center;
    gap: 8px;
    min-width: 0;
}

.gx-mobile-brand-mark {
    width: 46px;
    height: 46px;
    flex: 0 0 46px;
    display: grid;
    place-items: center;
    overflow: hidden;
    padding: 1px;
    border-radius: 13px;
    background: rgba(255, 255, 255, .96);
}

.gx-mobile-brand-mark img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: contain;
    object-position: center;
}

.gx-mobile-brand-copy {
    min-width: 0;
    display: grid;
    gap: 2px;
}

.gx-mobile-brand-copy strong,
.gx-mobile-brand-copy span {
    overflow: hidden;
    white-space: nowrap;
    text-overflow: ellipsis;
}

.gx-mobile-brand-copy strong {
    font-size: .92rem;
}

.gx-mobile-brand-copy span {
    color: rgba(255, 255, 255, .68);
    font-size: .72rem;
}

.gx-mobile-top-actions {
    display: flex;
    align-items: center;
    gap: 8px;
}

.gx-mobile-icon-button {
    width: 42px;
    height: 42px;
    display: grid;
    place-items: center;
    border: 1px solid rgba(255, 255, 255, .18);
    border-radius: 13px;
    color: #fff;
    background: rgba(255, 255, 255, .08);
    cursor: pointer;
}

.gx-mobile-icon-button svg {
    width: 21px;
    height: 21px;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.8;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.gx-mobile-content {
    padding: 18px 18px calc(104px + env(safe-area-inset-bottom));
}

.gx-mobile-screen[hidden] {
    display: none !important;
}

.gx-mobile-hero {
    position: relative;
    overflow: hidden;
    display: grid;
    gap: 16px;
    margin-bottom: 16px;
    padding: 22px;
    border-radius: 24px;
    color: #fff;
    background:
        radial-gradient(circle at 82% 10%, rgba(191, 219, 127, .34), transparent 28%),
        linear-gradient(145deg, #0b5d4c, #073b31 68%, #062e27);
    box-shadow: var(--gx-mobile-shadow);
}

.gx-mobile-hero::after {
    content: "";
    position: absolute;
    right: -50px;
    bottom: -72px;
    z-index: 0;
    width: 190px;
    height: 190px;
    border: 1px solid rgba(255, 255, 255, .11);
    border-radius: 50%;
    pointer-events: none;
}

.gx-mobile-hero > * {
    position: relative;
    z-index: 1;
}

.gx-mobile-eyebrow {
    position: relative;
    z-index: 1;
    color: #c4df8c;
    font-size: .69rem;
    font-weight: 900;
    letter-spacing: .16em;
}

.gx-mobile-hero h1,
.gx-mobile-page-title h1 {
    margin: 0;
    line-height: 1.08;
}

.gx-mobile-hero h1 {
    position: relative;
    z-index: 1;
    font-size: clamp(1.85rem, 7vw, 2.45rem);
}

.gx-mobile-hero p {
    position: relative;
    z-index: 1;
    margin: 0;
    color: rgba(255, 255, 255, .74);
    line-height: 1.55;
}

.gx-mobile-property-switcher {
    position: relative;
    z-index: 1;
    width: 100%;
    display: grid;
    grid-template-columns: 42px minmax(0, 1fr) 24px;
    align-items: center;
    gap: 10px;
    padding: 12px;
    border: 1px solid rgba(255, 255, 255, .16);
    border-radius: 16px;
    color: #fff;
    background: rgba(255, 255, 255, .08);
    text-align: left;
    cursor: pointer;
}

.gx-mobile-property-switcher > span:first-child {
    width: 42px;
    height: 42px;
    display: grid;
    place-items: center;
    border-radius: 12px;
    color: var(--gx-mobile-deep);
    background: #eaf6ef;
}

.gx-mobile-property-switcher svg {
    width: 21px;
    height: 21px;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.8;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.gx-mobile-property-switcher div {
    min-width: 0;
    display: grid;
    gap: 3px;
}

.gx-mobile-property-switcher strong,
.gx-mobile-property-switcher small {
    overflow: hidden;
    white-space: nowrap;
    text-overflow: ellipsis;
}

.gx-mobile-property-switcher small {
    color: rgba(255, 255, 255, .64);
}

.gx-mobile-status-row {
    position: relative;
    z-index: 1;
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.gx-mobile-pill {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 7px 10px;
    border-radius: 999px;
    font-size: .71rem;
    font-weight: 850;
}

.gx-mobile-pill.success {
    color: #dff8ea;
    background: rgba(65, 188, 127, .20);
}

.gx-mobile-pill.neutral {
    color: rgba(255, 255, 255, .80);
    background: rgba(255, 255, 255, .10);
}

.gx-mobile-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
}

.gx-mobile-action-card {
    min-height: 158px;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 12px;
    padding: 18px;
    border: 1px solid var(--gx-mobile-line);
    border-radius: 20px;
    color: var(--gx-mobile-ink);
    background: var(--gx-mobile-card);
    box-shadow: 0 10px 28px rgba(18, 55, 43, .06);
    text-align: left;
    text-decoration: none;
    cursor: pointer;
}

.gx-mobile-action-card.primary {
    color: #fff;
    border-color: transparent;
    background: linear-gradient(145deg, #00866c, #056450);
}

.gx-mobile-action-icon {
    width: 48px;
    height: 48px;
    display: grid;
    place-items: center;
    border-radius: 15px;
    color: var(--gx-mobile-green);
    background: var(--gx-mobile-green-soft);
}

.gx-mobile-action-card.primary .gx-mobile-action-icon {
    color: #fff;
    background: rgba(255, 255, 255, .16);
}

.gx-mobile-action-icon svg {
    width: 24px;
    height: 24px;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.8;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.gx-mobile-action-card strong {
    margin-top: auto;
    font-size: .96rem;
}

.gx-mobile-action-card small {
    color: var(--gx-mobile-muted);
    line-height: 1.4;
}

.gx-mobile-action-card.primary small {
    color: rgba(255, 255, 255, .72);
}

.gx-mobile-section {
    margin-top: 18px;
}

.gx-mobile-section-heading {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 11px;
}

.gx-mobile-section-heading h2,
.gx-mobile-section-heading h3 {
    margin: 0;
}

.gx-mobile-section-heading h2 {
    font-size: 1.08rem;
}

.gx-mobile-section-heading h3 {
    font-size: .98rem;
}

.gx-mobile-text-button {
    border: 0;
    padding: 4px;
    color: var(--gx-mobile-green);
    background: transparent;
    font-weight: 850;
    cursor: pointer;
}

.gx-mobile-list {
    display: grid;
    gap: 10px;
}

.gx-mobile-list-card {
    display: grid;
    grid-template-columns: 46px minmax(0, 1fr) auto;
    align-items: center;
    gap: 12px;
    padding: 14px;
    border: 1px solid var(--gx-mobile-line);
    border-radius: 17px;
    background: #fff;
}

.gx-mobile-list-card.locked {
    opacity: .58;
    filter: grayscale(.45);
}

.gx-mobile-list-icon {
    width: 46px;
    height: 46px;
    display: grid;
    place-items: center;
    border-radius: 14px;
    color: var(--gx-mobile-green);
    background: var(--gx-mobile-green-soft);
}

.gx-mobile-list-icon svg {
    width: 22px;
    height: 22px;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.8;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.gx-mobile-list-card > div:nth-child(2) {
    min-width: 0;
    display: grid;
    gap: 4px;
}

.gx-mobile-list-card strong,
.gx-mobile-list-card span,
.gx-mobile-list-card small {
    overflow: hidden;
    text-overflow: ellipsis;
}

.gx-mobile-list-card span,
.gx-mobile-list-card small {
    color: var(--gx-mobile-muted);
}

.gx-mobile-list-card small {
    font-size: .73rem;
}

.gx-mobile-status-badge {
    width: fit-content;
    padding: 6px 9px;
    border-radius: 999px;
    font-size: .67rem;
    font-weight: 900;
    white-space: nowrap;
}

.gx-mobile-status-badge.active,
.gx-mobile-status-badge.confirmed,
.gx-mobile-status-badge.valid {
    color: #087352;
    background: #e3f6ed;
}

.gx-mobile-status-badge.review,
.gx-mobile-status-badge.awaiting_payment,
.gx-mobile-status-badge.payment_review {
    color: #9a5c00;
    background: #fff3d8;
}

.gx-mobile-status-badge.cancelled,
.gx-mobile-status-badge.expired,
.gx-mobile-status-badge.invalid {
    color: #a92d26;
    background: #ffefed;
}

.gx-mobile-page-title {
    display: flex;
    align-items: flex-start;
    gap: 12px;
    margin-bottom: 18px;
}

.gx-mobile-back {
    width: 42px;
    height: 42px;
    flex: 0 0 auto;
    display: grid;
    place-items: center;
    border: 1px solid var(--gx-mobile-line);
    border-radius: 13px;
    color: var(--gx-mobile-deep);
    background: #fff;
    cursor: pointer;
}

.gx-native-android .gx-mobile-back {
    display: none;
}

.gx-mobile-back svg {
    width: 21px;
    height: 21px;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.8;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.gx-mobile-page-title > div {
    min-width: 0;
    display: grid;
    gap: 5px;
}

.gx-mobile-page-title h1 {
    font-size: 1.55rem;
}

.gx-mobile-page-title p {
    margin: 0;
    color: var(--gx-mobile-muted);
    line-height: 1.45;
}

.gx-mobile-card {
    padding: 18px;
    border: 1px solid var(--gx-mobile-line);
    border-radius: 20px;
    background: #fff;
    box-shadow: 0 10px 28px rgba(18, 55, 43, .055);
}

.gx-mobile-card + .gx-mobile-card {
    margin-top: 12px;
}

.gx-mobile-form {
    display: grid;
    gap: 15px;
}

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

.gx-mobile-form label {
    min-width: 0;
    display: grid;
    gap: 7px;
    color: #263d50;
    font-size: .82rem;
    font-weight: 800;
}

.gx-mobile-form label.full {
    grid-column: 1 / -1;
}

.gx-mobile-form input,
.gx-mobile-form select,
.gx-mobile-form textarea {
    width: 100%;
    min-height: 48px;
    padding: 11px 13px;
    border: 1px solid #cbd8cd;
    border-radius: 12px;
    color: var(--gx-mobile-ink);
    background: #fff;
}

.gx-mobile-locked-field input[readonly] {
    color: #52615b;
    border-color: #d3dcd6;
    background: #edf1ee;
    box-shadow: inset 0 0 0 1px rgba(49, 75, 65, .03);
    cursor: not-allowed;
    opacity: 1;
}

.gx-mobile-locked-field input[readonly]:focus {
    border-color: #d3dcd6;
    outline: none;
}

.gx-mobile-form textarea {
    min-height: 92px;
    resize: vertical;
}

.gx-mobile-form input:focus,
.gx-mobile-form select:focus,
.gx-mobile-form textarea:focus {
    border-color: var(--gx-mobile-green);
    outline: 3px solid rgba(0, 134, 108, .10);
}

.gx-mobile-helper {
    margin: -2px 0 0;
    color: var(--gx-mobile-muted);
    font-size: .74rem;
    line-height: 1.45;
}

.gx-mobile-primary-button,
.gx-mobile-secondary-button,
.gx-mobile-danger-button {
    min-height: 50px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 9px;
    padding: 12px 17px;
    border-radius: 13px;
    font-weight: 900;
    text-decoration: none;
    cursor: pointer;
}

.gx-mobile-primary-button {
    border: 0;
    color: #fff;
    background: linear-gradient(135deg, var(--gx-mobile-green), var(--gx-mobile-deep));
}

.gx-mobile-secondary-button {
    border: 1px solid var(--gx-mobile-line);
    color: var(--gx-mobile-deep);
    background: #fff;
}

.gx-mobile-danger-button {
    border: 1px solid #efb2ad;
    color: var(--gx-mobile-danger);
    background: var(--gx-mobile-danger-bg);
}

.gx-mobile-primary-button svg,
.gx-mobile-secondary-button svg,
.gx-mobile-danger-button svg {
    width: 20px;
    height: 20px;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.9;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.gx-mobile-button-row {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
}

.gx-mobile-button-row .full {
    grid-column: 1 / -1;
}

.gx-mobile-message {
    display: grid;
    gap: 8px;
    padding: 15px;
    border-radius: 15px;
    line-height: 1.5;
}

.gx-mobile-message[hidden] {
    display: none !important;
}

.gx-mobile-message.success {
    color: #0c6d50;
    background: #e6f7ee;
    border: 1px solid #a6dec5;
}

.gx-mobile-message.info {
    color: var(--gx-mobile-info);
    background: var(--gx-mobile-info-bg);
    border: 1px solid #bdd7e5;
}

.gx-mobile-message.warning {
    color: var(--gx-mobile-warning);
    background: var(--gx-mobile-warning-bg);
    border: 1px solid #ecd095;
}

.gx-mobile-message.danger {
    color: var(--gx-mobile-danger);
    background: var(--gx-mobile-danger-bg);
    border: 1px solid #efb2ad;
}

.gx-mobile-qr-card {
    display: grid;
    justify-items: center;
    gap: 16px;
    padding: 22px;
    text-align: center;
}

.gx-mobile-qr-box {
    width: min(280px, 100%);
    aspect-ratio: 1;
    display: grid;
    place-items: center;
    overflow: hidden;
    padding: 10px;
    border: 1px solid var(--gx-mobile-line);
    border-radius: 18px;
    background: #fff;
    box-shadow: 0 14px 32px rgba(18, 55, 43, .09);
}

.gx-mobile-qr-box svg {
    width: 100%;
    height: 100%;
}

.gx-mobile-detail-list {
    width: 100%;
    display: grid;
    gap: 0;
    border: 1px solid var(--gx-mobile-line);
    border-radius: 15px;
    overflow: hidden;
    text-align: left;
}

.gx-mobile-detail-row {
    display: grid;
    grid-template-columns: 1fr 1.25fr;
    gap: 12px;
    padding: 12px 14px;
    background: #fff;
}

.gx-mobile-detail-row + .gx-mobile-detail-row {
    border-top: 1px solid var(--gx-mobile-line);
}

.gx-mobile-detail-row span {
    color: var(--gx-mobile-muted);
    font-size: .77rem;
}

.gx-mobile-detail-row strong {
    text-align: right;
    font-size: .82rem;
}

.gx-mobile-bottom-nav {
    position: fixed;
    left: 50%;
    bottom: 0;
    z-index: 90;
    width: min(520px, 100%);
    min-height: 76px;
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    padding: 8px 10px max(8px, env(safe-area-inset-bottom));
    transform: translateX(-50%);
    border-top: 1px solid rgba(18, 55, 43, .11);
    background: rgba(255, 255, 255, .96);
    backdrop-filter: blur(16px);
    box-shadow: 0 -12px 30px rgba(18, 55, 43, .08);
}

.gx-mobile-nav-item {
    display: grid;
    place-items: center;
    align-content: center;
    gap: 4px;
    text-decoration: none;
    border: 0;
    border-radius: 12px;
    color: #77847e;
    background: transparent;
    font-size: .67rem;
    font-weight: 800;
    cursor: pointer;
}

.gx-mobile-nav-item.active {
    color: var(--gx-mobile-green);
    background: #edf8f3;
}

.gx-mobile-nav-item svg {
    width: 21px;
    height: 21px;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.8;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.gx-mobile-sheet-backdrop {
    position: fixed;
    inset: 0;
    z-index: 120;
    display: grid;
    align-items: end;
    background: rgba(5, 27, 23, .52);
    backdrop-filter: blur(4px);
}

.gx-mobile-sheet-backdrop[hidden] {
    display: none;
}

.gx-mobile-sheet {
    width: min(520px, 100%);
    max-height: 82vh;
    margin: 0 auto;
    overflow-y: auto;
    padding: 12px 18px calc(24px + env(safe-area-inset-bottom));
    border-radius: 24px 24px 0 0;
    background: #fff;
    box-shadow: 0 -22px 70px rgba(5, 27, 23, .24);
}

.gx-mobile-sheet-handle {
    width: 54px;
    height: 5px;
    margin: 0 auto 18px;
    border-radius: 999px;
    background: #d7e0da;
}

.gx-mobile-sheet h2 {
    margin: 0 0 14px;
}

.gx-mobile-property-option {
    width: 100%;
    display: grid;
    grid-template-columns: 46px minmax(0, 1fr) auto;
    align-items: center;
    gap: 12px;
    padding: 13px;
    border: 1px solid var(--gx-mobile-line);
    border-radius: 16px;
    background: #fff;
    text-align: left;
    cursor: pointer;
}

.gx-mobile-property-option + .gx-mobile-property-option {
    margin-top: 9px;
}

.gx-mobile-property-option.locked {
    opacity: .58;
}

.gx-mobile-property-option > span:first-child {
    width: 46px;
    height: 46px;
    display: grid;
    place-items: center;
    border-radius: 14px;
    color: var(--gx-mobile-green);
    background: var(--gx-mobile-green-soft);
}

.gx-mobile-property-option > span:first-child svg {
    width: 22px;
    height: 22px;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.8;
}

.gx-mobile-property-option div {
    min-width: 0;
    display: grid;
    gap: 3px;
}

.gx-mobile-property-option small {
    color: var(--gx-mobile-muted);
}

.gx-mobile-scan-card {
    position: relative;
    overflow: hidden;
    min-height: 360px;
    display: grid;
    place-items: center;
    border-radius: 24px;
    color: #fff;
    background:
        radial-gradient(circle at 50% 50%, rgba(0, 134, 108, .22), transparent 36%),
        linear-gradient(145deg, #102d27, #051c18);
}

.gx-mobile-scan-frame {
    position: relative;
    width: min(320px, 82vw);
    aspect-ratio: 1.48 / 1;
    display: grid;
    place-items: center;
}

.gx-mobile-scan-frame::before,
.gx-mobile-scan-frame::after,
.gx-mobile-scan-corners::before,
.gx-mobile-scan-corners::after {
    content: "";
    position: absolute;
    width: 58px;
    height: 58px;
    border-color: #72e3bc;
    border-style: solid;
}

.gx-mobile-scan-frame::before {
    top: 0;
    left: 0;
    border-width: 4px 0 0 4px;
    border-radius: 18px 0 0 0;
}

.gx-mobile-scan-frame::after {
    top: 0;
    right: 0;
    border-width: 4px 4px 0 0;
    border-radius: 0 18px 0 0;
}

.gx-mobile-scan-corners::before {
    left: 0;
    bottom: 0;
    border-width: 0 0 4px 4px;
    border-radius: 0 0 0 18px;
}

.gx-mobile-scan-corners::after {
    right: 0;
    bottom: 0;
    border-width: 0 4px 4px 0;
    border-radius: 0 0 18px 0;
}

.gx-mobile-scan-line {
    position: absolute;
    left: 8%;
    right: 8%;
    top: 50%;
    height: 2px;
    border-radius: 999px;
    background: linear-gradient(90deg, transparent, #72e3bc, transparent);
    box-shadow: 0 0 20px #72e3bc;
    animation: gxScanLine 2.2s ease-in-out infinite;
}

@keyframes gxScanLine {
    0%, 100% { transform: translateY(-62px); opacity: .35; }
    50% { transform: translateY(62px); opacity: 1; }
}

.gx-mobile-scan-copy {
    position: absolute;
    left: 18px;
    right: 18px;
    bottom: 22px;
    display: grid;
    gap: 5px;
    text-align: center;
}

.gx-mobile-scan-copy span {
    color: rgba(255, 255, 255, .66);
    font-size: .78rem;
}

.gx-mobile-result-card {
    overflow: hidden;
    padding: 0;
}

.gx-mobile-result-header {
    display: grid;
    justify-items: center;
    gap: 9px;
    padding: 24px 18px;
    text-align: center;
}

.gx-mobile-result-header.valid {
    color: #087352;
    background: #e6f7ee;
}

.gx-mobile-result-header.invalid {
    color: #a92d26;
    background: #ffefed;
}

.gx-mobile-result-header.warning {
    color: #995d00;
    background: #fff3d8;
}

.gx-mobile-result-icon {
    width: 62px;
    height: 62px;
    display: grid;
    place-items: center;
    border-radius: 50%;
    background: rgba(255, 255, 255, .74);
}

.gx-mobile-result-icon svg {
    width: 32px;
    height: 32px;
    fill: none;
    stroke: currentColor;
    stroke-width: 2;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.gx-mobile-result-header h2,
.gx-mobile-result-header p {
    margin: 0;
}

.gx-mobile-result-body {
    padding: 18px;
}

.gx-mobile-gate-card {
    display: grid;
    grid-template-columns: 48px minmax(0, 1fr) auto;
    align-items: center;
    gap: 12px;
    padding: 14px;
    border: 1px solid var(--gx-mobile-line);
    border-radius: 17px;
    background: #fff;
    cursor: pointer;
}

.gx-mobile-gate-card + .gx-mobile-gate-card {
    margin-top: 10px;
}

.gx-mobile-gate-card.selected {
    border-color: #70bba4;
    box-shadow: 0 0 0 3px rgba(0, 134, 108, .10);
}

.gx-mobile-gate-icon {
    width: 48px;
    height: 48px;
    display: grid;
    place-items: center;
    border-radius: 14px;
    color: #245b7a;
    background: #eaf3f8;
}

.gx-mobile-gate-card div {
    display: grid;
    gap: 4px;
}

.gx-mobile-gate-card small {
    color: var(--gx-mobile-muted);
}

.gx-mobile-area-card {
    overflow: hidden;
    border: 1px solid var(--gx-mobile-line);
    border-radius: 19px;
    background: #fff;
}

.gx-mobile-area-card + .gx-mobile-area-card {
    margin-top: 12px;
}

.gx-mobile-area-cover {
    min-height: 110px;
    display: flex;
    align-items: flex-end;
    padding: 16px;
    color: #fff;
    background:
        radial-gradient(circle at 82% 18%, rgba(255, 255, 255, .20), transparent 28%),
        linear-gradient(145deg, #0d725e, #06483c);
}

.gx-mobile-area-cover.pool {
    background:
        radial-gradient(circle at 82% 18%, rgba(255, 255, 255, .22), transparent 28%),
        linear-gradient(145deg, #177f91, #09516b);
}

.gx-mobile-area-cover h3 {
    margin: 0;
    font-size: 1.24rem;
}

.gx-mobile-area-body {
    display: grid;
    gap: 13px;
    padding: 15px;
}

.gx-mobile-area-meta {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.gx-mobile-area-meta span {
    padding: 6px 9px;
    border-radius: 999px;
    color: #5e6c66;
    background: #f0f5f1;
    font-size: .69rem;
    font-weight: 800;
}

.gx-mobile-capacity-note {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    padding: 13px;
    border-radius: 14px;
    color: #665424;
    background: #fff8e8;
    border: 1px solid #ead7a8;
    font-size: .79rem;
    line-height: 1.45;
}

.gx-mobile-capacity-note svg {
    width: 20px;
    height: 20px;
    flex: 0 0 auto;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.8;
}

.gx-mobile-progress {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 7px;
    margin-bottom: 18px;
}

.gx-mobile-progress span {
    height: 6px;
    border-radius: 999px;
    background: #dfe7e1;
}

.gx-mobile-progress span.active {
    background: var(--gx-mobile-green);
}

.gx-mobile-preview-toolbar {
    position: fixed;
    top: 14px;
    right: 14px;
    z-index: 200;
    display: flex;
    align-items: center;
    gap: 7px;
    padding: 7px;
    border-radius: 14px;
    background: rgba(7, 48, 40, .92);
    box-shadow: 0 12px 32px rgba(5, 27, 23, .20);
}

.gx-mobile-preview-toolbar a,
.gx-mobile-preview-toolbar button {
    min-height: 34px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 7px 10px;
    border: 0;
    border-radius: 9px;
    color: #fff;
    background: rgba(255, 255, 255, .10);
    font-size: .71rem;
    font-weight: 850;
    text-decoration: none;
    cursor: pointer;
}

.gx-mobile-preview-toolbar button.active {
    color: var(--gx-mobile-deep);
    background: #dff4e9;
}

.gx-mobile-toast {
    position: fixed;
    left: 50%;
    bottom: calc(92px + env(safe-area-inset-bottom));
    z-index: 180;
    width: min(440px, calc(100% - 32px));
    padding: 13px 15px;
    transform: translate(-50%, 18px);
    border-radius: 14px;
    color: #fff;
    background: rgba(8, 47, 39, .94);
    box-shadow: 0 16px 38px rgba(5, 27, 23, .23);
    opacity: 0;
    pointer-events: none;
    transition: opacity .18s ease, transform .18s ease;
    text-align: center;
    font-size: .82rem;
    font-weight: 800;
}

.gx-mobile-toast.show {
    opacity: 1;
    transform: translate(-50%, 0);
}

.gx-mobile-empty {
    display: grid;
    justify-items: center;
    gap: 10px;
    padding: 30px 18px;
    border: 1px dashed #cfdad1;
    border-radius: 18px;
    color: var(--gx-mobile-muted);
    text-align: center;
    background: #fafcf9;
}

.gx-mobile-empty strong {
    color: var(--gx-mobile-ink);
}

@media (max-width: 420px) {
    .gx-mobile-content {
        padding-left: 14px;
        padding-right: 14px;
    }

    .gx-mobile-grid,
    .gx-mobile-form-grid,
    .gx-mobile-button-row {
        grid-template-columns: 1fr;
    }

    .gx-mobile-action-card {
        min-height: 132px;
    }

    .gx-mobile-button-row .full,
    .gx-mobile-form label.full {
        grid-column: auto;
    }

    .gx-mobile-detail-row {
        grid-template-columns: 1fr;
        gap: 5px;
    }

    .gx-mobile-detail-row strong {
        text-align: left;
    }
}

@media (min-width: 700px) {
    body.gx-mobile-body {
        padding: 26px 0;
    }

    .gx-mobile-shell {
        min-height: calc(100vh - 52px);
        border: 1px solid rgba(18, 55, 43, .10);
        border-radius: 30px;
        overflow: hidden;
    }

    .gx-mobile-bottom-nav {
        bottom: 26px;
        border-radius: 0 0 30px 30px;
    }
}

/* =========================================================
   GUARDINEXA MOBILE V10
   Turnos, biometrÃ­a, rondas, incidencias y proveedores
   ========================================================= */

.gx-mobile-login-body {
    min-height: 100vh;
    background:
        radial-gradient(circle at 15% 10%, rgba(0, 134, 108, .18), transparent 35%),
        radial-gradient(circle at 90% 90%, rgba(133, 158, 77, .16), transparent 32%),
        #edf3ed;
}

.gx-mobile-login-shell {
    min-height: 100vh;
    display: grid;
    place-items: center;
    padding: 22px;
}

.gx-mobile-login-card {
    width: min(430px, 100%);
    display: grid;
    gap: 16px;
    padding: 28px;
    border: 1px solid var(--gx-mobile-line);
    border-radius: 24px;
    background: #fff;
    box-shadow: 0 28px 80px rgba(18, 55, 43, .16);
}

.gx-mobile-login-card > img {
    width: 78px;
    height: 78px;
    object-fit: contain;
    border-radius: 18px;
}

.gx-mobile-register-shell {
    padding: 0 0 30px;
    place-items: start center;
}

.gx-mobile-register-card {
    width: min(470px, 100%);
    gap: 0;
    overflow: hidden;
    padding: 0 0 28px;
    border: 0;
    border-radius: 0 0 28px 28px;
    background: #fff;
    box-shadow: 0 20px 54px rgba(5, 63, 50, .16);
}

.gx-register-brand-header {
    min-height: 260px;
    padding: 30px 24px 58px;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 10px;
    text-align: center;
    background:
        radial-gradient(
            circle at 50% 22%,
            rgba(24, 154, 124, .35),
            transparent 42%
        ),
        linear-gradient(
            155deg,
            #076754,
            #043f35
        );
}

.gx-register-brand-header img {
    width: 118px;
    height: 110px;
    padding: 8px;
    object-fit: contain;
    border: 1px solid rgba(255, 255, 255, .45);
    border-radius: 22px;
    background: #fff;
    box-shadow: 0 14px 30px rgba(0, 0, 0, .16);
}

.gx-register-brand-header div {
    display: grid;
    justify-items: center;
    gap: 5px;
}

.gx-register-brand-header strong {
    color: #fff;
    font-size: 1.45rem;
    letter-spacing: .075em;
}

.gx-register-brand-header span {
    max-width: 310px;
    color: rgba(255, 255, 255, .84);
    font-size: .82rem;
    line-height: 1.4;
}

.gx-mobile-register-card > .gx-mobile-eyebrow {
    position: relative;
    z-index: 1;
    margin: -30px 0 0;
    padding: 30px 28px 0;
    border-radius: 28px 28px 0 0;
    background: #fff;
}

.gx-mobile-register-card > h1 {
    margin: 12px 28px 20px;
    color: #094c40;
    font-size: 1.8rem;
    line-height: 1.15;
}

.gx-mobile-register-card > .gx-registration-entry,
.gx-mobile-register-card > .gx-mobile-invite-summary,
.gx-mobile-register-card > .gx-mobile-message,
.gx-mobile-register-card > p,
.gx-mobile-register-card > form,
.gx-mobile-register-card > .gx-mobile-login-link,
.gx-mobile-register-card > .gx-mobile-link-button {
    margin-left: 28px;
    margin-right: 28px;
}

.gx-mobile-register-card > .gx-mobile-login-link {
    display: block;
    margin-top: 20px;
    text-align: center;
}

.gx-mobile-login-card h1,
.gx-mobile-login-card p {
    margin: 0;
}

.gx-mobile-login-card p {
    color: var(--gx-mobile-muted);
    line-height: 1.6;
}

/* Terminal autorizada */

.gx-mobile-login-card:has(.gx-terminal-ready) {
    position: relative;
    gap: 0;
    padding: 20px;
}

.gx-mobile-login-card:has(.gx-terminal-ready) > img {
    width: 56px;
    height: 56px;
    border-radius: 14px;
}

.gx-mobile-login-card:has(.gx-terminal-ready)
    > .gx-mobile-eyebrow {
    position: absolute;
    top: 37px;
    left: 88px;
    color: #76994a;
    font-size: .62rem;
}

.gx-terminal-ready {
    display: grid;
    gap: 12px;
    margin-top: 15px;
}

.gx-terminal-ready svg {
    fill: none;
    stroke: currentColor;
    stroke-width: 1.8;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.gx-terminal-ready-header {
    display: grid;
    grid-template-columns:
        46px
        minmax(0, 1fr)
        auto;
    align-items: center;
    gap: 11px;
    padding: 14px;
    border-radius: 17px;
    color: #ffffff;
    background:
        radial-gradient(
            circle at 92% 10%,
            rgba(190, 220, 128, .20),
            transparent 35%
        ),
        linear-gradient(
            145deg,
            #08614f,
            #063d32
        );
}

.gx-terminal-face-icon {
    width: 46px;
    height: 46px;
    display: grid;
    place-items: center;
    border-radius: 13px;
    color: #075544;
    background: #ffffff;
}

.gx-terminal-face-icon svg {
    width: 25px;
    height: 25px;
}

.gx-terminal-ready-title {
    min-width: 0;
    display: grid;
    gap: 3px;
}

.gx-terminal-ready-title
    .gx-mobile-eyebrow {
    color: #c7df91;
    font-size: .57rem;
    letter-spacing: .13em;
}

.gx-terminal-ready-title h1 {
    overflow: hidden;
    margin: 0;
    color: #ffffff;
    font-size: 1.25rem;
    line-height: 1.08;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.gx-terminal-ready-title p {
    overflow: hidden;
    color: rgba(255, 255, 255, .76);
    font-size: .7rem;
    line-height: 1.3;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.gx-terminal-online {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    padding: 5px 8px;
    border: 1px solid rgba(255, 255, 255, .17);
    border-radius: 999px;
    color: #eafff5;
    background: rgba(255, 255, 255, .10);
    font-size: .62rem;
    font-weight: 850;
}

.gx-terminal-online i {
    width: 7px;
    height: 7px;
    border-radius: 50%;
    background: #c2df83;
    box-shadow:
        0 0 0 3px
        rgba(194, 223, 131, .14);
}

.gx-terminal-binding {
    display: grid;
    grid-template-columns: 34px minmax(0, 1fr);
    align-items: center;
    gap: 11px;
    padding: 12px 14px;
    border: 1px solid #b8ddcb;
    border-radius: 15px;
    color: #075844;
    background: #ecf8f2;
}

.gx-terminal-binding > svg {
    width: 26px;
    height: 26px;
}

.gx-terminal-binding > div {
    min-width: 0;
    display: grid;
    gap: 2px;
}

.gx-terminal-binding strong {
    font-size: .79rem;
}

.gx-terminal-binding span {
    color: #527068;
    font-size: .68rem;
    line-height: 1.35;
}

.gx-terminal-access-actions {
    display: grid;
    gap: 9px;
}

.gx-terminal-access-button {
    min-width: 0;
    display: grid;
    grid-template-columns:
        42px
        minmax(0, 1fr)
        18px;
    align-items: center;
    gap: 11px;
    min-height: 68px;
    padding: 11px 13px;
    border-radius: 15px;
    text-decoration: none;
}

.gx-terminal-guard-button {
    color: #ffffff;
    border: 1px solid #08715d;
    background:
        linear-gradient(
            135deg,
            #00866c,
            #056450
        );
    box-shadow:
        0 10px 24px
        rgba(0, 116, 93, .16);
}

.gx-terminal-account-button {
    color: #064d3f;
    border: 1px solid #d3ded7;
    background: #ffffff;
}

.gx-terminal-access-icon {
    width: 42px;
    height: 42px;
    display: grid;
    place-items: center;
    border-radius: 12px;
}

.gx-terminal-guard-button
    .gx-terminal-access-icon {
    color: #ffffff;
    background: rgba(255, 255, 255, .14);
}

.gx-terminal-account-button
    .gx-terminal-access-icon {
    color: #08705c;
    background: #e8f5f0;
}

.gx-terminal-access-icon svg {
    width: 23px;
    height: 23px;
}

.gx-terminal-access-copy {
    min-width: 0;
    display: grid;
    gap: 2px;
}

.gx-terminal-access-copy strong {
    font-size: .82rem;
    line-height: 1.2;
}

.gx-terminal-access-copy small {
    font-size: .66rem;
    line-height: 1.3;
}

.gx-terminal-guard-button
    .gx-terminal-access-copy small {
    color: rgba(255, 255, 255, .76);
}

.gx-terminal-account-button
    .gx-terminal-access-copy small {
    color: var(--gx-mobile-muted);
}

.gx-terminal-access-arrow {
    font-size: 1.45rem;
    line-height: 1;
}

.gx-terminal-ready-note {
    margin: 0;
    color: var(--gx-mobile-muted);
    font-size: .65rem;
    line-height: 1.35;
    text-align: center;
}

@media (max-width: 380px) {
    .gx-terminal-ready-header {
        grid-template-columns:
            42px
            minmax(0, 1fr);
    }

    .gx-terminal-face-icon {
        width: 42px;
        height: 42px;
    }

    .gx-terminal-online {
        grid-column: 2;
        justify-self: start;
    }
}

.gx-mobile-primary-button,
a.gx-mobile-primary-button {
    text-decoration: none;
}

.gx-mobile-nav-item:disabled {
    opacity: .35;
    cursor: not-allowed;
}

.gx-mobile-bottom-nav.five-items {
    grid-template-columns: repeat(5, minmax(0, 1fr));
}

.gx-mobile-bottom-nav.five-items .gx-mobile-nav-item span {
    font-size: .62rem;
}

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

.gx-mobile-action-card.service {
    background:
        linear-gradient(145deg, #f8fbf5, #eef6df);
    border-color: #cbdca9;
}

.gx-mobile-action-card.urgent {
    background:
        linear-gradient(145deg, #fff, #fff3ef);
    border-color: #efc2b6;
}

.gx-guard-hero {
    gap: 10px;
    margin-bottom: 12px;
    padding: 16px 18px;
    border-radius: 20px;
}

.gx-guard-hero.waiting-shift {
    background:
        radial-gradient(
            circle at 90% 8%,
            rgba(255, 255, 255, .13),
            transparent 30%
        ),
        linear-gradient(
            145deg,
            #173d35,
            #092f29
        );
}

.gx-guard-hero.active-shift {
    background:
        radial-gradient(
            circle at 90% 8%,
            rgba(202, 234, 142, .16),
            transparent 31%
        ),
        linear-gradient(
            145deg,
            #07614f,
            #063d32
        );
}

.gx-guard-hero .gx-mobile-eyebrow {
    font-size: .65rem;
    letter-spacing: .15em;
}

.gx-guard-shift-main {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 12px;
}

.gx-guard-shift-main > div {
    min-width: 0;
    display: grid;
    gap: 5px;
}

.gx-guard-hero .gx-guard-shift-main h1 {
    font-size: clamp(1.35rem, 5vw, 1.65rem);
    line-height: 1.08;
}

.gx-guard-hero .gx-guard-shift-main p {
    max-width: 310px;
    font-size: .82rem;
    line-height: 1.38;
}

.gx-guard-shift-live {
    flex: 0 0 auto;
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 6px 9px;
    border: 1px solid rgba(255, 255, 255, .14);
    border-radius: 999px;
    color: #eafff6;
    background: rgba(255, 255, 255, .09);
    font-size: .67rem;
    font-weight: 850;
}

.gx-guard-shift-live i {
    width: 7px;
    height: 7px;
    border-radius: 50%;
    background: #bddd78;
    box-shadow: 0 0 0 4px rgba(189, 221, 120, .13);
}

.gx-guard-shift-summary {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 7px 15px;
    margin: 2px 0;
}

.gx-guard-shift-summary > span {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    color: rgba(255, 255, 255, .88);
    font-size: .75rem;
}

.gx-guard-shift-summary svg {
    width: 17px;
    height: 17px;
    flex: 0 0 auto;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.8;
}

.gx-guard-hero .gx-mobile-status-row {
    gap: 6px;
    margin-top: 1px;
}

.gx-guard-hero .gx-mobile-pill {
    padding: 5px 8px;
    font-size: .65rem;
}

.gx-guard-marking-actions {
    gap: 8px;
    margin-top: 3px;
}

.gx-guard-marking-actions button {
    min-width: 0;
    min-height: 44px;
    padding: 9px 10px;
    border-radius: 12px;
    font-size: .77rem;
    line-height: 1.15;
}

.gx-guard-marking-actions button svg {
    width: 18px;
    height: 18px;
    flex: 0 0 auto;
}

.gx-guard-hero .gx-mobile-secondary-button {
    border-color: rgba(255, 255, 255, .74);
    color: #074b3e;
    background: #ffffff;
}

.gx-guard-hero .gx-mobile-primary-button {
    border: 1px solid rgba(255, 255, 255, .76);
    color: #074b3e;
    background: #f4fbf8;
}

.gx-guard-hero .gx-mobile-danger-button {
    border-color: #ffc5bf;
    color: #b52b24;
    background: #fff0ee;
}

.gx-guard-hero button:disabled {
    opacity: .48;
    cursor: not-allowed;
}

@media (max-width: 360px) {
    .gx-guard-hero {
        padding: 14px;
    }

    .gx-guard-shift-live {
        padding: 5px 7px;
    }

    .gx-guard-marking-actions button {
        padding-inline: 7px;
        font-size: .7rem;
    }
}

.gx-guard-biometric-card {
    width: 100%;
    min-height: 150px;
    margin-top: 14px;
}

.gx-guard-assignment-list {
    gap: 12px;
}

.gx-mobile-assignment-card {
    display: grid;
    gap: 14px;
    padding: 16px;
    border: 1px solid var(--gx-mobile-line);
    border-radius: 17px;
    background: #fff;
    box-shadow: 0 10px 28px rgba(18, 55, 43, .06);
}

.gx-mobile-assignment-card > div:first-child {
    display: grid;
    grid-template-columns: 46px minmax(0, 1fr);
    gap: 12px;
    align-items: center;
}

.gx-mobile-assignment-card > div:first-child > div {
    display: grid;
    gap: 4px;
}

.gx-mobile-assignment-card span,
.gx-mobile-assignment-card small {
    color: var(--gx-mobile-muted);
}

.gx-mobile-assignment-card button:disabled {
    opacity: .45;
    cursor: not-allowed;
}

.gx-guard-scan-main {
    width: 100%;
    min-height: 190px;
    align-items: center;
    text-align: center;
    margin-top: 14px;
}

.gx-guard-scan-main .gx-mobile-action-icon {
    width: 64px;
    height: 64px;
}

.gx-guard-scan-main strong {
    font-size: 1.25rem;
}

.gx-guard-operation-grid {
    margin-top: 12px;
}

.gx-mobile-scan-card video {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    opacity: 0;
    visibility: hidden;
    transition: opacity .18s ease;
}

.gx-mobile-scan-card video.gx-camera-ready {
    opacity: .74;
    visibility: visible;
}

.gx-mobile-scan-card video::-webkit-media-controls,
.gx-mobile-scan-card video::-webkit-media-controls-enclosure,
.gx-mobile-scan-card video::-webkit-media-controls-panel,
.gx-mobile-scan-card video::-webkit-media-controls-play-button,
.gx-mobile-scan-card video::-webkit-media-controls-start-playback-button,
.gx-route-scanner-dialog video::-webkit-media-controls,
.gx-route-scanner-dialog video::-webkit-media-controls-play-button,
.gx-route-scanner-dialog video::-webkit-media-controls-start-playback-button,
.gx-supervisor-qr-scanner video::-webkit-media-controls,
.gx-supervisor-qr-scanner video::-webkit-media-controls-play-button,
.gx-supervisor-qr-scanner video::-webkit-media-controls-start-playback-button {
    display: none !important;
    -webkit-appearance: none !important;
}

.gx-mobile-round-progress {
    height: 10px;
    overflow: hidden;
    margin-bottom: 16px;
    border-radius: 999px;
    background: #e8efea;
}

.gx-mobile-round-progress > span {
    display: block;
    width: 0;
    height: 100%;
    border-radius: inherit;
    background: linear-gradient(90deg, #00a684, #7da044);
    transition: width .25s ease;
}

.gx-round-active-summary {
    display: grid;
    gap: 10px;
}

.gx-mobile-list-card.completed {
    border-color: #9ed4bd;
    background: #eff9f4;
}

.gx-mobile-list-card.completed .gx-mobile-list-icon {
    color: #087a60;
    background: #dff4e9;
    font-weight: 900;
}

.gx-mobile-list-card.current {
    border-color: #5db79f;
    background: #f0faf6;
    box-shadow: 0 0 0 3px rgba(0, 134, 108, .09);
}

.gx-round-due-overlay,
.gx-round-checkpoint-modal,
.gx-round-novelty-modal {
    position: fixed;
    inset: 0;
    z-index: 1250;
    display: grid;
    place-items: center;
    padding: 20px;
    overflow-y: auto;
    background: rgba(3, 29, 24, .82);
    backdrop-filter: blur(8px);
}

.gx-round-due-overlay[hidden],
.gx-round-checkpoint-modal[hidden],
.gx-round-novelty-modal[hidden] {
    display: none;
}

.gx-round-flow-card {
    width: min(430px, 100%);
    display: grid;
    gap: 16px;
    padding: 26px 22px;
    border: 1px solid rgba(255, 255, 255, .18);
    border-radius: 25px;
    background: #ffffff;
    box-shadow: 0 30px 90px rgba(0, 0, 0, .32);
}

.gx-round-flow-card h2,
.gx-round-flow-card p {
    margin: 0;
}

.gx-round-flow-card h2 {
    color: #123d33;
    font-size: 1.45rem;
}

.gx-round-flow-card p {
    color: #536d65;
    line-height: 1.55;
}

.gx-round-success-mark {
    width: 70px;
    height: 70px;
    display: grid;
    place-items: center;
    justify-self: center;
    border-radius: 50%;
    color: #08775f;
    background: #dff5eb;
    font-size: 35px;
    font-weight: 900;
}

.gx-round-flow-actions {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 10px;
}

.gx-round-next-instruction {
    display: grid;
    gap: 5px;
    margin-bottom: 14px;
}

.gx-round-next-instruction span,
.gx-round-next-instruction small {
    display: block;
}

.gx-round-next-instruction b {
    color: #075f4e;
}

@media (max-width: 430px) {
    .gx-round-flow-actions {
        grid-template-columns: 1fr;
    }

    .gx-round-flow-card {
        padding: 22px 18px;
    }
}

.gx-mobile-message.warning {
    border-color: #e8ca83;
    color: #73520b;
    background: #fff9e9;
}

@media (max-width: 390px) {
    .gx-mobile-grid-resident,
    .gx-guard-operation-grid {
        grid-template-columns: 1fr;
    }

    .gx-mobile-bottom-nav.five-items .gx-mobile-nav-item span {
        display: none;
    }
}

/* =========================================================
   V11 - TERMINAL COMPARTIDO, SIMULACION Y ACCESOS MANUALES
   ========================================================= */

body.gx-guard-simulation-open {
    overflow: hidden;
}

.gx-guard-simulation {
    position: fixed;
    inset: 0;
    z-index: 1000;
    display: grid;
    place-items: center;
    padding: 22px;
    background: rgba(3, 29, 24, .88);
    backdrop-filter: blur(12px);
}

.gx-guard-simulation[hidden] {
    display: none !important;
}

.gx-guard-simulation-card {
    width: min(390px, 100%);
    padding: 28px 24px;
    border: 1px solid rgba(255, 255, 255, .14);
    border-radius: 28px;
    color: #fff;
    text-align: center;
    background:
        radial-gradient(circle at 50% 15%, rgba(0, 190, 151, .18), transparent 35%),
        linear-gradient(160deg, #103f35, #062a23);
    box-shadow: 0 30px 90px rgba(0, 0, 0, .38);
}

.gx-guard-simulation-card .gx-mobile-eyebrow {
    color: #c4df83;
}

.gx-guard-simulation-card h2 {
    margin: 18px 0 8px;
    color: #fff;
    font-size: 1.6rem;
}

.gx-guard-simulation-card > p {
    min-height: 46px;
    margin: 0;
    color: rgba(255, 255, 255, .72);
    line-height: 1.55;
}

.gx-face-reader {
    width: 156px;
    height: 156px;
    display: grid;
    place-items: center;
    margin: 24px auto 10px;
    border-radius: 50%;
    background: rgba(255, 255, 255, .06);
}

.gx-face-reader-frame {
    position: relative;
    width: 128px;
    height: 128px;
    display: grid;
    place-items: center;
    overflow: hidden;
    border: 2px solid rgba(188, 226, 208, .60);
    border-radius: 42px;
    background: rgba(255, 255, 255, .04);
}

.gx-face-reader-frame::before,
.gx-face-reader-frame::after {
    content: "";
    position: absolute;
    inset: 10px;
    border: 2px solid transparent;
    border-top-color: #a9d775;
    border-bottom-color: #a9d775;
    border-radius: 32px;
}

.gx-face-reader-frame svg {
    width: 72px;
    height: 72px;
    fill: none;
    stroke: rgba(255, 255, 255, .82);
    stroke-width: 1.35;
}

.gx-face-reader-frame > span {
    position: absolute;
    left: 12px;
    right: 12px;
    top: 20px;
    height: 2px;
    border-radius: 999px;
    background: linear-gradient(90deg, transparent, #73e3bf, transparent);
    box-shadow: 0 0 16px #39d2a6;
    animation: gxFaceScan 1.45s ease-in-out infinite;
}

@keyframes gxFaceScan {
    0%, 100% { transform: translateY(0); }
    50% { transform: translateY(82px); }
}

.gx-guard-simulation-steps {
    display: grid;
    gap: 9px;
    margin-top: 22px;
    text-align: left;
}

.gx-guard-simulation-steps > div {
    display: grid;
    grid-template-columns: 24px minmax(0, 1fr);
    align-items: center;
    gap: 10px;
    padding: 10px 12px;
    border: 1px solid rgba(255, 255, 255, .08);
    border-radius: 12px;
    color: rgba(255, 255, 255, .52);
    background: rgba(255, 255, 255, .035);
    transition: border-color .2s ease, color .2s ease, background .2s ease;
}

.gx-guard-simulation-steps i {
    width: 18px;
    height: 18px;
    display: block;
    border: 2px solid rgba(255, 255, 255, .25);
    border-radius: 50%;
}

.gx-guard-simulation-steps > div.active {
    color: #fff;
    border-color: rgba(115, 227, 191, .55);
    background: rgba(115, 227, 191, .10);
}

.gx-guard-simulation-steps > div.active i {
    border-color: #73e3bf;
    border-top-color: transparent;
    animation: gxSimulationSpin .65s linear infinite;
}

.gx-guard-simulation-steps > div.completed {
    color: #dff9ee;
    border-color: rgba(169, 215, 117, .28);
}

.gx-guard-simulation-steps > div.completed i {
    position: relative;
    border-color: #a9d775;
    background: #a9d775;
}

.gx-guard-simulation-steps > div.completed i::after {
    content: "";
    position: absolute;
    left: 4px;
    top: 1px;
    width: 5px;
    height: 9px;
    border: solid #143b31;
    border-width: 0 2px 2px 0;
    transform: rotate(45deg);
}

@keyframes gxSimulationSpin {
    to { transform: rotate(360deg); }
}

.gx-guard-simulation-card.success .gx-face-reader-frame {
    border-color: #a9d775;
    box-shadow: 0 0 0 8px rgba(169, 215, 117, .09);
}

.gx-guard-simulation-card.success .gx-face-reader-frame > span {
    display: none;
}

.gx-guard-simulation-card.success .gx-face-reader-frame::before,
.gx-guard-simulation-card.success .gx-face-reader-frame::after {
    border-color: #a9d775;
}

.gx-mobile-search-box {
    min-height: 48px;
    display: grid;
    grid-template-columns: 22px minmax(0, 1fr);
    align-items: center;
    gap: 10px;
    margin-bottom: 14px;
    padding: 0 14px;
    border: 1px solid var(--gx-mobile-line, #d5e1d7);
    border-radius: 14px;
    background: #fff;
}

.gx-mobile-search-box svg {
    width: 20px;
    height: 20px;
    fill: none;
    stroke: #587068;
    stroke-width: 1.8;
}

.gx-mobile-search-box input {
    width: 100%;
    min-height: 46px;
    border: 0;
    outline: 0;
    color: #1d2925;
    background: transparent;
    font: inherit;
}

.gx-access-history-card,
.gx-mobile-provider-card {
    display: grid;
    grid-template-columns: 46px minmax(0, 1fr) auto;
    align-items: center;
    gap: 12px;
    padding: 14px;
    border: 1px solid #d5e1d7;
    border-radius: 16px;
    background: #fff;
}

.gx-access-history-card > div,
.gx-mobile-provider-card > div {
    min-width: 0;
    display: grid;
    gap: 4px;
}

.gx-access-history-card span,
.gx-access-history-card small,
.gx-mobile-provider-card span,
.gx-mobile-provider-card small {
    color: #69766f;
}

.gx-mobile-small-button {
    min-height: 36px;
    padding: 7px 10px;
    border: 1px solid #c7d9d1;
    border-radius: 10px;
    color: #006b56;
    background: #f6fbf8;
    font: inherit;
    font-size: .72rem;
    font-weight: 900;
    cursor: pointer;
}

.gx-mobile-primary-button.compact {
    min-height: 38px;
    padding: 8px 11px;
    font-size: .72rem;
}

.gx-mobile-secondary-button.full,
.gx-mobile-danger-button.full {
    width: 100%;
}

.gx-mobile-message.warning {
    border-color: #efd79d;
    background: #fff9e8;
    color: #6d5418;
}

@media (max-width: 410px) {
    .gx-access-history-card,
    .gx-mobile-provider-card {
        grid-template-columns: 42px minmax(0, 1fr);
    }

    .gx-access-history-card .gx-mobile-small-button,
    .gx-mobile-provider-card .gx-mobile-primary-button {
        grid-column: 1 / -1;
        width: 100%;
    }
}


/* V12 Â· AUTOCOMPLETADO DENTRO DEL INGRESO MANUAL */

.gx-mobile-autocomplete-field {
    position: relative;
    min-width: 0;
}

.gx-mobile-autocomplete-results {
    position: absolute;
    top: calc(100% + 7px);
    left: 0;
    right: 0;
    z-index: 70;
    max-height: 280px;
    overflow-y: auto;
    padding: 7px;
    border: 1px solid #cbd9d0;
    border-radius: 15px;
    background: #ffffff;
    box-shadow: 0 18px 45px rgba(7, 61, 50, .18);
}

.gx-mobile-autocomplete-results[hidden] {
    display: none !important;
}

.gx-mobile-autocomplete-option {
    width: 100%;
    display: grid;
    grid-template-columns: 42px minmax(0, 1fr);
    align-items: center;
    gap: 11px;
    padding: 11px;
    border: 0;
    border-radius: 11px;
    color: #1d2925;
    text-align: left;
    background: transparent;
    cursor: pointer;
}

.gx-mobile-autocomplete-option + .gx-mobile-autocomplete-option {
    border-top: 1px solid #e3ebe5;
    border-radius: 0;
}

.gx-mobile-autocomplete-option:hover,
.gx-mobile-autocomplete-option:focus-visible {
    outline: 0;
    background: #eff8f3;
}

.gx-mobile-autocomplete-option > span:last-child {
    min-width: 0;
    display: grid;
    gap: 3px;
}

.gx-mobile-autocomplete-option strong,
.gx-mobile-autocomplete-option small,
.gx-mobile-autocomplete-option em {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.gx-mobile-autocomplete-option strong {
    font-size: .82rem;
}

.gx-mobile-autocomplete-option small {
    color: #65736d;
    font-size: .72rem;
}

.gx-mobile-autocomplete-option em {
    color: #829087;
    font-size: .66rem;
    font-style: normal;
}

.gx-mobile-autocomplete-option .gx-mobile-list-icon {
    width: 42px;
    height: 42px;
    margin: 0;
}

.gx-mobile-person-found {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 4px 12px;
    align-items: center;
    padding: 12px 13px;
    border: 1px solid #9bd7bc;
    border-radius: 13px;
    color: #185744;
    background: #eaf8f1;
}

.gx-mobile-person-found[hidden] {
    display: none !important;
}

.gx-mobile-person-found strong,
.gx-mobile-person-found span {
    grid-column: 1;
}

.gx-mobile-person-found strong {
    font-size: .79rem;
}

.gx-mobile-person-found span {
    color: #527166;
    font-size: .67rem;
    line-height: 1.4;
}

.gx-mobile-person-found button {
    grid-column: 2;
    grid-row: 1 / span 2;
    min-height: 34px;
    padding: 7px 10px;
    border: 1px solid #91cbb2;
    border-radius: 9px;
    color: #095743;
    background: #ffffff;
    font: inherit;
    font-size: .66rem;
    font-weight: 900;
    cursor: pointer;
}

@media (max-width: 430px) {
    .gx-mobile-person-found {
        grid-template-columns: 1fr;
    }

    .gx-mobile-person-found button,
    .gx-mobile-person-found strong,
    .gx-mobile-person-found span {
        grid-column: 1;
        grid-row: auto;
    }
}

/* V13 Â· Identidad residencial y Junta Directiva */
.gx-resident-identity {
    display: flex;
    align-items: center;
    gap: 13px;
    margin: 18px 0 14px;
    padding: 15px;
    border: 1px solid rgba(255,255,255,.22);
    border-radius: 16px;
    background: rgba(255,255,255,.10);
    backdrop-filter: blur(8px);
}

.gx-resident-avatar {
    width: 46px;
    height: 46px;
    flex: 0 0 46px;
    display: grid;
    place-items: center;
    border-radius: 50%;
    color: #063d32;
    background: #fff;
    font-weight: 900;
    font-size: 1.05rem;
    box-shadow: 0 8px 24px rgba(0,0,0,.14);
}

.gx-resident-identity > div:last-child {
    min-width: 0;
    display: grid;
    gap: 3px;
}

.gx-resident-identity strong,
.gx-resident-identity span,
.gx-resident-identity small,
.gx-resident-identity em {
    display: block;
}

.gx-resident-identity strong {
    font-size: 1rem;
    line-height: 1.2;
}

.gx-resident-identity span {
    font-size: .88rem;
    font-weight: 800;
    opacity: .96;
}

.gx-resident-identity small {
    font-size: .78rem;
    opacity: .82;
}

.gx-resident-identity em {
    width: max-content;
    max-width: 100%;
    margin-top: 3px;
    padding: 4px 8px;
    border-radius: 999px;
    color: #063d32;
    background: #dff5a9;
    font-size: .7rem;
    font-style: normal;
    font-weight: 900;
}

.gx-board-contest-card {
    border-color: #d9e8a8 !important;
    background: linear-gradient(145deg, #fbfff0, #f2f8df) !important;
}

.gx-board-contest-card .gx-mobile-action-icon {
    color: #546b1f;
    background: #e3f2b8;
}

.gx-board-summary-card {
    margin-bottom: 14px;
    border-color: #d8e8a1;
    background: linear-gradient(145deg, #fbfff1, #f3f8e5);
}

.gx-board-summary-card h2 {
    margin: 5px 0 7px;
}

.gx-board-summary-card p {
    margin: 0;
}

.gx-board-empty {
    min-height: 190px;
    border: 1px dashed #cfdcb0;
    border-radius: 18px;
    background: #fbfdf7;
}

@media (max-width: 430px) {
    .gx-resident-identity {
        align-items: flex-start;
    }

    .gx-resident-identity em {
        white-space: normal;
    }
}

/* =========================================================
   GUARDINEXA MOBILE V14
   Prerregistro, activaciÃ³n y mÃºltiples propiedades
   ========================================================= */

.gx-mobile-login-separator {
    position: relative;
    display: grid;
    place-items: center;
    margin: 2px 0;
    color: var(--gx-mobile-muted);
    font-size: .72rem;
    font-weight: 900;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.gx-mobile-login-separator::before {
    content: "";
    position: absolute;
    inset: 50% 0 auto;
    border-top: 1px solid var(--gx-mobile-line);
}

.gx-mobile-login-separator span {
    position: relative;
    padding: 0 10px;
    background: #fff;
}

.gx-mobile-login-link {
    color: var(--gx-mobile-green);
    font-weight: 900;
    text-align: center;
    text-decoration: none;
}

.gx-mobile-login-note {
    color: var(--gx-mobile-muted);
    line-height: 1.5;
    text-align: center;
}

.gx-mobile-register-shell {
    align-items: start;
}

.gx-mobile-register-card {
    width: min(560px, 100%);
}

.gx-mobile-invite-summary {
    display: grid;
    gap: 4px;
    padding: 15px;
    border: 1px solid #b7ddc7;
    border-radius: 15px;
    background: #effaf4;
}

.gx-mobile-invite-summary strong,
.gx-mobile-invite-summary span,
.gx-mobile-invite-summary small {
    display: block;
}

.gx-mobile-invite-summary span,
.gx-mobile-invite-summary small {
    color: var(--gx-mobile-muted);
}

.gx-mobile-property-invitation-banner {
    display: grid;
    grid-template-columns: 48px minmax(0, 1fr) auto;
    align-items: center;
    gap: 12px;
    margin: 0 0 16px;
    padding: 14px;
    border: 1px solid #c6dda0;
    border-radius: 18px;
    color: var(--gx-mobile-ink);
    background: linear-gradient(135deg, #fbfff3, #eef8d6);
    text-decoration: none;
    box-shadow: 0 12px 30px rgba(82, 107, 29, .08);
}

.gx-mobile-property-invitation-banner > span {
    width: 48px;
    height: 48px;
    display: grid;
    place-items: center;
    border-radius: 15px;
    color: #526b1d;
    background: #e3f1b9;
}

.gx-mobile-property-invitation-banner svg {
    width: 23px;
    height: 23px;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.8;
}

.gx-mobile-property-invitation-banner div {
    display: grid;
    gap: 3px;
}

.gx-mobile-property-invitation-banner small {
    color: var(--gx-mobile-muted);
    line-height: 1.4;
}

.gx-mobile-property-invitation-banner b {
    font-size: 1.5rem;
}

.gx-mobile-property-option {
    color: var(--gx-mobile-ink);
    text-decoration: none;
}

.gx-mobile-property-option.active {
    border-color: #8dc9b0;
    background: #f1fbf6;
}

.gx-mobile-property-option.pending {
    border-color: #d6e7a8;
    background: #fbfff4;
}

.gx-mobile-invitations-shell {
    align-items: start;
}

.gx-mobile-invitation-list {
    display: grid;
    gap: 12px;
}

.gx-mobile-invitation-card {
    display: grid;
    grid-template-columns: 48px minmax(0, 1fr);
    gap: 12px;
    padding: 15px;
    border: 1px solid var(--gx-mobile-line);
    border-radius: 17px;
    background: #fff;
}

.gx-mobile-invitation-card > div {
    display: grid;
    gap: 3px;
}

.gx-mobile-invitation-card > div span,
.gx-mobile-invitation-card > div small {
    color: var(--gx-mobile-muted);
}

.gx-mobile-invitation-card form {
    grid-column: 1 / -1;
}

.gx-mobile-invitation-card form button {
    width: 100%;
}

/* GUARDINEXA V15 */
.gx-resident-compact-hero { padding: 18px; display: flex; align-items: center; justify-content: space-between; gap: 14px; min-height: 0; }
.gx-resident-compact-copy h1 { margin: 0 0 5px; font-size: clamp(25px, 7vw, 34px); }
.gx-resident-compact-copy strong, .gx-resident-compact-copy span { display: block; }
.gx-resident-compact-copy strong { font-size: 14px; }
.gx-resident-compact-copy span { margin-top: 3px; font-size: 12px; color: rgba(255,255,255,.78); }
.gx-mobile-property-switcher.compact { margin: 0; width: auto; min-width: 0; padding: 9px 10px; grid-template-columns: 22px minmax(0,1fr) 14px; }
.gx-mobile-property-switcher.compact strong { max-width: 145px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.gx-mobile-pass-card canvas { display: block; width: 100%; height: auto; border-radius: 16px; border: 1px solid var(--gx-line, #d9ded3); background: #f1f4ef; }
.gx-mobile-manual-link { margin-top: 14px; text-align: center; color: #69726d; font-size: 13px; }
.gx-mobile-manual-link button { border: 0; background: transparent; color: #00745d; font-weight: 800; padding: 4px; }
.gx-photo-picker { display: grid; gap: 10px; padding: 13px; border: 1px solid #d9ded3; border-radius: 13px; background: #f7f9f5; }
.gx-photo-picker > span { font-weight: 750; color: #33475e; }
.gx-photo-picker img { width: 100%; max-height: 260px; object-fit: cover; border-radius: 12px; }
.gx-round-scan-button { width: 100%; margin-top: 14px; min-height: 48px; }
.gx-manual-point-entry { margin: 12px 0; border: 1px solid #d9ded3; border-radius: 12px; padding: 12px; }
.gx-manual-point-entry summary { cursor: pointer; color: #00745d; font-weight: 750; }
.gx-manual-point-entry form { margin-top: 12px; }
.gx-area-selection { display: grid; gap: 10px; }
.gx-area-choice { display: grid; grid-template-columns: auto minmax(0,1fr); gap: 12px; align-items: start; padding: 15px; border: 1px solid #d9ded3; border-radius: 13px; background: #fff; }
.gx-area-choice input { width: 20px; height: 20px; margin-top: 2px; }
.gx-area-choice strong, .gx-area-choice small { display: block; }
.gx-area-choice small { margin-top: 4px; color: #69726d; }
.gx-area-choice.occupied { background: #eef0ed; color: #8a918d; opacity: .85; }
.gx-area-choice.occupied small { color: #8a918d; }
.gx-identity-check { display: grid; grid-template-columns: auto 1fr; align-items: start; gap: 10px; padding: 14px; margin-top: 16px; border: 1px solid #d8c289; border-radius: 12px; background: #fff8e6; font-weight: 650; }
.gx-identity-check input { width: 21px; height: 21px; margin-top: 1px; }
.gx-verification-code { text-align: center; font-size: 28px; letter-spacing: 8px; font-weight: 800; }
@media (max-width: 440px) {
    .gx-resident-compact-hero { align-items: flex-start; }
    .gx-mobile-property-switcher.compact { max-width: 48%; }
}

/* GUARDINEXA V18 */
.gx-mobile-notification-button{position:relative}.gx-mobile-notification-badge{position:absolute;top:-5px;right:-5px;min-width:20px;height:20px;padding:0 5px;border-radius:999px;background:#dc352d;color:#fff;display:grid;place-items:center;font-size:11px;font-weight:900;border:2px solid #073d34}.gx-mobile-optional-block{border:1px solid #d4dfda;border-radius:16px;background:#f8fbf9;overflow:hidden}.gx-mobile-optional-block>summary{list-style:none;cursor:pointer;padding:15px 17px;font-weight:900;color:#08735e}.gx-mobile-optional-block>summary::-webkit-details-marker{display:none}.gx-mobile-optional-block[open]>summary{border-bottom:1px solid #dce5e0}.gx-mobile-optional-block>div,.gx-mobile-optional-block>label{margin:14px 16px}.gx-mobile-list-card.unread{border-color:#78c7a7;background:#f0fbf6}.gx-mobile-list-card[data-notification-id]{width:100%;text-align:left;cursor:pointer}

/* Resident access, basic KYC and SOS V20.4 */
.gx-mobile-register-shell{
    padding:0 0 30px;
}

.gx-mobile-register-card{
    width:min(470px,100%);
}

.gx-mobile-login-card.gx-mobile-register-card > h1{
    margin:12px 28px 20px;
}

.gx-mobile-login-card.gx-mobile-register-card > p{
    margin-left:28px;
    margin-right:28px;
}

.gx-mobile-register-card .gx-mobile-primary,
.gx-mobile-register-card .gx-mobile-secondary{
    width:100%;
}
.gx-kyc-terms{max-height:220px;overflow:auto;padding:16px;border:1px solid var(--gx-mobile-line);border-radius:14px;background:#f7faf8;color:#33483f;line-height:1.55}.gx-kyc-terms h2{margin:0 0 10px;font-size:18px}.gx-kyc-terms p{margin:0 0 11px}.gx-kyc-consent-check{display:grid!important;grid-template-columns:22px minmax(0,1fr);gap:10px;align-items:start;padding:13px;border:1px solid #cfdcd6;border-radius:13px;background:#fff}.gx-kyc-consent-check input{width:20px;height:20px;margin:0}.gx-kyc-consent-check input:disabled+span{opacity:.55}
.gx-kyc-camera{position:relative;overflow:hidden;border-radius:22px;background:#071b16;aspect-ratio:3/4}.gx-kyc-camera video{width:100%;height:100%;object-fit:cover;transform:scaleX(-1)}.gx-kyc-face-frame{position:absolute;inset:12% 16%;border:3px solid rgba(255,255,255,.9);border-radius:48%;box-shadow:0 0 0 999px rgba(0,0,0,.18)}.gx-kyc-prompt{position:absolute;left:16px;right:16px;bottom:18px;padding:12px 14px;border-radius:13px;background:rgba(4,35,28,.9);color:#fff;text-align:center;font-weight:850}.gx-kyc-progress{height:8px;border-radius:99px;background:#dbe7e2;overflow:hidden}.gx-kyc-progress span{display:block;height:100%;width:0;background:#0b8067;transition:width .25s ease}
.gx-resident-access-content{display:grid;gap:15px}.gx-resident-access-hero{min-height:0;padding:20px}.gx-resident-access-hero h1{font-size:28px}.gx-mobile-method-chips{display:flex;flex-wrap:wrap;gap:8px}.gx-resident-access-drawer{border:1px solid var(--gx-mobile-line);border-radius:15px;background:#f8fbf9;overflow:hidden}.gx-resident-access-drawer>summary{padding:15px 16px;cursor:pointer;list-style:none;color:#08735e;font-weight:900}.gx-resident-access-drawer>summary::-webkit-details-marker{display:none}.gx-resident-access-drawer[open]>summary{border-bottom:1px solid var(--gx-mobile-line)}.gx-resident-access-drawer>.gx-mobile-form{padding:16px}.gx-mobile-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:11px}.gx-resident-access-list{margin-top:14px}.gx-resident-access-list .gx-mobile-list-card{grid-template-columns:46px minmax(0,1fr) auto}.gx-resident-access-list .gx-mobile-status-badge{align-self:start}.gx-recurring-pass-card .gx-mobile-secondary-button{grid-column:2/-1;width:100%}.gx-weekday-picker{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.gx-weekday-picker label{display:flex;align-items:center;justify-content:center;gap:6px;padding:10px 7px;border:1px solid var(--gx-mobile-line);border-radius:11px;background:#fff;font-size:12px;font-weight:800}.gx-weekday-picker input{width:17px;height:17px;margin:0}.gx-mobile-directory-grid{display:grid;gap:9px}.gx-directory-contact{display:grid!important;grid-template-columns:22px minmax(0,1fr);gap:10px;align-items:center;padding:12px;border:1px solid var(--gx-mobile-line);border-radius:13px;background:#fff}.gx-directory-contact input{width:19px;height:19px;margin:0}.gx-directory-contact span{display:grid;gap:2px}.gx-directory-contact small{color:var(--gx-mobile-muted)}
.gx-recurring-qr-modal,.gx-batch-results-modal{position:fixed;inset:0;z-index:5000;display:grid;place-items:center;padding:18px;background:rgba(4,27,22,.72)}.gx-recurring-qr-modal[hidden],.gx-batch-results-modal[hidden]{display:none}.gx-recurring-qr-dialog,.gx-batch-results-dialog{position:relative;width:min(100%,520px);max-height:90vh;overflow:auto;padding:24px;border-radius:22px;background:#fff;box-shadow:0 25px 80px rgba(0,0,0,.25)}.gx-recurring-qr-dialog>button,.gx-batch-results-dialog>button{position:absolute;top:10px;right:12px;border:0;background:#eef4f1;width:36px;height:36px;border-radius:50%;font-size:25px}.gx-recurring-qr-dialog [data-recurring-qr-box]{display:grid;place-items:center;margin:16px auto}.gx-batch-results-list{display:grid;gap:14px}.gx-batch-pass{display:grid;place-items:center;gap:8px;padding:15px;border:1px solid var(--gx-mobile-line);border-radius:15px}.gx-batch-qr svg{display:block}
.gx-resident-sos-button{position:fixed;right:16px;bottom:calc(78px + env(safe-area-inset-bottom));z-index:800;width:88px;height:88px;border:4px solid #fff;border-radius:50%;background:#d92824;color:#fff;box-shadow:0 10px 28px rgba(155,16,16,.38);display:grid;place-items:center;align-content:center;gap:0;overflow:hidden}.gx-resident-sos-button strong{font-size:26px;line-height:1}.gx-resident-sos-button span{font-size:9px;font-weight:900;letter-spacing:.8px}.gx-resident-sos-button i{position:absolute;left:0;bottom:0;height:6px;width:0;background:#fff;opacity:.95}.gx-resident-sos-button.is-holding{transform:scale(.97)}
.gx-guard-sos-overlay{position:fixed;inset:0;z-index:10000;background:#a10e0e;color:#fff;display:grid;place-items:center;padding:18px;animation:gxSosPulse 1.05s infinite}.gx-guard-sos-overlay[hidden]{display:none}.gx-guard-sos-card{width:min(100%,560px);padding:30px 22px;border:3px solid #fff;border-radius:26px;background:#c31919;text-align:center;box-shadow:0 30px 90px rgba(0,0,0,.38)}.gx-guard-sos-card h2{margin:8px 0;font-size:42px}.gx-guard-sos-unit{font-size:30px;font-weight:950}.gx-guard-sos-card p{font-size:17px}.gx-guard-sos-card .gx-mobile-button-row{display:grid;gap:10px}.gx-guard-sos-card button{min-height:52px;font-size:16px}.gx-guard-sos-card .gx-mobile-secondary-button{background:#fff;color:#9b1010}@keyframes gxSosPulse{50%{background:#d71b1b}}
.gx-reservation-rules-summary{display:grid;gap:9px;padding:13px;border:1px solid #d8c78c;border-radius:13px;background:#fff9e9}.gx-reservation-rules-summary:empty{display:none}.gx-reservation-rule-card{padding:10px;border-radius:10px;background:#fff}.gx-reservation-rule-card strong,.gx-reservation-rule-card span{display:block}.gx-reservation-rule-card span{margin-top:4px;color:#6a6552;white-space:pre-line}.gx-area-choice [data-capacity]{font-weight:800;color:#40554c}
@media(max-width:520px){.gx-mobile-form-grid{grid-template-columns:1fr}.gx-weekday-picker{grid-template-columns:repeat(3,minmax(0,1fr))}.gx-resident-access-list .gx-mobile-list-card{grid-template-columns:42px minmax(0,1fr)}.gx-resident-access-list .gx-mobile-status-badge{grid-column:2}.gx-resident-sos-button{width:80px;height:80px;right:12px}.gx-guard-sos-card h2{font-size:34px}}
.gx-resident-sos-button i{width:100%;transform:scaleX(0);transform-origin:left center;transition:transform 2s linear}.gx-resident-sos-button.holding i{transform:scaleX(1)}

/* GUARDINEXA V21 - experiencia residencial y acceso fisico */
.gx-resident-sos-button{display:none!important}
.gx-mobile-top-actions{display:flex;align-items:center;gap:8px}
.gx-topbar-sos{position:relative;color:#fff;background:#c92822!important;border-color:rgba(255,255,255,.35)!important;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none;touch-action:manipulation;overflow:hidden}
.gx-topbar-sos svg{stroke:#fff!important;position:relative;z-index:2}
.gx-topbar-sos i{position:absolute;inset:auto 0 0;height:4px;background:#fff;transform:scaleX(0);transform-origin:left center;z-index:3}
.gx-topbar-sos.holding{transform:scale(.91);box-shadow:0 0 0 6px rgba(255,72,61,.24)}
.gx-topbar-sos.holding i{animation:gxV21SosHold 2s linear forwards}
@keyframes gxV21SosHold{from{transform:scaleX(0)}to{transform:scaleX(1)}}
.gx-account-avatar-button{overflow:hidden}.gx-account-avatar-button img{width:100%;height:100%;object-fit:cover;border-radius:50%}
.gx-sos-confirm-modal{position:fixed;inset:0;z-index:7000;display:grid;place-items:center;padding:20px;background:rgba(3,24,19,.72)}
.gx-sos-confirm-modal[hidden]{display:none}.gx-sos-confirm-card{width:min(100%,420px);padding:24px;border-radius:22px;background:#fff;box-shadow:0 24px 80px rgba(0,0,0,.3)}.gx-sos-confirm-card h2{font-size:27px;margin:10px 0}.gx-sos-confirm-card p{color:var(--gx-mobile-muted)}
.gx-v21-contact-picker-launch{width:100%;margin-bottom:14px}
.gx-phone-contact-list{display:grid;gap:9px}.gx-phone-contact-card{display:grid;grid-template-columns:minmax(0,1fr) 38px;gap:10px;align-items:center;padding:12px 14px;border:1px solid var(--gx-mobile-line);border-radius:13px;background:#f8fbf9}.gx-phone-contact-card div{display:grid;gap:3px}.gx-phone-contact-card small{color:var(--gx-mobile-muted)}.gx-phone-contact-card button{width:36px;height:36px;border:0;border-radius:50%;background:#edf3f0;font-size:24px;color:#355047}
.gx-batch-results-modal{position:fixed;inset:0;z-index:6800;display:grid;place-items:center;padding:18px;background:rgba(4,27,22,.72)}.gx-batch-results-modal[hidden]{display:none}.gx-batch-results-dialog{position:relative;width:min(100%,560px);max-height:90vh;overflow:auto;padding:24px;border-radius:22px;background:#fff}.gx-batch-results-dialog>button{position:absolute;right:12px;top:10px;width:36px;height:36px;border:0;border-radius:50%;font-size:24px}.gx-batch-pass{display:grid;gap:8px;padding:15px 0;border-bottom:1px solid var(--gx-mobile-line)}.gx-batch-qr svg{display:block;width:180px;height:180px;max-width:100%}
.gx-area-choice{grid-template-columns:auto 56px minmax(0,1fr);align-items:center;min-height:118px;border-width:1px 1px 1px 6px;overflow:hidden}.gx-area-choice-icon{width:52px;height:52px;border-radius:16px;display:grid;place-items:center;font-size:28px;background:rgba(255,255,255,.72);box-shadow:inset 0 0 0 1px rgba(0,0,0,.05)}.gx-area-choice span:last-child{min-width:0}.gx-area-choice em{display:block;margin-top:8px;color:#40564d;font-size:13px;line-height:1.35}.gx-area-theme-aqua{background:#eefbfb;border-left-color:#3aa7a4}.gx-area-theme-amber{background:#fff8e8;border-left-color:#e69a2d}.gx-area-theme-coral{background:#fff1ed;border-left-color:#df6c52}.gx-area-theme-blue{background:#eef5ff;border-left-color:#4a80c5}.gx-area-theme-violet{background:#f6f0ff;border-left-color:#8964c8}.gx-area-theme-lime{background:#f3fae9;border-left-color:#7da745}.gx-area-theme-sage{background:#f2f8f4;border-left-color:#4d8d70}
.gx-profile-photo-editor{
    display:grid;
    justify-items:center;
    gap:10px;
    padding:16px;
    border:1px solid var(--gx-mobile-line);
    border-radius:17px;
    background:#f8fbf9;
    text-align:center;
}

.gx-profile-photo-preview{
    width:112px;
    height:112px;
    display:grid;
    place-items:center;
    overflow:hidden;
    padding:0;
    border:4px solid #fff;
    border-radius:50%;
    color:#08745f;
    background:#e7f1ed;
    box-shadow:0 8px 28px rgba(15,68,54,.15);
    cursor:pointer;
    appearance:none;
    -webkit-appearance:none;
    transition:
        transform .16s ease,
        box-shadow .16s ease;
}

.gx-profile-photo-preview:active{
    transform:scale(.97);
}

.gx-profile-photo-preview:focus-visible{
    outline:3px solid rgba(0,134,108,.18);
    outline-offset:3px;
}

.gx-profile-photo-preview img{
    width:100%;
    height:100%;
    object-fit:cover;
}

.gx-profile-photo-preview span{
    width:100%;
    height:100%;
    display:grid;
    place-items:center;
}

.gx-profile-photo-preview span[hidden],
.gx-profile-photo-preview img[hidden]{
    display:none!important;
}

.gx-profile-photo-preview span svg{
    width:54px;
    height:54px;
}

.gx-profile-photo-editor small{
    max-width:330px;
    color:var(--gx-mobile-muted);
}

.gx-profile-photo-menu-card{
    width:min(100%,340px);
    display:grid;
    gap:14px;
    padding:18px;
    border-radius:20px;
}

.gx-profile-photo-menu-card header{
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    gap:12px;
}

.gx-profile-photo-menu-card header span{
    display:block;
    color:#718f34;
    font-size:9px;
    font-weight:900;
    letter-spacing:.13em;
}

.gx-profile-photo-menu-card header strong{
    display:block;
    margin-top:3px;
    color:#173f35;
    font-size:18px;
}

.gx-profile-photo-menu-close{
    width:34px;
    height:34px;
    display:grid;
    place-items:center;
    flex:0 0 34px;
    padding:0;
    border:1px solid #d7e3dd;
    border-radius:50%;
    color:#49625b;
    background:#eef4f1;
    font-size:22px;
    line-height:1;
    cursor:pointer;
}

.gx-profile-photo-menu-actions{
    display:grid;
    grid-template-columns:
        repeat(2,minmax(0,1fr));
    gap:8px;
}

.gx-profile-photo-option{
    min-height:42px;
    padding:8px 10px;
    border:1px solid #cbdcd4;
    border-radius:12px;
    color:#075c4c;
    background:#f8fbf9;
    font:inherit;
    font-size:12px;
    font-weight:850;
    line-height:1.2;
    cursor:pointer;
}

.gx-profile-photo-option.danger{
    grid-column:1 / -1;
    color:#a92d26;
    border-color:#efb2ad;
    background:#fff3f1;
}

.gx-profile-photo-option:disabled{
    opacity:.42;
    cursor:not-allowed;
}

.gx-account-profile-card{
    display:grid;
    gap:14px;
}
.gx-v21-kyc-callout{display:flex;justify-content:space-between;align-items:center;gap:14px;margin:14px 0;padding:14px;border:1px solid #d5e1dc;border-radius:14px;background:#f7fbf9}.gx-v21-kyc-callout>div{display:grid;gap:3px}.gx-v21-kyc-callout span{color:var(--gx-mobile-muted)}.gx-v21-method-picker{display:grid;gap:9px}.gx-v21-method-picker label{display:grid!important;grid-template-columns:22px minmax(0,1fr);gap:11px;align-items:start;padding:13px;border:1px solid var(--gx-mobile-line);border-radius:13px;background:#fff}.gx-v21-method-picker input{width:20px;height:20px;margin:1px 0 0}.gx-v21-method-picker span{display:grid;gap:3px}.gx-v21-method-picker small{color:var(--gx-mobile-muted);line-height:1.35}.gx-v21-access-link{display:grid!important;grid-template-columns:48px minmax(0,1fr) auto;gap:12px;align-items:center;text-decoration:none;color:inherit}.gx-v21-access-link div{display:grid;gap:3px}.gx-v21-access-link small{color:var(--gx-mobile-muted)}.gx-v21-access-link b{font-size:26px;color:#08745f}
@media(max-width:560px){.gx-area-choice{grid-template-columns:auto 48px minmax(0,1fr);padding:13px}.gx-area-choice-icon{width:44px;height:44px;font-size:24px}.gx-v21-kyc-callout{align-items:stretch;flex-direction:column}.gx-v21-kyc-callout .gx-mobile-primary-button{width:100%}}

/* REGISTRO RESIDENCIAL: compatibilidad de botones V21.1 */
.gx-mobile-primary,
a.gx-mobile-primary,
button.gx-mobile-primary,
.gx-mobile-secondary,
a.gx-mobile-secondary,
button.gx-mobile-secondary {
    min-height: 50px;
    width: 100%;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 9px;
    padding: 12px 17px;
    border-radius: 13px;
    font: inherit;
    font-weight: 900;
    text-align: center;
    text-decoration: none;
    cursor: pointer;
    appearance: none;
    -webkit-appearance: none;
    transition: transform .15s ease, box-shadow .15s ease, opacity .15s ease;
}

.gx-mobile-primary,
a.gx-mobile-primary,
button.gx-mobile-primary {
    border: 0;
    color: #fff;
    background: linear-gradient(135deg, var(--gx-mobile-green), var(--gx-mobile-deep));
    box-shadow: 0 10px 24px rgba(0, 104, 84, .18);
}

.gx-mobile-secondary,
a.gx-mobile-secondary,
button.gx-mobile-secondary {
    border: 1px solid var(--gx-mobile-line);
    color: var(--gx-mobile-deep);
    background: #fff;
    box-shadow: 0 6px 16px rgba(10, 56, 47, .08);
}

.gx-mobile-primary:hover,
.gx-mobile-secondary:hover {
    transform: translateY(-1px);
}

.gx-mobile-primary:active,
.gx-mobile-secondary:active {
    transform: translateY(0);
    box-shadow: none;
}

.gx-mobile-primary:focus-visible,
.gx-mobile-secondary:focus-visible {
    outline: 3px solid rgba(0, 134, 108, .18);
    outline-offset: 2px;
}

/* GUARDINEXA V21.2 - aprobacion residencial y llamadas eventuales */
.gx-topbar-call {
    color: #063d32;
    background: #e5f5ef;
    border-color: rgba(6, 61, 50, .14);
}

.gx-topbar-call svg {
    width: 21px;
    height: 21px;
}

.gx-manual-approval-card {
    display: grid;
    gap: 18px;
}

.gx-manual-approval-state {
    display: grid;
    justify-items: center;
    gap: 7px;
    padding: 22px 18px;
    border-radius: 20px;
    text-align: center;
    background: #fff8e3;
    border: 1px solid #f0d78e;
}

.gx-manual-approval-state strong {
    font-size: 1.18rem;
    color: #5d4504;
}

.gx-manual-approval-state small {
    line-height: 1.45;
    color: #6b5a2c;
}

.gx-manual-approval-state.approved {
    background: #e8f8ef;
    border-color: #a5dfbc;
}

.gx-manual-approval-state.approved strong,
.gx-manual-approval-state.approved small {
    color: #125c33;
}

.gx-manual-approval-state.rejected,
.gx-manual-approval-state.expired,
.gx-manual-approval-state.cancelled {
    background: #fff0f0;
    border-color: #efb2b2;
}

.gx-manual-approval-state.rejected strong,
.gx-manual-approval-state.expired strong,
.gx-manual-approval-state.cancelled strong,
.gx-manual-approval-state.rejected small,
.gx-manual-approval-state.expired small,
.gx-manual-approval-state.cancelled small {
    color: #8c2222;
}

.gx-manual-approval-pulse {
    width: 19px;
    height: 19px;
    border-radius: 50%;
    background: #d7a400;
    box-shadow: 0 0 0 0 rgba(215, 164, 0, .4);
    animation: gxManualPulse 1.4s infinite;
}

.gx-manual-approval-state.approved .gx-manual-approval-pulse {
    background: #198754;
    animation: none;
}

.gx-manual-approval-state.rejected .gx-manual-approval-pulse,
.gx-manual-approval-state.expired .gx-manual-approval-pulse,
.gx-manual-approval-state.cancelled .gx-manual-approval-pulse {
    background: #b42323;
    animation: none;
}

@keyframes gxManualPulse {
    70% { box-shadow: 0 0 0 13px rgba(215, 164, 0, 0); }
    100% { box-shadow: 0 0 0 0 rgba(215, 164, 0, 0); }
}

.gx-manual-approval-actions .gx-mobile-secondary-button,
.gx-manual-approval-actions .gx-mobile-primary-button {
    min-height: 50px;
    flex: 1 1 180px;
}

.gx-manual-approval-actions svg {
    width: 18px;
    height: 18px;
    margin-right: 7px;
    vertical-align: -4px;
}

.gx-mobile-text-button.danger {
    color: #a51f1f;
    justify-self: center;
}

.gx-realtime-modal {
    position: fixed;
    inset: 0;
    z-index: 1500;
    display: grid;
    place-items: center;
    padding: max(18px, env(safe-area-inset-top)) 18px max(18px, env(safe-area-inset-bottom));
    background: rgba(2, 25, 21, .72);
    backdrop-filter: blur(7px);
}

.gx-realtime-modal[hidden] {
    display: none !important;
}

.gx-realtime-card {
    width: min(100%, 460px);
    max-height: calc(100dvh - 36px);
    overflow: auto;
    padding: 24px;
    border-radius: 24px;
    background: #fff;
    box-shadow: 0 24px 70px rgba(0, 0, 0, .28);
}

.gx-realtime-card h2 {
    margin: 6px 0 18px;
    color: #12352f;
    font-size: clamp(1.45rem, 5vw, 1.9rem);
}

.gx-manual-resident-card label {
    display: grid;
    gap: 7px;
    margin-top: 16px;
    font-weight: 700;
    color: #27443f;
}

.gx-manual-resident-card textarea {
    width: 100%;
    resize: vertical;
}

.gx-voice-card {
    text-align: center;
}

.gx-voice-avatar {
    width: 82px;
    height: 82px;
    margin: 12px auto 14px;
    display: grid;
    place-items: center;
    border-radius: 50%;
    background: #e5f5ef;
    color: #075446;
    box-shadow: 0 0 0 10px rgba(229, 245, 239, .5);
}

.gx-voice-avatar svg {
    width: 38px;
    height: 38px;
}

.gx-voice-card h2 {
    margin-bottom: 6px;
}

.gx-voice-card > p {
    margin: 0;
    color: #5c706c;
}

.gx-voice-timer {
    display: block;
    margin: 13px 0;
    font-size: 1.45rem;
    letter-spacing: .08em;
    color: #0a4d42;
}

.gx-voice-notice {
    margin: 18px 0;
    text-align: left;
}

.gx-voice-actions {
    justify-content: center;
}

.gx-voice-actions button {
    min-width: 130px;
    min-height: 52px;
}

@media (max-width: 520px) {
    .gx-realtime-card {
        padding: 21px 17px;
        border-radius: 21px;
    }

    .gx-manual-approval-actions {
        display: grid;
        grid-template-columns: 1fr;
    }

    .gx-manual-approval-actions button {
        width: 100%;
    }
}


/* GUARDINEXA V21.3 - inicio compacto, visitas por persona y menu movil */
.gx-resident-compact-hero{padding:12px 14px;gap:9px;margin-bottom:11px;border-radius:18px}
.gx-resident-compact-copy h1{font-size:clamp(21px,5.8vw,28px);margin-bottom:2px}
.gx-resident-compact-copy strong{font-size:12px}.gx-resident-compact-copy span{font-size:11px;margin-top:1px}
.gx-mobile-grid-resident{gap:9px}
.gx-mobile-grid-resident .gx-mobile-action-card{
    min-height:96px;
    padding:10px;
    gap:8px;
    align-items:center;
    justify-content:center;
    text-align:center;
    border-radius:16px;
}

.gx-mobile-grid-resident .gx-mobile-action-icon{
    width:40px;
    height:40px;
    flex:0 0 auto;
    border-radius:12px;
}

.gx-mobile-grid-resident .gx-mobile-action-icon svg{
    width:21px;
    height:21px;
}

.gx-mobile-grid-resident .gx-mobile-action-card strong{
    margin-top:0;
    font-size:.84rem;
    line-height:1.18;
    text-align:center;
}

.gx-mobile-grid-resident .gx-mobile-action-card small{
    display:none;
}
.gx-visitor-entry-card,.gx-phone-contact-config{display:grid;gap:12px;padding:14px;border:1px solid var(--gx-mobile-line);border-radius:16px;background:#f8fbf9}

.gx-visitor-entry-card[hidden],
.gx-contact-visitor-section[hidden] {
    display: none !important;
}

.gx-visitor-entry-heading,.gx-phone-contact-title,.gx-selected-contact-heading{display:flex;align-items:center;justify-content:space-between;gap:10px}
.gx-visitor-entry-heading>strong,.gx-selected-contact-heading strong{color:#0a5547;font-size:.95rem}
.gx-selected-contact-heading{padding:5px 2px}.gx-selected-contact-heading small{color:var(--gx-mobile-muted);font-size:.72rem}
.gx-phone-contact-list{display:grid;gap:11px}
.gx-phone-contact-title>div{display:grid;gap:2px}.gx-phone-contact-title small{color:var(--gx-mobile-muted)}
.gx-phone-contact-title>button{width:34px;height:34px;border:0;border-radius:50%;background:#f7e8e7;color:#9c2824;font-size:22px;cursor:pointer}
.gx-visitor-vehicle-fields,.gx-contact-vehicle-fields{display:grid;gap:11px;padding-top:3px}
.gx-batch-pass .gx-mobile-primary-button{width:100%;margin-top:7px}
.gx-biometric-account-button{margin-top:14px}.gx-biometric-account-help{text-align:center;margin:7px 0 0}
@media(max-width:390px){
    .gx-mobile-grid-resident{
        grid-template-columns:repeat(2,minmax(0,1fr));
    }

    .gx-mobile-grid-resident .gx-mobile-action-card{
        min-height:92px;
        padding:9px;
    }

    .gx-resident-compact-hero{
        padding:11px 12px;
    }

    .gx-mobile-property-switcher.compact{
        max-width:44%;
        padding:7px;
    }
}


/* GUARDINEXA V21.3.2 - directorio permanente de llamadas en garita */
.gx-guard-call-directory-card {
    width: min(100%, 540px);
    display: grid;
    gap: 16px;
}

.gx-guard-call-directory-heading {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 14px;
}

.gx-guard-call-directory-heading h2 {
    margin-bottom: 6px;
}

.gx-guard-call-directory-heading p {
    margin: 0;
    color: var(--gx-mobile-muted);
    line-height: 1.45;
}

.gx-guard-call-directory-close {
    flex: 0 0 auto;
    font-size: 27px;
    line-height: 1;
    color: #49625b;
    background: #eef4f1;
}

.gx-guard-call-search-label {
    display: grid;
    gap: 7px;
    font-weight: 800;
    color: #27443f;
}

.gx-guard-call-search-label input {
    width: 100%;
    min-height: 48px;
}

.gx-guard-call-resident-list {
    display: grid;
    gap: 9px;
    max-height: min(52dvh, 470px);
    overflow: auto;
    padding-right: 3px;
}

.gx-guard-call-resident {
    width: 100%;
    display: grid;
    grid-template-columns: 42px minmax(0, 1fr) auto;
    align-items: center;
    gap: 11px;
    padding: 12px;
    border: 1px solid var(--gx-mobile-line);
    border-radius: 15px;
    color: #173b32;
    background: #fff;
    text-align: left;
    cursor: pointer;
}

.gx-guard-call-resident:hover,
.gx-guard-call-resident:focus-visible {
    border-color: #65b6a2;
    background: #f2faf7;
    outline: none;
}

.gx-guard-call-resident:disabled {
    cursor: not-allowed;
    opacity: .5;
}

.gx-guard-call-resident-icon {
    width: 42px;
    height: 42px;
    display: grid;
    place-items: center;
    border-radius: 50%;
    color: #fff;
    background: #08775f;
}

.gx-guard-call-resident-icon svg {
    width: 20px;
    height: 20px;
}

.gx-guard-call-resident-copy {
    min-width: 0;
    display: grid;
    gap: 3px;
}

.gx-guard-call-resident-copy strong,
.gx-guard-call-resident-copy small {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.gx-guard-call-resident-copy small {
    color: var(--gx-mobile-muted);
}

.gx-guard-call-resident > b {
    color: #08775f;
    font-size: .84rem;
}

.gx-guard-call-no-results {
    padding: 20px 10px;
}

@media (max-width: 520px) {
    .gx-guard-call-directory-card {
        padding: 19px;
    }
    .gx-guard-call-resident {
        grid-template-columns: 40px minmax(0, 1fr);
    }
    .gx-guard-call-resident > b {
        grid-column: 2;
        justify-self: start;
    }
}

.gx-guard-call-resident[hidden] { display: none !important; }

/* GUARDINEXA V22 */
.gx-guard-hero.active-shift,
.gx-guard-hero.waiting-shift {
    padding: 18px !important;
    min-height: auto !important;
    border-radius: 22px !important;
}
.gx-guard-hero h1 { margin: 5px 0 4px !important; font-size: clamp(1.8rem, 8vw, 2.5rem) !important; }
.gx-guard-hero p { margin: 0 !important; line-height: 1.35 !important; font-size: .92rem !important; }
.gx-guard-shift-summary { display:flex !important; flex-wrap:wrap; gap:8px 14px !important; margin:12px 0 !important; }
.gx-guard-shift-summary > span { gap:6px !important; font-size:.88rem !important; }
.gx-guard-hero .gx-mobile-danger-button { width:auto !important; min-height:42px !important; padding:10px 14px !important; }


.gx-area-choice { min-height:96px !important; grid-template-columns:auto 62px minmax(0,1fr) !important; gap:14px !important; padding:13px !important; }
.gx-area-choice-icon { width:58px !important; height:58px !important; font-size:32px !important; }
.gx-area-choice em { margin-top:5px !important; font-size:12px !important; line-height:1.25 !important; font-style:normal !important; font-weight:700; }
.gx-area-rules-link { margin-top:7px; padding:0; border:0; background:transparent; color:#08745f; font:inherit; font-size:12px; font-weight:900; text-decoration:underline; cursor:pointer; }
.gx-area-rules-card p { white-space:pre-line; line-height:1.55; color:#42584e; }

.gx-v22-kyc-hero { padding:20px !important; }
.gx-v22-kyc-hero h1 { margin-bottom:6px !important; }
.gx-kyc-consent-check.locked { opacity:.72; background:#eef2ef; }
.gx-kyc-consent-check.locked input { filter:grayscale(1); }
.gx-kyc-camera { scroll-margin-top:110px; }

.gx-v22-associated-face { display:grid; gap:12px; padding:14px; border:1px solid #c8d9d0; border-radius:16px; background:#f5faf7; }
.gx-v22-associated-consent { display:grid; gap:7px; }
.gx-v22-associated-consent span { color:var(--gx-mobile-muted); line-height:1.4; }
.gx-v22-associated-consent label { display:flex; gap:9px; align-items:flex-start; font-weight:800; }
.gx-v22-associated-consent label.locked { opacity:.7; }
.gx-v22-associated-consent input { width:22px; height:22px; flex:0 0 auto; }

.gx-v22-supervisor-body { background:#edf4f0; }
.gx-v22-supervisor-content { display:grid; gap:14px; padding-bottom:100px; }
.gx-v22-supervisor-property { display:grid; gap:6px; font-weight:900; }
.gx-v22-supervisor-property select { width:100%; border:1px solid var(--gx-mobile-line); border-radius:13px; padding:12px; background:#fff; font:inherit; }
.gx-v22-supervisor-hero { display:grid; gap:14px; padding:18px; border-radius:22px; color:#fff; background:linear-gradient(145deg,#075344,#063d32); }
.gx-v22-supervisor-hero h1,.gx-v22-supervisor-hero p { margin:0; }
.gx-v22-supervisor-hero p { color:rgba(255,255,255,.8); }
.gx-v22-supervisor-actions { display:grid; grid-template-columns:1fr 1fr; gap:10px; }
.gx-v22-supervisor-actions .gx-mobile-secondary-button { background:#fff; }
.gx-v22-supervisor-dialog { width:min(94vw,720px); max-height:92vh; padding:0; border:0; border-radius:20px; background:transparent; }
.gx-v22-supervisor-dialog::backdrop { background:rgba(3,30,24,.68); backdrop-filter:blur(3px); }
.gx-v22-supervisor-dialog-card { max-height:92vh; overflow:auto; padding:18px; border-radius:20px; background:#fff; }
.gx-v22-dialog-head { display:flex; justify-content:space-between; align-items:flex-start; gap:12px; position:sticky; top:-18px; z-index:4; margin:-18px -18px 8px; padding:16px 18px; background:#fff; border-bottom:1px solid var(--gx-mobile-line); }
.gx-v22-dialog-head h2 { margin:3px 0 0; }
.gx-v22-dialog-head button { width:38px; height:38px; border:0; border-radius:50%; background:#eef4f0; font-size:24px; }
.gx-v22-weekdays { display:grid; grid-template-columns:repeat(7,1fr); gap:6px; }
.gx-v22-weekdays label { display:block; }
.gx-v22-weekdays input { position:absolute; opacity:0; pointer-events:none; }
.gx-v22-weekdays span { display:grid; place-items:center; min-height:38px; border:1px solid #bfd2c8; border-radius:10px; background:#fff; font-size:12px; font-weight:900; }
.gx-v22-weekdays input:checked + span { background:#08745f; color:#fff; border-color:#08745f; }
.gx-v22-attention-check { display:flex !important; align-items:flex-start; gap:10px; padding:13px; border:1px solid #e4c56a; border-radius:14px; background:#fff8e6; }
.gx-v22-attention-check input { width:22px; height:22px; flex:0 0 auto; }
.gx-v22-attention-check span,.gx-v22-attention-check small { display:block; }
.gx-v22-attention-check small { margin-top:3px; color:#6b6550; }
.gx-v22-signature { display:grid; gap:3px; padding:12px; border:1px dashed #9eb4aa; border-radius:12px; background:#f7faf8; }
.gx-v22-signature span { color:var(--gx-mobile-muted); font-size:12px; }

.gx-voice-card[data-viewer-role="caller"] [data-voice-answer],
.gx-voice-card[data-viewer-role="caller"] [data-voice-reject] { display:none !important; }

@media (max-width:560px) {
    .gx-area-choice { grid-template-columns:auto 58px minmax(0,1fr) !important; }
    .gx-area-choice-icon { width:54px !important; height:54px !important; font-size:30px !important; }
    .gx-v22-supervisor-actions { grid-template-columns:1fr; }
}

/* V22.0.1: los controles de llamada ocultos no pueden reaparecer por estilos de botones. */
.gx-voice-actions [hidden],
.gx-voice-actions [aria-hidden="true"] {
    display: none !important;
}

/* SOS residencial: estado flotante, fuera del contenido de la pÃ¡gina */
.gx-resident-sos-status {
    position: fixed;
    left: max(12px, env(safe-area-inset-left));
    right: max(12px, env(safe-area-inset-right));
    bottom: calc(146px + env(safe-area-inset-bottom));
    z-index: 3250;

    width: min(calc(100% - 24px), 560px);
    margin: 0 auto;

    pointer-events: none;
}

.gx-resident-sos-status[hidden] {
    display: none !important;
}

.gx-resident-sos-status-card {
    position: relative;

    display: grid;
    gap: 5px;

    width: 100%;
    padding: 14px 52px 14px 16px;

    border: 1px solid #efaaa4;
    border-left: 5px solid #c92f28;
    border-radius: 16px;

    background: #fff7f6;
    color: #263d36;

    box-shadow:
        0 16px 42px rgba(45, 25, 22, .24),
        0 3px 10px rgba(45, 25, 22, .12);

    pointer-events: auto;
}

.gx-resident-sos-dismiss {
    position: absolute;
    top: 10px;
    right: 10px;

    display: grid;
    place-items: center;

    width: 32px;
    height: 32px;
    padding: 0;

    border: 1px solid
        rgba(127, 31, 26, .16);
    border-radius: 999px;

    background: rgba(255, 255, 255, .82);
    color: #7f1f1a;

    font-family: inherit;
    font-size: 22px;
    font-weight: 500;
    line-height: 1;

    cursor: pointer;
    pointer-events: auto;
}

.gx-resident-sos-dismiss:hover,
.gx-resident-sos-dismiss:focus-visible {
    background: #ffffff;
    border-color: rgba(127, 31, 26, .34);
    outline: none;
}

.gx-resident-sos-status-card > span:first-child {
    color: #b32620;
    font-size: 10px;
    font-weight: 900;
    letter-spacing: .13em;
}

.gx-resident-sos-status-card h2 {
    margin: 0;
    color: #7f1f1a;
    font-size: 20px;
    line-height: 1.15;
}

.gx-resident-sos-status-card p {
    margin: 2px 0 0;
    color: #455b53;
    font-size: 13px;
    line-height: 1.42;
}

.gx-resident-sos-meta {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 5px 12px;

    margin-top: 4px;
    padding-top: 8px;

    border-top: 1px solid rgba(179, 38, 32, .14);
}

.gx-resident-sos-meta strong {
    color: #7f1f1a;
    font-size: 12px;
}

.gx-resident-sos-meta span {
    color: #66766f;
    font-size: 11px;
}

/* Seguridad ya recibiÃ³ la alerta y estÃ¡ actuando */
.gx-resident-sos-status.is-attending
.gx-resident-sos-status-card {
    padding: 12px 48px 12px 14px;
    border-radius: 14px;
}

.gx-resident-sos-status.is-attending
.gx-resident-sos-status-card > span:first-child,
.gx-resident-sos-status.is-attending
.gx-resident-sos-status-card h2,
.gx-resident-sos-status.is-attending
.gx-resident-sos-meta strong {
    color: #80550d;
}

/* Emergencia cerrada por seguridad */
.gx-resident-sos-status.is-resolved
.gx-resident-sos-status-card {
    border-color: #9bd4c0;
    border-left-color: #08745f;
    background: #effaf6;
}

.gx-resident-sos-status.is-resolved
.gx-resident-sos-status-card > span:first-child,
.gx-resident-sos-status.is-resolved
.gx-resident-sos-status-card h2,
.gx-resident-sos-status.is-resolved
.gx-resident-sos-meta strong {
    color: #075c4c;
}

@media (max-width: 560px) {
    .gx-resident-sos-status {
        left: 10px;
        right: 10px;
        bottom: calc(145px + env(safe-area-inset-bottom));
        width: auto;
    }

    .gx-resident-sos-status-card {
        padding: 12px 14px;
        border-radius: 14px;
    }

    .gx-resident-sos-status-card h2 {
        font-size: 18px;
    }

    .gx-resident-sos-status-card p {
        font-size: 12px;
    }
}

/* GUARDINEXA V23: chatbot residencial y tickets */
.gx-resident-chatbot-launch{
    position:fixed;right:14px;bottom:calc(88px + env(safe-area-inset-bottom));z-index:3300;
    display:flex;align-items:center;gap:7px;min-height:42px;padding:9px 13px;border:2px solid #fff;border-radius:999px;
    background:#075c4c;color:#fff;box-shadow:0 10px 24px rgba(4,48,39,.28);font:inherit;font-size:13px;font-weight:900;cursor:pointer
}
.gx-resident-chatbot-launch svg{width:21px;height:21px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.gx-resident-chatbot-launch:disabled{opacity:.65}
.gx-resident-chatbot-modal{
    position:fixed;
    inset:0;
    z-index:7200;
    display:flex;
    align-items:flex-end;
    justify-content:center;
    padding:12px;
    background:rgba(3,26,21,.30);
    backdrop-filter:blur(6px);
    -webkit-backdrop-filter:blur(6px);
}

.gx-resident-chatbot-modal[hidden]{
    display:none!important;
}

.gx-resident-chatbot-card{
    width:min(100%,500px);
    max-height:min(78vh,660px);
    display:grid;
    grid-template-rows:
        auto
        auto
        minmax(135px,1fr)
        auto
        auto
        auto;
    overflow:hidden;
    border:1px solid rgba(255,255,255,.50);
    border-radius:28px 28px 20px 20px;
   background:linear-gradient(
    180deg,
    rgba(240,250,246,.64),
    rgba(226,243,236,.46)
);

backdrop-filter:
    blur(12px)
    saturate(120%);

-webkit-backdrop-filter:
    blur(12px)
    saturate(120%);
}

.gx-resident-chatbot-card>header{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:9px;
    padding:11px 13px;
    background:linear-gradient(
        135deg,
        rgba(7,92,76,.96),
        rgba(6,61,50,.94)
    );
    color:#fff;
}

.gx-resident-chatbot-card>header div:first-child{
    display:grid;
    gap:1px;
}

.gx-resident-chatbot-card>header span{
    font-size:8px;
    letter-spacing:1.6px;
    color:#c3dc80;
    font-weight:900;
}

.gx-resident-chatbot-card>header strong{
    font-size:16px;
    line-height:1.15;
}

.gx-support-header-actions{
    display:flex;
    gap:6px;
}

.gx-support-header-actions button{
    width:32px;
    height:32px;
    border:1px solid rgba(255,255,255,.28);
    border-radius:50%;
    background:rgba(255,255,255,.10);
    color:#fff;
    font-size:20px;
    line-height:1;
    cursor:pointer;
}

.gx-support-recent{
    display:flex;
    align-items:center;
    gap:6px;
    overflow:auto;
    padding:6px 10px;
    border-bottom:1px solid rgba(190,211,202,.52);
    background:rgba(255,255,255,.22);
    white-space:nowrap;
    backdrop-filter:blur(8px);
    -webkit-backdrop-filter:blur(8px);
}

.gx-support-recent strong{
    font-size:9px;
    color:#31564b;
}

.gx-support-recent span{
    padding:4px 7px;
    border-radius:999px;
    background:rgba(237,246,242,.82);
    color:#365d51;
    font-size:9px;
    font-weight:800;
}

.gx-support-messages{
    display:flex;
    flex-direction:column;
    gap:6px;
    overflow:auto;
    min-height:135px;
    padding:10px 12px;
    background:transparent;
}

.gx-support-message{
    display:flex;
}

.gx-support-message>div{
    max-width:88%;
    padding:8px 10px;
    border:1px solid rgba(201,219,211,.82);
    border-radius:15px;
    background:rgba(255,255,255,.80);
    color:#273f37;
    font-size:12px;
    line-height:1.34;
    box-shadow:0 2px 8px rgba(7,61,50,.04);
    backdrop-filter:blur(8px);
    -webkit-backdrop-filter:blur(8px);
}

.gx-support-message.resident{
    justify-content:flex-end;
}

.gx-support-message.resident>div{
    background:rgba(8,124,103,.94);
    color:#fff;
    border-color:rgba(8,124,103,.94);
    border-radius:15px 15px 5px 15px;
}

.gx-support-message.bot>div{
    border-radius:15px 15px 15px 5px;
}

.gx-support-message.prompt>div{
    font-weight:900;
}

.gx-support-message.success>div{
    background:rgba(231,248,239,.86);
    border-color:rgba(112,202,150,.72);
    color:#145b40;
}

.gx-support-message.error>div{
    background:rgba(255,240,239,.88);
    border-color:rgba(239,145,138,.72);
    color:#9d2d27;
}

.gx-support-choices{
    display:flex;
    flex-wrap:wrap;
    gap:6px;
    padding:0 11px 9px;
}

.gx-support-choice{
    min-height:32px;
    padding:6px 10px;
    border:1px solid #b9d2c8;
    border-radius:999px;
    background:rgba(255,255,255,.78);
    color:#075c4c;
    font:inherit;
    font-size:10px;
    font-weight:900;
    cursor:pointer;
}

.gx-support-choice.success{
    background:#087c67;
    color:#fff;
    border-color:#087c67;
}

.gx-support-choice.secondary{
    background:rgba(238,245,242,.82);
}

.gx-support-ticket-form{
    display:grid;
    gap:7px;
    padding:0 11px 10px;
}

.gx-support-ticket-form[hidden]{
    display:none!important;
}

.gx-support-ticket-form label{
    display:grid;
    gap:4px;
    font-size:11px;
    font-weight:900;
}

.gx-support-ticket-form textarea{
    width:100%;
    min-height:72px;
    padding:9px 10px;
    resize:vertical;
    border:1px solid rgba(185,206,197,.88);
    border-radius:15px;
    background:rgba(255,255,255,.80);
    font:inherit;
    font-size:12px;
    line-height:1.35;
    backdrop-filter:blur(8px);
    -webkit-backdrop-filter:blur(8px);
}

.gx-support-ticket-form .gx-mobile-primary-button{
    min-height:40px;
    padding:9px 12px;
    border-radius:14px;
    font-size:12px;
}

.gx-resident-chatbot-card>footer{
    padding:7px 11px 9px;
    border-top:1px solid rgba(190,211,202,.52);
    color:#687a73;
    text-align:center;
    font-size:8px;
    font-weight:700;
    background:rgba(255,255,255,.16);
}
.gx-support-chat-open{
    overflow:hidden;
    overscroll-behavior:none;
}

@media(max-width:560px){

    .gx-resident-chatbot-modal{
        position:fixed;
        inset:0;
        width:100%;
        height:100dvh;
        padding:12px;
        align-items:flex-end;
        justify-content:center;
        box-sizing:border-box;
    }

    .gx-resident-chatbot-card{
        width:100%;
        height:min(86dvh,760px);
        max-height:calc(100dvh - 24px);
        min-height:0;
        border-radius:24px;
        overflow:hidden;
        grid-template-rows:
            auto
            auto
            minmax(110px,1fr)
            auto
            auto
            auto;
    }

    .gx-support-messages{
        min-height:110px;
        overflow-y:auto;
        overscroll-behavior:contain;
        scroll-behavior:smooth;
        scroll-padding-bottom:18px;
        padding-bottom:18px;
    }

    .gx-support-choices{
        max-height:82px;
        overflow-x:auto;
        overflow-y:hidden;
        flex-shrink:0;
        white-space:nowrap;
    }

    .gx-support-message-form{
        max-height:230px;
        overflow-y:auto;
        flex-shrink:0;
        padding-bottom:
            calc(
                8px
                + env(safe-area-inset-bottom)
            );
        background:rgba(240,250,246,.97);
    }

    .gx-support-message-form textarea{
        min-height:54px;
        height:68px;
        max-height:76px;
        resize:none;
    }

    .gx-resident-chatbot-card>footer{
        flex-shrink:0;
        padding-bottom:
            calc(
                6px
                + env(safe-area-inset-bottom)
            );
    }

    .gx-resident-chatbot-launch{
        right:12px;
        bottom:
            calc(
                84px
                + env(safe-area-inset-bottom)
            );
        padding:9px 12px;
    }
}

/* GUARDINEXA V23.1: AtenciÃ³n al residente */
.gx-support-message-form{
    display:grid;
    gap:7px;
    padding:0 11px 10px;
}

.gx-support-message-form[hidden]{
    display:none!important;
}

.gx-support-message-form label{
    display:grid;
    gap:4px;
}

.gx-support-form-label{
    font-size:10px;
    font-weight:900;
    color:#29493f;
}

.gx-support-message-form textarea{
    width:100%;
    min-height:70px;
    resize:vertical;
    padding:9px 10px;
    border:1px solid rgba(185,206,197,.88);
    border-radius:15px;
    background:rgba(255,255,255,.80);
    font:inherit;
    font-size:12px;
    line-height:1.35;
    backdrop-filter:blur(8px);
    -webkit-backdrop-filter:blur(8px);
}

.gx-support-message-form .gx-mobile-primary-button{
    min-height:40px;
    padding:9px 12px;
    border-radius:14px;
    font-size:12px;
}.gx-support-evidence-wrap{display:flex;align-items:center;justify-content:space-between;gap:10px}.gx-support-evidence-wrap[hidden]{display:none!important}.gx-support-evidence-button{display:inline-flex!important;align-items:center;justify-content:center;min-height:38px;padding:8px 11px;border:1px dashed #78a394;border-radius:11px;background:#f2f8f5;color:#075c4c;font-size:12px!important;font-weight:900;cursor:pointer}.gx-support-evidence-button input{position:absolute;width:1px;height:1px;overflow:hidden;opacity:0;pointer-events:none}.gx-support-evidence-wrap small{color:#697c74;font-size:10px;font-weight:800}.gx-support-choice.danger{color:#fff;background:#c9362c;border-color:#c9362c}.gx-resident-chatbot-launch span{font-size:11px}.gx-resident-chatbot-card{
    grid-template-rows:
        auto
        auto
        minmax(135px,1fr)
        auto
        auto
        auto;
}

.gx-support-messages{
    min-height:135px;
}.gx-support-message.bot.prompt>div{background:#eef5f2;color:#1c493d}.gx-support-message.bot.success>div{background:#e3f6e9;color:#17643f}.gx-support-message.bot.error>div{background:#fff0ef;color:#9e2d27}
@media(max-width:560px){.gx-resident-chatbot-launch{min-width:48px}.gx-resident-chatbot-launch span{display:none}.gx-resident-chatbot-launch svg{width:24px;height:24px}.gx-support-evidence-wrap{align-items:flex-start;flex-direction:column}}

/* GUARDINEXA V23.2 Â· Mis solicitudes */
.gx-my-requests-card{position:relative}
.gx-my-requests-page{padding-bottom:110px}
.gx-my-requests-hero{padding-bottom:22px}
.gx-my-requests-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:18px}
.gx-my-requests-summary span{display:flex;flex-direction:column;gap:2px;padding:12px;border-radius:16px;background:rgba(255,255,255,.12);font-size:12px;line-height:1.25}
.gx-my-requests-summary strong{font-size:21px;color:#fff}
.gx-request-flash{margin:0 0 14px;padding:14px 16px;border-radius:14px;font-weight:800}
.gx-request-flash.success{background:#e4f7ed;color:#075e4d;border:1px solid #81d5af}
.gx-request-flash.error{background:#fff0ef;color:#a52c24;border:1px solid #ef928b}
.gx-my-requests-list-card,.gx-resolved-by-bot-card{margin-top:16px}
.gx-my-requests-list{display:grid;gap:12px}
.gx-my-request-card{border:1px solid #d4e1dc;border-left:5px solid #7c9d91;border-radius:18px;padding:16px;background:#fff}
.gx-my-request-card.status-open{border-left-color:#dd9d27}
.gx-my-request-card.status-in_review{border-left-color:#438cc9}
.gx-my-request-card.status-in_progress{border-left-color:#0a8b71}
.gx-my-request-card.status-resolved{border-left-color:#45a06b}
.gx-my-request-card.status-closed{border-left-color:#87958f;background:#f7f9f8}
.gx-my-request-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}
.gx-my-request-head div{min-width:0}
.gx-my-request-head span{display:block;color:#718f34;font-size:11px;font-weight:900;letter-spacing:1.5px}
.gx-my-request-head h3{margin:4px 0 0;font-size:18px;line-height:1.25;color:#173f36}
.gx-my-request-head>b{flex:0 0 auto;padding:7px 10px;border-radius:999px;background:#edf4f1;color:#17634f;font-size:11px}
.gx-my-request-meta{display:flex;flex-wrap:wrap;gap:6px 12px;margin-top:10px;color:#66756f;font-size:12px}
.gx-my-request-preview{margin:12px 0 0;color:#40534c;line-height:1.45;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.gx-my-request-details{margin-top:12px;border-top:1px solid #e1e9e5;padding-top:10px}
.gx-my-request-details summary{cursor:pointer;color:#087d68;font-weight:900;list-style:none}
.gx-my-request-details summary::-webkit-details-marker{display:none}
.gx-my-request-details summary:after{content:'+';float:right;font-size:19px}
.gx-my-request-details[open] summary:after{content:'âˆ’'}
.gx-request-conversation{display:grid;gap:9px;margin-top:14px;padding:12px;border-radius:15px;background:#f4f8f6}
.gx-request-message{max-width:90%;padding:11px 13px;border-radius:15px;background:#fff;border:1px solid #dce7e2}
.gx-request-message.resident{margin-left:auto;background:#def5eb;border-color:#acdcca}
.gx-request-message.administration{background:#eef3ff;border-color:#cfdaf1}
.gx-request-message.bot{background:#fff9e9;border-color:#ead9a7}
.gx-request-message strong{display:block;font-size:11px;color:#19634f;margin-bottom:4px}
.gx-request-message p{margin:0;color:#243e36;line-height:1.4}
.gx-request-message small{display:block;margin-top:6px;color:#7b8984;font-size:10px}
.gx-request-evidence{margin-top:14px}
.gx-request-evidence>strong{display:block;margin-bottom:8px}
.gx-request-evidence>div{display:flex;flex-wrap:wrap;gap:8px}
.gx-request-evidence a{padding:9px 11px;border-radius:11px;background:#edf7f3;color:#087d68;text-decoration:none;font-weight:800;font-size:12px}
.gx-request-reply-form{display:grid;gap:12px;margin-top:15px}
.gx-request-reply-form label{display:grid;gap:7px;font-weight:800;color:#29473e}
.gx-request-reply-form textarea,.gx-request-reply-form input[type=file]{width:100%;border:1px solid #cbdad4;border-radius:14px;padding:12px;background:#fff;font:inherit}
.gx-request-resolution-actions{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin-top:15px}
.gx-request-resolution-actions form,.gx-request-reopen-form{margin:0}
.gx-request-resolution-actions button,.gx-request-reopen-form button{width:100%}
.gx-request-reopen-form{margin-top:15px}
.gx-resolved-by-bot-list{display:grid;gap:11px}
.gx-resolved-by-bot-list article{padding:15px;border:1px solid #dbe6e1;border-radius:16px;background:#fbfdfc}
.gx-resolved-by-bot-list article>div{display:flex;justify-content:space-between;gap:12px;color:#718f34;font-size:11px;font-weight:900;text-transform:uppercase;letter-spacing:.7px}
.gx-resolved-by-bot-list article>strong{display:block;margin-top:8px;color:#183f36;font-size:16px}
.gx-resolved-by-bot-list article>p{margin:8px 0 12px;color:#4c6058;line-height:1.45}
.gx-resolved-by-bot-list button{width:100%}
@media(max-width:520px){
  .gx-my-requests-summary{grid-template-columns:1fr 1fr}
  .gx-my-requests-summary span:last-child{grid-column:1/-1}
  .gx-request-resolution-actions{grid-template-columns:1fr}
}

/* GUARDINEXA V26 - concursos de Junta Directiva */
.gx-v26-board-contests{display:grid;gap:13px;margin-top:14px}.gx-v26-board-contest{padding:16px;border:1px solid #d5e4de;border-left:5px solid #0b846c;border-radius:17px;background:#fff;box-shadow:0 8px 22px rgba(12,58,46,.06)}.gx-v26-board-contest-head{display:flex;justify-content:space-between;gap:8px;align-items:center}.gx-v26-board-contest-head span{color:#718f34;font-size:10px;font-weight:950;letter-spacing:1.3px}.gx-v26-board-contest-head b{padding:5px 8px;border-radius:999px;background:#edf6f2;color:#11604f;font-size:10px}.gx-v26-board-contest h2{margin:10px 0 6px;color:#173f35;font-size:18px}.gx-v26-board-contest p{margin:0;color:#4d625a;line-height:1.4;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.gx-v26-board-contest small{display:block;margin-top:10px;color:#6b7b75;font-weight:800}

/* GUARDINEXA V26.1 supervisor, rounds and panic */
.gx-guard-panic-button{position:relative;background:#b51f2f!important;color:#fff!important}.gx-guard-panic-button i{position:absolute;left:0;bottom:0;height:3px;width:0;background:#fff;border-radius:0 0 12px 12px}.gx-guard-panic-button.holding i{width:100%;transition:width 1.8s linear}.gx-guard-panic-button.sent{box-shadow:0 0 0 4px rgba(181,31,47,.2)}.gx-guard-panic-confirm{position:fixed;inset:0;z-index:10020;background:rgba(28,2,7,.76);display:grid;place-items:center;padding:20px}.gx-guard-panic-confirm[hidden]{display:none}.gx-guard-panic-confirm section{width:min(440px,100%);background:#fff;border-radius:22px;padding:24px;text-align:center}.gx-guard-panic-confirm h2{color:#a71829;margin:8px 0}.gx-supervisor-call-modal[hidden]{display:none}.gx-supervisor-bell{position:relative}.gx-supervisor-bell b{position:absolute;right:-4px;top:-5px;min-width:18px;height:18px;padding:0 4px;border-radius:10px;background:#d4313f;color:#fff;font-size:10px;display:grid;place-items:center}.gx-supervisor-panic-list{border:2px solid #d4313f}.gx-supervisor-panic-card{border:1px solid #f0c3c7;background:#fff6f7;border-radius:16px;padding:14px;margin-top:10px}.gx-supervisor-panic-card>div:first-child{display:flex;flex-direction:column;gap:3px}.gx-supervisor-panic-card b{color:#9e1827}.gx-route-install-active{border:2px solid #0b725d}.gx-route-install-active small{display:block;color:#52675e;margin:-4px 0 10px}.gx-supervision-checklists{display:grid;gap:12px}.gx-supervision-checklists fieldset{border:1px solid #d8e5de;border-radius:14px;padding:12px}.gx-supervision-checklists legend{font-weight:900;color:#0b5b4a;padding:0 5px}.gx-supervision-checklists label{display:grid;grid-template-columns:1fr 140px;align-items:center;gap:10px;margin:8px 0}.gx-supervision-checklists select{min-height:40px}.gx-round-skip{margin:12px 0;border:1px solid #e6c67e;background:#fff9e9;border-radius:12px;padding:10px}.gx-round-skip summary{font-weight:800;color:#795316;cursor:pointer}.gx-topbar-call,.gx-call-supervisor{flex:0 0 auto}@media(max-width:520px){.gx-supervision-checklists label{grid-template-columns:1fr}.gx-mobile-top-actions{gap:5px}.gx-mobile-icon-button{width:38px;height:38px}}
.gx-route-scanner-dialog{border:0;padding:0;background:transparent;width:min(520px,94vw)}.gx-route-scanner-dialog::backdrop{background:rgba(0,20,16,.78)}.gx-route-scanner-dialog>div{background:#fff;border-radius:20px;overflow:hidden;padding:14px}.gx-route-scanner-dialog header{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px}.gx-route-scanner-dialog header button{border:0;background:#edf4f1;width:36px;height:36px;border-radius:50%;font-size:22px}.gx-route-scanner-dialog video{width:100%;min-height:280px;background:#071914;border-radius:14px;object-fit:cover}.gx-route-scanner-dialog p{font-size:13px;color:#607269}


/* GUARDINEXA Etapas 1-3: correcciones de residentes y procesos */
.gx-visit-mode-switch{display:grid;grid-template-columns:1fr 1fr;gap:8px;padding:5px;background:#edf4f1;border-radius:15px}
.gx-visit-mode-switch button{border:0;background:transparent;border-radius:11px;padding:11px 8px;font-weight:800;color:#526a62}
.gx-visit-mode-switch button.active{background:#fff;color:#075848;box-shadow:0 4px 14px rgba(5,70,57,.12)}
.gx-contact-visitor-section{display:grid;gap:12px}
.gx-visit-entry-actions{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:9px;
    width:100%;
}

.gx-visit-entry-actions .gx-mobile-primary-button,
.gx-visit-entry-actions .gx-mobile-secondary-button{
    width:100%;
    min-width:0;
    min-height:50px;
    padding:10px 7px;
    justify-content:center;
    font-size:.78rem;
    line-height:1.1;
    text-align:center;
    white-space:nowrap;
}

.gx-visit-entry-actions
.gx-contact-picker-button svg{
    flex:0 0 17px;
    width:17px;
    height:17px;
}

@media(max-width:380px){
    .gx-visit-entry-actions{
        gap:6px;
    }

    .gx-visit-entry-actions
    .gx-mobile-primary-button,
    .gx-visit-entry-actions
    .gx-mobile-secondary-button{
        padding:9px 4px;
        font-size:.69rem;
    }

    .gx-visit-entry-actions
    .gx-contact-picker-button svg{
        width:15px;
        height:15px;
    }
}
.gx-phone-contact-config{display:grid!important;grid-template-columns:1fr!important;gap:12px!important;padding:15px!important}
.gx-phone-contact-config>label,.gx-contact-vehicle-fields>label{display:grid;gap:7px;width:100%}
.gx-contact-vehicle-fields{display:grid;grid-template-columns:1fr;gap:12px}
.gx-contact-vehicle-fields[hidden]{display:none!important}
.gx-visitor-vehicle-fields{display:grid;grid-template-columns:1fr;gap:12px}
.gx-visitor-vehicle-fields[hidden]{display:none!important}
.gx-primary-area-picker{padding:14px;border:1px solid #cfe0d9;border-radius:16px;background:#f6faf8;display:grid;gap:7px}
.gx-primary-area-picker[hidden]{display:none!important}
.gx-primary-area-picker>small{color:#647a72}
.gx-primary-area-picker>div{display:grid;gap:8px;margin-top:4px}
.gx-primary-area-picker label{display:flex;align-items:center;gap:9px;padding:10px;border-radius:12px;background:#fff;border:1px solid #dbe8e3}
.gx-v26-board-contest{width:100%;text-align:left;border:1px solid #d9e5e0;background:#fff;cursor:pointer;font:inherit}
.gx-v26-board-contest:active{transform:scale(.995)}
.gx-board-process-detail p{white-space:normal;line-height:1.55}
.gx-board-proposal-list{display:grid;gap:12px}
.gx-board-proposal-card{padding:14px;border:1px solid #d9e5e0;border-radius:16px;background:#fff;display:grid;gap:10px}
.gx-board-proposal-card header{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}
.gx-board-proposal-card header span,.gx-board-proposal-card small{display:block;color:#657971;margin-top:3px}
.gx-board-ai-warning{padding:11px;border-radius:13px;background:#fff7e7;border:1px solid #eed49b;color:#6e5014}
.gx-board-ai-warning ul{margin:7px 0 0;padding-left:19px}
.gx-board-vote-form{margin:0;flex:1}.gx-board-vote-form button{width:100%}
@media(min-width:700px){.gx-contact-vehicle-fields,.gx-visitor-vehicle-fields{grid-template-columns:repeat(3,minmax(0,1fr))}}

.gx-reservation-filter-card{padding:12px!important;margin-bottom:12px}.gx-reservation-filter-card label{display:grid;gap:6px;font-weight:800}

/* GUARDINEXA V26.1 - Supervisor, Seguridad y Vigilante */
.gx-stage456-supervisor-content{display:grid;gap:14px}.gx-stage456-supervisor-hero{display:grid;gap:15px;padding:18px;border-radius:20px;background:linear-gradient(145deg,#073e33,#0b6f5a);color:#fff;box-shadow:0 14px 32px rgba(4,58,46,.18)}.gx-stage456-supervisor-hero h1{margin:4px 0 5px;font-size:25px}.gx-stage456-supervisor-hero p{margin:0;color:#d5eee5}.gx-stage456-action-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.gx-stage456-action-grid button{display:grid;gap:4px;min-height:88px;padding:13px;border:1px solid rgba(255,255,255,.25);border-radius:15px;background:rgba(255,255,255,.1);color:#fff;text-align:left;font:inherit}.gx-stage456-action-grid button:active{background:rgba(255,255,255,.2)}.gx-stage456-action-grid strong{font-size:14px}.gx-stage456-action-grid span{color:#d0e9df;font-size:11px;line-height:1.3}.gx-stage456-avatar{overflow:hidden}.gx-stage456-avatar img{width:100%;height:100%;object-fit:cover;border-radius:50%}.gx-stage456-active-route{border:2px solid #0a8066}.gx-stage456-next-point{display:grid;gap:4px;margin:10px 0 13px;padding:14px;border-radius:15px;background:#edf8f4}.gx-stage456-next-point span{color:#0b765f;font-size:11px;font-weight:900;text-transform:uppercase}.gx-stage456-next-point strong{font-size:18px;color:#163f35}.gx-stage456-next-point small{color:#60756c}.gx-stage456-check-form{border-top:1px solid #dce8e2;padding-top:12px}.gx-stage456-route-card{display:grid;gap:12px;padding:14px;border:1px solid #d7e5df;border-radius:16px;background:#fff}.gx-stage456-route-card header{display:flex;justify-content:space-between;align-items:flex-start;gap:10px}.gx-stage456-route-card header>div{display:grid;gap:3px}.gx-stage456-route-card header span{color:#64776e;font-size:12px}.gx-stage456-route-card ol{display:grid;gap:7px;margin:0;padding:0;list-style:none}.gx-stage456-route-card li{display:grid;grid-template-columns:auto 1fr;gap:8px;padding:8px 10px;border-radius:11px;background:#f3f8f5;color:#244b40}.gx-stage456-route-card li b{color:#0b765f}.gx-stage456-route-card li span,.gx-stage456-route-card li small{display:block}.gx-stage456-route-card li small{margin-top:2px;color:#73837c;font-size:10px}.gx-stage456-history-grid{display:grid;gap:14px}.gx-guard-readonly-profile{display:grid;gap:0;border:1px solid #d7e4de;border-radius:15px;overflow:hidden;background:#fff}.gx-guard-readonly-profile>div{display:grid;grid-template-columns:minmax(105px,.75fr) minmax(0,1.4fr);gap:10px;padding:11px 12px;border-bottom:1px solid #e4ece8}.gx-guard-readonly-profile>div:last-child{border-bottom:0}.gx-guard-readonly-profile span{color:#697a72;font-size:11px;font-weight:850}.gx-guard-readonly-profile strong{color:#183f35;font-size:12px;overflow-wrap:anywhere}.gx-stage456-supervisor-body dialog{max-height:90dvh;overflow:auto}.gx-stage456-supervisor-body .gx-mobile-list-card form{margin:0}.gx-stage456-supervisor-body .gx-mobile-list-card.unread{border-left:4px solid #0b8068}.gx-stage456-supervisor-body .gx-mobile-list-card.urgent{border-left:4px solid #c62939;background:#fff6f7}.gx-stage456-supervisor-body [data-location-status]{display:block;color:#667a71;font-size:11px}.gx-round-skip input[type=file]{width:100%;padding:11px;border:1px solid #d5dfda;border-radius:12px;background:#fff}.gx-mobile-message.info{border-color:#b9d9cc;background:#eef8f4;color:#245548}
@media(min-width:760px){.gx-stage456-history-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.gx-stage456-supervisor-content{max-width:1050px;margin:0 auto}.gx-stage456-action-grid{grid-template-columns:repeat(4,minmax(0,1fr))}}
@media(max-width:420px){.gx-stage456-action-grid{grid-template-columns:1fr}.gx-guard-readonly-profile>div{grid-template-columns:1fr;gap:3px}}

/* Etapas 4, 5 y 6: cambio seguro de contraseÃ±a del Supervisor */
.gx-stage456-password-box{border:1px solid rgba(17,73,60,.16);border-radius:16px;padding:12px 14px;background:#f7faf8}.gx-stage456-password-box summary{cursor:pointer;font-weight:800;color:#0d4b3e}.gx-stage456-password-box[open] summary{margin-bottom:12px}.gx-stage456-password-box label+label{margin-top:10px}


/* GUARDINEXA V26.1 - parche residentes visual 29/07/2026 */
.gx-visit-manual-link{
    justify-self:start;
    border:0;
    padding:2px 0 8px;
    color:var(--gx-mobile-green);
    background:transparent;
    font-weight:850;
    cursor:pointer;
}
.gx-unified-visit-form > .gx-contact-picker-button,
[data-unified-visit-form] > .gx-contact-picker-button{
    width:100%;
    justify-content:center;
}
[data-other-company][hidden]{display:none!important}

.gx-weekday-field{display:grid;gap:10px}
.gx-weekday-toolbar{display:flex;align-items:center;justify-content:space-between;gap:10px}
.gx-weekday-toolbar>span{display:flex;gap:7px}
.gx-weekday-toolbar button{
    min-height:34px;
    border:1px solid #c9d9d1;
    border-radius:999px;
    padding:6px 12px;
    color:#0b5b4a;
    background:#fff;
    font-weight:850;
    cursor:pointer;
}
.gx-weekday-toolbar button:active{transform:translateY(1px)}
.gx-weekday-picker{
    display:grid;
    grid-template-columns:repeat(7,minmax(0,1fr));
    gap:7px;
}
.gx-weekday-picker label{
    position:relative;
    display:block;
    padding:0;
    border:0;
    border-radius:999px;
    background:transparent;
    cursor:pointer;
}
.gx-weekday-picker input{
    position:absolute;
    width:1px;
    height:1px;
    opacity:0;
    pointer-events:none;
}
.gx-weekday-picker label>span{
    min-height:42px;
    display:grid;
    place-items:center;
    border:1px solid #cbd9d2;
    border-radius:999px;
    color:#294139;
    background:#fff;
    font-size:.82rem;
    font-weight:900;
    transition:background .16s ease,color .16s ease,border-color .16s ease,transform .16s ease;
}
.gx-weekday-picker input:checked+span{
    border-color:var(--gx-mobile-green);
    color:#fff;
    background:var(--gx-mobile-green);
    box-shadow:0 5px 13px rgba(0,134,108,.2);
}
.gx-weekday-picker input:focus-visible+span{
    outline:3px solid rgba(0,134,108,.18);
    outline-offset:2px;
}
.gx-weekday-picker label:active>span{transform:scale(.96)}

.gx-reservation-filter-card{
    padding:14px 16px!important;
    border:1px solid var(--gx-mobile-line);
    border-radius:18px;
    background:#fff;
}
.gx-reservation-filter-card label{
    display:grid;
    gap:8px;
    color:#263d50;
    font-size:.84rem;
    font-weight:850;
}
.gx-reservation-filter-card select{
    width:100%;
    min-height:52px;
    appearance:none;
    -webkit-appearance:none;
    padding:12px 46px 12px 14px;
    border:1px solid #cbd8cd;
    border-radius:13px;
    outline:0;
    color:var(--gx-mobile-ink);
    background-color:#fff;
    background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='18' viewBox='0 0 24 24' fill='none' stroke='%23063d32' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");
    background-repeat:no-repeat;
    background-position:right 14px center;
    background-size:18px;
    font-weight:750;
}
.gx-reservation-filter-card select:focus{
    border-color:var(--gx-mobile-green);
    box-shadow:0 0 0 3px rgba(0,134,108,.11);
}

@media(max-width:380px){
    .gx-weekday-picker{gap:5px}
    .gx-weekday-picker label>span{min-height:38px;font-size:.76rem}
    .gx-weekday-toolbar{align-items:flex-start;flex-direction:column}
}

.gx-visit-entry-actions{
    display:grid;
    grid-template-columns:minmax(0,1fr) minmax(0,1fr);
    gap:8px;
    width:100%;
}

.gx-visit-entry-actions button{
    width:100%;
    min-width:0;
    min-height:50px;
    margin:0;
    padding:10px 6px;
    justify-content:center;
    font-size:.73rem;
    line-height:1.1;
    text-align:center;
    white-space:nowrap;
}

.gx-visit-entry-actions
.gx-contact-picker-button svg{
    flex:0 0 16px;
    width:16px;
    height:16px;
}

@media(max-width:380px){
    .gx-visit-entry-actions{
        gap:6px;
    }

    .gx-visit-entry-actions button{
        padding:9px 3px;
        font-size:.66rem;
    }

    .gx-visit-entry-actions
    .gx-contact-picker-button svg{
        width:14px;
        height:14px;
    }
}

/* GUARDINEXA - chat residencial unificado */
.gx-support-message{position:relative;flex-direction:column;align-items:flex-start}
.gx-support-message.resident{align-items:flex-end}
.gx-support-message.administration{align-items:flex-start}
.gx-support-message.administration>div{background:#fff8df;border-color:#e9cf78;color:#594715;border-bottom-left-radius:5px}
.gx-support-message.system>div{background:#f2f4f3;color:#52605b;border-style:dashed}
.gx-support-message-channel{display:block;margin:0 5px 3px;color:#71817a;font-size:9px;font-weight:900;letter-spacing:.03em;text-transform:uppercase}
.gx-support-message.resident .gx-support-message-channel{text-align:right;color:#56766c}
.gx-support-message.resident>div,.gx-support-message.bot>div,.gx-support-message.administration>div,.gx-support-message.system>div{width:auto}

/* Encabezados residenciales normalizados: paginas independientes */
.gx-resident-page-actions{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:10px;
    margin-top:-4px;
}
.gx-resident-page-actions .gx-mobile-secondary-button{
    width:100%;
    min-height:44px;
    margin:0;
    padding:10px 12px;
    font-size:13px;
}
.gx-my-requests-summary.gx-resident-page-summary{
    margin:0 0 16px;
    padding:12px;
    border:1px solid var(--gx-mobile-line);
    border-radius:20px;
    background:#fff;
    box-shadow:0 10px 28px rgba(18,55,43,.055);
}
.gx-my-requests-summary.gx-resident-page-summary span{
    min-width:0;
    padding:12px;
    color:var(--gx-mobile-muted);
    background:#f1f7f4;
}
.gx-my-requests-summary.gx-resident-page-summary strong{
    color:var(--gx-mobile-deep);
}
@media(max-width:390px){
    .gx-resident-page-actions{grid-template-columns:1fr}
}

/* MarcaciÃ³n independiente y trabajos puntuales de Seguridad */
.gx-guard-marking-actions{
    display:grid;
    grid-template-columns:
        minmax(0,.85fr)
        minmax(0,1.15fr);
    gap:10px;
    margin-top:18px;
}

.gx-guard-marking-actions > button{
    width:100%;
    min-width:0;
    margin:0;
}

.gx-guard-marking-entry-tools{
    display:flex;
    justify-content:flex-end;
    margin:0 0 12px;
}

.gx-guard-marking-entry-tools > button{
    width:auto;
    min-height:42px;
    padding:9px 14px;
}

[data-guard-novelty-open].has-novelty{
    border-color:#0a8b70;
    background:#e5f7f0;
    color:#08745f;
}

.gx-guard-novelty-card{
    display:grid;
    gap:16px;
}

.gx-guard-novelty-card > header{
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    gap:16px;
}

.gx-guard-novelty-card > header span{
    display:block;
    color:#718d43;
    font-size:.65rem;
    font-weight:900;
    letter-spacing:.16em;
}

.gx-guard-novelty-card > header strong{
    display:block;
    margin-top:4px;
    color:#143d33;
    font-size:1.35rem;
}

.gx-guard-novelty-card > header > button{
    display:grid;
    place-items:center;
    flex:0 0 38px;
    width:38px;
    height:38px;
    padding:0;
    border:0;
    border-radius:999px;
    background:#edf5f2;
    color:#143d33;
    font-size:1.45rem;
    cursor:pointer;
}

.gx-guard-novelty-card > p{
    margin:0;
    color:#61736c;
    font-size:.88rem;
    line-height:1.45;
}

.gx-guard-novelty-card > label{
    display:grid;
    gap:7px;
    color:#29483e;
    font-size:.8rem;
    font-weight:850;
}

.gx-guard-novelty-card textarea{
    width:100%;
    min-height:110px;
    padding:12px;
    resize:vertical;
    border:1px solid var(--gx-mobile-line);
    border-radius:13px;
    background:#fff;
    color:var(--gx-mobile-ink);
    font:inherit;
}

@media(max-width:390px){
    .gx-guard-marking-actions{
        grid-template-columns:1fr;
    }
}
.gx-guard-task-card{
    align-items:flex-start;
}
.gx-guard-task-card p{
    margin:7px 0 0;
    color:#60736b;
    font-size:.78rem;
    line-height:1.4;
}
.gx-guard-task-card.urgent{border-left:4px solid #c83a32}
.gx-guard-task-card.high{border-left:4px solid #d49018}
.gx-guard-task-card.normal{border-left:4px solid #08745f}
.gx-guard-task-card.low{border-left:4px solid #5a7f9c}

/* GUARDINEXA - normalizacion movil de Vigilante y Supervisor */
.gx-guard-operation-grid{
    margin-top:9px;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:8px;
}

.gx-guard-operation-grid .gx-mobile-action-card{
    min-height:92px;
    padding:9px;
    gap:6px;
    border-radius:16px;
}

.gx-guard-operation-grid .gx-mobile-action-icon{
    width:38px;
    height:38px;
    border-radius:12px;
}

.gx-guard-operation-grid .gx-mobile-action-icon svg{
    width:20px;
    height:20px;
}

.gx-guard-operation-grid .gx-mobile-action-card strong{
    font-size:.78rem;
    line-height:1.12;
    text-align:center;
}

.gx-guard-operation-grid .gx-mobile-action-card small{
    display:none;
}

.gx-stage456-supervisor-body .gx-mobile-shell{
    min-height:100vh;
}
.gx-supervisor-mobile-content{
    display:grid;
    gap:14px;
    padding-bottom:96px;
}
.gx-stage456-supervisor-body .gx-mobile-hero.gx-supervisor-compact-hero{
    display:flex;
    align-items:center;
    justify-content:flex-start;
    min-height:86px;
    color:#fff;
    background:
        radial-gradient(circle at 90% 15%,rgba(255,255,255,.14),transparent 28%),
        linear-gradient(145deg,#075344,#063d32);
}

.gx-stage456-supervisor-body
.gx-supervisor-compact-hero
.gx-resident-compact-copy{
    flex:1 1 100%;
    width:100%;
    max-width:none;
    min-width:0;
    height:auto;
    margin:0;
    padding:0 14px;
    background:transparent;
    border:0;
    border-radius:0;
    box-shadow:none;
}

.gx-stage456-supervisor-body
.gx-supervisor-compact-hero
.gx-resident-compact-copy strong,
.gx-stage456-supervisor-body
.gx-supervisor-compact-hero
.gx-resident-compact-copy span{
    color:rgba(255,255,255,.84);
}
.gx-supervisor-compact-hero .gx-mobile-property-switcher{
    color:#fff;
    border-color:rgba(255,255,255,.25);
    background:rgba(255,255,255,.11);
}
.gx-supervisor-menu-grid{
    gap:9px;
}
.gx-supervisor-menu-grid .gx-mobile-action-card{
    min-height:112px;
    padding:12px;
    gap:7px;
    border-radius:16px;
}
.gx-supervisor-menu-grid .gx-mobile-action-icon{
    width:38px;
    height:38px;
    border-radius:12px;
}
.gx-supervisor-menu-grid .gx-mobile-action-icon svg{
    width:20px;
    height:20px;
}
.gx-supervisor-menu-grid .gx-mobile-action-card strong{
    font-size:.86rem;
    line-height:1.18;
}
.gx-supervisor-menu-grid .gx-mobile-action-card small{
    font-size:.69rem;
    line-height:1.25;
}
.gx-supervisor-mobile-content .gx-mobile-card{
    margin:0;
    border-radius:18px;
}
.gx-supervisor-mobile-content #supervisor-notices,
.gx-supervisor-mobile-content #supervisor-history{
    scroll-margin-top:92px;
}
.gx-supervisor-bottom-nav{
    grid-template-columns:repeat(5,minmax(0,1fr));
}
.gx-supervisor-point-dialog .gx-v22-supervisor-dialog-card{
    display:grid;
    gap:13px;
}
.gx-supervisor-qr-scanner{
    position:relative;
    overflow:hidden;
    min-height:230px;
    border-radius:16px;
    background:#092c25;
}
.gx-supervisor-qr-scanner[hidden]{
    display:none!important;
}
.gx-supervisor-qr-scanner video{
    position:absolute;
    inset:0;
    width:100%;
    height:100%;
    object-fit:cover;
}
.gx-supervisor-qr-frame{
    position:absolute;
    inset:50% auto auto 50%;
    width:170px;
    height:170px;
    border:3px solid rgba(255,255,255,.92);
    border-radius:18px;
    transform:translate(-50%,-50%);
    box-shadow:0 0 0 999px rgba(1,27,22,.42);
}
.gx-supervisor-qr-scanner small{
    position:absolute;
    left:12px;
    right:12px;
    bottom:10px;
    z-index:2;
    padding:8px 10px;
    border-radius:10px;
    color:#fff;
    background:rgba(0,0,0,.58);
    text-align:center;
}
[data-round-point-location-status]{
    display:block;
    color:#62756d;
    font-size:.72rem;
    line-height:1.4;
}
.gx-supervisor-next-point-message b{
    display:inline-flex;
    width:max-content;
    max-width:100%;
    margin-top:4px;
    padding:6px 9px;
    border-radius:999px;
    color:#075344;
    background:#dff2ea;
    font-size:.72rem;
}
.gx-supervisor-points-screen{
    display:grid;
    gap:14px;
    padding-bottom:96px;
}
.gx-supervisor-points-screen[hidden]{
    display:none;
}
.gx-supervisor-screen-header{
    display:grid;
    grid-template-columns:42px minmax(0,1fr) auto;
    align-items:center;
    gap:10px;
    padding:16px;
    border:1px solid #d6e4dd;
    border-radius:20px;
    background:#fff;
}
.gx-supervisor-screen-header h1,
.gx-supervisor-screen-header p{
    margin:0;
}
.gx-supervisor-screen-header h1{
    margin-top:2px;
    color:#143f35;
    font-size:1.28rem;
}
.gx-supervisor-screen-header p{
    margin-top:4px;
    color:#667a71;
    font-size:.73rem;
    line-height:1.4;
}
.gx-supervisor-screen-back{
    color:#075344;
    background:#edf7f3;
}
.gx-supervisor-screen-back span{
    display:block;
    margin-top:-3px;
    font-size:2rem;
    line-height:1;
}
.gx-supervisor-install-point-button{
    width:auto;
    min-height:40px;
    padding:9px 12px;
    white-space:nowrap;
}
.gx-supervisor-point-summary{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:10px;
}
.gx-supervisor-point-summary article{
    display:grid;
    gap:4px;
    padding:14px;
    border:1px solid #d6e4dd;
    border-radius:16px;
    background:#fff;
}
.gx-supervisor-point-summary span{
    color:#687a72;
    font-size:.7rem;
    font-weight:800;
}
.gx-supervisor-point-summary strong{
    color:#075344;
    font-size:1.2rem;
}
.gx-supervisor-points-empty{
    display:grid;
    justify-items:center;
    gap:9px;
    padding:28px 18px;
    text-align:center;
}
.gx-supervisor-points-empty h2,
.gx-supervisor-points-empty p{
    margin:0;
}
.gx-supervisor-points-empty p{
    color:#687a72;
    font-size:.82rem;
}
.gx-supervisor-installed-point-list{
    display:grid;
    gap:11px;
}
.gx-supervisor-installed-point-card{
    display:grid;
    gap:8px;
    padding:15px;
    border:1px solid #d5e3dc;
    border-radius:18px;
    background:#fff;
    box-shadow:0 7px 18px rgba(8,61,49,.06);
}
.gx-supervisor-installed-point-card>header{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:10px;
}
.gx-supervisor-point-number{
    display:inline-flex;
    align-items:center;
    min-height:28px;
    padding:5px 9px;
    border-radius:999px;
    color:#fff;
    background:#087b64;
    font-size:.72rem;
    font-weight:900;
}
.gx-supervisor-installed-point-card h2,
.gx-supervisor-installed-point-card p{
    margin:0;
}
.gx-supervisor-installed-point-card h2{
    color:#173f35;
    font-size:1.02rem;
}
.gx-supervisor-installed-point-card>p{
    color:#667a71;
    font-size:.78rem;
}
.gx-supervisor-installed-point-card dl,
.gx-supervisor-activation-success dl{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:8px;
    margin:2px 0 0;
}
.gx-supervisor-installed-point-card dl div,
.gx-supervisor-activation-success dl div{
    display:grid;
    gap:2px;
    min-width:0;
    padding:9px 10px;
    border-radius:12px;
    background:#f1f7f4;
}
.gx-supervisor-installed-point-card dt,
.gx-supervisor-activation-success dt{
    color:#6a7c74;
    font-size:.63rem;
    font-weight:850;
    text-transform:uppercase;
}
.gx-supervisor-installed-point-card dd,
.gx-supervisor-activation-success dd{
    min-width:0;
    margin:0;
    color:#173f35;
    font-size:.74rem;
    font-weight:850;
    overflow-wrap:anywhere;
}
.gx-supervisor-installed-point-card details{
    border-top:1px solid #e1eae6;
    padding-top:9px;
}
.gx-supervisor-installed-point-card summary{
    color:#08745f;
    font-size:.75rem;
    font-weight:850;
    cursor:pointer;
}
.gx-supervisor-point-detail{
    display:grid;
    gap:6px;
    margin-top:9px;
    padding:10px;
    border-radius:12px;
    background:#f7faf8;
}
.gx-supervisor-point-detail span{
    display:flex;
    justify-content:space-between;
    gap:10px;
    color:#697a73;
    font-size:.69rem;
}
.gx-supervisor-point-detail strong{
    color:#173f35;
    overflow-wrap:anywhere;
}
.gx-supervisor-point-detail p{
    padding-top:6px;
    border-top:1px solid #e1eae6;
    color:#566a61;
    font-size:.74rem;
    line-height:1.45;
}
.gx-supervisor-activation-success .gx-v22-supervisor-dialog-card{
    display:grid;
    justify-items:center;
    gap:10px;
    padding:24px 18px;
    text-align:center;
}
.gx-supervisor-success-mark{
    width:58px;
    height:58px;
    display:grid;
    place-items:center;
    border-radius:50%;
    color:#fff;
    background:#087b64;
}
.gx-supervisor-success-mark svg{
    width:30px;
    height:30px;
}
.gx-supervisor-activation-success h2,
.gx-supervisor-activation-success p{
    margin:0;
}
.gx-supervisor-activation-success h2{
    color:#143f35;
    font-size:1.35rem;
}
.gx-supervisor-activation-success p{
    max-width:470px;
    color:#65786f;
    font-size:.82rem;
    line-height:1.45;
}
.gx-supervisor-activation-success dl{
    width:100%;
    text-align:left;
}
.gx-supervisor-success-actions{
    display:grid;
    width:100%;
    gap:9px;
    margin-top:4px;
}

@media(max-width:390px){
    .gx-guard-operation-grid,
    .gx-supervisor-menu-grid{
        grid-template-columns:repeat(2,minmax(0,1fr));
    }
    .gx-guard-operation-grid .gx-mobile-action-card,
    .gx-supervisor-menu-grid .gx-mobile-action-card{
        min-height:106px;
        padding:10px;
    }
    .gx-guard-operation-grid .gx-mobile-action-card small,
    .gx-supervisor-menu-grid .gx-mobile-action-card small{
        display:none;
    }
    .gx-supervisor-bottom-nav .gx-mobile-nav-item span{
        font-size:.58rem;
    }
    .gx-supervisor-screen-header{
        grid-template-columns:38px minmax(0,1fr);
    }
    .gx-supervisor-install-point-button{
        grid-column:1/-1;
        width:100%;
    }
    .gx-supervisor-installed-point-card dl,
    .gx-supervisor-activation-success dl{
        grid-template-columns:1fr;
    }
}


/* GUARDINEXA Â· Supervisor Â· Rondas y ruta de marcaje V2 */
.gx-supervisor-screen-header-simple{
    grid-template-columns:42px minmax(0,1fr) auto;
}

.gx-supervisor-add-point-action{
    width:auto;
    min-height:36px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:5px;
    padding:8px 11px;
    border-radius:11px;
    font-size:.72rem;
    line-height:1;
    white-space:nowrap;
}

.gx-supervisor-add-point-action span{
    font-size:1rem;
    line-height:1;
}
.gx-supervisor-installed-points-section,
.gx-supervisor-route-current,
.gx-supervisor-route-editor{
    display:grid;
    gap:14px;
    padding:16px;
}
.gx-supervisor-installed-points-section .gx-supervisor-point-summary{
    margin:0;
}
.gx-supervisor-route-preview{
    display:grid;
    gap:0;
    margin:0;
    padding:0;
    list-style:none;
}
.gx-supervisor-route-preview li{
    position:relative;
    display:grid;
    grid-template-columns:34px minmax(0,1fr);
    align-items:center;
    gap:10px;
    min-height:54px;
    padding:7px 0;
}
.gx-supervisor-route-preview li:not(:last-child)::after{
    content:'â†“';
    position:absolute;
    left:11px;
    bottom:-8px;
    color:#6a7d74;
    font-size:.85rem;
    font-weight:900;
}
.gx-supervisor-route-preview li>span{
    width:30px;
    height:30px;
    display:grid;
    place-items:center;
    border-radius:50%;
    color:#fff;
    background:#087b64;
    font-size:.72rem;
    font-weight:900;
}
.gx-supervisor-route-preview li>strong{
    min-width:0;
    padding:11px 12px;
    border:1px solid #d8e5df;
    border-radius:13px;
    color:#173f35;
    background:#f6faf8;
    font-size:.84rem;
    overflow-wrap:anywhere;
}
.gx-supervisor-route-select-list{
    display:grid;
    gap:10px;
}
.gx-supervisor-route-select-list label{
    display:grid;
    grid-template-columns:88px minmax(0,1fr);
    align-items:center;
    gap:10px;
    margin:0;
    padding:10px;
    border:1px solid #d8e5df;
    border-radius:14px;
    background:#f8fbf9;
}
.gx-supervisor-route-select-list label>span{
    color:#075344;
    font-size:.74rem;
    font-weight:900;
}
.gx-supervisor-route-select-list select{
    min-width:0;
    margin:0;
    background:#fff;
}

@media(max-width:390px){
    .gx-supervisor-route-select-list label{
        grid-template-columns:1fr;
        gap:6px;
    }
}

.gx-supervisor-route-list-heading{
    align-items:center;
}
.gx-supervisor-route-add{
    width:auto;
    min-height:38px;
    padding:8px 12px;
    white-space:nowrap;
}
.gx-supervisor-route-compact-list{
    display:grid;
    gap:7px;
}
.gx-supervisor-route-compact-row{
    display:grid;
    grid-template-columns:minmax(0,1fr) auto auto;
    align-items:center;
    gap:9px;
    padding:9px 10px;
    border:1px solid #dbe6e0;
    border-radius:12px;
    background:#fff;
}
.gx-supervisor-route-compact-main{
    min-width:0;
    display:grid;
    gap:3px;
}
.gx-supervisor-route-compact-main strong{
    color:#173e34;
    font-size:.86rem;
    overflow-wrap:anywhere;
}
.gx-supervisor-route-compact-main span,
.gx-supervisor-route-compact-main small{
    color:#6a7972;
    font-size:.72rem;
    line-height:1.3;
}
.gx-supervisor-route-state{
    display:inline-flex;
    align-items:center;
    min-height:25px;
    padding:4px 8px;
    border-radius:999px;
    font-size:.66rem;
    font-weight:900;
    white-space:nowrap;
}
.gx-supervisor-route-state.active{
    color:#08705a;
    background:#dff5eb;
}
.gx-supervisor-route-state.inactive{
    color:#626f69;
    background:#edf1ef;
}
.gx-supervisor-route-compact-actions{
    display:flex;
    align-items:center;
    gap:5px;
}
.gx-supervisor-route-compact-actions a,
.gx-supervisor-route-compact-actions button{
    min-height:32px;
    padding:6px 9px;
    border:1px solid #cfded6;
    border-radius:9px;
    color:#086d59;
    background:#f7fbf9;
    font-size:.7rem;
    font-weight:900;
    text-decoration:none;
}
.gx-supervisor-route-compact-actions form{
    margin:0;
}
.gx-supervisor-route-form-drawer{
    padding:0;
    overflow:hidden;
}
.gx-supervisor-route-form-drawer>summary{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:12px;
    padding:13px 15px;
    cursor:pointer;
    list-style:none;
    color:#164036;
    font-weight:900;
}
.gx-supervisor-route-form-drawer>summary::-webkit-details-marker{
    display:none;
}
.gx-supervisor-route-form-drawer[open]>summary{
    border-bottom:1px solid #e1e9e5;
}
.gx-supervisor-route-form-drawer>.gx-mobile-form{
    padding:14px;
}
.gx-supervisor-minute-field{
    max-width:180px;
}

@media(max-width:520px){
    .gx-supervisor-route-compact-row{
        grid-template-columns:minmax(0,1fr) auto;
    }
    .gx-supervisor-route-compact-actions{
        grid-column:1/-1;
        justify-content:flex-end;
    }
    .gx-supervisor-route-list-heading{
        align-items:flex-start;
    }
}

.gx-mobile-device-security{
    display:grid;
    gap:0;
    margin-top:16px;
    overflow:hidden;
    border:1px solid #dce7e2;
    border-radius:18px;
    background:#ffffff;
    box-shadow:0 10px 28px rgba(18,61,51,.07);
}

.gx-mobile-device-security > header{
    display:grid;
    gap:3px;
    padding:15px 16px 13px;
    border-bottom:1px solid #e4ece8;
    background:#f7faf8;
}

.gx-mobile-device-security > header strong{
    color:#173f35;
    font-size:.94rem;
    font-weight:900;
}

.gx-mobile-device-security > header span{
    color:#697b73;
    font-size:.76rem;
    line-height:1.4;
}

.gx-mobile-device-setting{
    width:100%;
    display:grid;
    grid-template-columns:44px minmax(0,1fr) auto 46px;
    align-items:center;
    gap:11px;
    min-height:78px;
    padding:13px 15px;
    border:0;
    border-bottom:1px solid #e7eeeb;
    color:#183e35;
    background:#ffffff;
    text-align:left;
    cursor:pointer;
    appearance:none;
    -webkit-appearance:none;
}

.gx-mobile-device-setting:last-child{
    border-bottom:0;
}

.gx-mobile-device-setting:active{
    background:#f4f8f6;
}

.gx-mobile-device-setting-icon{
    width:42px;
    height:42px;
    display:grid;
    place-items:center;
    border-radius:13px;
    color:#176b59;
    background:#e7f4ef;
}

.gx-mobile-device-setting-icon svg{
    width:22px;
    height:22px;
    fill:none;
    stroke:currentColor;
    stroke-width:1.9;
    stroke-linecap:round;
    stroke-linejoin:round;
}

.gx-mobile-device-setting-copy{
    min-width:0;
    display:grid;
    gap:4px;
}

.gx-mobile-device-setting-copy strong{
    color:#173f35;
    font-size:.88rem;
    font-weight:900;
    line-height:1.25;
}

.gx-mobile-device-setting-copy small{
    color:#6d7d76;
    font-size:.72rem;
    line-height:1.35;
}

.gx-mobile-device-status{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-height:25px;
    padding:4px 9px;
    border-radius:999px;
    font-size:.65rem;
    font-weight:900;
    white-space:nowrap;
}

.gx-mobile-device-status.checking{
    color:#65736d;
    background:#edf1ef;
}

.gx-mobile-device-status.active{
    color:#06705a;
    background:#dff5eb;
}

.gx-mobile-device-status.inactive{
    color:#8b5e08;
    background:#fff1cf;
}

.gx-mobile-device-status.error{
    color:#a63131;
    background:#ffe3e3;
}

.gx-mobile-device-switch{
    position:relative;
    width:44px;
    height:25px;
    display:block;
    flex:0 0 auto;
    border-radius:999px;
    background:#cbd5d0;
    box-shadow:inset 0 0 0 1px rgba(23,63,53,.08);
    transition:background .2s ease;
}

.gx-mobile-device-switch i{
    position:absolute;
    top:3px;
    left:3px;
    width:19px;
    height:19px;
    display:block;
    border-radius:50%;
    background:#ffffff;
    box-shadow:0 2px 6px rgba(20,52,44,.24);
    transition:transform .2s ease;
}

.gx-mobile-device-setting.is-active
.gx-mobile-device-switch{
    background:#08745e;
}

.gx-mobile-device-setting.is-active
.gx-mobile-device-switch i{
    transform:translateX(19px);
}

.gx-mobile-device-setting.is-active
.gx-mobile-device-setting-icon{
    color:#ffffff;
    background:#08745e;
}

.gx-mobile-device-setting.is-unavailable{
    opacity:.72;
}

@media(max-width:430px){
    .gx-mobile-device-setting{
        grid-template-columns:40px minmax(0,1fr) 44px;
        gap:9px;
        padding:13px;
    }

    .gx-mobile-device-setting-icon{
        width:39px;
        height:39px;
    }

    .gx-mobile-device-status{
        grid-column:2;
        justify-self:start;
        margin-top:2px;
    }

    .gx-mobile-device-switch{
        grid-column:3;
        grid-row:1 / span 2;
    }
}

/* GUARDINEXA V1 - Carrusel de comunicados del residente */

.gx-resident-announcement-carousel{
    margin:0 0 14px;
}

.gx-resident-announcement-heading{
    display:flex;
    align-items:flex-end;
    justify-content:space-between;
    gap:12px;
    margin:0 2px 8px;
}

.gx-resident-announcement-heading>div{
    display:grid;
    gap:2px;
}

.gx-resident-announcement-heading span{
    color:#7c8b87;
    font-size:.66rem;
    font-weight:800;
    letter-spacing:.08em;
}

.gx-resident-announcement-heading strong{
    color:#163f37;
    font-size:1rem;
}

.gx-resident-announcement-heading small{
    color:#72817d;
    font-size:.7rem;
}

.gx-resident-announcement-viewport{
    position:relative;
    overflow:hidden;
    border-radius:20px;
    background:#eef3f1;
    box-shadow:0 10px 28px rgba(14,50,42,.10);
}

.gx-resident-announcement-track{
    display:flex;
    transition:transform .36s ease;
    will-change:transform;
}

.gx-resident-announcement-slide{
    min-width:100%;
    background:#fff;
}

.gx-resident-announcement-image{
    width:100%;
    height:145px;
    display:flex;
    align-items:center;
    justify-content:center;
    overflow:hidden;
    background:#eef3f1;
}

.gx-resident-announcement-image img{
    width:100%;
    height:100%;
    display:block;
    object-fit:cover;
    object-position:center;
}

.gx-resident-announcement-caption{
    padding:11px 13px 13px;
    display:grid;
    gap:6px;
}

.gx-resident-announcement-caption>div{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:12px;
}

.gx-resident-announcement-caption strong{
    color:#163f37;
    font-size:.88rem;
    line-height:1.2;
}

.gx-resident-announcement-caption span{
    flex:0 0 auto;
    color:#7b8985;
    font-size:.68rem;
}

.gx-resident-announcement-caption p{
    margin:0;
    color:#586762;
    font-size:.74rem;
    line-height:1.35;
    display:-webkit-box;
    -webkit-line-clamp:2;
    -webkit-box-orient:vertical;
    overflow:hidden;
}

.gx-resident-announcement-nav{
    position:absolute;
    top:42%;
    transform:translateY(-50%);
    width:34px;
    height:34px;
    border:0;
    border-radius:50%;
    background:rgba(4,36,29,.78);
    color:#fff;
    font-size:1.6rem;
    line-height:1;
    display:grid;
    place-items:center;
    z-index:2;
    box-shadow:0 5px 16px rgba(0,0,0,.18);
}

.gx-resident-announcement-nav.previous{
    left:9px;
}

.gx-resident-announcement-nav.next{
    right:9px;
}

.gx-resident-announcement-dots{
    display:flex;
    justify-content:center;
    gap:6px;
    padding-top:8px;
}

.gx-resident-announcement-dots button{
    width:7px;
    height:7px;
    padding:0;
    border:0;
    border-radius:50%;
    background:#bdc9c5;
}

.gx-resident-announcement-dots button.active{
    width:20px;
    border-radius:999px;
    background:#176b5a;
}

/* GUARDINEXA - Novedades dentro del hero */

.gx-resident-compact-hero{
    position:relative;
    overflow:hidden;
}

.gx-resident-compact-hero{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:6px;
    padding:0;
    overflow:hidden;
    border-radius:18px;
    background:transparent;
}

.gx-resident-compact-copy{
    position:relative;
    z-index:2;
    min-width:0;
    padding:12px 14px;
    display:flex;
    flex-direction:column;
    justify-content:center;
    background:#075f50;
    border-radius:18px 8px 8px 18px;
}

.gx-home-news-preview{
    position:relative;
    width:100%;
    min-width:0;
    height:auto;
    min-height:0;
    align-self:stretch;
    margin:0;
    padding:0;
    overflow:hidden;
    border:0;
    border-radius:8px 18px 18px 8px;
    background:#075f50;
    box-shadow:none;
    cursor:pointer;
}

.gx-home-news-preview > img{
    position:absolute;
    inset:0;
    width:100%;
    height:100%;
    display:block;
    object-fit:cover;
    object-position:center;
}

.gx-home-news-preview > span{
    position:absolute;
    left:9px;
    bottom:7px;
    z-index:3;
    color:#fff;
    font-size:.58rem;
    font-weight:900;
    letter-spacing:.08em;
    text-transform:uppercase;
    text-shadow:0 1px 4px rgba(0,0,0,.55);
}

.gx-home-news-preview-track{
    position:absolute;
    inset:0;
    display:flex;
    width:100%;
    height:100%;
    transition:transform .36s ease;
    will-change:transform;
}

.gx-home-news-preview-slide{
    position:relative;
    flex:0 0 100%;
    min-width:100%;
    width:100%;
    height:100%;
}

.gx-home-news-preview-slide img{
    width:100%;
    height:100%;
    display:block;
    object-fit:cover;
    object-position:center;
}

.gx-home-news-preview::after{
    content:"";
    position:absolute;
    inset:0;
    z-index:1;
    pointer-events:none;
    background:linear-gradient(
        180deg,
        rgba(3,29,24,.02) 30%,
        rgba(3,29,24,.78) 100%
    );
}

.gx-home-news-preview-label{
    position:absolute;
    left:8px;
    right:8px;
    bottom:6px;
    z-index:2;
    overflow:hidden;
    color:#fff;
    font-size:.58rem;
    font-weight:900;
    letter-spacing:.08em;
    text-align:left;
    text-overflow:ellipsis;
    text-transform:uppercase;
    white-space:nowrap;
}

.gx-home-news-modal[hidden]{
    display:none!important;
}

.gx-home-news-modal{
    position:fixed;
    inset:0;
    z-index:10050;
    display:grid;
    place-items:center;
    padding:16px;
    background:rgba(4,24,20,.76);
    backdrop-filter:blur(8px);
    -webkit-backdrop-filter:blur(8px);
}

.gx-home-news-modal-card{
    width:min(100%,430px);
    max-height:90dvh;
    overflow:hidden;
    border:1px solid rgba(255,255,255,.3);
    border-radius:24px;
    background:#fff;
    box-shadow:0 24px 70px rgba(0,0,0,.38);
}

.gx-home-news-modal-header{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:14px;
    padding:14px 16px;
    background:#073e34;
    color:#fff;
}

.gx-home-news-modal-header>div{
    display:grid;
    gap:2px;
}

.gx-home-news-modal-header span{
    color:#b9d987;
    font-size:.62rem;
    font-weight:900;
    letter-spacing:.14em;
}

.gx-home-news-modal-header strong{
    font-size:.92rem;
}

.gx-home-news-modal-close{
    width:36px;
    height:36px;
    padding:0;
    display:grid;
    place-items:center;
    border:1px solid rgba(255,255,255,.22);
    border-radius:50%;
    color:#fff;
    background:rgba(255,255,255,.1);
    font-size:1.6rem;
    line-height:1;
    cursor:pointer;
}

.gx-home-news-carousel{
    position:relative;
    overflow:hidden;
    background:#eef3f1;
}

.gx-home-news-modal-track{
    display:flex;
    width:100%;
    transition:transform .36s ease;
    will-change:transform;
}

.gx-home-news-modal-slide{
    flex:0 0 100%;
    min-width:100%;
    background:#fff;
}

.gx-home-news-modal-image{
    width:100%;
    height:60vh;
    max-height:520px;
    display:flex;
    align-items:center;
    justify-content:center;
    background:#e9efec;
}

.gx-home-news-modal-image img{
    width:100%;
    height:100%;
    display:block;
    object-fit:contain;
}

.gx-home-news-modal-copy{
    padding:13px 15px 17px;
    display:grid;
    gap:7px;
}

.gx-home-news-modal-copy>div{
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    gap:12px;
}

.gx-home-news-modal-copy strong{
    color:#143e35;
    font-size:.9rem;
    line-height:1.2;
}

.gx-home-news-modal-copy span{
    flex:0 0 auto;
    color:#7b8985;
    font-size:.68rem;
}

.gx-home-news-modal-copy p{
    margin:0;
    color:#53645f;
    font-size:.76rem;
    line-height:1.4;
}

.gx-home-news-arrow{
    position:absolute;
    top:44%;
    z-index:4;
    width:38px;
    height:38px;
    padding:0;
    display:grid;
    place-items:center;
    transform:translateY(-50%);
    border:0;
    border-radius:50%;
    color:#fff;
    background:rgba(4,45,37,.82);
    font-size:1.7rem;
    cursor:pointer;
    box-shadow:0 6px 18px rgba(0,0,0,.22);
}

.gx-home-news-arrow.previous{
    left:9px;
}

.gx-home-news-arrow.next{
    right:9px;
}

.gx-home-news-modal-dots{
    position:absolute;
    left:50%;
    bottom:103px;
    z-index:5;
    display:flex;
    gap:5px;
    transform:translateX(-50%);
    padding:5px 8px;
    border-radius:999px;
    background:rgba(4,35,29,.6);
}

.gx-home-news-modal-dots button{
    width:6px;
    height:6px;
    padding:0;
    border:0;
    border-radius:50%;
    background:rgba(255,255,255,.48);
}

.gx-home-news-modal-dots button.active{
    width:18px;
    border-radius:999px;
    background:#fff;
}

@media(max-width:390px){
    .gx-resident-compact-hero{
        grid-template-columns:1fr 1fr;
        gap:5px;
    }

    .gx-resident-compact-copy{
        padding:10px 12px;
        border-radius:16px 7px 7px 16px;
    }

    .gx-home-news-preview{
        width:100%;
        height:auto;
        min-height:0;
        align-self:stretch;
        border-radius:7px 16px 16px 7px;
    }

    .gx-home-news-modal-image{
        height:58vh;
        max-height:480px;
    }
}

/* GUARDINEXA - Inicio residencial corporativo V2 */

.gx-resident-home-v2 .gx-resident-home-identity{
    width:auto;
    min-height:64px;
    margin:-18px -18px 12px;
    padding:10px 18px;
    display:grid;
    grid-template-columns:minmax(0,1fr) auto auto;
    align-items:center;
    gap:12px;
    overflow:visible;
    border:0;
    border-bottom:1px solid #dfe8e4;
    border-radius:0;
    color:#073e34;
    background:#fff;
    box-shadow:none;
}

.gx-resident-home-v2 .gx-resident-compact-copy{
    min-width:0;
    margin:0;
    padding:0;
    display:block;
    color:#073e34;
    background:transparent;
    border:0;
    border-radius:0;
    box-shadow:none;
}

.gx-resident-home-v2 .gx-resident-compact-copy h1{
    margin:0;
    color:#073e34;
    font-size:clamp(1rem,4.5vw,1.28rem);
    font-weight:850;
    line-height:1.1;
    white-space:nowrap;
}

.gx-resident-home-meta{
    min-width:0;
    display:flex;
    align-items:center;
    justify-content:flex-end;
    gap:10px;
}

.gx-resident-home-meta>strong{
    flex:0 0 auto;
    padding:5px 9px;
    border-radius:9px;
    color:#0a5547;
    background:#e8f3ef;
    font-size:.78rem;
    line-height:1;
}

.gx-resident-home-meta>span{
    overflow:hidden;
    color:#5d6965;
    font-size:.74rem;
    font-weight:650;
    line-height:1.15;
    text-align:right;
    text-overflow:ellipsis;
    white-space:nowrap;
}

.gx-resident-home-v2 .gx-resident-home-switcher{
    width:auto;
    max-width:150px;
    min-height:36px;
    margin:0;
    padding:6px 9px;
    color:#0a5547;
    background:#f3f8f6;
    border:1px solid #d8e5e0;
    box-shadow:none;
}

.gx-resident-home-grid-v2{
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:10px;
}

.gx-resident-home-grid-v2 .gx-mobile-action-card,
.gx-resident-home-grid-v2 .gx-mobile-action-card.primary,
.gx-resident-home-grid-v2 .gx-mobile-action-card.service{
    min-height:122px;
    padding:14px 10px 12px;
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:flex-start;
    gap:10px;
    border:1px solid #dfe7e3;
    border-radius:18px;
    color:#073e34;
    background:#fff;
    box-shadow:0 7px 20px rgba(7,62,52,.055);
    text-align:center;
}

.gx-resident-home-grid-v2 .gx-mobile-action-card .gx-mobile-action-icon{
    width:64px;
    height:64px;
    margin:0 auto;
    flex:0 0 64px;
    border-radius:18px;
    color:#075344;
    background:#e8f3ef;
}

.gx-resident-home-grid-v2 .gx-mobile-action-card .gx-mobile-action-icon svg{
    width:46px;
    height:46px;
    stroke-width:1.75;
}

.gx-resident-home-grid-v2 .gx-mobile-action-card strong{
    width:100%;
    margin:auto 0 0;
    color:#073e34;
    font-size:clamp(.78rem,3.3vw,.9rem);
    font-weight:800;
    line-height:1.16;
    text-align:center;
}

.gx-resident-home-grid-v2 .gx-mobile-action-card small{
    display:none;
}

.gx-resident-card-visits .gx-mobile-action-icon,
.gx-resident-card-access .gx-mobile-action-icon{
    background:#e5f3ef!important;
}

.gx-resident-card-providers .gx-mobile-action-icon,
.gx-resident-card-notifications .gx-mobile-action-icon{
    background:#fbf3df!important;
}

.gx-resident-card-passes .gx-mobile-action-icon,
.gx-resident-card-packages .gx-mobile-action-icon,
.gx-resident-card-rentals .gx-mobile-action-icon{
    background:#eaf3f8!important;
}

.gx-resident-card-areas .gx-mobile-action-icon{
    background:#edf5e8!important;
}

.gx-resident-card-visits .gx-icon-accent,
.gx-resident-card-providers .gx-icon-accent,
.gx-resident-card-notifications .gx-icon-accent,
.gx-resident-card-areas .gx-icon-accent,
.gx-resident-card-rentals .gx-icon-accent{
    stroke:#b6811e;
}

.gx-resident-card-passes .gx-icon-accent,
.gx-resident-card-packages .gx-icon-accent,
.gx-resident-card-access .gx-icon-accent{
    stroke:#159daf;
}

.gx-home-news-preview.gx-home-news-preview-v2{
    position:relative;
    grid-column:1 / -1;
    width:100%;
    min-width:0;
    height:92px;
    min-height:92px;
    margin:0;
    padding:0;
    display:grid;
    grid-template-columns:minmax(118px,.8fr) minmax(0,1.45fr) auto;
    align-items:stretch;
    overflow:hidden;
    border:1px solid #dfe7e3;
    border-radius:18px;
    color:#073e34;
    background:#fff;
    box-shadow:0 7px 20px rgba(7,62,52,.055);
    text-align:left;
}

.gx-home-news-preview.gx-home-news-preview-v2::after{
    display:none;
}

.gx-home-news-preview.gx-home-news-preview-v2>span{
    position:relative;
    inset:auto;
    left:auto;
    right:auto;
    bottom:auto;
    color:inherit;
    font-size:inherit;
    font-weight:inherit;
    letter-spacing:normal;
    text-shadow:none;
    text-transform:none;
}

.gx-home-news-preview-copy{
    position:relative;
    z-index:3;
    padding:13px 8px 13px 15px;
    display:flex;
    flex-direction:column;
    align-items:flex-start;
    justify-content:center;
    gap:8px;
    background:#fff;
}

.gx-home-news-preview-copy>strong{
    color:#073e34;
    font-size:clamp(.9rem,4vw,1.08rem);
    font-weight:850;
    line-height:1;
}

.gx-home-news-preview-copy>small{
    padding:6px 9px;
    border-radius:8px;
    color:#fff;
    background:#b6811e;
    font-size:.66rem;
    font-weight:800;
    line-height:1;
}

.gx-home-news-preview-media{
    position:relative;
    min-width:0;
    height:100%;
    overflow:hidden;
    background:#f8f4e9;
}

.gx-home-news-preview-media::before{
    content:"";
    position:absolute;
    inset:0 auto 0 0;
    z-index:2;
    width:28px;
    pointer-events:none;
    background:linear-gradient(90deg,#fff,rgba(255,255,255,0));
}

.gx-home-news-preview-media img{
    position:absolute;
    inset:0;
    width:100%;
    height:100%;
    display:block;
    object-fit:cover;
    object-position:center;
}

.gx-home-news-preview-dots{
    position:relative;
    z-index:3;
    min-width:42px;
    padding:0 11px 10px 6px;
    display:flex;
    align-items:flex-end;
    justify-content:center;
    gap:5px;
    background:#fff;
}

.gx-home-news-preview-dots i{
    width:6px;
    height:6px;
    display:block;
    border-radius:50%;
    background:#c9d0cd;
}

.gx-home-news-preview-dots i.active{
    background:#075344;
}

@media(max-width:420px){
    .gx-resident-home-v2 .gx-resident-home-identity{
        margin:-18px -14px 12px;
        padding:10px 14px;
        grid-template-columns:minmax(0,1fr) auto;
        gap:8px;
    }

    .gx-resident-home-v2 .gx-resident-home-switcher{
        grid-column:1 / -1;
        width:100%;
        max-width:none;
    }

    .gx-resident-home-meta{
        gap:7px;
    }

    .gx-resident-home-meta>span{
        max-width:150px;
    }
}

@media(max-width:360px){
    .gx-resident-home-v2 .gx-resident-compact-copy h1{
        font-size:.94rem;
    }

    .gx-resident-home-meta>strong{
        padding:5px 7px;
    }

    .gx-resident-home-meta>span{
        max-width:126px;
        font-size:.68rem;
    }

    .gx-resident-home-grid-v2 .gx-mobile-action-card,
    .gx-resident-home-grid-v2 .gx-mobile-action-card.primary,
    .gx-resident-home-grid-v2 .gx-mobile-action-card.service{
        min-height:112px;
        padding:12px 8px 10px;
    }

    .gx-home-news-preview.gx-home-news-preview-v2{
        grid-template-columns:minmax(104px,.8fr) minmax(0,1.35fr) auto;
    }
}

/* =========================================================
   TERMINAL MÃ“VIL â€” DISEÃ‘O FINAL
   ========================================================= */

.gx-terminal-body .gx-terminal-shell {
    min-height: 100svh;
    background:
        linear-gradient(
            180deg,
            #f7faf7 0,
            #f3f8f4 100%
        );
}

.gx-terminal-body .gx-mobile-topbar {
    min-height: 84px;
}

.gx-terminal-body .gx-terminal-top-action {
    cursor: default;
}

.gx-terminal-mobile-content {
    min-height: calc(100svh - 84px);
    display: grid;
    align-content: start;
    padding: 28px 28px calc(104px + env(safe-area-inset-bottom));
}

.gx-terminal-main-card {
    width: 100%;
    min-height: min(560px, calc(100svh - 196px));
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 15px;
    padding: 30px 32px;
    border: 1px solid #d7e2da;
    border-radius: 20px;
    background:
        radial-gradient(
            circle at 50% 12%,
            rgba(0, 134, 108, .045),
            transparent 30%
        ),
        #ffffff;
    box-shadow: 0 18px 44px rgba(18, 55, 43, .11);
    text-align: center;
}

.gx-terminal-main-card svg {
    fill: none;
    stroke: currentColor;
    stroke-width: 1.8;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.gx-terminal-main-logo {
    width: 94px;
    height: 94px;
    display: block;
    flex: 0 0 auto;
    object-fit: contain;
    border-radius: 22px;
}

.gx-terminal-linked-pill {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    min-height: 38px;
    padding: 8px 14px;
    border-radius: 11px;
    color: #075c49;
    background: #dff3e9;
    font-size: .78rem;
    font-weight: 850;
}

.gx-terminal-linked-pill svg {
    width: 18px;
    height: 18px;
    flex: 0 0 auto;
}

.gx-terminal-main-copy {
    display: grid;
    justify-items: center;
    gap: 7px;
    margin-top: 8px;
}

.gx-terminal-main-copy h1 {
    margin: 0;
    color: #063d32;
    font-size: clamp(1.65rem, 7vw, 2rem);
    line-height: 1.08;
}

.gx-terminal-main-copy > strong {
    color: #69cbaa;
    font-size: 1.08rem;
    line-height: 1.2;
}

.gx-terminal-main-copy p {
    max-width: 340px;
    margin: 0;
    color: #53615c;
    font-size: .86rem;
    line-height: 1.5;
}

.gx-terminal-main-actions,
.gx-terminal-activation-form {
    width: 100%;
    display: grid;
    gap: 12px;
    margin-top: 20px;
}

.gx-terminal-main-actions .gx-mobile-primary-button,
.gx-terminal-main-actions .gx-mobile-secondary-button,
.gx-terminal-activation-form .gx-mobile-primary-button {
    width: 100%;
    min-height: 56px;
    border-radius: 13px;
    font-size: .9rem;
}

.gx-terminal-main-actions svg {
    width: 23px;
    height: 23px;
    flex: 0 0 auto;
}

.gx-terminal-other-account {
    border-color: #174d43;
}

.gx-terminal-role-note {
    margin: 2px 0 0;
    color: #69756f;
    font-size: .72rem;
    line-height: 1.4;
}

.gx-terminal-activation-card {
    justify-content: center;
}

.gx-terminal-activation-form {
    text-align: left;
}

.gx-terminal-activation-code {
    min-height: 56px !important;
    text-align: center;
    text-transform: uppercase;
    letter-spacing: .28em;
    font-size: 1.15rem !important;
    font-weight: 850;
}

.gx-terminal-bottom-nav .gx-mobile-nav-item:disabled {
    opacity: .28;
}

@media (max-width: 460px) {
    .gx-terminal-body .gx-mobile-topbar {
        min-height: 76px;
        gap: 7px;
        padding-left: 10px;
        padding-right: 10px;
    }

    .gx-terminal-body .gx-mobile-brand {
        gap: 7px;
    }

    .gx-terminal-body .gx-mobile-brand-mark {
        width: 43px;
        height: 43px;
        flex-basis: 43px;
    }

    .gx-terminal-body .gx-mobile-brand-copy {
        max-width: 110px;
    }

    .gx-terminal-body .gx-mobile-brand-copy strong {
        font-size: .78rem;
    }

    .gx-terminal-body .gx-mobile-brand-copy span {
        font-size: .61rem;
    }

    .gx-terminal-body .gx-mobile-top-actions {
        gap: 4px;
    }

    .gx-terminal-body .gx-mobile-icon-button {
        width: 36px;
        height: 36px;
        border-radius: 11px;
    }

    .gx-terminal-body .gx-mobile-icon-button svg {
        width: 19px;
        height: 19px;
    }

    .gx-terminal-mobile-content {
        padding: 22px 18px calc(96px + env(safe-area-inset-bottom));
    }

    .gx-terminal-main-card {
        min-height: min(530px, calc(100svh - 176px));
        gap: 13px;
        padding: 26px 24px;
    }

    .gx-terminal-main-logo {
        width: 84px;
        height: 84px;
    }
}

@media (max-width: 380px) {
    .gx-terminal-body .gx-mobile-brand-copy {
        max-width: 86px;
    }

    .gx-terminal-body .gx-mobile-icon-button {
        width: 33px;
        height: 33px;
    }

    .gx-terminal-body .gx-mobile-top-actions {
        gap: 3px;
    }

    .gx-terminal-main-card {
        padding: 22px 18px;
    }

    .gx-terminal-main-copy h1 {
        font-size: 1.5rem;
    }
}

/* VIGILANTE — TURNO ACTIVO COMPACTO */

.gx-guard-hero.active-shift {
    gap: 9px;
    padding: 16px 18px !important;
}

.gx-guard-hero.active-shift > .gx-mobile-eyebrow {
    margin: 0;
}

.gx-guard-hero.active-shift .gx-guard-shift-main {
    align-items: center;
}

.gx-guard-hero.active-shift .gx-guard-shift-main > div {
    gap: 0;
}

.gx-guard-hero.active-shift .gx-guard-shift-main h1 {
    margin: 0 0 10px !important;
    font-size: 1.55rem !important;
    line-height: 1.08 !important;
}

.gx-guard-hero.active-shift .gx-guard-shift-summary {
    margin: 0 !important;
}

.gx-guard-hero.active-shift .gx-guard-shift-summary > span {
    font-size: .8rem !important;
}

.gx-guard-hero.active-shift .gx-mobile-danger-button {
    flex: 0 0 auto;
    min-width: 160px;
    min-height: 52px !important;
    padding: 11px 14px !important;
    border-radius: 13px;
    font-size: .8rem;
    white-space: nowrap;
}

@media (max-width: 390px) {
    .gx-guard-hero.active-shift {
        padding: 15px !important;
    }

    .gx-guard-hero.active-shift .gx-guard-shift-main {
        gap: 9px;
    }

    .gx-guard-hero.active-shift .gx-guard-shift-main h1 {
        font-size: 1.28rem !important;
    }

    .gx-guard-hero.active-shift .gx-mobile-danger-button {
        min-width: 132px;
        padding-inline: 10px !important;
        font-size: .72rem;
    }
}

/* GX_PREMIUM_ICONS_FINAL_V1 START */
/* GUARDINEXA - iconografia premium aprobada. Solo color, acabado y SVG; sin dimensiones ni layout. */

.gx-premium-svg .gx-premium-shape{
    fill:currentColor!important;
    stroke:none!important;
}
.gx-premium-svg .gx-premium-stroke{
    fill:none!important;
    stroke:currentColor!important;
    stroke-linecap:round!important;
    stroke-linejoin:round!important;
}
.gx-premium-svg .gx-premium-accent-gold{
    fill:#ffd15a!important;
    stroke:none!important;
}
.gx-premium-svg .gx-premium-accent-lime{
    fill:#bfe65a!important;
    stroke:none!important;
}
.gx-premium-svg .gx-premium-accent-red{
    fill:#d9212b!important;
    stroke:none!important;
}
.gx-premium-svg .gx-premium-accent-cyan{
    fill:#72eced!important;
    stroke:none!important;
}
.gx-premium-svg .gx-premium-accent-cream{
    fill:#fff4d9!important;
    stroke:none!important;
}
.gx-premium-svg .gx-premium-accent-ink{
    fill:#07463a!important;
    stroke:none!important;
}
.gx-premium-svg .gx-premium-accent-ink-stroke{
    fill:none!important;
    stroke:#07463a!important;
    stroke-linecap:round!important;
    stroke-linejoin:round!important;
}
.gx-premium-svg .gx-premium-accent-red-stroke{
    fill:none!important;
    stroke:#cf1c29!important;
    stroke-linecap:round!important;
    stroke-linejoin:round!important;
}
.gx-premium-svg .gx-premium-accent-lime-stroke{
    fill:none!important;
    stroke:#bfe65a!important;
    stroke-linecap:round!important;
    stroke-linejoin:round!important;
}

/* Acabado premium comun: conserva la caja existente de cada icono. */
.gx-mobile-action-icon,
.gx-mobile-list-icon,
.gx-mobile-gate-icon,
.gx-mobile-property-switcher > span:first-child,
.gx-mobile-property-option > span:first-child,
.gx-mobile-property-invitation-banner > span{
    color:#fff!important;
    background:linear-gradient(145deg,#27c994,#05765f)!important;
    box-shadow:0 7px 16px rgba(4,88,70,.24),inset 0 1px 0 rgba(255,255,255,.28)!important;
}

/* Residente - los colores corresponden al mockup aprobado. */
.gx-resident-card-visits .gx-mobile-action-icon{
    color:#fff!important;
    background:linear-gradient(145deg,#3addaa,#07805f)!important;
    box-shadow:0 8px 18px rgba(5,126,93,.28),inset 0 1px 0 rgba(255,255,255,.30)!important;
}
.gx-resident-card-providers .gx-mobile-action-icon{
    color:#fff!important;
    background:linear-gradient(145deg,#ffbd46,#a45b05)!important;
    box-shadow:0 8px 18px rgba(159,91,9,.27),inset 0 1px 0 rgba(255,255,255,.32)!important;
}
.gx-resident-card-passes .gx-mobile-action-icon{
    color:#fff!important;
    background:linear-gradient(145deg,#31bff1,#0754b8)!important;
    box-shadow:0 8px 18px rgba(8,82,174,.27),inset 0 1px 0 rgba(255,255,255,.30)!important;
}
.gx-resident-card-notifications .gx-mobile-action-icon{
    color:#fff!important;
    background:linear-gradient(145deg,#ff684b,#c90f22)!important;
    box-shadow:0 8px 18px rgba(190,20,31,.27),inset 0 1px 0 rgba(255,255,255,.30)!important;
}
.gx-resident-card-packages .gx-mobile-action-icon{
    color:#fff!important;
    background:linear-gradient(145deg,#9f78ff,#4724aa)!important;
    box-shadow:0 8px 18px rgba(78,42,164,.28),inset 0 1px 0 rgba(255,255,255,.30)!important;
}
.gx-resident-card-areas .gx-mobile-action-icon{
    color:#fff!important;
    background:linear-gradient(145deg,#42dfa5,#087a59)!important;
    box-shadow:0 8px 18px rgba(5,118,84,.27),inset 0 1px 0 rgba(255,255,255,.30)!important;
}
.gx-resident-card-access .gx-mobile-action-icon{
    color:#fff!important;
    background:linear-gradient(145deg,#38d5d0,#08717a)!important;
    box-shadow:0 8px 18px rgba(7,107,116,.27),inset 0 1px 0 rgba(255,255,255,.30)!important;
}
.gx-resident-card-rentals .gx-mobile-action-icon{
    color:#fff!important;
    background:linear-gradient(145deg,#43c8ef,#0a5eb5)!important;
    box-shadow:0 8px 18px rgba(10,91,169,.27),inset 0 1px 0 rgba(255,255,255,.30)!important;
}
.gx-resident-home-grid-v2 [href*="estado-cuenta.php"] .gx-mobile-action-icon{
    color:#fff!important;
    background:linear-gradient(145deg,#39d79e,#087757)!important;
    box-shadow:0 8px 18px rgba(5,117,82,.27),inset 0 1px 0 rgba(255,255,255,.30)!important;
}
.gx-resident-home-grid-v2 [href*="reuniones.php"] .gx-mobile-action-icon{
    color:#fff!important;
    background:linear-gradient(145deg,#42cf9c,#17795e)!important;
    box-shadow:0 8px 18px rgba(19,109,83,.25),inset 0 1px 0 rgba(255,255,255,.30)!important;
}
.gx-board-contest-card .gx-mobile-action-icon{
    color:#fff!important;
    background:linear-gradient(145deg,#45d1c5,#087c75)!important;
    box-shadow:0 8px 18px rgba(8,117,109,.26),inset 0 1px 0 rgba(255,255,255,.30)!important;
}

/* Vigilante - misma familia visual premium. */
.gx-guard-operation-grid [data-open-screen="scanner"] .gx-mobile-action-icon{
    color:#fff!important;
    background:linear-gradient(145deg,#34d6a2,#087a5d)!important;
    box-shadow:0 8px 18px rgba(5,116,86,.26),inset 0 1px 0 rgba(255,255,255,.30)!important;
}
.gx-guard-operation-grid [data-open-screen="manual-access"] .gx-mobile-action-icon{
    color:#fff!important;
    background:linear-gradient(145deg,#42d9ae,#0b7c67)!important;
    box-shadow:0 8px 18px rgba(7,118,95,.26),inset 0 1px 0 rgba(255,255,255,.30)!important;
}
.gx-guard-operation-grid [data-open-screen="guard-access-history"] .gx-mobile-action-icon{
    color:#fff!important;
    background:linear-gradient(145deg,#3fc5f1,#0a5db4)!important;
    box-shadow:0 8px 18px rgba(9,91,169,.26),inset 0 1px 0 rgba(255,255,255,.30)!important;
}
.gx-guard-operation-grid [data-open-screen="authorized-providers"] .gx-mobile-action-icon{
    color:#fff!important;
    background:linear-gradient(145deg,#ffbe45,#a15b05)!important;
    box-shadow:0 8px 18px rgba(157,89,7,.27),inset 0 1px 0 rgba(255,255,255,.32)!important;
}
.gx-guard-operation-grid [data-guard-novelty-open] .gx-mobile-action-icon,
.gx-guard-operation-grid [data-open-screen="shift-notes"] .gx-mobile-action-icon{
    color:#fff!important;
    background:linear-gradient(145deg,#3bd3c9,#087870)!important;
    box-shadow:0 8px 18px rgba(6,111,104,.25),inset 0 1px 0 rgba(255,255,255,.30)!important;
}
.gx-guard-operation-grid [data-open-screen="emergency-access"] .gx-mobile-action-icon{
    color:#fff!important;
    background:linear-gradient(145deg,#ff5f54,#c7081c)!important;
    box-shadow:0 8px 18px rgba(186,13,28,.28),inset 0 1px 0 rgba(255,255,255,.30)!important;
}
.gx-guard-operation-grid [data-open-screen="packages"] .gx-mobile-action-icon{
    color:#fff!important;
    background:linear-gradient(145deg,#3bd99b,#087451)!important;
    box-shadow:0 8px 18px rgba(6,110,76,.27),inset 0 1px 0 rgba(255,255,255,.30)!important;
}
.gx-guard-operation-grid [data-open-screen="assignments"] .gx-mobile-action-icon{
    color:#fff!important;
    background:linear-gradient(145deg,#43c6ec,#0b659f)!important;
    box-shadow:0 8px 18px rgba(10,95,151,.26),inset 0 1px 0 rgba(255,255,255,.30)!important;
}
.gx-guard-operation-grid [data-open-screen="rounds"] .gx-mobile-action-icon{
    color:#fff!important;
    background:linear-gradient(145deg,#43d2cc,#087576)!important;
    box-shadow:0 8px 18px rgba(7,109,110,.26),inset 0 1px 0 rgba(255,255,255,.30)!important;
}
.gx-guard-operation-grid [data-open-screen="incidents"] .gx-mobile-action-icon{
    color:#fff!important;
    background:linear-gradient(145deg,#ff8157,#d62b2b)!important;
    box-shadow:0 8px 18px rgba(196,38,38,.25),inset 0 1px 0 rgba(255,255,255,.30)!important;
}
.gx-guard-operation-grid [data-open-screen="inside-visits"] .gx-mobile-action-icon{
    color:#fff!important;
    background:linear-gradient(145deg,#49bff0,#1760ae)!important;
    box-shadow:0 8px 18px rgba(18,91,166,.25),inset 0 1px 0 rgba(255,255,255,.30)!important;
}

/* Barra superior. Mismas cajas existentes; cambia solamente el acabado. */
.gx-topbar-call{
    color:#08735e!important;
    background:linear-gradient(145deg,#f1fff9,#ccefe3)!important;
    border-color:rgba(214,255,241,.72)!important;
    box-shadow:0 6px 14px rgba(3,75,59,.18),inset 0 1px 0 rgba(255,255,255,.72)!important;
}
.gx-topbar-sos{
    color:#fff!important;
    background:linear-gradient(145deg,#ff534e,#c81924)!important;
    border-color:rgba(255,255,255,.34)!important;
    box-shadow:0 6px 14px rgba(166,15,26,.26),inset 0 1px 0 rgba(255,255,255,.24)!important;
}
.gx-mobile-notification-button{
    color:#fff!important;
    background:linear-gradient(145deg,#315f56,#163f37)!important;
    border-color:rgba(255,255,255,.20)!important;
    box-shadow:0 6px 14px rgba(2,39,31,.22),inset 0 1px 0 rgba(255,255,255,.16)!important;
}
.gx-account-avatar-button:not(:has(img)){
    color:#fff!important;
    background:linear-gradient(145deg,#315f56,#173f38)!important;
    border-color:rgba(255,255,255,.20)!important;
    box-shadow:0 6px 14px rgba(2,39,31,.22),inset 0 1px 0 rgba(255,255,255,.16)!important;
}

/* Barra inferior. El SVG conserva sus dimensiones actuales; solo recibe acabado. */
.gx-mobile-bottom-nav .gx-mobile-nav-item svg{
    color:#fff!important;
    background:linear-gradient(145deg,#28c996,#08755f)!important;
    border-radius:7px!important;
    box-shadow:0 4px 9px rgba(6,87,69,.20)!important;
}
.gx-mobile-bottom-nav:not(.five-items) .gx-mobile-nav-item:nth-child(2) svg{
    background:linear-gradient(145deg,#9aa9a4,#66756f)!important;
    box-shadow:0 4px 9px rgba(59,76,70,.17)!important;
}
.gx-mobile-bottom-nav:not(.five-items) .gx-mobile-nav-item:nth-child(3) svg{
    background:linear-gradient(145deg,#41cd9a,#168166)!important;
}
.gx-mobile-bottom-nav:not(.five-items) .gx-mobile-nav-item:nth-child(4) svg{
    background:linear-gradient(145deg,#38b8ee,#1261ac)!important;
    box-shadow:0 4px 9px rgba(14,87,157,.18)!important;
}
.gx-mobile-bottom-nav.five-items .gx-mobile-nav-item:nth-child(2) svg{
    background:linear-gradient(145deg,#37cfa8,#0a7a66)!important;
}
.gx-mobile-bottom-nav.five-items .gx-mobile-nav-item:nth-child(3) svg{
    background:linear-gradient(145deg,#41d0c8,#087773)!important;
}
.gx-mobile-bottom-nav.five-items .gx-mobile-nav-item:nth-child(4) svg{
    background:linear-gradient(145deg,#ff775b,#d12a2a)!important;
    box-shadow:0 4px 9px rgba(190,39,39,.18)!important;
}
.gx-mobile-bottom-nav.five-items .gx-mobile-nav-item:nth-child(5) svg{
    background:linear-gradient(145deg,#9aa9a4,#65746e)!important;
    box-shadow:0 4px 9px rgba(59,76,70,.17)!important;
}

/* GX_PREMIUM_ICONS_FINAL_V1 END */
