body { -webkit-font-smoothing: antialiased; font-family: Jost, Inter, system-ui, sans-serif; color: #0F172A; background: #fff; }
.tnum { font-variant-numeric: tabular-nums; }
.mono { font-family: 'JetBrains Mono', ui-monospace, monospace; font-feature-settings: "zero","ss01"; }

/* Dual-range: input layer passes clicks through so the top input (Max) no longer
   steals drag events from the bottom one (Min); only the thumbs stay interactive. */
input[type=range].rng { -webkit-appearance:none; appearance:none; background:transparent; width:100%; pointer-events:none; }
input[type=range].rng::-webkit-slider-runnable-track { height:4px; background:#E2E8F0; border-radius:9999px; }
input[type=range].rng::-moz-range-track { height:4px; background:#E2E8F0; border-radius:9999px; }
input[type=range].rng::-webkit-slider-thumb { -webkit-appearance:none; pointer-events:auto; height:16px; width:16px; border-radius:9999px; background:#F97316; border:2px solid #fff; box-shadow:0 0 0 1px #E2E8F0; margin-top:-6px; cursor:pointer; }
input[type=range].rng::-moz-range-thumb { pointer-events:auto; height:16px; width:16px; border-radius:9999px; background:#F97316; border:2px solid #fff; box-shadow:0 0 0 1px #E2E8F0; cursor:pointer; }
.rng-track-fill { position:absolute; height:4px; background:#2563EB; border-radius:9999px; top:50%; transform:translateY(-50%); pointer-events:none; }

.tgl { position:relative; width:34px; height:20px; background:#E2E8F0; border-radius:9999px; transition:background .15s; cursor:pointer; flex-shrink:0; }
.tgl::after { content:""; position:absolute; top:2px; left:2px; width:16px; height:16px; background:#fff; border-radius:9999px; transition:transform .15s; box-shadow:0 1px 2px rgba(0,0,0,.15); }
/* on-state driven by the sibling checkbox (peer) — no JS class toggle needed */
.tgl.on, .peer:checked ~ .tgl { background:#2563EB; }
.tgl.on::after, .peer:checked ~ .tgl::after { transform:translateX(14px); }
/* keyboard focus ring on the visually-hidden checkbox */
.peer:focus-visible ~ .tgl { box-shadow:0 0 0 2px #3B82F6; }

.cbx { appearance:none; width:16px; height:16px; border:1px solid #CBD5E1; border-radius:4px; background:#fff; display:inline-grid; place-content:center; cursor:pointer; }
.cbx:checked { background:#2563EB; border-color:#2563EB; }
.cbx:checked::after { content:""; width:10px; height:10px; background:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='white' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'><polyline points='3 8.5 6.5 12 13 4.5'/></svg>") center/contain no-repeat; }

/* Range preset chip (variant C quick-select). Active state set by JS when the
   slider values match the preset's min/max. */
.pchip { display:inline-flex; align-items:center; height:30px; padding:0 12px; border-radius:8px; border:1px solid #E2E8F0; background:#fff; font-size:13px; color:#334155; cursor:pointer; transition:background .12s, border-color .12s, color .12s; }
.pchip:hover { background:#F8FAFC; }
.pchip.active { background:#2563EB; border-color:#2563EB; color:#fff; }
.pchip:focus-visible { outline:none; box-shadow:0 0 0 2px #3B82F6; }

.focus-ring:focus { outline:none; box-shadow:0 0 0 2px #3B82F6; border-color:#3B82F6; }
.card-hover:hover { border-color:#93C5FD; background:#EFF6FF; }

/* Single-promo inline rendering: flatten CKEditor block tags so title · desc · dates align on one row. */
.promo-desc p { display: inline; margin: 0; }
.promo-desc p + p::before { content: " "; }
.promo-desc br { display: none; }
