.jpos-public-calendar{--jpos-border:#dde2e7;--jpos-muted:#67727e;--jpos-red:#c93434;--jpos-blue:#2271b1;--jpos-brand:#b5122b;--jpos-brand-dark:#8f0d21;--jpos-brand-soft:#fff5f6;--jpos-brand-soft-strong:#fdebed;--jpos-brand-border:#e2a5ae;--jpos-brand-text:#7b2633;--jpos-green:#137a4a;--jpos-amber:#a06a00;--jpos-gray:#6b7280;--jpos-soft:#f7f8f9;font-family:inherit;background:#fff;border:1px solid var(--jpos-border);border-radius:16px;padding:28px;box-sizing:border-box;box-shadow:0 8px 28px rgba(15,23,42,.06);margin:24px 0;width:100%;container-type:inline-size}.jpos-public-calendar *{box-sizing:border-box}.jpos-public-preview{display:inline-flex;align-items:center;border:1px solid #b9d8f4;background:#f3f8fd;color:#1f4f78;border-radius:999px;padding:5px 10px;font-size:12px;font-weight:700;margin-bottom:16px}.jpos-public-head{display:flex;justify-content:space-between;align-items:flex-start;gap:28px;margin-bottom:18px}.jpos-public-eyebrow{margin:0 0 3px;color:var(--jpos-muted);font-size:13px;font-weight:700;letter-spacing:.08em}.jpos-public-head h2{font-size:clamp(24px,3vw,34px);line-height:1.2;margin:0 0 8px}.jpos-public-meta{margin:0;color:var(--jpos-muted);font-size:14px}.jpos-public-fares{min-width:300px;border-left:1px solid var(--jpos-border);padding-left:22px}.jpos-public-fare{display:flex;justify-content:space-between;gap:18px;padding:5px 0;font-size:14px}.jpos-public-fare strong{white-space:nowrap;font-size:15px}.jpos-public-addon-fares{margin-top:7px;padding-top:7px;border-top:1px dashed #d8dce2}.jpos-public-fare-addon>span{display:flex;align-items:center;flex-wrap:wrap;gap:6px}.jpos-public-fare-badge{display:inline-flex;align-items:center;padding:2px 6px;border-radius:999px;background:#f1edf6;color:#675078;font-size:9px;font-weight:800;line-height:1.35;white-space:nowrap}.jpos-public-fare-addon strong{color:#73558a}.jpos-public-legend{display:flex;flex-wrap:wrap;gap:8px 18px;border-top:1px solid var(--jpos-border);border-bottom:1px solid var(--jpos-border);padding:12px 0;margin-bottom:24px;font-size:13px;font-weight:700}.jpos-public-status-open{color:var(--jpos-green)}.jpos-public-status-few{color:var(--jpos-amber)}.jpos-public-status-sold-out{color:var(--jpos-red)}.jpos-public-status-paused{color:var(--jpos-gray)}.jpos-public-month{margin-top:18px}.jpos-public-month h3,.jpos-mobile-month h3{font-size:20px;margin:0 0 12px}.jpos-public-weekdays,.jpos-public-grid,.jpos-mobile-weekdays,.jpos-mobile-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr))}.jpos-public-weekdays{border:1px solid var(--jpos-border);border-bottom:0;border-radius:10px 10px 0 0;overflow:hidden;background:var(--jpos-soft)}.jpos-public-weekdays span{text-align:center;padding:8px 4px;font-weight:700;font-size:13px}.jpos-public-weekdays .is-sunday,.jpos-mobile-weekdays .is-sunday{color:var(--jpos-red)}.jpos-public-weekdays .is-saturday,.jpos-mobile-weekdays .is-saturday{color:var(--jpos-blue)}.jpos-public-grid{border-left:1px solid var(--jpos-border);border-top:1px solid var(--jpos-border)}.jpos-public-day{min-height:138px;border-right:1px solid var(--jpos-border);border-bottom:1px solid var(--jpos-border);padding:8px 7px;background:#fff;min-width:0}.jpos-public-day.is-empty,.jpos-public-day.is-outside-event{background:#fafbfc}.jpos-public-day.is-outside-event .jpos-public-date-number{color:#aab1b8}.jpos-public-date-line{display:flex;align-items:baseline;gap:5px;min-height:22px}.jpos-public-date-number{font-weight:800;font-size:16px}.jpos-public-day.is-holiday{background:#fff7f7}.jpos-public-day.is-saturday{background:#f7fbff}.jpos-public-day.is-holiday .jpos-public-date-number{color:var(--jpos-red)}.jpos-public-day.is-saturday .jpos-public-date-number{color:var(--jpos-blue)}.jpos-public-holiday-name{color:var(--jpos-red);font-size:9px;font-weight:700;line-height:1.2}.jpos-public-sessions{display:flex;flex-direction:column;gap:6px;margin-top:7px}.jpos-public-session{display:flex;flex-direction:column;align-items:flex-start;gap:1px;font-size:11px;line-height:1.2;font-weight:700;padding:3px 0;border-top:1px dotted #e5e7eb}.jpos-public-session:first-child{border-top:0}.jpos-public-session time{font-variant-numeric:tabular-nums;color:#34404c;font-size:11px}.jpos-public-status-combined{white-space:nowrap}.jpos-public-footnote{margin:16px 0 0;color:var(--jpos-muted);font-size:13px;line-height:1.6}.jpos-public-message{border:1px solid #dcdcde;background:#fff;padding:14px 16px;border-radius:8px}.jpos-calendar-mobile-view{display:none}

/* v0.5.2 mobile rule: keep each performance on one line as time + status symbol. */
/* Compact monthly view + day detail. It becomes active when the calendar container is narrow, not only when the whole browser is narrow. */
.jpos-mobile-guide{margin:0 0 14px;color:var(--jpos-muted);font-size:13px;line-height:1.6}.jpos-mobile-month{margin-top:18px}.jpos-mobile-weekdays{border:1px solid var(--jpos-border);border-bottom:0;border-radius:10px 10px 0 0;overflow:hidden;background:var(--jpos-soft)}.jpos-mobile-weekdays span{text-align:center;padding:7px 2px;font-size:11px;font-weight:700}.jpos-mobile-grid{border-left:1px solid var(--jpos-border);border-top:1px solid var(--jpos-border)}.jpos-mobile-day{position:relative;min-height:70px;border-right:1px solid var(--jpos-border);border-bottom:1px solid var(--jpos-border);background:#fff;min-width:0}.jpos-mobile-day.is-empty,.jpos-mobile-day.is-outside-event{background:#fafbfc}.jpos-mobile-day.is-outside-event>.jpos-mobile-date-number{display:block;padding:7px 6px;color:#aab1b8;font-size:11px;font-weight:700}.jpos-mobile-day-button{appearance:none;-webkit-appearance:none;border:0;background:transparent;width:100%;min-height:70px;padding:6px 4px;display:flex;flex-direction:column;align-items:center;justify-content:flex-start;gap:5px;cursor:pointer;font:inherit;color:inherit;border-radius:0}.jpos-mobile-day-button:hover{background:var(--jpos-brand-soft)}.jpos-mobile-day-button:focus-visible{outline:2px solid var(--jpos-brand);outline-offset:-2px}.jpos-mobile-day-button.is-selected{background:#fff;box-shadow:inset 0 0 0 2px var(--jpos-brand)}.jpos-mobile-date-number{font-size:13px;font-weight:800;line-height:1}.jpos-mobile-day.is-holiday{background:#fff7f7}.jpos-mobile-day.is-saturday{background:#f7fbff}.jpos-mobile-day.is-holiday .jpos-mobile-date-number{color:var(--jpos-red)}.jpos-mobile-day.is-saturday .jpos-mobile-date-number{color:var(--jpos-blue)}.jpos-mobile-markers{display:flex;flex-direction:column;align-items:center;gap:2px;line-height:1}.jpos-mobile-marker{display:flex;align-items:center;justify-content:center;gap:2px;width:100%;white-space:nowrap;font-weight:800;line-height:1}.jpos-mobile-marker time{font-size:10.5px;line-height:1;font-weight:800;font-variant-numeric:tabular-nums;color:#34404c}.jpos-mobile-marker strong{font-size:14px;line-height:1;font-weight:800}
/* v0.5.3: lock compact-calendar symbols to their reception-status colors.
   Some themes apply their own color to <strong>, so status color must win here. */
.jpos-mobile-marker.jpos-public-status-open strong{color:var(--jpos-green)!important}
.jpos-mobile-marker.jpos-public-status-few strong{color:var(--jpos-amber)!important}
.jpos-mobile-marker.jpos-public-status-sold-out strong{color:var(--jpos-red)!important}
.jpos-mobile-marker.jpos-public-status-paused strong{color:var(--jpos-gray)!important}.jpos-mobile-detail-area{margin-top:18px;scroll-margin-top:20px}.jpos-mobile-detail-placeholder{border:1px dashed #c8cdd3;border-radius:10px;padding:16px;text-align:center;color:var(--jpos-muted);font-size:13px;background:#fafbfc}.jpos-mobile-detail{border:1px solid var(--jpos-border);border-radius:12px;padding:16px;background:#fff;box-shadow:0 5px 18px rgba(15,23,42,.05);scroll-margin-top:20px}.jpos-mobile-detail[hidden]{display:none!important}.jpos-mobile-detail-head{display:flex;flex-direction:column;gap:3px;border-bottom:1px solid var(--jpos-border);padding-bottom:10px;margin-bottom:10px}.jpos-mobile-detail-kicker{margin:0!important;color:var(--jpos-muted);font-size:11px;font-weight:700;line-height:1.35}.jpos-mobile-detail h4{font-size:21px;margin:0!important;line-height:1.25}.jpos-mobile-detail.is-holiday h4,.jpos-mobile-detail.is-holiday .jpos-mobile-detail-holiday{color:var(--jpos-red)}.jpos-mobile-detail.is-saturday h4{color:var(--jpos-blue)}.jpos-mobile-detail-holiday{margin:3px 0 0;font-size:12px;font-weight:700}.jpos-mobile-detail-sessions{display:flex;flex-direction:column;gap:8px}.jpos-mobile-detail-session{display:flex;align-items:center;justify-content:space-between;gap:14px;border:1px solid #e7e9ec;border-radius:9px;padding:11px 12px;font-weight:700}.jpos-mobile-detail-session time{font-size:17px;font-variant-numeric:tabular-nums;color:#26323d}.jpos-mobile-detail-session span{font-size:14px}.jpos-mobile-detail-nav{display:grid;grid-template-columns:1fr 1.4fr 1fr;gap:7px;margin-top:14px}.jpos-mobile-detail-nav button{appearance:none;border:1px solid #c3c4c7;background:#fff;color:#2c3338;border-radius:7px;padding:8px 7px;font-size:11px;font-weight:700;cursor:pointer}.jpos-mobile-detail-nav button:hover:not(:disabled){background:#f6f7f7}.jpos-mobile-detail-nav button:disabled{opacity:.35;cursor:default}.jpos-mobile-back-button{border-color:var(--jpos-brand-border)!important;background:var(--jpos-brand-soft)!important;color:var(--jpos-brand-text)!important}




/* v0.5.1: PC uses the detailed calendar even when the theme content column is narrow. */
@media (min-width:781px){
  .jpos-calendar-desktop-view{display:block}
  .jpos-calendar-mobile-view{display:none}
  .jpos-public-day{min-height:138px;padding:8px 6px}
  .jpos-public-sessions{gap:6px}
  .jpos-public-session{font-size:12px;gap:2px;font-weight:800;padding-top:4px;padding-bottom:4px}
  .jpos-public-session time{font-size:16px;font-weight:900;color:#26323d;line-height:1.05}
  .jpos-public-status-combined{font-size:12px;font-weight:800;white-space:nowrap;line-height:1.2;letter-spacing:-.01em}
  .jpos-public-session.jpos-public-status-open .jpos-public-status-combined{color:var(--jpos-green)!important}
  .jpos-public-session.jpos-public-status-few .jpos-public-status-combined{color:var(--jpos-amber)!important}
  .jpos-public-session.jpos-public-status-sold-out .jpos-public-status-combined{color:var(--jpos-red)!important}
  .jpos-public-session.jpos-public-status-paused .jpos-public-status-combined{color:var(--jpos-gray)!important}
}

/* Keep status symbols and text the same color even when the theme styles strong elements. */
.jpos-mobile-detail-session.jpos-public-status-open span,.jpos-mobile-detail-session.jpos-public-status-open strong{color:var(--jpos-green)!important}
.jpos-mobile-detail-session.jpos-public-status-few span,.jpos-mobile-detail-session.jpos-public-status-few strong{color:var(--jpos-amber)!important}
.jpos-mobile-detail-session.jpos-public-status-sold-out span,.jpos-mobile-detail-session.jpos-public-status-sold-out strong{color:var(--jpos-red)!important}
.jpos-mobile-detail-session.jpos-public-status-paused span,.jpos-mobile-detail-session.jpos-public-status-paused strong{color:var(--jpos-gray)!important}
.jpos-open-symbol-mobile{display:none}
@media (max-width:780px){.jpos-open-symbol-desktop{display:none}.jpos-open-symbol-mobile{display:inline}.jpos-public-calendar{padding:18px 12px;border-radius:12px}.jpos-public-head{display:block}.jpos-public-fares{min-width:0;border-left:0;border-top:1px solid var(--jpos-border);padding:12px 0 0;margin-top:14px}.jpos-public-fare{font-size:13px}.jpos-public-legend{gap:7px 12px;font-size:11px;margin-bottom:18px}.jpos-calendar-desktop-view{display:none}.jpos-calendar-mobile-view{display:block}.jpos-public-footnote{font-size:13px}}
@media (max-width:430px){.jpos-public-calendar{margin-left:-6px;margin-right:-6px}.jpos-mobile-day,.jpos-mobile-day-button{min-height:70px}.jpos-mobile-marker{gap:1px}.jpos-mobile-marker time{font-size:10px;font-weight:800}.jpos-mobile-marker strong{font-size:13.5px}.jpos-mobile-detail-nav{grid-template-columns:1fr 1fr}.jpos-mobile-back-button{grid-column:1/-1;grid-row:2}.jpos-mobile-detail-nav button{font-size:11px}}
@media (max-width:360px){.jpos-mobile-day-button{padding-left:2px;padding-right:2px}.jpos-mobile-marker time{font-size:9.5px}.jpos-mobile-marker strong{font-size:12.5px}}


/* v0.6.0: performance selection. Selection is browser-only; no database write occurs. */
.jpos-public-session{appearance:none;-webkit-appearance:none;width:100%;border:0;background:transparent;text-align:left;font-family:inherit;color:inherit;cursor:default}
.jpos-public-session.is-selectable{cursor:pointer;border-radius:6px;transition:background-color .15s ease,box-shadow .15s ease}
.jpos-public-session.is-selectable:hover{background:var(--jpos-brand-soft)}
.jpos-public-session.is-selectable:focus-visible{outline:2px solid var(--jpos-brand);outline-offset:1px}
.jpos-public-session.is-selected{background:#fff;box-shadow:inset 0 0 0 2px var(--jpos-brand),0 0 0 1px rgba(181,18,43,.12);padding-left:4px;padding-right:4px}
.jpos-public-session.is-unavailable{opacity:.72;cursor:not-allowed}
.jpos-mobile-detail-session{appearance:none;-webkit-appearance:none;width:100%;background:#fff;text-align:left;font:inherit;color:inherit}
.jpos-mobile-detail-session.is-selectable{cursor:pointer;transition:background-color .15s ease,border-color .15s ease,box-shadow .15s ease}
.jpos-mobile-detail-session.is-selectable:hover{background:var(--jpos-brand-soft);border-color:#e7bcc2}
.jpos-mobile-detail-session.is-selectable:focus-visible{outline:2px solid var(--jpos-brand);outline-offset:2px}
.jpos-mobile-detail-session.is-selected{background:var(--jpos-brand-soft-strong);border-color:var(--jpos-brand-border);box-shadow:inset 0 0 0 1px var(--jpos-brand-border)}
.jpos-mobile-detail-session.is-unavailable{opacity:.68;cursor:not-allowed;background:#fafbfc}
.jpos-selection-summary{margin:20px 0 0;border:1px solid var(--jpos-brand-border);border-radius:12px;background:var(--jpos-brand-soft);padding:15px 16px;box-shadow:0 4px 14px rgba(181,18,43,.06)}
.jpos-selection-summary[hidden]{display:none!important}
.jpos-selection-kicker{margin:0 0 5px;color:var(--jpos-brand-text);font-size:11px;font-weight:800;letter-spacing:.04em}
.jpos-selection-main{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:8px 18px}
.jpos-selection-main strong{font-size:17px;line-height:1.35;color:#1f2933}
.jpos-selection-main span{font-size:14px;font-weight:800;white-space:nowrap}
.jpos-selection-note{margin:9px 0 0;padding-top:9px;border-top:1px solid #efcbd1;color:var(--jpos-muted);font-size:13px;line-height:1.65}.jpos-selection-actions{margin-top:12px}.jpos-selection-next{display:flex;align-items:center;justify-content:center;gap:10px;width:100%;min-height:42px;border:1px solid var(--jpos-brand);border-radius:8px;background:var(--jpos-brand);color:#fff;font:inherit;font-size:13px;font-weight:800;line-height:1.4;cursor:pointer;box-shadow:0 3px 10px rgba(181,18,43,.16);transition:background .15s ease,border-color .15s ease,transform .15s ease}.jpos-selection-next:hover{background:var(--jpos-brand-dark);border-color:var(--jpos-brand-dark)}.jpos-selection-next:focus-visible{outline:3px solid rgba(181,18,43,.22);outline-offset:2px}.jpos-selection-next:active{transform:translateY(1px)}
@media (max-width:780px){.jpos-selection-summary{margin-top:16px;padding:14px}.jpos-selection-main{display:block}.jpos-selection-main strong{display:block;font-size:16px;margin-bottom:4px}.jpos-selection-main span{font-size:13px}.jpos-selection-actions{display:none}}



/* v0.9.0: one application = one performance time; multiple admission products and fare categories can be combined. */
.jpos-quantity-selection{margin:14px 0 0;border:1px solid var(--jpos-border);border-radius:12px;background:#fff;padding:16px;box-shadow:0 4px 14px rgba(15,23,42,.04);scroll-margin-top:20px}
.jpos-quantity-selection[hidden]{display:none!important}
.jpos-quantity-selection-head{margin-bottom:12px}
.jpos-quantity-selection-head h3{margin:0;font-size:18px;line-height:1.35;color:#1f2933}
.jpos-order-guide{display:flex;flex-wrap:wrap;gap:3px 18px;margin:9px 0 0;padding:10px 12px;border:1px solid #eadcdf;border-left:3px solid var(--jpos-brand-border);border-radius:8px;background:#faf7f7;color:#4f4547;line-height:1.6}.jpos-order-guide strong{font-size:14.5px;color:#7f1728;font-weight:800}.jpos-order-guide span{font-size:14px;font-weight:400}
.jpos-admission-products{display:flex;flex-direction:column;gap:10px}
.jpos-quantity-seat-panel{border:1px solid #dfe4e8;border-radius:11px;background:#fbfcfd;padding:12px}
.jpos-quantity-seat-name{margin:0 0 9px;font-size:15px;font-weight:800;color:#56343a;line-height:1.4}
.jpos-quantity-rows{display:flex;flex-direction:column;gap:7px}
.jpos-quantity-row{display:flex;align-items:center;justify-content:space-between;gap:14px;border:1px solid #e2e6ea;border-radius:9px;background:#fff;padding:10px 11px}
.jpos-quantity-fare-info{min-width:0;display:flex;align-items:baseline;gap:10px;flex-wrap:wrap}
.jpos-quantity-fare-label{font-size:14px;color:#1f2933}
.jpos-quantity-unit-price{font-size:14px;font-weight:800;color:#c64018;white-space:nowrap}
.jpos-quantity-control{flex:0 0 auto;display:grid;grid-template-columns:38px 44px 38px;align-items:center;border:1px solid #cfd6dc;border-radius:9px;overflow:hidden;background:#fff}
.jpos-quantity-button{appearance:none;-webkit-appearance:none;border:0;background:#f6f7f7;color:#1f2933;font:inherit;font-size:20px;font-weight:700;line-height:1;height:38px;cursor:pointer}
.jpos-quantity-button:hover:not(:disabled){background:var(--jpos-brand-soft-strong);color:var(--jpos-brand-dark)}
.jpos-quantity-button:focus-visible{outline:2px solid var(--jpos-brand);outline-offset:-2px}
.jpos-quantity-button:disabled{color:#a7adb3;background:#fafafa;cursor:default}
.jpos-quantity-value{display:flex;align-items:center;justify-content:center;height:38px;border-left:1px solid #cfd6dc;border-right:1px solid #cfd6dc;font-size:16px;font-weight:800;font-variant-numeric:tabular-nums;color:#1f2933}
.jpos-quantity-total{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:12px;padding:12px;border-radius:9px;background:var(--jpos-brand-soft);border:1px solid #efcbd1}
.jpos-quantity-total>div{display:flex;align-items:baseline;justify-content:space-between;gap:8px}
.jpos-quantity-total span{font-size:13.5px;color:#70474d;font-weight:700}
.jpos-quantity-total strong{font-size:16px;color:var(--jpos-brand-text);white-space:nowrap}
.jpos-quantity-total>div:last-child strong{color:#c64018}
.jpos-quantity-note{margin:10px 0 0;color:var(--jpos-muted);font-size:13.5px;line-height:1.65}
@media (max-width:780px){.jpos-quantity-selection{margin-top:12px;padding:14px}.jpos-quantity-selection-head h3{font-size:17px}.jpos-quantity-seat-panel{padding:10px}.jpos-quantity-seat-name{font-size:14px}.jpos-quantity-row{padding:10px}.jpos-quantity-fare-label{font-size:13px}.jpos-quantity-unit-price{font-size:13px}.jpos-quantity-total{grid-template-columns:1fr}.jpos-quantity-control{grid-template-columns:40px 46px 40px}.jpos-quantity-button,.jpos-quantity-value{height:40px}}
@media (max-width:380px){.jpos-quantity-row{align-items:flex-start;flex-direction:column}.jpos-quantity-control{align-self:flex-end}}
.jpos-quantity-condition{display:block;margin-top:3px;color:#646970;font-size:13px;line-height:1.5}

/* v0.14.0: red-based J-Plaza visual integration; add-on purple and semantic status/Saturday colors remain distinct. */
.jpos-addon-selection{margin-top:18px;padding-top:17px;border-top:1px dashed #cfd6dc}
.jpos-addon-selection-head{margin-bottom:11px}
.jpos-addon-selection-head h4{margin:0;font-size:17px;line-height:1.35;color:#1f2933}
.jpos-addon-selection-head>p:last-child{margin:6px 0 0;color:var(--jpos-muted);font-size:13.5px;line-height:1.65}
.jpos-addon-products{display:flex;flex-direction:column;gap:10px}
.jpos-addon-product-panel{background:#fcfbff;border-color:#ded9e8}
.jpos-addon-product-title{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin-bottom:9px}
.jpos-addon-product-title .jpos-quantity-seat-name{margin:0;color:#57436e}
.jpos-addon-product-title>span{flex:0 0 auto;padding:4px 8px;border-radius:999px;background:#f1edf6;color:#675078;font-size:12.5px;font-weight:700;white-space:nowrap}
.jpos-quantity-total.has-addons{grid-template-columns:repeat(2,minmax(0,1fr))}
@media (max-width:780px){.jpos-addon-selection{margin-top:16px;padding-top:15px}.jpos-addon-product-title{display:block}.jpos-addon-product-title>span{display:inline-block;margin-top:5px}.jpos-quantity-total.has-addons{grid-template-columns:1fr}}


/* v0.16.1: readable information hierarchy for ordering guidance and precheck details. */
.jpos-order-next-wrap{margin-top:16px;padding-top:15px;border-top:1px solid #eadcdf}
.jpos-order-next{display:flex;align-items:center;justify-content:center;gap:10px;width:100%;min-height:46px;border:1px solid var(--jpos-brand);border-radius:9px;background:var(--jpos-brand);color:#fff;font:inherit;font-size:14px;font-weight:800;line-height:1.4;cursor:pointer;box-shadow:0 4px 12px rgba(181,18,43,.16);transition:background .15s ease,border-color .15s ease,transform .15s ease,opacity .15s ease}
.jpos-order-next:hover:not(:disabled){background:var(--jpos-brand-dark);border-color:var(--jpos-brand-dark)}
.jpos-order-next:focus-visible{outline:3px solid rgba(181,18,43,.22);outline-offset:2px}
.jpos-order-next:active:not(:disabled){transform:translateY(1px)}
.jpos-order-next:disabled{background:#d9d9d9;border-color:#d0d0d0;color:#777;box-shadow:none;cursor:not-allowed}
.jpos-order-next-wrap>p{margin:7px 0 0;text-align:center;color:var(--jpos-muted);font-size:13px;line-height:1.6}

.jpos-precheck{margin:16px 0 0;border:1px solid #dfb9bf;border-radius:13px;background:#fff;padding:18px;box-shadow:0 5px 18px rgba(86,28,37,.06);scroll-margin-top:20px}
.jpos-precheck[hidden]{display:none!important}
.jpos-precheck-head{margin-bottom:14px}
.jpos-precheck-head h3{margin:0;color:#2b2022;font-size:20px;line-height:1.35}
.jpos-precheck-head>p:last-child{margin:8px 0 0;color:#514648;font-size:15px;line-height:1.65}.jpos-precheck-head>p:last-child strong{color:#7f1728;font-weight:800}
/* v0.26.11: make the four mandatory confirmations self-explanatory. */
.jpos-precheck-progress{margin:0 0 14px;padding:12px 14px;border:1px solid #e3c3c8;border-radius:10px;background:#fff8f8}
.jpos-precheck-progress-main{display:flex;align-items:baseline;justify-content:space-between;gap:12px}
.jpos-precheck-progress-main span{color:#7f1728;font-size:13.5px;font-weight:900;letter-spacing:.02em}
.jpos-precheck-progress-main strong{color:#8e172a;font-size:18px;line-height:1.2;font-weight:900;font-variant-numeric:tabular-nums}
.jpos-precheck-progress p{margin:5px 0 0;color:#5a4b4e;font-size:14px;line-height:1.55;font-weight:700}
.jpos-precheck-progress-track{height:7px;margin-top:9px;overflow:hidden;border-radius:999px;background:#eadde0}
.jpos-precheck-progress-track>span{display:block;width:0;height:100%;border-radius:inherit;background:var(--jpos-brand);transition:width .2s ease}
.jpos-precheck-progress.is-complete{border-color:#a8d5b3;background:#f3fbf5}
.jpos-precheck-progress.is-complete .jpos-precheck-progress-main span,.jpos-precheck-progress.is-complete .jpos-precheck-progress-main strong{color:#147a36}
.jpos-precheck-progress.is-complete .jpos-precheck-progress-track>span{background:#1b8d42}
.jpos-precheck-next-status{margin:0 0 8px;text-align:center;color:#8a3544;font-size:13.5px;line-height:1.5;font-weight:800}
.jpos-precheck-next-status.is-complete{color:#147a36}

.jpos-precheck-card{margin-top:12px;border:1px solid #dfb2b9;border-radius:11px;background:#fffafa;padding:16px;box-shadow:inset 4px 0 0 var(--jpos-brand)}
.jpos-precheck-card:first-of-type{margin-top:0}
.jpos-precheck-card.is-summary{background:var(--jpos-brand-soft);border-color:#dfb2b9}
.jpos-precheck-card-head{display:flex;align-items:baseline;gap:10px;margin:0 0 10px}
.jpos-precheck-step{flex:0 0 auto;color:#9a5360;font-size:10.5px;font-weight:900;letter-spacing:.04em;white-space:nowrap}
.jpos-precheck-card-head h4{margin:0;color:#7f1728;font-size:15px;line-height:1.4;font-weight:900}

/* The user's eye should always land here first. Every card uses the same position and hierarchy. */
.jpos-precheck-focus{margin:0;border:1px solid #e4aeb8;border-radius:10px;background:#fff;padding:13px 14px;min-height:78px;display:flex;flex-direction:column;justify-content:center;gap:6px}
.jpos-precheck-focus-primary{display:block;color:#2f2325;font-size:19px;line-height:1.45;font-weight:900;letter-spacing:.005em}
.jpos-precheck-focus-secondary{display:block;color:#97192e;font-size:17px;line-height:1.45;font-weight:900}
.jpos-precheck-focus-note{display:block;color:#62474c;font-size:15px;line-height:1.4;font-weight:800}
.jpos-precheck-focus-items{display:flex;flex-direction:column;gap:5px}
.jpos-precheck-focus-items>div{display:flex;align-items:baseline;justify-content:space-between;gap:14px}
.jpos-precheck-focus-items span{color:#3f3134;font-size:16px;line-height:1.5;font-weight:800}
.jpos-precheck-focus-items strong{color:#97192e;font-size:17px;line-height:1.45;font-weight:900;white-space:nowrap}
.jpos-precheck-focus-fees{display:flex;flex-wrap:wrap;align-items:baseline;gap:8px 18px;margin-top:1px}
.jpos-precheck-focus-fees>span{color:#62474c;font-size:14px;font-weight:700}
.jpos-precheck-focus-fees strong{color:#97192e;font-size:15.5px;font-weight:900;white-space:nowrap}

.jpos-precheck-card>p{margin:10px 0 0;color:#54494b;font-size:15px;line-height:1.7}
.jpos-precheck-totals{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-top:10px;padding-top:10px;border-top:1px solid #eadcdf}
.jpos-precheck-totals>div{display:flex;flex-direction:column;gap:2px}
.jpos-precheck-totals span{font-size:13px;font-weight:700;color:#70474d}
.jpos-precheck-totals strong{font-size:14.5px;color:#7d2634}
.jpos-precheck-subsection{margin-top:12px;padding:11px 12px;border:1px solid #e4aeb8;border-radius:10px;background:#fff}
.jpos-precheck-subsection h5{margin:0 0 5px;color:#4a3539;font-size:15px;line-height:1.5;font-weight:800}
.jpos-precheck-subsection p{margin:0;color:#5f5557;font-size:15px;line-height:1.65}
.jpos-precheck-terms{margin-top:11px;color:#514648;font-size:15px;line-height:1.65}
.jpos-precheck-terms p{margin:0}
.jpos-precheck-terms ul{margin:0;padding:0 0 0 1.35em}
.jpos-precheck-terms li{margin:5px 0}
.jpos-precheck-shipping{display:flex;flex-wrap:wrap;gap:7px;margin-top:10px}
.jpos-precheck-shipping span{display:inline-flex;align-items:baseline;gap:5px;border:1px solid #eadcdf;border-radius:999px;background:#faf7f7;padding:7px 10px;color:#5e5052;font-size:13.5px;font-weight:600}
.jpos-precheck-shipping strong{color:#8f1528;font-size:14.5px;font-weight:800}
.jpos-precheck-small{font-size:14.5px!important;line-height:1.65!important;color:var(--jpos-muted)!important}

.jpos-precheck-agreement{display:flex;align-items:flex-start;gap:10px;margin-top:14px;padding:12px 13px;border:1px solid #dfb9bf;border-radius:9px;background:#fff5f6;cursor:pointer;transition:background .15s ease,border-color .15s ease}
.jpos-precheck-card.is-summary .jpos-precheck-agreement{background:#fff;border-color:#e3bfc5}
.jpos-precheck-agreement:hover{background:#fff0f2;border-color:#d89aa4}
.jpos-precheck-agreement input{flex:0 0 auto;width:20px;height:20px;margin:1px 0 0;accent-color:var(--jpos-brand)}
.jpos-precheck-agreement span{font-size:14.5px;font-weight:800;color:#4c3035;line-height:1.6}
.jpos-precheck-agreement:has(input:checked){background:#fff0f2;border-color:#cc7d89}

.jpos-precheck-payment-note{display:flex;align-items:baseline;justify-content:space-between;gap:14px;margin-top:12px;border:1px solid #e4e0e1;border-radius:10px;background:#fafafa;padding:11px 13px}
.jpos-precheck-payment-note strong{font-size:14.5px;color:#3f3537}
.jpos-precheck-payment-note span{font-size:13.5px;line-height:1.55;color:var(--jpos-muted);text-align:right}
.jpos-precheck-actions{margin-top:12px}
.jpos-precheck-next{display:flex;align-items:center;justify-content:center;gap:10px;width:100%;min-height:48px;border:1px solid var(--jpos-brand);border-radius:9px;background:var(--jpos-brand);color:#fff;font:inherit;font-size:14px;font-weight:800;cursor:pointer;box-shadow:0 4px 12px rgba(181,18,43,.16)}
.jpos-precheck-next:hover:not(:disabled){background:var(--jpos-brand-dark);border-color:var(--jpos-brand-dark)}
.jpos-precheck-next:focus-visible{outline:3px solid rgba(181,18,43,.22);outline-offset:2px}
.jpos-precheck-next:disabled{background:#d9d9d9;border-color:#d0d0d0;color:#777;box-shadow:none;cursor:not-allowed}
.jpos-precheck-dev-message{margin-top:11px;border-left:3px solid #2271b1;background:#f0f6fc;padding:10px 12px;color:#36566f;font-size:11px;line-height:1.6}
.jpos-precheck-dev-message[hidden]{display:none!important}

br.jpos-mobile-break{display:none}
@media (max-width:780px){
    br.jpos-mobile-break{display:block}
    .jpos-order-guide{display:block;padding:10px 11px}
    .jpos-order-guide strong,.jpos-order-guide span{display:block;font-size:15px}
    .jpos-order-guide span{margin-top:3px}
    .jpos-precheck{padding:14px;margin-top:12px}
    .jpos-precheck-card,.jpos-precheck-actions{scroll-margin-top:16px}
    .jpos-precheck-head h3{font-size:18px}
    .jpos-precheck-progress{padding:11px 12px;margin-bottom:12px}
    .jpos-precheck-progress-main strong{font-size:17px}
    .jpos-precheck-progress p{font-size:13.5px}
    .jpos-precheck-next-status{font-size:13.5px}
    .jpos-precheck-card{padding:13px}
    .jpos-precheck-card-head{gap:8px;margin-bottom:9px}
    .jpos-precheck-step{font-size:10px}
    .jpos-precheck-card-head h4{font-size:14.5px}
    .jpos-precheck-focus{padding:12px;min-height:0;gap:5px}
    .jpos-precheck-focus-primary{font-size:17px;line-height:1.5}
    .jpos-precheck-focus-secondary{font-size:15.5px}
    .jpos-precheck-focus-note{font-size:15px}
    .jpos-precheck-focus-items>div{align-items:flex-start;gap:8px}
    .jpos-precheck-focus-items span{font-size:14.5px}
    .jpos-precheck-focus-items strong{font-size:15px}
    .jpos-precheck-focus-fees{gap:5px 14px}
    .jpos-precheck-focus-fees>span{font-size:14px}
    .jpos-precheck-focus-fees strong{font-size:15px}
    .jpos-precheck-totals{grid-template-columns:1fr}
    .jpos-precheck-totals>div{flex-direction:row;align-items:baseline;justify-content:space-between}
    .jpos-precheck-agreement{padding:12px}
    .jpos-precheck-payment-note{align-items:flex-start;flex-direction:column;gap:3px}
    .jpos-precheck-payment-note span{text-align:left}
    .jpos-order-next{min-height:48px}
    .jpos-precheck-next{min-height:50px}
}


/* v0.16.2: mobile-only typography lift. Keep desktop dimensions unchanged while making the ordering flow comfortably readable on phones. */
@media (max-width:780px){
  .jpos-public-meta{font-size:15px;line-height:1.6}
  .jpos-public-fare{font-size:14px;line-height:1.5}
  .jpos-public-fare strong{font-size:16px}
  .jpos-public-legend{font-size:12px;line-height:1.45}
  .jpos-mobile-guide{font-size:14px;line-height:1.65}
  .jpos-mobile-detail-kicker{font-size:12px}
  .jpos-mobile-detail h4{font-size:22px}
  .jpos-mobile-detail-holiday{font-size:13px}
  .jpos-mobile-detail-session time{font-size:18px}
  .jpos-mobile-detail-session span{font-size:15px}
  .jpos-mobile-detail-nav button{font-size:12px}

  .jpos-selection-kicker{font-size:12px}
  .jpos-selection-main strong{font-size:17px}
  .jpos-selection-main span{font-size:14px}
  .jpos-selection-note{font-size:14.5px;line-height:1.65}

  .jpos-quantity-selection-head h3{font-size:18px}
  .jpos-order-guide strong,.jpos-order-guide span{font-size:16px;line-height:1.55}
  .jpos-quantity-seat-name{font-size:15px}
  .jpos-quantity-fare-label{font-size:14px}
  .jpos-quantity-unit-price{font-size:14px}
  .jpos-quantity-condition{font-size:14.5px;line-height:1.55}
  .jpos-quantity-total span{font-size:14.5px}
  .jpos-quantity-total strong{font-size:17px}
  .jpos-quantity-note{font-size:14.5px;line-height:1.65}
  .jpos-addon-selection-head h4{font-size:18px}
  .jpos-addon-selection-head>p:last-child{font-size:14.5px;line-height:1.65}
  .jpos-addon-product-title>span{font-size:13px}

  .jpos-order-next{font-size:15px;min-height:50px}
  .jpos-order-next-wrap>p{font-size:14.5px;line-height:1.6}

  .jpos-precheck-head h3{font-size:19px}
  .jpos-precheck-head>p:last-child{font-size:16px;line-height:1.65}
  .jpos-precheck-card{margin-top:11px}
  .jpos-precheck-step{font-size:11px}
  .jpos-precheck-card-head h4{font-size:15.5px}
  .jpos-precheck-focus-primary{font-size:18px;line-height:1.48}
  .jpos-precheck-focus-secondary{font-size:16.5px;line-height:1.48}
  .jpos-precheck-focus-note{font-size:16px;line-height:1.45}
  .jpos-precheck-focus-items span{font-size:15.5px}
  .jpos-precheck-focus-items strong{font-size:16px}
  .jpos-precheck-focus-fees>span{font-size:15px}
  .jpos-precheck-focus-fees strong{font-size:16px}
  .jpos-precheck-card>p{font-size:16px;line-height:1.65}
  .jpos-precheck-totals span{font-size:14px}
  .jpos-precheck-totals strong{font-size:15.5px}
  .jpos-precheck-subsection h5{font-size:16px;line-height:1.5}
  .jpos-precheck-subsection p{font-size:16px;line-height:1.65}
  .jpos-precheck-terms{font-size:16px;line-height:1.65}
  .jpos-precheck-terms li{margin:4px 0}
  .jpos-precheck-shipping span{font-size:15px;padding:7px 10px}
  .jpos-precheck-shipping strong{font-size:16px}
  .jpos-precheck-small{font-size:15.5px!important;line-height:1.65!important}
  .jpos-precheck-agreement span{font-size:15.5px;line-height:1.6}
  .jpos-precheck-payment-note strong{font-size:15.5px}
  .jpos-precheck-payment-note span{font-size:15px;line-height:1.6}
  .jpos-precheck-next{font-size:15px;min-height:52px}
  .jpos-public-footnote{font-size:14px;line-height:1.65}
}


/* v0.18.5: 取扱手数料の明示とPCを含む確認導線 */
.jpos-public-handling-fee{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin-top:10px;padding-top:10px;border-top:1px solid #eadcdf;color:#70474d}
.jpos-public-handling-fee span{font-size:13px;font-weight:700}
.jpos-public-handling-fee strong{color:var(--jpos-brand-text);font-size:14px;white-space:nowrap}
.jpos-quantity-total .jpos-quantity-subtotal{grid-column:1/-1;margin-top:2px;padding-top:8px;border-top:1px solid #e4b9c1}
.jpos-quantity-total .jpos-quantity-subtotal span{font-weight:900}
.jpos-quantity-total .jpos-quantity-subtotal strong{color:#c64018;font-size:18px}
.jpos-precheck-totals.has-handling-fee{grid-template-columns:repeat(2,minmax(0,1fr))}
@media (max-width:780px){.jpos-public-handling-fee{font-size:14px}.jpos-precheck-totals.has-handling-fee{grid-template-columns:1fr}}

/* v0.19.1: TEST/LIVE operation mode */
.jpos-public-test-banner{display:flex;align-items:center;gap:10px;margin:0 0 16px;padding:11px 14px;border:2px solid #d63638;border-radius:8px;background:#fff4f4;color:#7a1d1f;font-size:14px;line-height:1.55}.jpos-public-test-banner strong{flex:0 0 auto;padding:3px 7px;border-radius:5px;background:#d63638;color:#fff;font-size:12px;letter-spacing:.06em}.jpos-public-test-banner span{font-weight:600}@media(max-width:520px){.jpos-public-test-banner{align-items:flex-start;flex-direction:column;gap:6px;font-size:13px}}

/* v0.22.6: seat-type public calendar. Keep the monthly overview readable without squeezing 3+ seat types into seven-day cells. */
.jpos-seat-mode-guide{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 16px;margin:-10px 0 20px;padding:10px 12px;border:1px solid #d8e3ec;border-left:4px solid #2271b1;border-radius:8px;background:#f7fbff;color:#40505d;font-size:13px;line-height:1.6}.jpos-seat-mode-guide strong{color:#135e96;font-size:13.5px}.jpos-seat-public-month{margin-top:22px}.jpos-seat-calendar-scroll{width:100%;overflow-x:auto;border:1px solid var(--jpos-border);border-radius:11px;background:#fff;scrollbar-gutter:stable}.jpos-seat-calendar-scroll:focus-visible{outline:2px solid var(--jpos-brand);outline-offset:2px}.jpos-seat-calendar-table{width:100%;min-width:760px;border-collapse:separate;border-spacing:0;table-layout:auto}.jpos-seat-calendar-table th,.jpos-seat-calendar-table td{padding:9px 10px;border-right:1px solid #e6e9ec;border-bottom:1px solid #e6e9ec;vertical-align:middle}.jpos-seat-calendar-table tr:last-child>th,.jpos-seat-calendar-table tr:last-child>td{border-bottom:0}.jpos-seat-calendar-table tr>*:last-child{border-right:0}.jpos-seat-calendar-table thead th{background:var(--jpos-soft);color:#26323d;text-align:center;font-size:12px;line-height:1.35;font-weight:800;white-space:nowrap}.jpos-seat-calendar-table thead th span{display:block;color:var(--jpos-muted);font-size:9px;font-weight:700}.jpos-seat-calendar-table thead th strong{display:block;max-width:190px;white-space:normal}.jpos-seat-date-head{min-width:122px}.jpos-seat-time-head{min-width:104px}.jpos-seat-date-cell{min-width:122px;background:#fcfcfd;text-align:left}.jpos-seat-date-cell strong{display:block;font-size:13px;line-height:1.4;white-space:nowrap}.jpos-seat-date-cell small{display:block;margin-top:2px;color:var(--jpos-red);font-size:10px;line-height:1.3}.jpos-seat-calendar-table tr.is-holiday .jpos-seat-date-cell strong{color:var(--jpos-red)}.jpos-seat-calendar-table tr.is-saturday .jpos-seat-date-cell strong{color:var(--jpos-blue)}.jpos-seat-time-cell{min-width:104px;padding:6px!important}.jpos-seat-time-select{appearance:none;-webkit-appearance:none;width:100%;min-height:54px;border:1px solid transparent;border-radius:8px;background:transparent;padding:6px 7px;color:#26323d;font:inherit;text-align:center;cursor:default}.jpos-seat-time-select time{display:block;font-size:16px;font-weight:900;font-variant-numeric:tabular-nums;line-height:1.2}.jpos-seat-time-select>span{display:block;margin-top:3px;color:var(--jpos-muted);font-size:9.5px;font-weight:800;line-height:1.3}.jpos-seat-time-select.is-selectable{cursor:pointer;border-color:#e3c0c6;background:#fffafb}.jpos-seat-time-select.is-selectable:hover{background:var(--jpos-brand-soft-strong);border-color:var(--jpos-brand-border)}.jpos-seat-time-select.is-selectable:focus-visible{outline:2px solid var(--jpos-brand);outline-offset:1px}.jpos-seat-time-select.is-selected{background:var(--jpos-brand-soft-strong);border-color:var(--jpos-brand);box-shadow:inset 0 0 0 1px var(--jpos-brand)}.jpos-seat-time-select.is-unavailable{opacity:.62;background:#fafafa;cursor:not-allowed}.jpos-seat-status-cell-public{min-width:150px;text-align:center}.jpos-seat-status-pill{display:inline-flex;align-items:center;justify-content:center;gap:5px;min-width:92px;padding:6px 8px;border-radius:999px;background:#fafafa;font-size:11.5px;font-weight:800;line-height:1.2;white-space:nowrap}.jpos-seat-status-pill strong{font-size:15px;line-height:1}.jpos-seat-status-pill.jpos-public-status-open{background:#f0faf5}.jpos-seat-status-pill.jpos-public-status-few{background:#fff8e6}.jpos-seat-status-pill.jpos-public-status-sold-out{background:#fff1f1}.jpos-seat-status-pill.jpos-public-status-paused{background:#f2f3f4}

/* Mobile: month remains compact; the selected day expands into time cards with seat types stacked vertically. */
.jpos-mobile-seat-sessions{display:flex;flex-direction:column;gap:10px}.jpos-mobile-seat-session{appearance:none;-webkit-appearance:none;width:100%;border:1px solid #e2e6ea;border-radius:11px;background:#fff;padding:12px;text-align:left;font:inherit;color:inherit;cursor:default}.jpos-mobile-seat-session.is-selectable{cursor:pointer;transition:background-color .15s ease,border-color .15s ease,box-shadow .15s ease}.jpos-mobile-seat-session.is-selectable:hover{background:var(--jpos-brand-soft);border-color:#e7bcc2}.jpos-mobile-seat-session.is-selectable:focus-visible{outline:2px solid var(--jpos-brand);outline-offset:2px}.jpos-mobile-seat-session.is-selected{background:var(--jpos-brand-soft-strong);border-color:var(--jpos-brand-border);box-shadow:inset 0 0 0 1px var(--jpos-brand-border)}.jpos-mobile-seat-session.is-unavailable{opacity:.72;background:#fafbfc;cursor:not-allowed}.jpos-mobile-seat-session-head{display:flex;align-items:baseline;justify-content:flex-start;gap:12px;padding-bottom:9px;border-bottom:1px solid #eceff1}.jpos-mobile-seat-session-head time{font-size:19px;font-weight:900;font-variant-numeric:tabular-nums;color:#26323d}.jpos-mobile-seat-session-head em{font-style:normal;font-size:12px;font-weight:800}.jpos-mobile-seat-status-list{display:flex;flex-direction:column;gap:0;margin-top:4px}.jpos-mobile-seat-status-row{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:8px 2px;border-bottom:1px dotted #e2e6ea}.jpos-mobile-seat-status-row:last-child{border-bottom:0}.jpos-mobile-seat-status-row>b{min-width:0;color:#2f3943;font-size:14px;line-height:1.4;font-weight:800}.jpos-mobile-seat-status-row>span{flex:0 0 auto;font-size:13px;font-weight:800;white-space:nowrap}.jpos-mobile-seat-status-row>span strong{font-size:15px}
.jpos-mobile-seat-status-row>span.jpos-public-status-open,.jpos-mobile-seat-status-row>span.jpos-public-status-open strong{color:var(--jpos-green)!important}
.jpos-mobile-seat-status-row>span.jpos-public-status-few,.jpos-mobile-seat-status-row>span.jpos-public-status-few strong{color:var(--jpos-amber)!important}
.jpos-mobile-seat-status-row>span.jpos-public-status-sold-out,.jpos-mobile-seat-status-row>span.jpos-public-status-sold-out strong{color:var(--jpos-red)!important}
.jpos-mobile-seat-status-row>span.jpos-public-status-paused,.jpos-mobile-seat-status-row>span.jpos-public-status-paused strong{color:var(--jpos-gray)!important}.jpos-mobile-seat-select-label{display:block;margin-top:8px;padding-top:8px;border-top:1px solid #eceff1;color:var(--jpos-brand-text);text-align:center;font-size:12px;font-weight:800}.jpos-mobile-seat-session.is-unavailable .jpos-mobile-seat-select-label{color:var(--jpos-muted)}

/* Ticket quantity block: show the selected time's seat-type availability and disable unavailable seat types. */
.jpos-quantity-seat-titleline{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:9px}.jpos-quantity-seat-titleline .jpos-quantity-seat-name{margin:0}.jpos-quantity-seat-status{flex:0 0 auto;padding:4px 8px;border-radius:999px;background:#f4f5f6;font-size:12px;font-weight:800;white-space:nowrap}.jpos-quantity-seat-status.jpos-public-status-open{background:#f0faf5}.jpos-quantity-seat-status.jpos-public-status-few{background:#fff8e6}.jpos-quantity-seat-status.jpos-public-status-sold-out{background:#fff1f1}.jpos-quantity-seat-status.jpos-public-status-paused{background:#f2f3f4}.jpos-quantity-seat-panel.is-unavailable{background:#f7f7f7;border-color:#e1e3e5}.jpos-quantity-seat-panel.is-unavailable .jpos-quantity-row{opacity:.62;background:#fafafa}.jpos-quantity-seat-panel.is-unavailable .jpos-quantity-button{pointer-events:none}

@media (max-width:780px){.jpos-seat-mode-guide{margin-top:-7px;margin-bottom:16px;font-size:12px}.jpos-quantity-seat-titleline{align-items:flex-start}.jpos-quantity-seat-status{font-size:11px}.jpos-mobile-seat-status-row>b{font-size:13.5px}.jpos-mobile-seat-status-row>span{font-size:12.5px}}

/* v0.23.1: PC seat-type monthly calendar.
 * Return to the calm, readable rhythm of the original monthly calendar:
 * compact seat headings once per day, large performance time, then ○△× statuses.
 * Mobile remains v0.23.0 for now and will be redesigned separately.
 */
@media (min-width:781px){
  .jpos-public-calendar{
    width:min(820px,calc(100vw - 48px));
    max-width:none;
    margin-left:50%;
    margin-right:0;
    transform:translateX(-50%);
  }
}

.jpos-seat-public-month{margin-top:22px}
.jpos-seat-public-grid .jpos-seat-public-day{min-height:176px;padding:9px 8px}
.jpos-seat-public-grid .jpos-public-date-number{font-size:16px}
.jpos-seat-public-grid .jpos-public-holiday-name{font-size:9.5px}
.jpos-seat-public-grid .jpos-seat-public-day.is-holiday{background:#fff7f7}
.jpos-seat-public-grid .jpos-seat-public-day.is-saturday{background:#f7fbff}
.jpos-seat-day-headings{
  display:grid;
  grid-template-columns:repeat(var(--jpos-seat-cols,3),minmax(0,1fr));
  gap:2px;
  width:100%;
  margin:5px auto 3px;
  color:#66717c;
  font-size:9.5px;
  font-weight:800;
  line-height:1.15;
  text-align:center;
  white-space:nowrap;
}
.jpos-seat-calendar-sessions{gap:1px;margin-top:1px}
.jpos-seat-calendar-session{
  appearance:none;
  -webkit-appearance:none;
  width:100%;
  display:flex;
  flex-direction:column;
  align-items:stretch;
  justify-content:flex-start;
  gap:3px;
  border:0;
  background:transparent;
  padding:4px 2px 5px;
  text-align:left;
  font:inherit;
  color:inherit;
  cursor:default;
  min-width:0
}
.jpos-seat-calendar-session time{
  display:block;
  margin:0;
  padding-left:0;
  font-size:17px;
  font-weight:900;
  font-variant-numeric:tabular-nums;
  text-align:left;
  color:#26323d;
  white-space:nowrap;
  line-height:1.05;
  letter-spacing:0
}
.jpos-seat-calendar-session.is-selectable{cursor:pointer;border-radius:6px;transition:background-color .15s ease,box-shadow .15s ease}
.jpos-seat-calendar-session.is-selectable:hover{background:var(--jpos-brand-soft)}
.jpos-seat-calendar-session.is-selectable:focus-visible{outline:2px solid var(--jpos-brand);outline-offset:1px}
.jpos-seat-calendar-session.is-selected{background:#fff;box-shadow:inset 0 0 0 2px var(--jpos-brand),0 0 0 1px rgba(181,18,43,.12);padding-left:4px;padding-right:4px}
.jpos-seat-calendar-session.is-unavailable{opacity:.68;cursor:not-allowed}
.jpos-calendar-desktop-view .jpos-seat-compact-statuses{
  min-width:0;
  display:grid;
  grid-template-columns:repeat(var(--jpos-seat-cols,3),minmax(0,1fr));
  align-items:center;
  justify-items:center;
  width:100%;
  margin:0 auto;
  gap:2px;
  white-space:nowrap;
  line-height:1;
  text-align:center
}
.jpos-calendar-desktop-view .jpos-seat-compact-item{display:flex;align-items:center;justify-content:center;font-weight:900;line-height:1}
.jpos-calendar-desktop-view .jpos-seat-compact-item strong{font-size:18px;line-height:1}
.jpos-calendar-desktop-view .jpos-seat-compact-item.jpos-public-status-open strong{color:var(--jpos-green)!important}
.jpos-calendar-desktop-view .jpos-seat-compact-item.jpos-public-status-few strong{color:var(--jpos-amber)!important}
.jpos-calendar-desktop-view .jpos-seat-compact-item.jpos-public-status-sold-out strong{color:var(--jpos-red)!important}
.jpos-calendar-desktop-view .jpos-seat-compact-item.jpos-public-status-paused strong{color:var(--jpos-gray)!important}

/* v0.23.8: Gion-style mobile month keeps the 7-column overview, but shows the same time + status wording used on desktop. */
.jpos-mobile-month:not(.jpos-mobile-seat-month) .jpos-mobile-day,
.jpos-mobile-month:not(.jpos-mobile-seat-month) .jpos-mobile-day-button{min-height:104px}
.jpos-mobile-month:not(.jpos-mobile-seat-month) .jpos-mobile-day-button{padding:6px 3px 7px}
.jpos-mobile-month:not(.jpos-mobile-seat-month) .jpos-mobile-date-number{font-size:13px}
.jpos-mobile-month:not(.jpos-mobile-seat-month) .jpos-mobile-markers{gap:5px;width:100%;margin-top:5px}
.jpos-mobile-month:not(.jpos-mobile-seat-month) .jpos-mobile-marker{display:flex;flex-direction:column;align-items:stretch;justify-content:flex-start;gap:2px;width:100%;line-height:1}
.jpos-mobile-month:not(.jpos-mobile-seat-month) .jpos-mobile-marker time{display:block;width:100%;padding-left:1px;text-align:left;font-size:11.5px;font-weight:900;line-height:1;font-variant-numeric:tabular-nums;color:#26323d}
.jpos-mobile-month:not(.jpos-mobile-seat-month) .jpos-mobile-status-combined{display:flex;align-items:center;justify-content:center;width:116%;margin-left:-8%;white-space:nowrap;font-size:9.5px;font-weight:800;line-height:1.05;letter-spacing:-.03em;transform:scaleX(.86);transform-origin:center center}
.jpos-mobile-month:not(.jpos-mobile-seat-month) .jpos-mobile-status-combined strong{display:inline-block;margin-right:1px;font-size:13px;font-weight:900;line-height:.9}
.jpos-mobile-month:not(.jpos-mobile-seat-month) .jpos-mobile-status-combined span{font-size:9.5px;font-weight:800;line-height:1.05}
.jpos-mobile-month:not(.jpos-mobile-seat-month) .jpos-mobile-marker.jpos-public-status-open .jpos-mobile-status-combined{color:var(--jpos-green)!important}
.jpos-mobile-month:not(.jpos-mobile-seat-month) .jpos-mobile-marker.jpos-public-status-few .jpos-mobile-status-combined{color:var(--jpos-amber)!important}
.jpos-mobile-month:not(.jpos-mobile-seat-month) .jpos-mobile-marker.jpos-public-status-sold-out .jpos-mobile-status-combined{color:var(--jpos-red)!important}
.jpos-mobile-month:not(.jpos-mobile-seat-month) .jpos-mobile-marker.jpos-public-status-paused .jpos-mobile-status-combined{color:var(--jpos-gray)!important}
@media (max-width:430px){
  .jpos-mobile-month:not(.jpos-mobile-seat-month) .jpos-mobile-day,
  .jpos-mobile-month:not(.jpos-mobile-seat-month) .jpos-mobile-day-button{min-height:102px}
  .jpos-mobile-month:not(.jpos-mobile-seat-month) .jpos-mobile-marker time{font-size:11px}
  .jpos-mobile-month:not(.jpos-mobile-seat-month) .jpos-mobile-status-combined{font-size:9.2px}
  .jpos-mobile-month:not(.jpos-mobile-seat-month) .jpos-mobile-status-combined strong{font-size:12.5px}
  .jpos-mobile-month:not(.jpos-mobile-seat-month) .jpos-mobile-status-combined span{font-size:9.2px}
}
@media (max-width:360px){
  .jpos-mobile-month:not(.jpos-mobile-seat-month) .jpos-mobile-day,
  .jpos-mobile-month:not(.jpos-mobile-seat-month) .jpos-mobile-day-button{min-height:98px}
  .jpos-mobile-month:not(.jpos-mobile-seat-month) .jpos-mobile-markers{gap:4px;margin-top:4px}
  .jpos-mobile-month:not(.jpos-mobile-seat-month) .jpos-mobile-marker time{font-size:10.5px}
  .jpos-mobile-month:not(.jpos-mobile-seat-month) .jpos-mobile-status-combined{width:120%;margin-left:-10%;font-size:8.8px;transform:scaleX(.82)}
  .jpos-mobile-month:not(.jpos-mobile-seat-month) .jpos-mobile-status-combined strong{font-size:12px}
  .jpos-mobile-month:not(.jpos-mobile-seat-month) .jpos-mobile-status-combined span{font-size:8.8px}
}

/* Compact mobile calendar: time on the first line, symbols on the second line. */
.jpos-mobile-seat-order-guide{margin:0 0 10px;padding:7px 10px;border:1px solid #dfe6ed;border-radius:999px;background:#f7fafc;color:#5a6570;text-align:center;font-size:11px;font-weight:700;line-height:1.4}
.jpos-mobile-seat-order-guide strong{color:#2f3943;font-weight:800;letter-spacing:.01em}
.jpos-mobile-seat-month .jpos-mobile-day{min-height:104px}
.jpos-mobile-seat-month .jpos-mobile-day-button{min-height:104px;padding:6px 3px 7px}
.jpos-mobile-seat-month .jpos-mobile-day.is-holiday{background:#fff7f7}
.jpos-mobile-seat-month .jpos-mobile-day.is-saturday{background:#f7fbff}
.jpos-mobile-seat-month .jpos-mobile-date-number{font-size:13px}
.jpos-mobile-seat-month .jpos-mobile-day-button.is-selected{background:#fff;box-shadow:inset 0 0 0 2px var(--jpos-brand)}
.jpos-mobile-seat-markers{gap:4px;width:100%;margin-top:4px}
.jpos-mobile-seat-marker{display:flex;flex-direction:column;align-items:stretch;gap:3px;width:100%;line-height:1}
.jpos-mobile-seat-marker time{display:block;width:100%;padding-left:2px;text-align:left;font-size:10.5px;font-weight:900;line-height:1;font-variant-numeric:tabular-nums;color:#26323d}
.jpos-mobile-seat-marker .jpos-seat-compact-statuses{min-width:0;display:grid;grid-template-columns:repeat(var(--jpos-seat-cols,3),minmax(0,1fr));align-items:center;justify-items:center;gap:2px;width:100%;white-space:nowrap;line-height:1}
.jpos-mobile-seat-marker .jpos-seat-compact-item{display:flex;align-items:center;justify-content:center;font-weight:900;line-height:1;min-width:0}
.jpos-mobile-seat-marker .jpos-seat-compact-item strong{font-size:11px;line-height:1}
.jpos-mobile-seat-marker .jpos-seat-compact-item.jpos-public-status-open strong{color:var(--jpos-green)!important}
.jpos-mobile-seat-marker .jpos-seat-compact-item.jpos-public-status-few strong{color:var(--jpos-amber)!important}
.jpos-mobile-seat-marker .jpos-seat-compact-item.jpos-public-status-sold-out strong{color:var(--jpos-red)!important}
.jpos-mobile-seat-marker .jpos-seat-compact-item.jpos-public-status-paused strong{color:var(--jpos-gray)!important}
.jpos-mobile-seat-month .jpos-mobile-day.is-outside-event,.jpos-mobile-seat-month .jpos-mobile-day.is-empty{background:#fafbfc}

@media (max-width:430px){
  .jpos-mobile-seat-order-guide{font-size:10.5px;padding:6px 8px;margin-bottom:9px}
  .jpos-mobile-seat-month .jpos-mobile-day{min-height:100px}
  .jpos-mobile-seat-month .jpos-mobile-day-button{min-height:100px;padding:6px 2px 6px}
  .jpos-mobile-seat-marker time{font-size:10px}
  .jpos-mobile-seat-marker .jpos-seat-compact-item strong{font-size:10.5px}
}
@media (max-width:360px){
  .jpos-mobile-seat-order-guide{font-size:10px}
  .jpos-mobile-seat-month .jpos-mobile-day{min-height:96px}
  .jpos-mobile-seat-month .jpos-mobile-day-button{min-height:96px;padding:5px 2px 6px}
  .jpos-mobile-seat-markers{gap:3px;margin-top:3px}
  .jpos-mobile-seat-marker time{font-size:9.5px}
  .jpos-mobile-seat-marker .jpos-seat-compact-statuses{gap:1px}
  .jpos-mobile-seat-marker .jpos-seat-compact-item strong{font-size:10px}
}

/* v0.26.10: desktop-first readability for the public application flow.
   Mobile keeps the established compact UI; only PC/tablet landscape is enlarged. */
@media (min-width:781px){
  /* Overall rhythm: larger readable type without adding unnecessary vertical air. */
  .jpos-public-calendar{padding:30px 32px;border-radius:18px}
  .jpos-public-head{gap:34px;margin-bottom:16px}
  .jpos-public-eyebrow{font-size:14px}
  .jpos-public-head h2{font-size:36px;line-height:1.18;margin-bottom:7px}
  .jpos-public-meta{font-size:16px;line-height:1.55}
  .jpos-public-fares{min-width:330px;padding-left:26px}
  .jpos-public-fare{gap:20px;padding:6px 0;font-size:16px;line-height:1.45}
  .jpos-public-fare strong{font-size:17px}
  .jpos-public-fare-badge{font-size:10px;padding:3px 7px}
  .jpos-public-legend{gap:8px 22px;padding:13px 0;margin-bottom:20px;font-size:14px}
  .jpos-public-month{margin-top:16px}
  .jpos-public-month h3{font-size:24px;margin-bottom:11px}
  .jpos-public-weekdays span{padding:9px 4px;font-size:14px}

  /* Calendar: make dates, times and symbols readable at normal PC viewing distance. */
  .jpos-public-day{min-height:148px;padding:8px 8px}
  .jpos-public-date-line{min-height:24px}
  .jpos-public-date-number{font-size:18px}
  .jpos-public-holiday-name{font-size:10px}
  .jpos-public-sessions{gap:4px;margin-top:5px}
  .jpos-public-session{gap:2px;padding:5px 4px;font-size:13px;line-height:1.18;border-radius:7px}
  .jpos-public-session time{font-size:18px;line-height:1.05}
  .jpos-public-status-combined{font-size:13.5px;line-height:1.15;letter-spacing:0}
  .jpos-public-session.is-selectable:hover{box-shadow:inset 0 0 0 1px #ead0d4}
  .jpos-public-session.is-selected{padding-left:6px;padding-right:6px}
  .jpos-public-footnote{margin-top:13px;font-size:14px}

  /* Selected performance: emphasize what the customer has chosen. */
  .jpos-selection-summary{margin-top:16px;padding:16px 18px}
  .jpos-selection-kicker{font-size:12px;margin-bottom:4px}
  .jpos-selection-main{justify-content:flex-start;gap:8px 30px}
  .jpos-selection-main strong{font-size:21px}
  .jpos-selection-main span{font-size:15.5px}
  .jpos-selection-note{margin-top:8px;padding-top:8px;font-size:14.5px;line-height:1.55}
  .jpos-selection-actions{margin-top:10px}
  .jpos-selection-next{min-height:52px;font-size:16px;border-radius:9px}

  /* Ticket / quantity selection: keep the controls visually close to their fare. */
  .jpos-quantity-selection{margin-top:14px;padding:19px 20px;border-radius:13px}
  .jpos-quantity-selection-head{margin-bottom:11px}
  .jpos-quantity-selection-head h3{font-size:23px;line-height:1.3}
  .jpos-order-guide{gap:4px 16px;margin-top:8px;padding:10px 13px;line-height:1.5}
  .jpos-order-guide strong{font-size:16px}
  .jpos-order-guide span{font-size:15px}
  .jpos-admission-products{gap:9px}
  .jpos-quantity-seat-panel{padding:14px 15px}
  .jpos-quantity-seat-name{margin-bottom:8px;font-size:18px}
  .jpos-quantity-rows{gap:7px}
  .jpos-quantity-row{display:grid;grid-template-columns:minmax(260px,520px) auto;justify-content:start;align-items:center;gap:22px;padding:13px 14px}
  .jpos-quantity-fare-info{gap:9px 15px}
  .jpos-quantity-fare-label{font-size:17px;line-height:1.45}
  .jpos-quantity-unit-price{font-size:18px}
  .jpos-quantity-condition{font-size:14px;line-height:1.5}
  .jpos-quantity-control{grid-template-columns:48px 56px 48px;border-radius:10px}
  .jpos-quantity-button{height:46px;font-size:24px}
  .jpos-quantity-value{height:46px;font-size:19px}
  .jpos-quantity-total{grid-template-columns:repeat(2,minmax(220px,360px));justify-content:start;gap:8px 26px;margin-top:11px;padding:13px 14px}
  .jpos-quantity-total>div{gap:12px}
  .jpos-quantity-total span{font-size:15px}
  .jpos-quantity-total strong{font-size:19px}
  .jpos-quantity-note{margin-top:8px;font-size:14.5px;line-height:1.55}
  .jpos-addon-selection{margin-top:14px;padding-top:14px}
  .jpos-addon-selection-head{margin-bottom:9px}
  .jpos-addon-selection-head h4{font-size:20px}
  .jpos-addon-selection-head>p:last-child{font-size:14.5px;line-height:1.55}
  .jpos-addon-product-title{justify-content:flex-start;gap:18px}
  .jpos-addon-product-title>span{font-size:13.5px}
  .jpos-order-next-wrap{margin-top:13px;padding-top:13px}
  .jpos-order-next{min-height:54px;font-size:16px}
  .jpos-order-next-wrap>p{margin-top:6px;font-size:14px}

  /* Confirmation: larger reading type, but less dead space between related blocks. */
  .jpos-precheck{margin-top:14px;padding:20px 21px;border-radius:14px}
  .jpos-precheck-head{margin-bottom:12px}
  .jpos-precheck-head h3{font-size:25px}
  .jpos-precheck-head>p:last-child{margin-top:6px;font-size:16px;line-height:1.6}
  .jpos-precheck-card{margin-top:10px;padding:17px 18px}
  .jpos-precheck-card-head{gap:11px;margin-bottom:9px}
  .jpos-precheck-step{font-size:11.5px}
  .jpos-precheck-card-head h4{font-size:17px}
  .jpos-precheck-focus{min-height:0;padding:14px 15px;gap:5px}
  .jpos-precheck-focus-primary{font-size:21px;line-height:1.4}
  .jpos-precheck-focus-secondary{font-size:18px;line-height:1.42}
  .jpos-precheck-focus-note{font-size:16px}
  .jpos-precheck-focus-items{gap:4px}
  .jpos-precheck-focus-items>div{justify-content:flex-start;gap:22px}
  .jpos-precheck-focus-items span{font-size:17px}
  .jpos-precheck-focus-items strong{font-size:18.5px}
  .jpos-precheck-focus-fees{gap:7px 20px}
  .jpos-precheck-focus-fees>span{font-size:15px}
  .jpos-precheck-focus-fees strong{font-size:17px}
  .jpos-precheck-card>p{margin-top:8px;font-size:16px;line-height:1.62}
  .jpos-precheck-totals{grid-template-columns:repeat(3,minmax(150px,220px));justify-content:start;gap:8px 24px;margin-top:9px;padding-top:9px}
  .jpos-precheck-totals span{font-size:14.5px}
  .jpos-precheck-totals strong{font-size:17px}
  .jpos-precheck-subsection{margin-top:9px;padding:11px 13px}
  .jpos-precheck-subsection h5{font-size:16px}
  .jpos-precheck-subsection p{font-size:16px;line-height:1.6}
  .jpos-precheck-terms{margin-top:9px;font-size:16px;line-height:1.6}
  .jpos-precheck-terms li{margin:4px 0}
  .jpos-precheck-shipping{gap:7px 9px;margin-top:8px}
  .jpos-precheck-shipping span{padding:7px 11px;font-size:14.5px}
  .jpos-precheck-shipping strong{font-size:16px}
  .jpos-precheck-small{font-size:15.5px!important;line-height:1.6!important}
  .jpos-precheck-agreement{gap:11px;margin-top:11px;padding:12px 14px}
  .jpos-precheck-agreement input{width:22px;height:22px;margin-top:1px}
  .jpos-precheck-agreement span{font-size:16px;line-height:1.55}
  .jpos-precheck-payment-note{justify-content:flex-start;gap:22px;margin-top:10px;padding:11px 14px}
  .jpos-precheck-payment-note strong{font-size:16px}
  .jpos-precheck-payment-note span{font-size:14.5px;text-align:left}
  .jpos-precheck-actions{margin-top:10px}
  .jpos-precheck-next{min-height:55px;font-size:16px}
}

/* v0.26.10: keep the established desktop breakout width/centering from v0.23.1.
   v0.26.9 briefly overrode margin-left without clearing translateX(-50%), which shifted the whole form left.
   Typography and control sizing above remain; only the conflicting wide-screen override is removed. */


/* v0.26.12: floating mandatory-confirmation progress while reading the four long cards. */
.jpos-precheck-floating[hidden]{display:none!important}
.jpos-precheck-floating{--jpos-brand:#b5122b;position:fixed;z-index:9999;left:50%;bottom:18px;transform:translateX(-50%);width:min(560px,calc(100vw - 48px));padding:10px 14px 9px;border:1px solid #ddb8be;border-radius:12px;background:rgba(255,252,252,.97);box-shadow:0 8px 28px rgba(66,24,31,.18);backdrop-filter:blur(8px)}
.jpos-precheck-floating-main{display:flex;align-items:center;gap:12px;min-width:0}
.jpos-precheck-floating-main>span{color:#7f1728;font-size:13px;font-weight:900;white-space:nowrap}
.jpos-precheck-floating-main>strong{color:#8e172a;font-size:17px;line-height:1;font-weight:900;font-variant-numeric:tabular-nums;white-space:nowrap}
.jpos-precheck-floating-main>em{margin-left:auto;color:#6f555a;font-size:13px;line-height:1.2;font-style:normal;font-weight:800;white-space:nowrap}
.jpos-precheck-floating-track{height:5px;margin-top:8px;overflow:hidden;border-radius:999px;background:#eadde0}
.jpos-precheck-floating-track>span{display:block;width:0;height:100%;border-radius:inherit;background:var(--jpos-brand);transition:width .2s ease}
.jpos-precheck-floating.is-complete{border-color:#9dceaa;background:rgba(245,252,247,.98)}
.jpos-precheck-floating.is-complete .jpos-precheck-floating-main>span,.jpos-precheck-floating.is-complete .jpos-precheck-floating-main>strong,.jpos-precheck-floating.is-complete .jpos-precheck-floating-main>em{color:#147a36}
.jpos-precheck-floating.is-complete .jpos-precheck-floating-track>span{background:#1b8d42}
@media (max-width:780px){
  .jpos-precheck-floating{top:8px;bottom:auto;width:calc(100vw - 20px);padding:9px 12px 8px;border-radius:10px;box-shadow:0 5px 18px rgba(66,24,31,.18)}
  .jpos-precheck-floating-main{gap:9px}
  .jpos-precheck-floating-main>span{font-size:12.5px}
  .jpos-precheck-floating-main>strong{font-size:16px}
  .jpos-precheck-floating-main>em{font-size:12.5px}
  .jpos-precheck-floating-track{height:4px;margin-top:7px}
}


/* v0.26.13: make the floating confirmation status easier to notice and avoid mobile OS banners. */
@media (min-width:781px){
  .jpos-precheck-floating{bottom:22px;width:min(590px,calc(100vw - 56px));border-width:2px;background:rgba(255,251,252,.985);box-shadow:0 10px 32px rgba(66,24,31,.22)}
}
@media (max-width:780px){
  .jpos-precheck-floating{top:64px;bottom:auto;width:calc(100vw - 20px);padding:10px 12px 9px;border:2px solid #d89aa5;border-radius:12px;background:rgba(255,248,249,.99);box-shadow:0 8px 24px rgba(72,20,31,.24)}
  .jpos-precheck-floating-main>span{font-size:13px;color:#741324}
  .jpos-precheck-floating-main>strong{padding:3px 8px;border-radius:999px;background:#8e172a;color:#fff;font-size:16px}
  .jpos-precheck-floating-main>em{font-size:13px;color:#6b3c45;font-weight:900}
  .jpos-precheck-floating-track{height:6px;margin-top:8px;background:#ead6da}
  .jpos-precheck-floating.is-complete .jpos-precheck-floating-main>strong{background:#147a36;color:#fff}
}


/* v0.26.14: the floating progress is portalled to body so desktop transform-based breakout layouts cannot trap position:fixed. */
.jpos-precheck-floating{font-family:inherit}


/* v0.26.16: sync/placement polish for mandatory confirmations. */
/* A checked confirmation should visibly feel "finished", not merely contain a tick. */
.jpos-precheck-agreement:has(input:checked){
  background:#f2faf4;
  border-color:#91c9a0;
  box-shadow:0 0 0 1px rgba(27,141,66,.06);
}
.jpos-precheck-card.is-summary .jpos-precheck-agreement:has(input:checked){
  background:#f2faf4;
  border-color:#91c9a0;
}
.jpos-precheck-agreement:has(input:checked) input{accent-color:#16803d}
.jpos-precheck-agreement:has(input:checked) span{color:#285f38}

/* On a wide desktop, use the otherwise-empty right margin instead of covering the form.
   Smaller desktop/notebook screens retain the compact bottom-centre fallback. */
@media (min-width:1460px){
  .jpos-precheck-floating{
    left:auto;
    right:24px;
    top:50%;
    bottom:auto;
    transform:translateY(-50%);
    width:246px;
    padding:12px 14px 11px;
    border-radius:14px;
  }
  .jpos-precheck-floating-main{gap:8px;flex-wrap:wrap}
  .jpos-precheck-floating-main>span{font-size:13px}
  .jpos-precheck-floating-main>strong{font-size:18px}
  .jpos-precheck-floating-main>em{margin-left:auto;font-size:13px}
  .jpos-precheck-floating-track{width:100%;height:6px;margin-top:9px}
}


/* v0.26.17: desktop side progress + gentle LINE handoff preview. */
/* The confirmation status belongs in the otherwise-empty desktop side margin, not over the form. */
@media (min-width:1180px){
  .jpos-precheck-floating{
    left:auto;
    right:20px;
    top:50%;
    bottom:auto;
    transform:translateY(-50%);
    width:218px;
    padding:13px 14px 12px;
    border:2px solid #ddb8be;
    border-radius:14px;
    background:rgba(255,251,252,.985);
    box-shadow:0 10px 30px rgba(66,24,31,.18);
  }
  .jpos-precheck-floating-main{display:grid;grid-template-columns:auto 1fr;gap:5px 9px;align-items:center}
  .jpos-precheck-floating-main>span{font-size:12.5px;grid-column:1/2}
  .jpos-precheck-floating-main>strong{font-size:21px;line-height:1.05;grid-column:2/3;justify-self:end}
  .jpos-precheck-floating-main>em{grid-column:1/3;margin:0;font-size:12.5px;text-align:right}
  .jpos-precheck-floating-track{width:100%;height:6px;margin-top:10px}
}

/* Narrower desktops/notebooks keep the compact bottom fallback. */
@media (min-width:781px) and (max-width:1179px){
  .jpos-precheck-floating{
    left:50%;right:auto;top:auto;bottom:18px;transform:translateX(-50%);
    width:min(520px,calc(100vw - 44px));
  }
}

.jpos-precheck-line-handoff[hidden]{display:none!important}
.jpos-precheck-line-handoff{display:flex;align-items:flex-start;gap:13px;margin:0 0 13px;padding:14px 16px;border:1px solid #bfcfe0;border-radius:12px;background:#f5f9fd;color:#34495e;box-shadow:0 4px 14px rgba(30,70,110,.06)}
.jpos-precheck-line-handoff-icon{flex:0 0 auto;font-size:24px;line-height:1.25}
.jpos-precheck-line-handoff strong{display:block;margin:0 0 4px;color:#24445f;font-size:16px;line-height:1.45;font-weight:900}
.jpos-precheck-line-handoff p{margin:0;color:#526a7e;font-size:14px;line-height:1.65}
@media (max-width:780px){
  .jpos-precheck-line-handoff{display:none!important}
}


/* v0.26.18: clearer desktop LINE handoff; mobile keeps its direct-flow wording. */
.jpos-precheck-line-handoff-emphasis{color:#173f61;font-weight:900}
.jpos-precheck-line-handoff-note{margin-top:5px!important;color:#6e7d89!important;font-size:12.5px!important}
.jpos-precheck-next-label-mobile{display:none;flex-direction:column;align-items:center;justify-content:center;gap:2px;line-height:1.25}
@media (max-width:780px){
  .jpos-precheck-next .jpos-precheck-next-label-pc{display:none!important}
  .jpos-precheck-next .jpos-precheck-next-label-mobile{display:flex!important}
}


/* v0.26.19: separate the actual order confirmation from the three contractual/operational notices. */
.jpos-precheck-card.is-order-final{
  border:2px solid #cf8f99;
  background:#fff7f8;
  box-shadow:inset 5px 0 0 var(--jpos-brand),0 5px 16px rgba(109,34,46,.07);
}
.jpos-precheck-card-head.is-order-final-head{display:block;margin-bottom:12px}
.jpos-precheck-order-kicker{
  display:inline-flex;align-items:center;margin:0 0 7px;padding:4px 9px;border-radius:999px;
  background:#8f1729;color:#fff;font-size:11.5px;line-height:1.25;font-weight:900;letter-spacing:.04em;
}
.jpos-precheck-card-head.is-order-final-head h4{color:#4a2028;font-size:18px;line-height:1.45}
.jpos-precheck-important-intro{
  display:flex;align-items:flex-start;gap:12px;margin:18px 0 2px;padding:13px 15px;
  border:1px solid #dfc5ca;border-radius:11px;background:#fff;
}
.jpos-precheck-important-intro>span{
  flex:0 0 auto;margin-top:2px;padding:3px 8px;border-radius:999px;background:#f4e8ea;
  color:#8a2435;font-size:11.5px;line-height:1.35;font-weight:900;
}
.jpos-precheck-important-intro h4{margin:0;color:#6f1e2c;font-size:17px;line-height:1.4;font-weight:900}
.jpos-precheck-important-intro p{margin:4px 0 0;color:#5d5153;font-size:14px;line-height:1.55}
.jpos-precheck-next-copy{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;line-height:1.25}
.jpos-precheck-next-copy strong{font-size:15.5px;font-weight:900}
.jpos-precheck-next-copy small{font-size:11.5px;font-weight:700;opacity:.9}
@media (min-width:781px){
  .jpos-precheck-next{min-height:62px}
}
@media (max-width:780px){
  .jpos-precheck-important-intro{gap:9px;padding:12px 13px}
  .jpos-precheck-important-intro h4{font-size:15.5px}
  .jpos-precheck-important-intro p{font-size:13px}
  .jpos-precheck-card-head.is-order-final-head h4{font-size:16.5px}
}

/* v0.26.20: give only the final order-confirmation question one extra step of emphasis. */
@media (min-width:781px){
  .jpos-precheck-card-head.is-order-final-head h4{font-size:20px}
}
@media (max-width:780px){
  .jpos-precheck-card-head.is-order-final-head h4{font-size:17.5px}
}


/* v0.26.21: keep the two-line desktop LINE handoff CTA legible against the brand-red button.
   Theme-level strong/small colors must not leak into this button. */
.jpos-precheck-next:not(:disabled),
.jpos-precheck-next:not(:disabled) .jpos-precheck-next-label-pc,
.jpos-precheck-next:not(:disabled) .jpos-precheck-next-label-pc strong,
.jpos-precheck-next:not(:disabled) .jpos-precheck-next-label-pc small,
.jpos-precheck-next:not(:disabled) .jpos-precheck-next-label-mobile,
.jpos-precheck-next:not(:disabled) .jpos-precheck-next-label-mobile strong,
.jpos-precheck-next:not(:disabled) .jpos-precheck-next-label-mobile small,
.jpos-precheck-next:not(:disabled)>span[aria-hidden="true"]{
  color:#fff!important;
}
.jpos-precheck-next:not(:disabled) .jpos-precheck-next-label-pc strong{
  font-size:16px;
  line-height:1.25;
}
.jpos-precheck-next:not(:disabled) .jpos-precheck-next-label-pc small{
  color:rgba(255,255,255,.94)!important;
  opacity:1;
  font-size:12px;
  line-height:1.35;
}
.jpos-precheck-next:not(:disabled) .jpos-precheck-next-label-mobile strong{
  font-size:16px;
  line-height:1.25;
  font-weight:900;
}
.jpos-precheck-next:not(:disabled) .jpos-precheck-next-label-mobile small{
  color:rgba(255,255,255,.94)!important;
  font-size:11.5px;
  line-height:1.35;
  font-weight:700;
}

/* v0.26.25: mobile top progress, Safari-safe final CTA, and received-state handoff UI. */
.jpos-precheck-next.is-received,
.jpos-precheck-next.is-received:disabled{
  background:#e2e4e7!important;
  border-color:#c7c9cc!important;
  color:#5f6469!important;
  box-shadow:none!important;
  cursor:default;
}
.jpos-precheck-next.is-received .jpos-precheck-next-label-pc,
.jpos-precheck-next.is-received .jpos-precheck-next-label-pc strong,
.jpos-precheck-next.is-received .jpos-precheck-next-label-pc small,
.jpos-precheck-next.is-received .jpos-precheck-next-label-mobile,
.jpos-precheck-next.is-received .jpos-precheck-next-label-mobile strong,
.jpos-precheck-next.is-received .jpos-precheck-next-label-mobile small{
  color:#5f6469!important;
  opacity:1!important;
}
@media (max-width:780px){
  /* Put the compact mandatory-confirmation meter at the very top of the Web viewport. */
  .jpos-precheck-floating{
    top:6px!important;
    bottom:auto!important;
  }
  /* Automatic card-to-card scrolling must leave each heading visible below the top meter. */
  .jpos-precheck-card,.jpos-precheck-actions{
    scroll-margin-top:88px;
  }
  /* Keep the final LINE CTA comfortably above Safari's bottom navigation / home indicator. */
  .jpos-precheck-actions{
    padding-bottom:calc(68px + env(safe-area-inset-bottom));
  }
}

/* v0.26.26: keep desktop users on J-Plaza and present the LINE handoff QR inline. */
.jpos-pc-handoff-panel[hidden]{display:none!important}
.jpos-pc-handoff-panel{margin:16px 0 0;padding:22px;border:1px solid #c8d7e4;border-radius:14px;background:linear-gradient(180deg,#f8fbfe 0%,#fff 100%);box-shadow:0 8px 24px rgba(30,70,110,.08);text-align:center}
.jpos-pc-handoff-kicker{display:block;margin:0 0 6px;color:#25834d;font-size:10.5px;line-height:1.4;font-weight:900;letter-spacing:.12em}
.jpos-pc-handoff-panel h4{margin:0;color:#263746;font-size:21px;line-height:1.45;font-weight:900}
.jpos-pc-handoff-panel p{margin:8px auto 0;max-width:620px;color:#526574;font-size:14px;line-height:1.7}
.jpos-pc-handoff-qr{display:flex;align-items:center;justify-content:center;width:246px;height:246px;margin:18px auto 14px;padding:8px;border:1px solid #d5dde4;border-radius:12px;background:#fff;box-shadow:0 5px 16px rgba(25,55,80,.06)}
.jpos-pc-handoff-qr svg{display:block;width:100%;height:100%}
.jpos-pc-handoff-qr-error{margin:0!important;color:#8b2837!important;font-size:13px!important;line-height:1.6!important}
.jpos-pc-handoff-wait{display:flex;align-items:center;justify-content:center;gap:8px;margin-top:10px!important;color:#285b43!important}
.jpos-pc-handoff-wait strong{font-size:14px;font-weight:900}
.jpos-pc-handoff-pulse{width:9px;height:9px;border-radius:50%;background:#1b8d42;box-shadow:0 0 0 0 rgba(27,141,66,.35);animation:jposPcHandoffPulse 1.8s ease-out infinite}
@keyframes jposPcHandoffPulse{0%{box-shadow:0 0 0 0 rgba(27,141,66,.32)}70%{box-shadow:0 0 0 8px rgba(27,141,66,0)}100%{box-shadow:0 0 0 0 rgba(27,141,66,0)}}
.jpos-pc-handoff-note{font-size:12.5px!important;color:#6a7883!important}
.jpos-pc-handoff-tools{display:flex;align-items:center;justify-content:center;gap:14px;margin-top:15px}
.jpos-pc-handoff-tools button,.jpos-pc-handoff-tools a{appearance:none;-webkit-appearance:none;display:inline-flex;align-items:center;justify-content:center;min-height:38px;padding:8px 13px;border-radius:8px;font:inherit;font-size:12.5px;font-weight:800;text-decoration:none;cursor:pointer}
.jpos-pc-handoff-tools button{border:1px solid #b9c8d4;background:#fff;color:#36566f}
.jpos-pc-handoff-tools button:hover:not(:disabled){background:#f2f7fb}
.jpos-pc-handoff-tools button:disabled{opacity:.6;cursor:wait}
.jpos-pc-handoff-tools a{border:1px solid transparent;color:#557085}
.jpos-pc-handoff-tools a:hover{text-decoration:underline}
.jpos-pc-handoff-received{padding:14px 8px 10px}
.jpos-pc-handoff-received[hidden]{display:none!important}
.jpos-pc-handoff-check{display:flex;align-items:center;justify-content:center;width:58px;height:58px;margin:0 auto 13px;border-radius:50%;background:#e7f6ec;color:#21854b;font-size:31px;font-weight:900}
.jpos-pc-handoff-panel.is-received{border-color:#acd5b9;background:linear-gradient(180deg,#f4fbf6 0%,#fff 100%)}
.jpos-pc-handoff-panel.is-received h4{color:#215c3c}
.jpos-precheck-next.is-pc-handoff-open:not(.is-received){background:#7d1f2f;border-color:#7d1f2f;box-shadow:none}
@media (max-width:780px){.jpos-pc-handoff-panel{display:none!important}}
@media (prefers-reduced-motion:reduce){.jpos-pc-handoff-pulse{animation:none}}

/* v0.26.31: collect wheelchair-seat preference immediately after ticket quantity selection. */
.jpos-order-assistance{margin:18px 0 0;padding:18px 20px;border:1px solid #ded5cd;border-radius:12px;background:#fffaf3}.jpos-order-assistance-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:8px}.jpos-order-assistance-head strong{color:#2e343a;font-size:17px;font-weight:900}.jpos-order-assistance-head span{padding:3px 8px;border-radius:999px;background:#f3eadf;color:#7a5b25;font-size:12px;font-weight:800}.jpos-order-assistance-check{display:flex;align-items:flex-start;gap:10px;margin:0;padding:9px 0;font-size:16px;font-weight:900;line-height:1.7}.jpos-order-assistance-check input{flex:0 0 auto;width:20px;height:20px;margin:3px 0 0}.jpos-order-assistance-check input:disabled+span{color:#8b9298}.jpos-order-wheelchair-count{margin-top:10px;padding-top:13px;border-top:1px solid #e4d8c8}.jpos-order-wheelchair-count label{display:block;margin:0}.jpos-order-wheelchair-count label>span{display:block;margin:0 0 7px;font-size:15px;font-weight:900}.jpos-order-wheelchair-count select{width:100%;min-height:48px;padding:10px 12px;border:1px solid #cfd5db;border-radius:9px;background:#fff;color:#293038;font:inherit;font-size:17px;font-weight:800}.jpos-order-wheelchair-count small{display:block;margin-top:7px;color:#68727d;font-size:13px;line-height:1.65}.jpos-precheck-assistance{display:flex;justify-content:space-between;gap:14px;margin-top:11px;padding:10px 12px;border-radius:8px;background:#fff7e8;color:#5f4820}.jpos-precheck-assistance span{font-weight:800}.jpos-precheck-assistance strong{white-space:nowrap}.jpos-precheck-assistance[hidden]{display:none!important}@media(max-width:780px){.jpos-order-assistance{padding:15px 14px}.jpos-order-assistance-head strong{font-size:15px}.jpos-order-assistance-check{font-size:15px}.jpos-order-wheelchair-count label>span{font-size:14px}.jpos-order-wheelchair-count select{font-size:16px}}
