/* ── Modal Overlay ──────────────────────────────────────────────────────── */
.modal-overlay{position:fixed;inset:0;background:rgba(0,0,0,.82);backdrop-filter:blur(6px);z-index:1000;display:flex;align-items:center;justify-content:center;padding:20px}
.modal{background:#14201a;border:1px solid var(--border);border-radius:16px;padding:28px;width:100%;max-width:480px;max-height:90vh;overflow-y:auto}
.modal-title{font-family:var(--serif);font-size:1.2rem;font-weight:700;margin-bottom:20px}
.modal-btns{display:flex;gap:8px;justify-content:flex-end;margin-top:20px}

/* ── RSVP Modal ─────────────────────────────────────────────────────────── */
.rsvp-modal{display:flex;flex-direction:column;max-height:82vh;overflow:hidden}
.rsvp-search-wrap{position:relative;margin:0 0 10px}
.rsvp-search-wrap input{width:100%;background:rgba(255,255,255,.055);border:1px solid var(--border);border-radius:var(--r-sm);padding:9px 36px 9px 14px;font-family:var(--font);font-size:0.84rem;color:var(--text);outline:none;transition:border-color .13s}
.rsvp-search-wrap input:focus{border-color:rgba(126,200,80,.5)}
.rsvp-search-wrap input::placeholder{color:var(--dim)}
.rsvp-search-icon{position:absolute;right:11px;top:50%;transform:translateY(-50%);font-size:0.84rem;opacity:.3;pointer-events:none}
.rsvp-search-clear{position:absolute;right:10px;top:50%;transform:translateY(-50%);display:none;font-size:0.66rem;color:var(--dim);cursor:pointer;background:rgba(255,255,255,.07);border:none;border-radius:4px;padding:2px 7px;font-family:var(--font)}
.rsvp-bucket-tabs{display:flex;gap:2px;margin-bottom:12px}
.rsvp-bt{flex:1;padding:6px 4px;background:rgba(255,255,255,.04);border:none;border-radius:var(--r-sm);font-family:var(--font);font-size:0.7rem;font-weight:700;color:var(--muted);cursor:pointer;transition:background .12s,color .12s;display:flex;align-items:center;justify-content:center;gap:4px}
.rsvp-bt.bt-all.active{background:rgba(255,255,255,.07);color:var(--text)}
.rsvp-bt.bt-in.active{background:rgba(126,200,80,.12);color:var(--green);border:1px solid rgba(126,200,80,.2)}
.rsvp-bt.bt-out.active{background:rgba(224,80,40,.1);color:var(--red);border:1px solid rgba(224,80,40,.2)}
.rsvp-bt.bt-pending.active{background:rgba(255,255,255,.07);color:var(--muted)}
.rsvp-bt-ct{font-size:0.6rem;background:rgba(255,255,255,.08);border-radius:10px;padding:1px 5px;min-width:18px;text-align:center}
.rsvp-list{overflow-y:auto;flex:1}
.rsvp-list::-webkit-scrollbar{width:4px}
.rsvp-list::-webkit-scrollbar-thumb{background:rgba(255,255,255,.1);border-radius:2px}
.rsvp-row{display:flex;align-items:center;gap:9px;padding:9px 6px;border-radius:8px;margin-bottom:2px;transition:background .1s}
.rsvp-row:hover{background:rgba(255,255,255,.02)}
.rsvp-row.changed{background:rgba(200,168,75,.05);border:1px solid rgba(200,168,75,.12)}
.rsvp-status-toggle{display:flex;gap:2px;flex-shrink:0}
.rst-btn{padding:4px 9px;font-family:var(--font);font-size:0.66rem;font-weight:700;border-radius:5px;cursor:pointer;transition:all .12s;background:transparent;white-space:nowrap}
.rst-btn.rst-in{border:1.5px solid rgba(126,200,80,.2);color:rgba(126,200,80,.4)}
.rst-btn.rst-in:hover:not(.rst-active){border-color:rgba(126,200,80,.55);color:rgba(126,200,80,.75);background:rgba(126,200,80,.06)}
.rst-btn.rst-in.rst-active{background:rgba(126,200,80,.14);border-color:var(--green);color:var(--green)}
.rst-btn.rst-out{border:1.5px solid rgba(224,80,40,.18);color:rgba(224,80,40,.38)}
.rst-btn.rst-out:hover:not(.rst-active){border-color:rgba(224,80,40,.5);color:rgba(224,80,40,.65);background:rgba(224,80,40,.06)}
.rst-btn.rst-out.rst-active{background:rgba(224,80,40,.11);border-color:var(--red);color:var(--red)}
.rst-btn.rst-pending{border:1.5px solid rgba(255,255,255,.1);color:var(--dim)}
.rst-btn.rst-pending:hover:not(.rst-active){border-color:rgba(255,255,255,.25);color:var(--muted);background:rgba(255,255,255,.04)}
.rst-btn.rst-pending.rst-active{background:rgba(255,255,255,.06);border-color:rgba(255,255,255,.22);color:var(--muted)}
.rsvp-changed-dot{width:6px;height:6px;border-radius:50%;background:var(--gold);flex-shrink:0;transition:opacity .13s}
.rsvp-footer{padding:12px 0 0;border-top:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:4px;flex-shrink:0}
.rsvp-footer-summary{font-size:0.68rem;color:var(--muted)}
