/* Al Yamm booking system v12 */
.booking-events-section{background:#f5f7fa;min-height:55vh}.booking-event-card{position:relative;display:flex;flex-direction:column;min-height:320px;overflow:hidden;box-shadow:0 14px 38px #14213d0d}.booking-event-card:before{content:"";position:absolute;right:0;top:0;width:5px;height:100%;background:#fca311}.booking-event-card>p{color:#667085;line-height:1.8}.booking-event-card .event-venue{color:#14213d;font-weight:800}.booking-event-card .map-open-button{margin-top:auto;width:100%;font-size:16px}.booking-event-status{display:inline-flex;width:max-content;padding:6px 11px;border-radius:999px;font-size:12px;font-weight:800;margin-bottom:14px}.booking-event-status.open{background:#e7f8ed;color:#08783f}.booking-event-status.closed,.booking-event-status.completed{background:#feeceb;color:#a52a22}.booking-event-status.draft{background:#eef1f5;color:#566175}
.booking-dialog{width:min(1040px,calc(100% - 24px));max-height:94dvh;padding:0;border:0;border-radius:26px;background:#fff;color:#14213d;box-shadow:0 28px 90px #0006}.booking-dialog::backdrop{background:#071127d9;backdrop-filter:blur(5px)}.booking-dialog-shell{padding:26px;min-height:620px}.booking-dialog-header{display:flex;justify-content:space-between;align-items:start;gap:20px;padding-bottom:18px;border-bottom:1px solid #e7eaf0}.booking-dialog-header span{color:#9a6711;font-size:13px;font-weight:800}.booking-dialog-header h2{margin:5px 0 0;font-size:26px;line-height:1.5}.booking-dialog-close{width:43px;height:43px;border:1px solid #e1e5eb;border-radius:50%;background:#f7f8fa;color:#14213d;font-size:27px;line-height:1}.booking-error{padding:13px 16px;margin:16px 0;border-radius:12px;background:#fff0ef;color:#b42318;font-weight:700}.booking-loading{min-height:450px;display:grid;place-content:center;text-align:center}.booking-loading span{width:42px;height:42px;margin:auto;border-radius:50%;border:4px solid #e5e7eb;border-top-color:#fca311;animation:bookingSpin .8s linear infinite}.booking-step{padding-top:22px}.hall-map{width:min(780px,100%);margin:auto;padding:24px;border:1px solid #dde2e9;border-radius:22px;background:linear-gradient(#fff,#f8fafc)}.hall-stage{width:64%;margin:0 auto 34px;padding:17px;text-align:center;border-radius:9px;background:#14213d;color:#fff;font-size:22px;font-weight:900;box-shadow:0 10px 24px #14213d20}.special-area{display:flex;justify-content:center;align-items:center;gap:12px;min-height:58px;border-radius:9px;background:#d92d20;color:#fff;margin:0 auto 18px}.special-area span,.special-area-group strong span{font-size:11px;opacity:.85}.special-area-group{position:relative;display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:0 auto 34px}.special-segment{height:48px;border-radius:8px;background:#d92d20}.special-area-group strong{position:absolute;right:50%;top:50%;transform:translate(50%,-50%);display:flex;flex-direction:column;text-align:center;white-space:nowrap;padding:7px 18px;border-radius:9px;background:#991b1b;color:#fff;font-size:13px}.booking-zone-title{text-align:center;margin:8px 0 18px}.booking-zone-title span{display:block;font-size:20px;font-weight:900}.booking-zone-title small{color:#697386}.hall-blocks{display:grid;grid-template-columns:repeat(4,1fr);gap:12px 16px}.hall-block{min-height:72px;border:2px solid #0c9250;border-radius:10px;background:#19b967;color:#fff;padding:9px;display:flex;flex-direction:column;align-items:center;justify-content:center;transition:.2s}.hall-block:hover{transform:translateY(-3px);box-shadow:0 10px 22px #12945530}.hall-block strong{font-size:15px}.hall-block span{font-size:10px;margin-top:4px}.hall-block:disabled{background:#e5e7eb;border-color:#cdd2da;color:#727986}.booking-legend{display:flex;justify-content:center;gap:28px;margin-top:18px;font-size:13px}.booking-legend span{display:flex;align-items:center;gap:7px}.booking-legend i{width:13px;height:13px;border-radius:4px}.legend-red{background:#d92d20}.legend-green{background:#12b76a}
.booking-step-bar{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:10px}.booking-step-bar strong{font-size:20px}.booking-back{border:0;background:#eef1f5;color:#14213d;border-radius:10px;padding:10px 14px;font-weight:800}.booking-help{color:#697386}.modal-seat-grid{display:grid;grid-template-columns:repeat(9,1fr);gap:9px;direction:rtl;padding:20px;border-radius:18px;background:#f4f6f8}.modal-seat{aspect-ratio:1;border:0;border-radius:8px;background:#12b76a;color:#fff;font-size:12px;font-weight:800;transition:.15s}.modal-seat:hover:not(:disabled){transform:scale(1.07)}.modal-seat.taken{background:#d92d20;color:#fff;cursor:not-allowed}.modal-seat.selected{background:#fca311;color:#14213d;box-shadow:0 0 0 3px #14213d}.selected-seat-bar{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:14px;margin-top:18px;padding:14px 18px;border:1px solid #e2e6ec;border-radius:14px}.selected-seat-bar>span{font-size:13px;color:#697386}.selected-seat-bar>strong{font-size:17px}
.booking-selection-summary{display:flex;justify-content:space-between;gap:15px;padding:17px;margin:20px 0;border-radius:14px;background:#f5f7fa}.modal-booking-form{max-width:650px;margin:0 auto}.modal-booking-form label{font-weight:800;margin-bottom:16px}.modal-booking-form input{min-height:52px}.booking-success{text-align:center;max-width:600px;margin:20px auto}.success-mark{display:grid;place-items:center;width:76px;height:76px;margin:0 auto 15px;border-radius:50%;background:#e6f8ed;color:#08783f;font-size:38px}.booking-success h2{font-size:30px;margin:10px 0}.booking-success>p{color:#667085}.booking-success>div{display:flex;justify-content:space-between;gap:20px;padding:15px;margin:10px 0;border-radius:12px;background:#f5f7fa}.booking-success>a{display:inline-flex;margin-top:18px}
.admin-event-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:16px}.admin-event-card{display:flex;flex-direction:column}.admin-event-head{display:flex;justify-content:space-between;align-items:start;gap:15px}.admin-event-head h3{margin:5px 0!important}.admin-event-card>p,.admin-event-card>small{color:#667085}.admin-event-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:auto;padding-top:18px}.admin-event-actions .btn{font-size:13px;padding:9px 12px}.booking-delete-button{background:#fff0ef;color:#b42318;border:1px solid #f7c7c3}.booking-create-panel summary{font-size:17px}
@keyframes bookingSpin{to{transform:rotate(360deg)}}
@media(max-width:700px){.booking-dialog{width:calc(100% - 12px);max-height:97dvh;border-radius:20px}.booking-dialog-shell{padding:16px;min-height:560px}.booking-dialog-header h2{font-size:21px}.hall-map{padding:15px}.hall-stage{width:78%;font-size:18px;margin-bottom:25px}.hall-blocks{grid-template-columns:repeat(2,1fr);gap:9px}.hall-block{min-height:60px}.special-area-group{gap:7px}.special-segment{height:42px}.modal-seat-grid{grid-template-columns:repeat(7,1fr);gap:6px;padding:10px}.modal-seat{font-size:10px;border-radius:6px}.selected-seat-bar{grid-template-columns:1fr 1fr}.selected-seat-bar .btn{grid-column:1/-1}.booking-selection-summary{flex-direction:column}.booking-step-bar{align-items:start;flex-direction:column}.admin-event-grid{grid-template-columns:1fr}}
.otp-inputs{display:flex;direction:ltr;gap:10px;justify-content:center;margin:24px 0}.otp-inputs input{width:48px;height:58px;border:1px solid #d0d5dd;border-radius:14px;text-align:center;font-size:1.45rem;font-weight:800;color:#14213d;outline:none}.otp-inputs input:focus{border-color:#fca311;box-shadow:0 0 0 3px rgba(252,163,17,.18)}.otp-resend{display:block;margin:14px auto 0;border:0;background:transparent;color:#14213d;font:inherit;cursor:pointer}.otp-resend:disabled{cursor:default;opacity:.55}@media(max-width:520px){.otp-inputs{gap:6px}.otp-inputs input{width:42px;height:52px;border-radius:11px}}
.booking-admin-row-actions,.ticket-actions{display:flex;align-items:center;justify-content:center;gap:8px;flex-wrap:wrap}.booking-admin-row-actions form{margin:0}.ticket-note{margin:20px 0;color:#667085;line-height:1.8}.ticket-save-status{min-height:24px;margin-top:10px;color:#08783f;font-weight:700}.ticket-booking-code{overflow-wrap:anywhere}.ticket-actions .btn{min-width:190px}
