/* Hallmark · scoped checkout palette · Norel warm dark-gold store identity
 * pre-emit critique: P5 H4 E5 S5 R5 V4 · existing layout and payment logic preserved. */
#checkoutOverlay {
  --checkout-bg:var(--norel-canvas,#15120e);
  --checkout-card:var(--norel-surface,#1e1a14);
  --checkout-input:var(--norel-surface-soft,#26211a);
  --checkout-selected:var(--norel-surface-warm,#302a20);
  --checkout-line:var(--norel-line,#3d362b);
  --checkout-accent:var(--norel-brand,#a89a83);
  --checkout-ink:var(--norel-ink,#f2ede4);
  --checkout-muted:var(--norel-muted,#c2b6a1);
  --checkout-dim:var(--norel-faint,#9c907d);
  --checkout-on-accent:var(--norel-on-brand,#15120e);
  --checkout-focus:color-mix(in srgb,var(--checkout-accent) 18%,transparent);
  --checkout-error:var(--norel-red,#ef7f73);
  --checkout-good:var(--norel-green,#7fd3ac);
  position:fixed!important; inset:0!important; z-index:12100!important;
  display:block; height:100dvh!important; width:100%!important;
  box-sizing:border-box; padding:40px 28px 56px!important;
  overflow-x:clip!important; overflow-y:auto!important;
  overscroll-behavior:contain; touch-action:pan-y; -webkit-overflow-scrolling:touch;
  background:var(--checkout-bg)!important; backdrop-filter:none!important;
  scrollbar-width:thin; scrollbar-color:var(--checkout-line) var(--checkout-bg);
  color:var(--checkout-ink); scroll-padding:24px; scroll-behavior:auto!important;
}
#checkoutOverlay *,#checkoutOverlay *::before,#checkoutOverlay *::after { box-sizing:border-box; }
#checkoutOverlay.hidden { display:none!important; }
#checkoutOverlay .checkout-sheet {
  width:min(1160px,100%)!important; max-width:1160px!important; min-width:0!important;
  height:auto!important; max-height:none!important; overflow:visible!important;
  margin:0 auto!important; padding:0!important; border:0!important; border-radius:0!important;
  background:transparent!important; box-shadow:none!important; direction:ltr!important;
  transform:none!important;
}
#checkoutOverlay .checkout-sheet::before,#checkoutOverlay .checkout-sheet::after { display:none!important; }
#checkoutOverlay .checkout-sheet-head { display:flex; direction:rtl; align-items:center; justify-content:space-between; gap:20px; margin:0 0 32px!important; padding:0!important; border:0!important; }
#checkoutOverlay .checkout-sheet-head h2 { color:var(--checkout-ink)!important; font-size:38px!important; font-weight:800; line-height:1.4; margin:0 0 4px!important; }
#checkoutOverlay .checkout-sheet-head p { color:var(--checkout-muted)!important; font-size:14px!important; line-height:1.8; margin:0; }
#checkoutOverlay .checkout-sheet-close { width:38px; height:38px; border:1px solid var(--checkout-line)!important; border-radius:50%!important; background:transparent!important; color:var(--checkout-muted)!important; font-size:23px; }
#checkoutOverlay .checkout-sheet-grid { display:grid!important; grid-template-columns:minmax(0,380px) minmax(0,1fr)!important; gap:28px!important; align-items:start!important; }
#checkoutOverlay .checkout-summary-card,#checkoutOverlay .checkout-pay-card { min-height:0!important; min-width:0!important; padding:26px!important; border:1px solid var(--checkout-line)!important; border-radius:22px!important; background:var(--checkout-card)!important; box-shadow:none!important; direction:rtl; }
#checkoutOverlay .checkout-summary-card { position:sticky; top:0; }
#checkoutOverlay h3 { font-size:22px!important; color:var(--checkout-ink)!important; font-weight:800!important; }
#checkoutOverlay h4 { color:var(--checkout-ink)!important; }
#checkoutOverlay .checkout-summary-items { max-height:none!important; overflow:visible!important; margin:20px 0!important; gap:14px!important; }
#checkoutOverlay .checkout-summary-items .cart-item { min-height:0!important; margin:0!important; padding:0!important; background:transparent!important; border:0!important; box-shadow:none!important; }
#checkoutOverlay .checkout-summary-items .cart-item-main { display:grid!important; grid-template-columns:44px minmax(0,1fr) auto!important; gap:12px; padding:0!important; border:0!important; background:transparent!important; border-radius:0!important; }
#checkoutOverlay .cart-product-thumb { width:44px!important; height:44px!important; border:1px solid var(--checkout-line)!important; background:var(--checkout-selected)!important; box-shadow:none!important; border-radius:12px!important; }
#checkoutOverlay .cart-item-title { color:var(--checkout-ink)!important; font-size:13px!important; line-height:1.7; }
#checkoutOverlay .cart-product-info strong { color:var(--checkout-ink)!important; font-size:13px!important; line-height:1.7; }
#checkoutOverlay .cart-item-pill { display:block!important; padding:0!important; margin:5px 0 0!important; border:0!important; border-radius:0!important; background:transparent!important; color:var(--checkout-muted)!important; font-size:10px!important; line-height:1.7; }
#checkoutOverlay .cart-item-price { color:var(--checkout-accent)!important; font-size:13px!important; white-space:nowrap; }
#checkoutOverlay .cart-item-meta,#checkoutOverlay .cart-item-sub { color:var(--checkout-muted)!important; font-size:11px!important; }
#checkoutOverlay .cart-item-meta span { padding:0!important; border:0!important; border-radius:0!important; background:transparent!important; color:var(--checkout-muted)!important; }
#checkoutOverlay .cart-item::before,#checkoutOverlay .cart-item::after { display:none!important; }
#checkoutOverlay .checkout-account { display:grid; grid-template-columns:1fr auto; gap:6px 12px; border-top:1px solid var(--checkout-line); padding:17px 0; color:var(--checkout-muted); font-size:12px; }
#checkoutOverlay .checkout-account strong { color:var(--checkout-ink); font-size:13px; overflow-wrap:anywhere; }
#checkoutOverlay .checkout-account small { grid-column:1/-1; color:var(--checkout-dim); font-size:11px; }
#checkoutOverlay .checkout-totals { margin:0!important; padding:18px 0 0!important; border-top:1px solid var(--checkout-line)!important; display:grid; gap:14px; }
#checkoutOverlay .checkout-totals>div { display:flex; justify-content:space-between; align-items:center; gap:12px; color:var(--checkout-muted)!important; font-weight:500; font-size:12px; }
#checkoutOverlay .checkout-totals em { font-style:normal; }
#checkoutOverlay .checkout-totals b { color:var(--checkout-muted); font-size:11px; font-weight:500; }
#checkoutOverlay .checkout-totals .checkout-grand { margin-top:6px; padding-top:20px; border-top:1px solid var(--checkout-line)!important; color:var(--checkout-ink)!important; font-size:15px!important; }
#checkoutOverlay .checkout-grand strong { font-size:25px!important; color:var(--checkout-accent)!important; }
#checkoutOverlay .checkout-confirm-btn { min-height:50px!important; margin:26px 0 0!important; padding:10px 16px; border:0!important; border-radius:28px!important; background:var(--checkout-accent)!important; color:var(--checkout-on-accent)!important; box-shadow:none!important; font-size:14px!important; font-weight:800; transform:none!important; }
#checkoutOverlay .checkout-confirm-btn:hover { filter:brightness(1.08); }
#checkoutOverlay .checkout-confirm-btn:active { filter:brightness(.95); }
#checkoutOverlay .checkout-confirm-btn:disabled { opacity:.55; cursor:wait; }
#checkoutOverlay .checkout-secure-note { color:var(--checkout-dim)!important; font-size:11px!important; line-height:1.9; margin:12px 0 0!important; }
#checkoutOverlay .checkout-pay-title { display:flex; align-items:center; gap:10px; margin-bottom:22px; }
#checkoutOverlay .checkout-pay-title>b { width:28px; height:28px; background:var(--checkout-accent)!important; color:var(--checkout-on-accent)!important; border:0!important; }
#checkoutOverlay .checkout-pay-list { display:grid; gap:10px; }
#checkoutOverlay .checkout-pay-option { display:flex!important; flex-direction:row-reverse; width:100%; min-height:74px!important; padding:14px 16px!important; gap:14px; border:1px solid var(--checkout-line)!important; border-radius:16px!important; background:var(--checkout-input)!important; color:var(--checkout-ink)!important; box-shadow:none!important; text-align:right; }
#checkoutOverlay .checkout-pay-option[hidden] { display:none!important; }
#checkoutOverlay .checkout-pay-option.active { background:var(--checkout-selected)!important; border-color:var(--checkout-accent)!important; }
#checkoutOverlay .checkout-pay-option:hover { border-color:var(--checkout-muted)!important; }
#checkoutOverlay .pay-copy { flex:1; display:grid; gap:3px; }
#checkoutOverlay .pay-copy strong { color:var(--checkout-ink)!important; font-size:14px!important; }
#checkoutOverlay .pay-copy small { color:var(--checkout-muted)!important; font-size:11px!important; line-height:1.7; }
#checkoutOverlay .pay-radio { width:18px; height:18px; flex:0 0 18px; border:2px solid var(--checkout-line)!important; border-radius:50%; background:transparent!important; position:relative; }
#checkoutOverlay .active .pay-radio { border-color:var(--checkout-accent)!important; }
#checkoutOverlay .active .pay-radio::after { content:''; position:absolute; inset:3px; background:var(--checkout-accent)!important; border-radius:50%; }
#checkoutOverlay .checkout-method-icon,#checkoutOverlay .checkout-pay-option>svg { width:38px; height:38px; flex:0 0 38px; padding:8px; border:1px solid var(--checkout-line); border-radius:10px; color:var(--checkout-accent); background:var(--checkout-input); object-fit:contain; }
#checkoutOverlay .checkout-method-icon { filter:none!important; }
#checkoutOverlay .checkout-method-icon img { width:100%; height:100%; object-fit:contain; filter:brightness(0) invert(1); }
#checkoutOverlay .checkout-billing { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:8px 16px; margin:22px 0; }
#checkoutOverlay .checkout-billing>small { grid-column:1/-1; color:var(--checkout-dim); font-size:11px; line-height:1.8; }
#checkoutOverlay .checkout-server-field { display:grid; gap:8px; margin:0!important; min-width:0; }
#checkoutOverlay .checkout-server-field>span { font-size:12px; color:var(--checkout-ink); font-weight:600; }
#checkoutOverlay em { font-style:normal; }
#checkoutOverlay .checkout-server-field em,#checkoutOverlay .receipt-label em { color:var(--checkout-dim); font-size:10px; margin-inline-start:5px; font-weight:400; }
#checkoutOverlay input:not([type=file]) { box-sizing:border-box; width:100%; min-width:0; height:44px!important; padding:10px 12px!important; border:1px solid var(--checkout-line)!important; border-radius:12px!important; background:var(--checkout-input)!important; color:var(--checkout-ink)!important; font:inherit; font-size:12px; }
#checkoutOverlay input::placeholder { color:var(--checkout-dim)!important; opacity:1; }
#checkoutOverlay input:focus-visible { border-color:var(--checkout-accent)!important; outline:2px solid var(--checkout-focus); }
#checkoutOverlay button:focus-visible,#checkoutOverlay summary:focus-visible,#checkoutOverlay a:focus-visible { outline:2px solid var(--checkout-accent); outline-offset:4px; }
#checkoutOverlay .checkout-bank-panel,#checkoutOverlay .checkout-electronic-panel { padding:20px!important; margin:0!important; border:1px solid var(--checkout-line)!important; border-radius:16px!important; background:var(--checkout-input)!important; box-shadow:none!important; }
#checkoutOverlay #bankInfoBox { padding:0!important; margin:0!important; border:0!important; border-radius:0!important; background:transparent!important; box-shadow:none!important; }
#checkoutOverlay .bank-intro { margin:0 0 18px; color:var(--checkout-muted); font-size:12px; line-height:1.9; }
#checkoutOverlay .bank-intro strong { color:var(--checkout-ink); }
#checkoutOverlay .bank-details { margin:0; display:grid; gap:16px; }
#checkoutOverlay .bank-detail { display:grid; grid-template-columns:115px minmax(0,1fr); gap:12px; align-items:center; }
#checkoutOverlay .bank-detail dt { color:var(--checkout-dim); font-size:11px; }
#checkoutOverlay .bank-detail dd { margin:0; display:flex; align-items:center; justify-content:flex-start; gap:8px; min-width:0; font-size:12px; color:var(--checkout-ink); }
#checkoutOverlay .bank-detail b { font-size:12px; overflow-wrap:anywhere; font-weight:600; }
#checkoutOverlay .bank-copy-btn { flex-shrink:0; width:30px; height:30px; padding:6px; border:1px solid var(--checkout-line)!important; background:transparent!important; color:var(--checkout-muted)!important; border-radius:50%!important; display:grid; place-items:center; font-size:11px; }
#checkoutOverlay .bank-copy-btn img { width:14px; height:14px; object-fit:contain; }
#checkoutOverlay .bank-guide { margin:16px 0 20px; color:var(--checkout-muted); line-height:1.8; font-size:11px; }
#checkoutOverlay .receipt-field { display:grid; gap:12px; padding-top:20px; border-top:1px solid var(--checkout-line); }
#checkoutOverlay .receipt-label { color:var(--checkout-ink); font-size:12px; font-weight:700; }
#checkoutOverlay .receipt-dropzone { display:flex; flex-direction:column; align-items:center; justify-content:center; gap:8px; position:relative; min-height:132px; padding:18px; border:1px dashed var(--checkout-line); border-radius:16px; background:var(--checkout-card); text-align:center; cursor:pointer; }
#checkoutOverlay .receipt-dropzone:hover,#checkoutOverlay .receipt-dropzone:focus-within { border-color:var(--checkout-accent); }
#checkoutOverlay .receipt-dropzone input { position:absolute; inset:0; opacity:0; width:100%; height:100%; cursor:pointer; }
#checkoutOverlay .receipt-upload-icon { font-size:28px; line-height:1; color:var(--checkout-accent); }
#checkoutOverlay .receipt-dropzone strong { color:var(--checkout-muted); font-size:12px; font-weight:500; overflow-wrap:anywhere; max-width:100%; }
#checkoutOverlay .receipt-dropzone small { color:var(--checkout-dim); font-size:10px; }
#checkoutOverlay .receipt-dropzone.has-file { border-style:solid; border-color:var(--checkout-good); }
#checkoutOverlay .receipt-dropzone.has-error { border-color:var(--checkout-error); }
#checkoutOverlay .checkout-transfer-reference { margin:16px 0 0; color:var(--checkout-muted); font-size:11px; }
#checkoutOverlay .checkout-transfer-reference summary { cursor:pointer; }
#checkoutOverlay .checkout-transfer-reference .checkout-server-field { margin-top:12px!important; }
#checkoutOverlay .receipt-help { font-size:10px; color:var(--checkout-dim); line-height:1.9; margin:16px 0 0; }
#checkoutOverlay #bankResult,#checkoutOverlay #electronicResult { font-size:12px; color:var(--checkout-error); line-height:1.9; overflow-wrap:anywhere; margin:12px 0 0; }
#checkoutOverlay #bankResult:empty,#checkoutOverlay #electronicResult:empty { display:none; }
#checkoutOverlay .checkout-electronic-panel p { color:var(--checkout-muted); font-size:12px; line-height:2; }
#checkoutOverlay .checkout-electronic-panel small { color:var(--checkout-dim); line-height:1.9; font-size:11px; }
#checkoutOverlay .checkout-usd { display:flex; justify-content:space-between; align-items:center; padding:18px 0; border-block:1px solid var(--checkout-line); color:var(--checkout-muted); font-size:12px; }
#checkoutOverlay .checkout-usd strong { color:var(--checkout-accent); font-size:24px; }
body.checkout-open { overflow:hidden!important; }
html:has(body.checkout-open) { overflow:hidden!important; }
@media(max-width:900px) {
  #checkoutOverlay { padding:24px 20px 40px!important; }
  #checkoutOverlay .checkout-sheet-grid { grid-template-columns:minmax(0,300px) minmax(0,1fr)!important; gap:20px!important; }
  #checkoutOverlay .checkout-summary-card,#checkoutOverlay .checkout-pay-card { padding:20px!important; }
  #checkoutOverlay .checkout-billing { grid-template-columns:minmax(0,1fr); }
  #checkoutOverlay .bank-detail { grid-template-columns:1fr; gap:5px; }
}
@media(max-width:700px) {
  #checkoutOverlay { padding:22px 16px 40px!important; }
  #checkoutOverlay .checkout-sheet-head { margin-bottom:22px!important; }
  #checkoutOverlay .checkout-sheet-head h2 { font-size:30px!important; }
  #checkoutOverlay .checkout-sheet-head p { font-size:12px!important; }
  #checkoutOverlay .checkout-sheet-grid { display:flex!important; flex-direction:column; gap:18px!important; }
  #checkoutOverlay .checkout-summary-card,#checkoutOverlay .checkout-pay-card { width:100%; padding:20px!important; border-radius:18px!important; position:static; }
  #checkoutOverlay .checkout-pay-card { order:0; }
  #checkoutOverlay .checkout-summary-card { order:1; }
  #checkoutOverlay .checkout-bank-panel,#checkoutOverlay .checkout-electronic-panel { padding:16px!important; }
  #checkoutOverlay .checkout-pay-option { padding:12px!important; gap:10px; }
  #checkoutOverlay .pay-copy strong { font-size:12px!important; }
  #checkoutOverlay .pay-copy small { font-size:10px!important; }
  #checkoutOverlay .bank-detail b { font-size:11px; }
}
@media(prefers-reduced-motion:reduce) { #checkoutOverlay,#checkoutOverlay * { animation:none!important; transition:none!important; scroll-behavior:auto!important; } }
