/* modals.css — modal shell */
.modal{position:fixed;inset:0;background:rgba(0,0,0,.38);display:flex;align-items:center;justify-content:center;z-index:100;opacity:0;visibility:hidden;pointer-events:none;transition:opacity .25s ease,visibility .25s ease}
.modal.open{opacity:1;visibility:visible;pointer-events:auto}
.modal .panel{transform:translateY(6px);transition:transform .25s ease;background:var(--card)!important;border:1px solid var(--border);
  box-shadow:0 16px 44px rgba(0,0,0,.22);padding:clamp(18px,2.2vw,28px)!important;border-radius:22px;position:relative}
.modal.open .panel{transform:translateY(0)}
.modal .panel .grid{ gap:.9rem }
.form-actions{display:flex;gap:.8rem;justify-content:center;align-items:center;flex-wrap:wrap;margin-top:.2rem}
.btn.full{width:100%;justify-content:center}
.oauth-group{display:grid;gap:.6rem}
.divider{display:flex;align-items:center;gap:.8rem;color:var(--muted);font-size:.92em;margin:.3rem 0}
.divider::before,.divider::after{content:"";height:1px;background:var(--border);flex:1}
.oauth-note{margin:0;text-align:center;color:var(--muted);font-size:.92em}
.modal .grid{ gap:1.0rem }
.modal .row label{display:grid;gap:.45rem;font-weight:600}
.modal .row input{padding:1rem;border-radius:12px;border:1px solid var(--border);background:var(--card)}
.modal .close-x{position:absolute;top:10px;right:12px;background:transparent;border:0;font-size:1.4rem;line-height:1;cursor:pointer;color:var(--muted)}
