/* 실제 판매 기간: 관리자 설정과 서버 시각에 연결된 공통 안내 */
.sale-schedule-card{border:1px solid #65517f;border-radius:16px;background:linear-gradient(135deg,#2b203b,#1a1724);padding:22px;color:#f6efff;text-align:left}
.sale-card-top{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px 12px;margin-bottom:14px;min-width:0}
.sale-card-label{flex:0 1 auto;max-width:100%;line-height:1.6;word-break:normal;overflow-wrap:normal;font-size:10px;letter-spacing:.18em;font-weight:750;color:#cdb2ed}
.sale-state{display:inline-flex;box-sizing:border-box;max-width:100%;min-width:0;padding:5px 10px;border:1px solid #786089;border-radius:999px;font-size:12px;line-height:1.5;color:#ead9ff;white-space:normal;word-break:normal;overflow-wrap:anywhere;background:#3b2b4b}
.sale-state.is-open{background:#203c38;color:#bbf0df;border-color:#4e8274}
.sale-date-row{display:grid;grid-template-columns:70px 1fr;gap:12px;padding:12px 0;border-bottom:1px solid #ffffff14;align-items:baseline}
.sale-date-row>span{color:#b7a8c8;font-size:13px}.sale-date-row time{font-size:17px;font-weight:650;line-height:1.65;letter-spacing:-.025em;overflow-wrap:anywhere}
.sale-timezone{font-size:11px!important;line-height:1.8!important;color:#baaccb!important;margin:13px 0 0!important}
.sale-dialog{box-sizing:border-box;width:min(540px,calc(100vw - 28px));max-height:calc(100dvh - 28px);padding:0;border:1px solid #625074;border-radius:24px;background:#18131f;color:#f8f3ff;overflow:auto;box-shadow:0 30px 120px #000a}
.sale-dialog::backdrop{background:#07050cda;backdrop-filter:blur(8px)}
.sale-dialog-banner{height:105px;padding:26px 30px;display:flex;justify-content:space-between;align-items:center;background:linear-gradient(90deg,#281737b8,#120b2888),url('../assets/img/concert-audience-visual.png') center 55%/cover;border-bottom:1px solid #66517b}
.sale-dialog-kicker{font-size:11px;font-weight:700;letter-spacing:.2em;color:#efe1ff}.sale-dialog-symbol{font-size:36px;color:#dbc1ff;margin-right:35px}
.sale-dialog-body{padding:30px}.sale-overline{font-size:12px;color:#c6a9e8;font-weight:650;margin:0 0 10px}
.sale-dialog h2{font-size:29px;line-height:1.5;letter-spacing:-.045em;margin:0 0 12px;outline:none}
.sale-dialog-description{font-size:14px;color:#d2c5df;line-height:1.9;margin:0 0 23px}
.sale-dialog-hint{font-size:12px;line-height:1.9;color:#b5a6c5;margin:18px 0 22px}.sale-dialog-confirm{min-height:48px}
.sale-dialog-close{position:absolute;right:16px;top:16px;background:#130c20b8;border:1px solid #8a709955;color:#fff;border-radius:50%;width:40px;height:40px;cursor:pointer;font-size:28px;font-weight:300}
.sale-dialog button:focus-visible{outline:3px solid #d6b1ff;outline-offset:3px}
.sale-home-strip{background:#17121f;border-block:1px solid #514065;padding:20px 0}.sale-home-inner{display:flex;gap:24px;align-items:center;justify-content:space-between}.sale-home-info{display:flex;gap:16px;align-items:center;flex-wrap:wrap}.sale-home-info p{margin:0;font-size:14px;color:#e5d6f7}.sale-home-info strong{font-size:15px;color:#fff}.sale-home-inner>.btn{flex-shrink:0}
.sale-extra-schedule{margin-top:24px}.sale-extra-schedule h3{font-size:17px;margin-bottom:18px}
.hn-copy .sale-schedule-card{margin:24px 0}.hn-copy .sale-date-row time{font-size:15px}.hn-copy .sale-schedule-card{padding:17px}
[data-open-booking][data-sale-state="before_open"],[data-open-booking][data-sale-state="disabled"],[data-open-booking][data-sale-state="ended"],[data-open-booking][data-sale-state="not_scheduled"]{background:#4b365f;color:#f3e6ff;border-color:#8868a3}
@media(max-width:600px){.sale-card-top{flex-direction:column;align-items:flex-start}.sale-state{align-self:flex-start}.sale-dialog-body{padding:24px 20px}.sale-dialog h2{font-size:24px}.sale-dialog-banner{height:88px;padding:20px}.sale-schedule-card{padding:17px}.sale-date-row{grid-template-columns:1fr;gap:4px;padding:10px 0}.sale-date-row time{font-size:17px}.sale-home-inner{align-items:stretch;gap:14px;flex-direction:column}.sale-home-info{gap:10px}.sale-home-info p{font-size:13px}.sale-home-inner>.btn{align-self:flex-start}.sale-home-strip{padding:18px 0}}

/* R5: schedules remain legible at phone widths and with enlarged text. */
.sale-dialog { max-height:calc(100vh - 24px); max-height:calc(100dvh - 24px); overscroll-behavior:contain; scrollbar-gutter:stable; }
.sale-dialog :is(h2,p,time,button) { word-break:normal; overflow-wrap:anywhere; }
.sale-dialog h2 { font-size:clamp(22px,4vw,29px); line-height:1.3; letter-spacing:-.015em; padding-right:16px; }
.sale-dialog-banner { height:auto; min-height:88px; padding-right:72px; gap:12px; }
.sale-dialog-symbol { flex-shrink:0; margin-right:0; }
.sale-dialog-kicker { min-width:0; letter-spacing:.1em; }
.sale-dialog-close { width:44px; height:44px; line-height:1; z-index:1; }
.sale-dialog-description { line-height:1.6; margin-bottom:18px; }
.sale-dialog-hint { font-size:13px; line-height:1.6; margin:16px 0; }
.sale-date-row { grid-template-columns:minmax(82px,max-content) minmax(0,1fr); }
.sale-date-row > * { min-width:0; }
.sale-date-row time { letter-spacing:normal; font-size:16px; line-height:1.5; }
@media(max-width:900px) {
  .home-notice .sale-date-row { grid-template-columns:minmax(0,1fr); gap:3px; }
  .home-notice .sale-schedule-card { margin:18px 0; padding:14px; }
  .home-notice .sale-date-row time { font-size:15px; }
}
@media(max-width:600px) {
  .sale-dialog { width:calc(100vw - 20px); border-radius:18px; }
  .sale-dialog-body { padding:20px 16px max(18px,env(safe-area-inset-bottom)); }
  .sale-dialog-banner { min-height:72px; padding:16px 70px 16px 18px; }
  .sale-dialog-confirm { width:100%; font-size:15px; line-height:1.4; min-height:48px; }
  .sale-date-row { grid-template-columns:minmax(0,1fr); }
  .sale-date-row > span { font-size:13px; }
  .sale-home-inner > .btn { align-self:stretch; width:100%; white-space:normal; }
}
.sale-dialog[open] { display:flex; flex-direction:column; overflow:hidden; scrollbar-gutter:auto; }
.sale-dialog-banner, .sale-dialog-actions { flex:0 0 auto; }
.sale-dialog-body { min-height:0; overflow-y:auto; overscroll-behavior:contain; scrollbar-gutter:stable; -webkit-overflow-scrolling:touch; }
.sale-dialog-actions { border-top:1px solid #67517866; padding:14px 30px max(14px,env(safe-area-inset-bottom)); background:#201829; }
@media(max-width:600px) { .sale-dialog-actions { padding:12px 16px max(12px,env(safe-area-inset-bottom)); } }
