/* ============================================================
 * modals.css — All modal and bottom sheet styles
 * ============================================================ */

/* MODALS */
.modal-bg{display:none;position:fixed;inset:0;background:rgba(0,0,0,.45);z-index:500;align-items:flex-end;justify-content:center;}
.modal-bg.visible{display:flex;}
.modal-sheet{background:#fff;border-radius:20px 20px 0 0;width:100%;max-height:90vh;overflow-y:auto;padding:20px;}
.modal-handle{width:40px;height:4px;background:#dddbd2;border-radius:2px;margin:0 auto 16px;}
.modal-title{font-size:17px;font-weight:700;color:#1a1917;margin-bottom:14px;letter-spacing:-.02em;}
.modal-close-btn{position:absolute;top:16px;right:16px;background:none;border:none;font-size:22px;color:#9e9b91;cursor:pointer;}
.btn-buy-modal{width:100%;margin-top:14px;background:#1a1917;color:#fff;font-family:'Inter',sans-serif;font-size:14px;font-weight:700;padding:14px;border:none;border-radius:10px;cursor:pointer;}
/* PAY MODAL */
.pay-modal-bg{display:none;position:fixed;inset:0;background:rgba(0,0,0,.45);z-index:600;align-items:flex-end;}
.pay-modal-bg.visible{display:flex;}
.pay-sheet{background:#fff;border-radius:20px 20px 0 0;width:100%;padding:24px;text-align:center;}
/* AUTH MODAL */
.auth-modal-bg{display:none;position:fixed;inset:0;background:rgba(0,0,0,.45);z-index:700;align-items:flex-end;}
.auth-modal-bg.visible{display:flex;}
.auth-sheet{background:#fff;border-radius:20px 20px 0 0;width:100%;padding:24px;}
/* SWITCHER MODAL */
.sw-modal-bg{display:none;position:fixed;inset:0;background:rgba(0,0,0,.45);z-index:550;align-items:flex-end;}
.sw-modal-bg.visible{display:flex;}
.sw-sheet{background:#fff;border-radius:20px 20px 0 0;width:100%;max-height:80vh;overflow-y:auto;padding:20px;}
/* VIDEO MODAL */
.vid-modal-bg{display:none;position:fixed;inset:0;background:rgba(0,0,0,.8);z-index:800;align-items:flex-end;}
.vid-modal-bg.visible{display:flex;}
.vid-sheet{background:#fff;border-radius:20px 20px 0 0;width:100%;overflow:hidden;}
/* DAY DETAIL SHEET */
.day-detail-bg{display:none;position:fixed;inset:0;background:rgba(0,0,0,.45);z-index:600;align-items:flex-end;}
.day-detail-bg.visible{display:flex;}
.day-detail-sheet{background:#f0efe9;border-radius:20px 20px 0 0;width:100%;max-height:85vh;overflow-y:auto;padding-bottom:env(safe-area-inset-bottom,16px);}
/* CONFIRM SHEET */
.confirm-bg{display:none;position:fixed;inset:0;background:rgba(0,0,0,.5);z-index:900;align-items:flex-end;}
.confirm-bg.visible{display:flex;}
.confirm-sheet{background:#fff;border-radius:20px 20px 0 0;width:100%;padding:24px 20px env(safe-area-inset-bottom,20px);}
.confirm-handle{width:40px;height:4px;background:#dddbd2;border-radius:2px;margin:0 auto 18px;}
.confirm-title{font-size:18px;font-weight:700;color:#1a1917;margin-bottom:6px;text-align:center;}
.confirm-sub{font-size:13px;color:#9e9b91;text-align:center;line-height:1.5;margin-bottom:22px;}
.confirm-stats{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:22px;}
.confirm-stat{background:#f0efe9;border-radius:10px;padding:12px;text-align:center;}
.confirm-stat-val{font-size:22px;font-weight:700;color:#1a1917;line-height:1;}
.confirm-stat-lbl{font-size:10px;color:#9e9b91;margin-top:2px;text-transform:uppercase;letter-spacing:.06em;}
.confirm-yes{width:100%;background:#1a1917;color:#fff;border:none;border-radius:12px;padding:15px;font-family:'Inter',sans-serif;font-size:15px;font-weight:700;cursor:pointer;margin-bottom:10px;}
.confirm-no{width:100%;background:transparent;border:none;color:#9e9b91;font-family:'Inter',sans-serif;font-size:14px;cursor:pointer;padding:8px;}
/* SWITCH CONFIRM */
.switch-confirm-bg{display:none;position:fixed;inset:0;background:rgba(0,0,0,.5);z-index:900;align-items:flex-end;}
.switch-confirm-bg.visible{display:flex;}
.switch-confirm-sheet{background:#fff;border-radius:20px 20px 0 0;width:100%;padding:24px 20px env(safe-area-inset-bottom,20px);}
.profile-sheet{background:var(--app-bg,#f0efe9);border-radius:20px 20px 0 0;width:100%;max-height:90vh;overflow-y:auto;padding-bottom:env(safe-area-inset-bottom,20px);}