/* Price-table drawer (single pages + listing cards). Content = on-demand fragment, rendered as stored.
   Fixed sheet height (PROD-READINESS V1): the loading state used to be ~290px and grew when the fragment
   arrived (>500ms after the tap), an unexpected layout shift of 0.5-0.95 per opening. */
.st-prices[open]{position:fixed;inset:auto 0 0 0;width:100%;height:92vh;height:92dvh;max-height:92vh;max-height:92dvh;border-radius:var(--st-r-lg) var(--st-r-lg) 0 0}
@media (min-width:1024px){.st-prices[open]{inset:0;margin:auto;width:min(1100px,92vw);height:min(86vh,860px);max-height:86vh;border-radius:var(--st-r-lg)}}
.st-prices[open]{padding-bottom:0} /* t210u: the foot below already carries the safe area; the generic .st-sheet inset doubled it */
.st-prices__body{padding:12px 16px}
.st-prices__hint{margin:0 0 10px;padding:8px 12px;background:var(--st-primary-tint);border-radius:var(--st-r-sm);font-size:14px}
.st-prices__loading,.st-prices__err{margin:24px 0;color:var(--st-text-muted)}
.st-prices__foot{flex:none;display:flex;padding:10px 16px calc(10px + env(safe-area-inset-bottom));border-top:1px solid var(--st-border)}
.st-prices__foot .st-btn{flex:1}
@media (min-width:1024px){.st-prices__foot .st-btn{flex:0 1 auto;margin-left:auto}}
.st-pt__scroll{overflow-x:auto;-webkit-overflow-scrolling:touch}
.st-pt__scroll+.st-pt__scroll,.st-pt table+table,.st-pt table+p,.st-pt p+table{margin-top:12px}
.st-pt table{border-collapse:collapse;min-width:100%;font-size:14px;line-height:1.3}
.st-pt th,.st-pt td{padding:6px 8px;border:1px solid var(--st-border-strong);text-align:center;vertical-align:middle}
.st-pt th[scope=row],.st-pt td:first-child{text-align:left}
.st-pt thead th,.st-pt th[scope=col]{background:var(--st-primary-tint);color:var(--st-primary-dark)}
.st-pt td.st-pt__pick{padding:2px}
.st-pt__btn{display:block;width:100%;min-width:56px;min-height:40px;padding:4px 6px;border:1px solid transparent;border-radius:var(--st-r-sm);background:none;color:var(--st-primary);font:inherit;font-weight:700;text-decoration:underline dotted;cursor:pointer}
.st-pt__btn:hover,.st-pt__btn:focus-visible{background:var(--st-primary-tint);border-color:var(--st-primary)}
.st-prices__foot{gap:8px}
.st-prices__foot [data-st-prices-more][hidden]{display:none}
/* ===== PRICE TABLE UX V1 (default; class .st-pt--v1 is added by price-drawer.js). Rules above = VERSION A
   (still used as-is by the &st_pt=a preview). Neutral greys only; brand colour only on actionable/selected cells. ===== */
