/* Campaign room — the sheet the room lives in.
 *
 * Part of the campaign stylesheet, split by area so a change to one screen
 * is a change to one file. No rule here draws a box: the room is built from
 * whitespace and single hairlines between rows.
 */

/* ---------- overlay ---------- */

.mcamp-overlay {
    position: fixed;
    inset: 0;
    z-index: 2147483000;
    background: var(--mc-paper);
    display: none;
    flex-direction: column;
}

.mcamp-overlay.is-open { display: flex; }

.mcamp-overlay__bar {
    flex: 0 0 auto;
    display: flex;
    align-items: center;
    gap: var(--mc-2);
    padding: max(10px, env(safe-area-inset-top)) var(--mc-3) 10px;
    background: var(--mc-paper);
}

/* 44px, which is the smallest target a thumb finds reliably. The chevron
   inside stays visually small; it is the tappable area that grew. */
.mcamp-overlay__back {
    width: 44px;
    height: 44px;
    flex: 0 0 44px;
    margin-left: -6px;
    border: 0;
    border-radius: 10px;
    background: transparent;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
}

.mcamp-overlay__back:active { background: var(--mc-wash); }

/* Two borders on a rotated square: immune to the app's text-colour rules. */
#mobile-campaign-overlay.mcamp-overlay .mcamp-overlay__chevron {
    display: block;
    width: 9px;
    height: 9px;
    border-left: 2px solid var(--mc-ink) !important;
    border-bottom: 2px solid var(--mc-ink) !important;
    border-top: 0 !important;
    border-right: 0 !important;
    transform: rotate(45deg);
    margin-left: 3px;
    flex: 0 0 auto;
}

#mobile-campaign-overlay.mcamp-overlay .mcamp-overlay__title {
    flex: 1;
    text-align: center;
    font-family: 'IBM Plex Mono', ui-monospace, monospace;
    font-size: 10px;
    letter-spacing: 1.8px;
    text-transform: uppercase;
    color: var(--mc-mute) !important;
    -webkit-text-fill-color: var(--mc-mute) !important;
}

.mcamp-overlay__spacer { width: 38px; flex: 0 0 38px; }

.mcamp-overlay__body {
    flex: 1;
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
    background: var(--mc-paper);
}

body.mcamp-locked { overflow: hidden; }

/* A mapped location gets a small filled dot; one still being geocoded gets
   nothing, so the difference reads at a glance without a label per row. */
.mcamp__pin {
    width: 7px;
    height: 7px;
    flex: 0 0 7px;
    border-radius: 100px;
    background: var(--mc-ink);
}

#mobile-campaign-overlay .mcamp__pin,
.mcamp.mcamp .mcamp__pin {
    background-color: var(--mc-ink) !important;
}

/* A true-size preview of the header pill, so "keep it short" is visible
   rather than asserted. */
.mcamp__pillpreview {
    margin-top: var(--mc-3);
    display: flex;
    justify-content: center;
    padding: var(--mc-3) 0;
}

/* Mirrors .mobile-app-header__pill[data-pill-type="offer"] so what the owner
   previews is what the guest sees. */
.mcamp__pillchip {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    max-width: 100%;
    height: 32px;
    padding: 0 10px 0 4px;
    border-radius: 999px;
    background: var(--mc-paper);
    box-shadow: 0 2px 10px rgba(17, 17, 17, 0.10), inset 0 0 0 1px rgba(17, 17, 17, 0.08);
}

.mcamp__pillmark {
    width: 24px;
    height: 24px;
    flex: 0 0 24px;
    border-radius: 999px;
    background: var(--mc-wash);
    color: var(--mc-ink);
    display: flex;
    align-items: center;
    justify-content: center;
    font-weight: 800;
    font-size: 11px;
}

.mcamp__pilltext {
    font-size: 12.5px;
    font-weight: 700;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

/* The chevron is a border corner, not a glyph — same reason as the back arrow. */
.mcamp__pillchev {
    width: 6px;
    height: 6px;
    flex: 0 0 6px;
    border-right: 1.5px solid var(--mc-mute);
    border-top: 1.5px solid var(--mc-mute);
    transform: rotate(45deg);
}

#mobile-campaign-overlay .mcamp__pillchip,
.mcamp.mcamp .mcamp__pillchip { background-color: var(--mc-wash) !important; }

#mobile-campaign-overlay .mcamp__pillchip,
.mcamp.mcamp .mcamp__pillchip { background-color: var(--mc-paper) !important; }

#mobile-campaign-overlay .mcamp__pillmark,
.mcamp.mcamp .mcamp__pillmark {
    background-color: var(--mc-wash) !important;
    color: var(--mc-ink) !important;
    -webkit-text-fill-color: var(--mc-ink) !important;
}

/* ---- sponsor logo ---- */

.mcamp__logorow {
    display: flex;
    align-items: center;
    gap: var(--mc-3);
    margin-top: var(--mc-2);
}

.mcamp__logodrop {
    width: 56px;
    height: 56px;
    flex: 0 0 56px;
    border-radius: 999px;
    background: var(--mc-wash);
    overflow: hidden;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
}

.mcamp__logodrop img { width: 100%; height: 100%; object-fit: cover; display: block; }

.mcamp__logomark {
    font-family: 'Barlow Condensed', sans-serif;
    font-weight: 700;
    font-size: 20px;
    color: var(--mc-mute);
}

.mcamp__logotext { flex: 1; min-width: 0; }

.mcamp__pillmark img { width: 100%; height: 100%; object-fit: cover; display: block; }

#mobile-campaign-overlay .mcamp__logodrop,
.mcamp.mcamp .mcamp__logodrop { background-color: var(--mc-wash) !important; }

#mobile-campaign-overlay .mcamp__logodrop img,
#mobile-campaign-overlay .mcamp__pillmark img,
.mcamp.mcamp .mcamp__logodrop img,
.mcamp.mcamp .mcamp__pillmark img { background-color: transparent !important; }
