/* Speaker modal (lightbox) — opened from the speakers table and from agenda
   session cards. 1rem = 1px (6.25% root). */

.speaker-modal {
    position: fixed;
    inset: 0;
    z-index: 1000;
    display: flex;
    align-items: center;
    justify-content: center;
}
.speaker-modal[hidden] { display: none; }
.speaker-modal__backdrop {
    position: absolute;
    inset: 0;
    background: rgba(0, 0, 0, 0.5);
}
.speaker-modal__panel {
    position: relative;
    background: #fff;
    max-width: 720rem;
    width: calc(100% - 32rem);
    max-height: 85vh;
    overflow-y: auto;
    border-radius: 8px;
    padding: 32rem;
    box-shadow: 0 12px 40px rgba(0, 0, 0, 0.2);
}
.speaker-modal__close {
    position: absolute;
    top: 8rem;
    right: 8rem;
    background: transparent;
    border: 0;
    font-size: 29rem;
    line-height: 1;
    cursor: pointer;
    width: 35rem;
    height: 35rem;
}
.speaker-modal__close:hover { color: #c00; }
.speaker-modal__loading,
.speaker-modal__error {
    text-align: center;
    padding: 32rem;
    color: #666;
}

.speaker-modal__header {
    display: flex;
    gap: 24rem;
    align-items: flex-start;
    margin-bottom: 24rem;
}
.speaker-modal__photo {
    width: 120px;
    height: 120px;
    object-fit: cover;
    border-radius: 50%;
    flex-shrink: 0;
}
.speaker-modal__name { margin: 0 0 5rem; font-size: 22rem; }
.speaker-modal__position { color: #555; font-style: italic; margin: 3rem 0; }
.speaker-modal__affiliation { margin: 3rem 0; }
.speaker-modal__social { font-size: 14rem; margin: 5rem 0; }
.speaker-modal__bio {
    line-height: 1.5;
    font-size: 15rem;
    border-top: 1px solid #eee;
    padding-top: 16rem;
}
.speaker-modal__sessions { border-top: 1px solid #eee; padding-top: 16rem; margin-top: 16rem; }
.speaker-modal__sessions h3 { margin: 0 0 8rem; font-size: 16rem; }
.speaker-modal__sessions ul { padding-left: 19rem; margin: 0; }
.speaker-modal__detail-link {
    border-top: 1px solid #eee;
    padding-top: 16rem;
    margin-top: 16rem;
    display: flex;
    justify-content: flex-end;
    align-items: center;
    gap: 16rem;
}
/* Pushes the back link (if injected by JS) to the left while the
   "Full profile →" anchor stays at the right edge. */
.speaker-modal__back-link {
    margin-right: auto;
    color: #555;
    text-decoration: none;
}
.speaker-modal__back-link:hover { text-decoration: underline; color: #2c5aa0; }

body.speaker-modal-open { overflow: hidden; }