.st-prices__foot{flex-wrap:wrap}
.st-prices__sel{display:flex;flex-direction:column;flex:1 0 100%;min-width:0;font-size:14px;line-height:1.3;color:#1F2D3A}
.st-prices__sel[hidden]{display:none}
.st-prices__selunit{font-weight:700}
.st-prices__seldet{font-variant-numeric:tabular-nums}
@media (min-width:1024px){.st-prices__sel{flex:1 1 auto;justify-content:center}}
.st-pt__tw{position:relative;overflow-x:auto;-webkit-overflow-scrolling:touch;overscroll-behavior-x:contain}
.st-pt p+.st-pt__tw,.st-pt__tw+p,.st-pt__tw+.st-pt__tw{margin-top:12px}
.st-pt--v1 table{font-size:13px;line-height:1.25;border-collapse:separate;border-spacing:0;border-top:1px solid #CBD3DC;border-left:1px solid #CBD3DC}
.st-pt--v1 th,.st-pt--v1 td{padding:4px 6px;border:0;border-right:1px solid #CBD3DC;border-bottom:1px solid #CBD3DC;color:#1F2D3A;background-clip:padding-box}
.st-pt--v1 .st-pt__d{background:#F5F7FA;font-weight:600}
.st-pt--v1 .st-pt__h,.st-pt--v1 .st-pt__s,.st-pt--v1 thead th,.st-pt--v1 th[scope=col]{background:#EEF2F6;color:#1F2D3A;font-weight:600}
.st-pt--v1 td.st-pt__pick{padding:0}
.st-pt--v1 .st-pt__btn{position:relative;min-width:44px;min-height:44px;padding:2px 4px;border:0;border-radius:0;font-weight:600;color:var(--st-primary);text-decoration:underline;text-decoration-color:rgba(0,83,156,.35);text-underline-offset:3px;touch-action:manipulation;-webkit-tap-highlight-color:transparent}
.st-pt--v1 .st-pt__btn:hover{background:var(--st-primary-tint);text-decoration-color:currentColor}
.st-pt--v1 .st-pt__btn:focus-visible{outline:2px solid var(--st-primary);outline-offset:-2px;background:var(--st-primary-tint)}
.st-pt--v1 .st-pt__btn[aria-pressed=true]{background:var(--st-primary-tint);box-shadow:inset 0 0 0 2px var(--st-primary);color:var(--st-primary-dark);font-weight:700;text-decoration:none}
.st-pt--v1 .st-pt__btn[aria-pressed=true]::after{content:"\2713";position:absolute;top:2px;right:3px;font-size:10px;line-height:1}
.st-pt--v1 .st-pt__hl{background:#DDE3EA;box-shadow:inset 3px 0 0 #1F2D3A}
.st-pt--v1 .st-pt__hlc{background:#DDE3EA;box-shadow:inset 0 -3px 0 #1F2D3A}
.st-pt--v1 .st-pt__stk{position:sticky;z-index:2;background:#F5F7FA}
.st-pt--v1 .st-pt__stk.st-pt__h{background:#EEF2F6}
.st-pt--v1 .st-pt__stk.st-pt__hl{background:#DDE3EA}
.st-pt--v1 .st-pt__edge{box-shadow:5px 0 6px -4px rgba(31,45,58,.28)}
.st-pt--v1 .st-pt__edge.st-pt__hl{box-shadow:inset 3px 0 0 #1F2D3A,5px 0 6px -4px rgba(31,45,58,.28)}
.st-pt--v1 .st-pt__stt{position:sticky;z-index:3}
.st-pt--v1 .st-pt__stt.st-pt__stk{z-index:4}
/* KUX item 2: list switcher (sheet head, outside the table scroller) */
.st-prices__lists{flex:none;display:flex;align-items:center;gap:8px;padding:8px 16px;border-bottom:1px solid var(--st-border);background:#fff}
.st-prices__lists[hidden]{display:none}
.st-prices__lcount{flex:none;font-size:13px;font-weight:700;color:var(--st-text-muted)}
.st-prices__tabs{display:flex;gap:6px;min-width:0;overflow-x:auto;scrollbar-width:none;padding:2px}
.st-prices__tabs::-webkit-scrollbar{display:none}
.st-prices__tab{flex:none;min-height:40px;padding:6px 14px;border:1px solid var(--st-border-strong);border-radius:999px;background:#fff;color:var(--st-primary-dark);font:inherit;font-size:14px;font-weight:600;white-space:nowrap;cursor:pointer}
.st-prices__tab:hover{background:var(--st-primary-tint)}
.st-prices__tab[aria-selected=true]{background:var(--st-primary-dark);border-color:var(--st-primary-dark);color:#fff}
.st-prices__tab:focus-visible{outline:3px solid var(--st-accent);outline-offset:2px}
.st-prices__seltbl{overflow:hidden;white-space:nowrap;text-overflow:ellipsis;font-size:12px;color:var(--st-text-muted)}
.st-prices__seltbl[hidden]{display:none}
@media (max-width:599px){.st-prices__lcount{display:none}.st-prices__lists{padding:8px 12px}}
/* STAB #46: confirmed old/new price (Core promotion=true): old price struck + muted; inline-block so a button's underline does not combine with the strike */
.st-pt__old{display:inline-block;margin-right:.3em;color:#55687A;font-weight:400;text-decoration:line-through}
.st-pt__new{white-space:nowrap}
/* STAB #50: stable footer - summary slot has a FIXED 2-line height (line 1 table+unit, line 2 period/price; ellipsis, full text in title +
   aria-describedby) and is reserved while the list is selectable; desktop it sits beside the buttons (36px < button height). */
.st-prices__sel{display:grid;grid-template-columns:auto minmax(0,1fr);grid-template-rows:18px 18px;align-content:center;height:36px;line-height:18px;overflow:hidden}
.st-prices__sel>*{min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.st-prices__seltbl{grid-area:1/1;max-width:min(45vw,420px);margin-right:6px}
.st-prices__selunit{grid-area:1/2}
.st-prices__seldet{grid-area:2/1/3/3}
.st-prices__sel.is-idle{color:var(--st-text-muted)}
.st-prices__sel.is-idle .st-prices__selunit{font-weight:600}
@media (min-width:1024px){.st-prices__foot{align-items:center}.st-prices__sel{justify-content:flex-start}}

/* t107u: error state actions (retry + page link) */
.st-prices__erracts{display:flex;flex-wrap:wrap;align-items:center;gap:12px;margin-top:12px}
.st-prices__erracts .st-prices__fallback{font-weight:700}
