body.modal-open { overflow: hidden; }
.request-modal[hidden] { display: none !important; }
.request-modal { position: fixed; inset: 0; z-index: 150; display: grid; place-items: center; padding: 24px; }
.request-modal-backdrop { position: absolute; inset: 0; background: rgba(18, 16, 34, .58); backdrop-filter: blur(5px); }
.request-modal-card { position: relative; z-index: 1; width: min(1040px, 100%); max-height: min(860px, calc(100vh - 48px)); overflow: auto; background: #fff; border-radius: 24px; padding: 30px; box-shadow: 0 30px 90px rgba(18, 16, 34, .32); }
.request-modal-close { position: absolute; top: 18px; right: 20px; width: 40px; height: 40px; border: 0; border-radius: 50%; background: #f0eff9; color: var(--ink); font-size: 1.7rem; line-height: 1; cursor: pointer; }
.request-modal-card > h2 { font-size: clamp(1.8rem, 3.4vw, 2.7rem); margin-bottom: 6px; }.request-modal-intro { color: var(--muted); margin-bottom: 18px; }
.request-modal-form-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 20px; }.request-modal-form-grid > p { display: flex; flex-direction: column; gap: 7px; }.request-modal-form-grid label { font-size: .78rem; font-weight: 800; }
.request-modal-form-grid input, .request-modal-form-grid select, .request-modal-form-grid textarea { width: 100%; border: 1px solid #dbd8e9; border-radius: 10px; padding: 9px 11px; background: #fff; }.request-modal-objective { grid-column: 1 / -1; }.request-modal-form-grid textarea { min-height: 76px; }
.request-modal-card .request-slot-picker { margin: 16px 0; padding-top: 18px; border-top: 1px solid var(--line); }.request-modal-card .request-calendar-wrap { overflow-x: auto; margin-bottom: 14px; border: 1px solid var(--line); border-radius: 12px; }.request-modal-card .availability-calendar { min-width: 620px; }.request-modal-card .availability-calendar .calendar-corner,.request-modal-card .availability-calendar .calendar-day,.request-modal-card .availability-calendar .calendar-hour,.request-modal-card .availability-calendar .calendar-cell { min-height: 36px; }.request-modal-card .availability-calendar .calendar-corner,.request-modal-card .availability-calendar .calendar-day { padding: 7px; }.request-modal-card .availability-calendar .calendar-day strong { font-size: .7rem; }.request-modal-card .availability-calendar .calendar-day span,.request-modal-card .availability-calendar .calendar-hour { font-size: .62rem; }.request-modal-card .request-slot-list { max-height: 150px; overflow: auto; gap: 8px; }.request-modal-card .request-slot { min-height: 56px; padding: 8px 10px; border-radius: 10px; }.request-modal-card .request-slot strong { font-size: .78rem; }.request-modal-card .request-slot .request-slot-formats { font-size: .78rem; }
.request-modal-status { min-height: 24px; color: #c83d61; font-weight: 700; }.request-modal-status.is-success { color: #16815a; }
@media (max-width: 700px) { .request-modal { padding: 10px; }.request-modal-card { max-height: calc(100vh - 20px); padding: 28px 18px; border-radius: 18px; }.request-modal-form-grid { grid-template-columns: 1fr; } }
