/* ============================================
   Booking Pool Consent Prompt (2026-08-28 privacy review)
   ============================================
   The one active disclosure in the consent model: you have been added to a
   booking pool, so people OUTSIDE your group can now book your time.

   Presented as a bottom-anchored card, NOT a centred modal with a backdrop.
   It is a disclosure the member should see and answer, not an error that must
   block the app — and it is emphatically not a toast (it persists until
   answered, and it carries actions).
   ============================================ */

.pool-consent-prompt {
    position: fixed;
    left: 50%;
    bottom: 20px;
    transform: translateX(-50%);
    /* Above board chrome, below any true modal so a real dialog still wins. */
    z-index: 900;
    width: min(420px, calc(100vw - 32px));
    animation: pool-consent-in 0.22s ease-out;
}

@keyframes pool-consent-in {
    from { opacity: 0; transform: translateX(-50%) translateY(8px); }
    to   { opacity: 1; transform: translateX(-50%) translateY(0); }
}

@media (prefers-reduced-motion: reduce) {
    .pool-consent-prompt { animation: none; }
}

.pool-consent-prompt__card {
    background: var(--surface-primary, #ffffff);
    border: 1px solid var(--border-subtle, rgba(100, 116, 139, 0.25));
    border-radius: 14px;
    box-shadow: 0 10px 30px rgba(15, 23, 42, 0.18);
    padding: 16px 18px;
}

.pool-consent-prompt__title {
    margin: 0 0 6px;
    font-size: 15px;
    font-weight: 700;
    color: var(--text-primary, #0f172a);
    line-height: 1.3;
}

.pool-consent-prompt__body {
    margin: 0 0 14px;
    font-size: 13px;
    line-height: 1.45;
    color: var(--text-secondary, #475569);
}

.pool-consent-prompt__actions {
    display: flex;
    gap: 8px;
    flex-wrap: wrap;
}

.pool-consent-prompt__btn {
    appearance: none;
    border: 1px solid var(--border-subtle, rgba(100, 116, 139, 0.3));
    background: var(--surface-primary, #ffffff);
    color: var(--text-primary, #0f172a);
    border-radius: 999px;
    padding: 7px 14px;
    font-size: 13px;
    font-weight: 600;
    cursor: pointer;
}

/* "That's fine" leads, because staying is the common and expected outcome —
   this is a disclosure, not an accusation that something is wrong. The exit
   sits beside it as a plain button: available without being alarming. */
.pool-consent-prompt__btn--primary {
    background: var(--accent-teal, #14b8a6);
    border-color: var(--accent-teal, #14b8a6);
    color: #ffffff;
}

.pool-consent-prompt__btn:focus-visible {
    outline: 2px solid var(--accent-teal, #14b8a6);
    outline-offset: 2px;
}

.pool-consent-prompt__btn:disabled {
    opacity: 0.55;
    cursor: default;
}

/* Shown only when the removal call FAILED — the member asked to be taken off
   and is still on. Red is correct here: this one really is a fault. */
.pool-consent-prompt__status {
    margin: 10px 0 0;
    font-size: 12px;
    line-height: 1.4;
    color: var(--status-busy, #dc2626);
}

body.dark-mode .pool-consent-prompt__card {
    background: var(--surface-secondary, #1e293b);
    border-color: rgba(255, 255, 255, 0.1);
}
body.dark-mode .pool-consent-prompt__title { color: var(--text-primary, #e2e8f0); }
body.dark-mode .pool-consent-prompt__body { color: var(--text-secondary, #94a3b8); }
body.dark-mode .pool-consent-prompt__btn {
    background: var(--surface-tertiary, #334155);
    color: var(--text-primary, #e2e8f0);
}
body.dark-mode .pool-consent-prompt__btn--primary {
    background: var(--accent-teal, #14b8a6);
    color: #06201d;
}

@media (max-width: 640px) {
    .pool-consent-prompt {
        bottom: 12px;
        width: calc(100vw - 24px);
    }
    .pool-consent-prompt__btn { flex: 1 1 auto; text-align: center; }
}
