/* Connections Module -- Hotel Setup > Connections (PMS + Edge) */
/* SPACING CONTRACT: No external margins. Parent controls spacing. */

/* Sub-tab host (nav + active sub-view). Mirrors .rates-module. */
.connections-module {
    display: flex;
    flex-direction: column;
    gap: var(--space-4);
}

.connections-sub-tabs {
    display: flex;
}

/* Field stack inside a connection panel. */
.connections-form {
    display: flex;
    flex-direction: column;
    gap: var(--space-3);
}

/* Compact variant: short identity fields two-up; .connections-form-span rows take the
   full width. Used by the Edge record, whose four fields do not earn a row each. */
.connections-form--compact {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: var(--space-3);
}

.connections-form-span {
    grid-column: 1 / -1;
}

/* One vendor block: the fields inside an expandable panel. The enable Switch lives in
   the panel HEADER, not here. */
.connections-vendor {
    display: flex;
    flex-direction: column;
    gap: var(--space-3);
}


/* Save for the whole PMS record -- the four vendors are one stored item. */
.connections-actions {
    display: flex;
    justify-content: flex-end;
    gap: var(--space-3);
}

/* Provisioning handout (Edge, enabled records): the three commands the
   standing-up recipe needs, filled for this hotel + env. user-select: all makes
   each command one click to copy whole -- these lines are MEANT to be lifted. */
.connections-provision {
    display: flex;
    flex-direction: column;
    gap: var(--space-2);
    padding-top: var(--space-3);
    border-top: 1px solid var(--border-subtle);
}

.connections-provision-title {
    font-size: var(--text-sm);
    font-weight: var(--font-weight-semibold);
    color: var(--text-primary);
}

.connections-provision-step {
    font-size: var(--text-xs);
    color: var(--text-secondary);
}

.connections-provision-cmd {
    margin: 0;
    padding: var(--space-2) var(--space-3);
    font-family: var(--font-mono, monospace);
    font-size: var(--text-xs);
    color: var(--text-primary);
    background: var(--bg-layer-4);
    border: 1px solid var(--border-default);
    border-radius: var(--border-radius-md);
    white-space: pre-wrap;
    word-break: break-all;
    user-select: all;
}

/* Each office action: the button and its verified one-line state, side by side. */
.connections-provision-row {
    display: flex;
    align-items: center;
    gap: var(--space-3);
}

.connections-provision-state {
    font-size: var(--text-xs);
    color: var(--text-secondary);
}

.connections-provision-note {
    font-size: var(--text-xs);
}

/* Guest pay page branding (LEAP Pay): logo preview + replace control. The preview
   box is the pay page's own logo constraint (max-height 84px there) so what the
   operator sees is what the guest gets. */
.connections-brand {
    display: flex;
    align-items: center;
    gap: var(--space-4);
}

.connections-brand-preview {
    display: flex;
    align-items: center;
    justify-content: center;
    min-width: 160px;
    min-height: 72px;
    padding: var(--space-3);
    background: var(--bg-panel);
    border: 1px solid var(--border-subtle);
    border-radius: var(--border-radius-lg);
}

.connections-brand-preview img {
    max-height: 84px;
    max-width: 220px;
}

.connections-brand-actions {
    display: flex;
    align-items: center;
}
