/* ===== Карточка АЗС v3 «Табло» (18.09) =====
   Одна цветная поверхность — табло; всё остальное — типографика на панели без вложенных коробок.
   Цвет состояния задаёт data-status на .board: --sc (status color). Обе темы через токены ui.css. */
.card2{--sc:var(--grey)}
.card2 .board[data-status="yes"]{--sc:var(--ok)}
.card2 .board[data-status="queue"]{--sc:var(--queue)}
.card2 .board[data-status="low"]{--sc:var(--low)}
.card2 .board[data-status="no"]{--sc:var(--no)}
.card2 .board[data-status="soon"]{--sc:#3B82F6}
.card2 .board[data-status="live"]{--sc:#22C1A3}

/* ---- шапка ---- */
.card2 .sheet-head{align-items:center;margin-bottom:12px}
.card2 .sheet h2{font-size:21px;letter-spacing:-.02em;line-height:1.1;margin-bottom:3px}
.card2 .sheet .sub, .card2 .sub{font-size:13.5px;color:var(--dim);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.card2 .brandchip{display:none!important}

/* ---- табло ---- */
.card2 .board{position:relative;overflow:hidden;border-radius:20px;padding:18px 16px 14px;margin:0 0 10px;
  background:color-mix(in srgb, var(--sc) 9%, var(--panel));isolation:isolate}
.card2 .board-glow{position:absolute;inset:-40% -20% auto;height:130%;pointer-events:none;z-index:-1;
  background:radial-gradient(60% 55% at 22% 18%, color-mix(in srgb, var(--sc) 28%, transparent), transparent 70%);
  opacity:.9;transition:opacity .6s}
.card2 .board.fresh .board-glow{animation:boardBreath 5.5s ease-in-out infinite}
@keyframes boardBreath{0%,100%{opacity:.75;transform:scale(1)}50%{opacity:1;transform:scale(1.06)}}
@media (prefers-reduced-motion: reduce){.card2 .board.fresh .board-glow{animation:none}}

.card2 .verdict{display:grid;grid-template-columns:auto 1fr;grid-template-rows:auto auto;column-gap:12px;align-items:center}
.card2 .verdict .sw{display:none}
.card2 .verdict .pumpico{grid-row:1/3;width:40px;height:40px;color:var(--sc);filter:drop-shadow(0 4px 12px color-mix(in srgb, var(--sc) 45%, transparent))}
.card2 .verdict .lbl{grid-column:2;font-size:30px;font-weight:800;letter-spacing:-.03em;line-height:1.02;color:var(--text)}
.card2 .verdict .lbl.long{font-size:24px}
.card2 .verdict .meta{grid-column:2;margin-top:5px;font-size:13.5px;line-height:1.35;color:var(--dim)}
.card2 .verdict .meta b{color:var(--text);font-weight:600}
.card2 .verdict .meta .ic-net{width:13px;height:13px;vertical-align:-2px;margin-right:3px;color:var(--ok)}
.card2 .verdict .meta .dot{display:inline-block;width:7px;height:7px;border-radius:50%;margin:0 5px 1px 0}
/* «переворот»: отметка «нет», а покупки идут — честная строка под вердиктом */
.card2 .verdict .flip{grid-column:1/3;display:flex;gap:8px;align-items:flex-start;margin-top:10px;padding:9px 11px;border-radius:12px;font-size:13.5px;line-height:1.35;
  background:color-mix(in srgb, var(--text) 6%, transparent);color:var(--text)}
.card2 .verdict .flip b{font-weight:700}

/* уверенность: полная шкала с делениями; при открытии заливка растёт и по ней пробегает блик */
.card2 .conf{display:block;margin:14px 0 0;padding:0}
.card2 .conf-head{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:7px}
.card2 .conf-ttl{font-size:12.5px;font-weight:600;color:var(--dim)}
.card2 .conf-lvl{border:0;background:none;padding:0;font:inherit;font-size:14px;font-weight:700;color:var(--dim);cursor:pointer;text-align:right;
  opacity:0;transform:translateY(4px);transition:opacity .5s .55s,transform .5s .55s}
.card2 .conf.anim .conf-lvl{opacity:1;transform:none}
.card2 .conf-lvl::after{content:"ⓘ";margin-left:6px;font-weight:400;opacity:.65;font-size:13px}
.card2 .conf-bar{position:relative;height:9px;border-radius:5px;background:color-mix(in srgb, var(--text) 10%, transparent);overflow:hidden}
.card2 .conf-fill{position:absolute;left:0;top:0;bottom:0;width:0;border-radius:5px;
  background:linear-gradient(90deg, var(--low) 0%, color-mix(in srgb, var(--low) 40%, var(--ok)) 45%, var(--ok) 100%);background-size:var(--bw,100%) 100%;
  transition:width 1.1s cubic-bezier(.22,.9,.3,1)}
.card2 .conf-fill.bad{background:linear-gradient(90deg, var(--no), #ff8a94)}
.card2 .conf-fill.grey{background:linear-gradient(90deg, var(--grey), #9aa3b2)}
.card2 .conf-fill::after{content:"";position:absolute;top:0;bottom:0;left:-40%;width:40%;
  background:linear-gradient(90deg, transparent, rgba(255,255,255,.75), transparent);opacity:0}
.card2 .conf.anim .conf-fill::after{animation:confShine 1.1s ease-out .75s 1}
@keyframes confShine{0%{left:-40%;opacity:0}15%{opacity:1}100%{left:110%;opacity:0}}
.card2 .conf-tick{position:absolute;top:0;bottom:0;width:2px;background:var(--panel);opacity:.9}
@media (prefers-reduced-motion: reduce){.card2 .conf-fill{transition:none}.card2 .conf.anim .conf-fill::after{animation:none}.card2 .conf-lvl{transition:none;opacity:1;transform:none}}

/* ---- СТЕЛА: табло цен как на въезде АЗС — тёмная панель, крупные коды топлива, LED-цифры (DSEG7, свой хостинг) ---- */
@font-face{font-family:"DSEG7";src:url("/fonts/DSEG7Classic-Bold.woff2") format("woff2");font-weight:700;font-display:swap}
.card2 .lamps{display:block;position:relative;margin:16px 0 0;padding:8px 16px;border-radius:14px;
  /* корпус стелы: чёрный глянцевый пластик, тёмная рамка, лёгкий блик сверху */
  background:radial-gradient(120% 80% at 50% -10%,#1A2029 0%,#0B0F14 45%,#05070A 100%);
  border:3px solid #1B1F26;
  box-shadow:0 0 0 1px #000 inset,0 0 26px rgba(0,0,0,.7) inset,0 12px 34px rgba(0,0,0,.45),0 1px 0 rgba(255,255,255,.05)}
.card2 .lamps::before{content:"";position:absolute;inset:0;border-radius:inherit;pointer-events:none;
  /* блик на стекле */
  background:linear-gradient(175deg,rgba(255,255,255,.07) 0%,rgba(255,255,255,.02) 22%,transparent 40%)}
.card2 .lamps::after{content:"";position:absolute;inset:0;border-radius:inherit;pointer-events:none;opacity:.35;
  /* сетка светодиодов по всей панели, как неподсвеченные LED */
  background:radial-gradient(circle,rgba(255,255,255,.07) 0 .6px,transparent 1px) 0 0/3px 3px}
.card2 .lamp{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:12px;padding:9px 0;
  border-bottom:1px solid rgba(255,255,255,.07);animation:none}
.card2 .lamp:last-child{border-bottom:0}
.card2 .lamp .k{position:relative;z-index:1;display:inline-block;font-size:24px;font-weight:900;letter-spacing:-.02em;color:#FFFFFF;line-height:1;min-width:52px;font-variant-numeric:tabular-nums;
  /* код топлива — белые светодиоды: ореол + та же решётка диодов */
  text-shadow:0 0 2px #fff,0 0 6px rgba(255,255,255,.9),0 0 14px rgba(255,255,255,.45)}
/* числовые коды — тем же семисегментным шрифтом и кеглем, что цены, с погасшими «8» позади; ДТ/Газ — кириллица, шрифт обычный, кегль тот же */
.card2 .lamp .k{font-size:28px;width:80px;min-width:80px}
.card2 .lamp .k.seg{font-family:"DSEG7",monospace;font-weight:400;letter-spacing:.05em}
.card2 .lamp .k.seg b{font-weight:400;position:relative;display:inline-block}
/* три разряда как на стеле: коды выровнены по правому краю — цифра под цифрой, 100 занимает все три */
.card2 .lamp .k{text-align:right}
.card2 .lamp .k::after{content:"";position:absolute;inset:0;pointer-events:none;
  background:radial-gradient(circle,transparent 0 .9px,rgba(4,6,9,.62) 1.25px) 0 0/2.4px 2.4px}
.card2 .lamp .k::before{display:none}
.card2 .lamp .led{width:10px;height:10px;border-radius:50%;background:#3A4658;justify-self:start;box-shadow:0 0 0 2px rgba(255,255,255,.04) inset}
.card2 .lamp.on .led{background:#30D56B;box-shadow:0 0 0 3px rgba(48,213,107,.18),0 0 10px #30D56B}
.card2 .lamp.off .led{background:#FF4D5A;box-shadow:0 0 0 3px rgba(255,77,90,.18),0 0 8px #FF4D5A}
.card2 .lamps{--led:#FF3B30}
.card2 .lamp .v{position:relative;z-index:1;font-family:"DSEG7",monospace;font-size:28px;line-height:1;color:var(--led);white-space:nowrap;letter-spacing:.05em}
.card2 .lamp .v .ghost{font-style:normal;position:absolute;right:0;top:0;color:var(--led);opacity:.16;text-shadow:none}
/* горящие сегменты: тело чуть светлее фирменного, ореол свечения диодов */
.card2 .lamp .v b{font-weight:400;position:relative;display:inline-block;color:color-mix(in srgb, var(--led) 80%, #fff);
  text-shadow:0 0 2px var(--led),0 0 6px var(--led),0 0 14px color-mix(in srgb, var(--led) 55%, transparent)}
/* решётка светодиодов: тёмные зазоры между точками поверх сегментов */
.card2 .lamp .v b::after{content:"";position:absolute;inset:0;pointer-events:none;
  background:radial-gradient(circle,transparent 0 .9px,rgba(4,6,9,.62) 1.25px) 0 0/2.4px 2.4px}
.card2 .lamp .v small{display:none}
.card2 .lamp.off .v{opacity:1}
.card2 .lamp.off .v{filter:none}
.card2 .lamp.off .v b.dark{opacity:.22;text-shadow:none;animation:none!important}
.card2 .lamp .v.word{font-family:inherit;font-size:12.5px;font-weight:600;color:#8B96A8;text-shadow:none;letter-spacing:0}
.card2 .lamp.off .k{color:#FFFFFF;opacity:.22;text-shadow:none}
.card2 .lamp.off .v.word{color:#FF4D5A}
/* включение табло: лампочки и цифры вспыхивают строка за строкой */
.card2 .lamps.ignite .lamp .led,.card2 .lamps.ignite .lamp .v b{animation:ledOn .45s ease-out both;animation-delay:calc(.15s + var(--i,0) * .1s)}
@keyframes ledOn{0%{opacity:0}40%{opacity:1}55%{opacity:.35}100%{opacity:1}}

/* светофор актуальности цены */
.card2 .pricelight{display:flex;align-items:center;gap:7px;margin-top:10px;font-size:12.5px;color:var(--dim)}
.card2 .pricelight i{width:8px;height:8px;border-radius:50%;flex:none;background:var(--grey)}
.card2 .pricelight.g i{background:var(--ok);box-shadow:0 0 6px var(--ok)}
.card2 .pricelight.y i{background:var(--low)}
.card2 .pricelight.r i{background:var(--no)}
.card2 .pricelight b{color:var(--text);font-weight:600}

/* очередь / доступ / подтверждение внутри табло */
.card2 .st-queue{margin:12px 0 0;padding:12px 0 0;border-top:1px solid color-mix(in srgb, var(--text) 9%, transparent);background:none;border-radius:0;font-size:14px}
.card2 .access-warn{margin:10px 0 0;padding:0;background:none;border:0;font-size:13.5px;color:var(--dim);display:flex;gap:7px;align-items:center}
.card2 .access-warn .ic{width:16px;height:16px}
.card2 .sc-confirm{display:flex;align-items:center;gap:8px;margin:14px 0 0;padding:12px 0 0;border-top:1px solid color-mix(in srgb, var(--text) 9%, transparent);flex-wrap:wrap}
.card2 .sc-confirm-q{font-size:14px;font-weight:600;color:var(--text);margin-right:auto}
.card2 .cf-yes,.card2 .cf-no{display:inline-flex;align-items:center;gap:6px;height:36px;padding:0 13px;border-radius:18px;border:0;font:inherit;font-size:14px;font-weight:600;cursor:pointer}
.card2 .cf-yes{background:var(--sc);color:#0b0f14}
.card2 .board[data-status="no"] .cf-yes,.card2 .board[data-status="soon"] .cf-yes,.card2 .board[data-status="queue"] .cf-yes{color:#fff}
.card2 .cf-yes .ic{width:15px;height:15px}
.card2 .cf-no{background:color-mix(in srgb, var(--text) 8%, transparent);color:var(--text)}
.card2 .watchbtn{margin:12px 0 0;width:100%;height:42px;border-radius:12px;border:0;background:color-mix(in srgb, var(--text) 8%, transparent);color:var(--text);font:inherit;font-size:14px;font-weight:600;display:flex;align-items:center;justify-content:center;gap:7px}
.card2 .watchbtn.on{background:color-mix(in srgb, var(--ok) 18%, transparent);color:var(--ok)}
.card2 .watchbtn .ic{width:16px;height:16px}

/* ---- пульс покупок ---- */
.card2 .pulse{display:flex;align-items:center;gap:9px;width:100%;margin:0 0 12px;padding:10px 12px;border-radius:14px;border:0;
  background:var(--fill);color:var(--text);font:inherit;font-size:14px;text-align:left;cursor:pointer}
.card2 .pulse .pd{width:9px;height:9px;border-radius:50%;background:var(--ok);flex:none;box-shadow:0 0 0 3px color-mix(in srgb, var(--ok) 20%, transparent)}
.card2 .pulse.old .pd{background:var(--grey);box-shadow:none}
.card2 .pulse .pt{flex:1;min-width:0}
.card2 .pulse .pt b{font-weight:700}
.card2 .pulse .pt span{display:block;font-size:12.5px;color:var(--dim);margin-top:1px}
.card2 .pulse .chev{color:var(--dim2);font-size:18px;transition:transform .25s}
.card2 .pulse.open .chev{transform:rotate(90deg)}
.card2 .pulse-more{display:none;margin:-6px 0 12px;padding:0 2px}
.card2 .pulse-more.show{display:block}
.card2 .pulse-more .tx-row{display:flex;flex-wrap:wrap;gap:6px}
.card2 .pulse-more .tx-chip{display:inline-flex;align-items:baseline;gap:4px;padding:5px 9px;border-radius:9px;background:var(--fill);font-size:13px;font-weight:600;font-variant-numeric:tabular-nums}
.card2 .pulse-more .tx-chip i{font-style:normal;font-size:11px;font-weight:500;color:var(--dim)}
.card2 .pulse-more .tx-more{align-self:center;font-size:12.5px;color:var(--dim);padding:0 4px}

/* ---- действия ---- */
.card2 .act-row{display:grid;grid-template-columns:1.35fr 1fr 1fr;gap:8px;margin:0 0 18px}
.card2 .act{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;height:64px;border-radius:16px;border:0;
  background:var(--fill);color:var(--text);font:inherit;font-size:13px;font-weight:600;cursor:pointer;position:relative}
.card2 .act svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.card2 .act em{font-style:normal;font-size:11.5px;font-weight:500;color:var(--dim);line-height:1}
.card2 .act em:empty{display:none}
.card2 .act-go{background:var(--ok);color:#06110a}
.card2 .act-go em{color:rgba(6,17,10,.65)}
.card2 .act-go svg{fill:currentColor;stroke:none}
.card2 .act:active{transform:scale(.97)}
.card2 .act.has-new::after{content:"";position:absolute;top:9px;right:12px;width:8px;height:8px;border-radius:50%;background:var(--ok)}

/* ---- отметка ---- */
.card2 .cap{font-size:15px;font-weight:700;letter-spacing:-.01em;margin:0 0 10px;color:var(--text)}
.card2 .cap .cap-dim,.card2 .cap .cap-req{font-size:12.5px;font-weight:500;color:var(--dim);margin-left:6px}
.card2 .cap .cap-req{color:var(--no)}
.card2 .vgrid,.card2 #vbtns{display:grid;grid-template-columns:repeat(5,1fr);gap:6px;margin-bottom:12px}
.card2 .vbtn,.card2 #vbtns .vbtn{display:flex;flex-direction:column;align-items:center;justify-content:flex-start;gap:6px;padding:11px 3px 9px;border-radius:14px;border:0;
  background:var(--fill);color:var(--text);text-align:center;cursor:pointer;min-height:78px;box-shadow:none;transition:background .2s,box-shadow .2s}
.card2 .vbtn .pumpico{width:24px;height:24px}
.card2 .vbtn .vtxt b{display:block;font-size:12px;font-weight:700;line-height:1.15}
.card2 .vbtn .vtxt span,.card2 .vbtn .v-hint{display:none}
.card2 .vbtn.sel{background:color-mix(in srgb, var(--vc, var(--text)) 16%, var(--fill));box-shadow:0 0 0 2px var(--vc, var(--text)) inset}
.card2 .vbtn[data-v="yes"]{--vc:var(--ok)}.card2 .vbtn[data-v="queue"]{--vc:var(--queue)}.card2 .vbtn[data-v="low"]{--vc:var(--low)}
.card2 .vbtn[data-v="no"]{--vc:var(--no)}.card2 .vbtn[data-v="soon"]{--vc:#3B82F6}
.card2 .vote-more{display:none}
.card2 .vote-more.show{display:block}
.card2 .vote-more .cap{margin-top:14px}
.card2 .fuels{display:flex;gap:7px;flex-wrap:wrap;margin-bottom:12px}
.card2 .submit{margin:4px 0 6px}
.card2 .queue-coach{margin:8px 0 18px;background:none;padding:0 2px;color:var(--dim);font-size:13px}
.card2 .queue-coach .qco-ic{display:none}
.card2 .queue-coach b{color:var(--text);font-weight:600}
.card2 .queue-coach.at{color:var(--text)}
.card2 .inqueue-cta{margin:0 0 10px}
.card2 .quick-status{margin:0 0 14px}

/* ---- последние отметки, детали ---- */
.card2 .recent{margin-bottom:16px}
.card2 .recent .section-cap{font-size:15px;font-weight:700;color:var(--text);text-transform:none;letter-spacing:-.01em;margin:0 0 6px;border:0;padding:0}
.card2 .rr{padding:9px 0;border-bottom:1px solid color-mix(in srgb, var(--text) 7%, transparent)}
.card2 .st-info{margin:0 0 16px;padding:0;background:none;border:0}
.card2 .st-info .si-row{padding:8px 0;font-size:14px}
.card2 .st-info .si-row svg{width:17px;height:17px;color:var(--dim)}
.card2 .st-info .si-dim{color:var(--dim);font-size:13px}
.card2 .st-info .si-ann{margin:0 0 12px;padding:11px 12px;border-radius:14px;background:color-mix(in srgb, var(--low) 14%, transparent)}
.card2 .sponsor-line{display:block;text-align:center;padding:12px 4px 0;font-size:12px;color:var(--dim);text-decoration:none;background:none;border:0}
.card2 .sponsor-line b{color:var(--ok);font-weight:600}

.card2 :focus-visible{outline:2px solid var(--ok);outline-offset:2px}
.card2 .verdict .flip .ic{width:16px;height:16px;flex:none;margin-top:2px;color:var(--low)}

/* на месте: «я в очереди» + быстрые «есть/нет» — в языке карточки */
.card2 .inqueue-cta{margin:0 0 8px;padding:12px 14px;border-radius:16px;background:#3B82F6;color:#fff;box-shadow:none;animation:none}
.card2 .inqueue-cta .iqc-ic{background:rgba(255,255,255,.18);color:#fff}
.card2 .inqueue-cta .iqc-tx span{color:rgba(255,255,255,.75)}
.card2 .inqueue-cta .iqc-chev{color:rgba(255,255,255,.7)}
.card2 .quick-status{margin:0 0 16px;gap:7px}
.card2 .quick-status .qs-btn{border:0;border-radius:14px;padding:12px 10px;font-weight:700;font-size:14px;background:var(--fill);color:var(--text)}
.card2 .quick-status .qs-yes{background:color-mix(in srgb, var(--ok) 16%, var(--fill));color:var(--ok)}
.card2 .quick-status .qs-no{background:color-mix(in srgb, var(--no) 14%, var(--fill));color:var(--no)}

/* ---- второй проход (18.09): табло «включается», пульс — диаграмма, отметки — таймлайн ---- */
@keyframes lampIn{0%{opacity:0;transform:translateY(8px) scale(.94)}100%{opacity:1;transform:none}}
@keyframes lampGlow{0%{box-shadow:0 0 0 0 color-mix(in srgb, var(--ok) 60%, transparent),0 0 0 var(--ok)}60%{box-shadow:0 0 0 7px color-mix(in srgb, var(--ok) 0%, transparent),0 0 14px var(--ok)}100%{box-shadow:0 0 0 3px color-mix(in srgb, var(--ok) 22%, transparent),0 0 8px var(--ok)}}
@media (prefers-reduced-motion: reduce){.card2 .lamps.ignite .lamp .led,.card2 .lamps.ignite .lamp .v b{animation:none}}

.card2 .pulse{padding:11px 13px;gap:12px;align-items:center}
.card2 .pulse .pt{flex:1 1 auto}
.card2 .pulse .spark{display:flex;align-items:flex-end;gap:2px;height:30px;flex:0 0 auto;width:112px}
.card2 .pulse .spark i{flex:1;height:var(--h);border-radius:2px 2px 1px 1px;background:color-mix(in srgb, var(--ok) 55%, var(--dim2));transition:height .6s cubic-bezier(.2,.8,.2,1)}
.card2 .pulse .spark i.z{background:color-mix(in srgb, var(--text) 10%, transparent)}
.card2 .pulse .spark i.now{background:var(--ok);box-shadow:0 0 6px color-mix(in srgb, var(--ok) 70%, transparent)}
.card2 .pulse.old .spark i.now{background:var(--dim)}
.card2 .pulse .chev{display:none}

.card2 .recent .rr{display:grid;grid-template-columns:18px 1fr auto;align-items:center;gap:0 10px;padding:0;border:0;position:relative;min-height:44px}
.card2 .recent .rr::before{content:"";position:absolute;left:8px;top:0;bottom:0;width:2px;background:color-mix(in srgb, var(--text) 9%, transparent)}
.card2 .recent .rr:first-of-type::before{top:50%}
.card2 .recent .rr-more .rr:first-of-type::before{top:0}
.card2 .recent .rr:last-of-type::before{bottom:50%}
.card2 .recent .rr-more:not([hidden]) ~ .rr-toggle{margin-top:4px}
.card2 .recent .rr-dot{width:12px;height:12px;border-radius:50%;background:var(--c);margin-left:3px;box-shadow:0 0 0 3px var(--panel);z-index:1}
.card2 .recent .rr-tx{font-size:14px;line-height:1.25;padding:9px 0}
.card2 .recent .rr-tx b{font-weight:600;color:var(--text)}
.card2 .recent .rr-tx em{display:block;font-style:normal;font-size:12.5px;color:var(--dim);margin-top:1px}
.card2 .recent .t{font-size:12.5px;color:var(--dim);font-variant-numeric:tabular-nums}
.card2 .recent .rr-toggle{background:none;border:0;font:inherit;font-size:13.5px;font-weight:600;color:var(--dim);padding:8px 0 0 28px;cursor:pointer}
.card2 .recent .rr-empty{padding:10px 0;text-align:left}

/* ---- третий проход (18.09) ---- */
/* очередь в языке табло */
.card2 .st-queue .q-row{display:flex;align-items:baseline;justify-content:space-between;gap:10px}
.card2 .st-queue .q-lbl{font-size:13px;font-weight:600;color:var(--dim)}
.card2 .st-queue .q-big{font-size:26px;font-weight:800;letter-spacing:-.03em;line-height:1;font-variant-numeric:tabular-nums;display:inline-flex;align-items:center;gap:6px}
.card2 .st-queue .q-arrow{font-style:normal;font-size:18px;font-weight:700}
.card2 .st-queue .q-arrow.up{color:var(--no)}.card2 .st-queue .q-arrow.down{color:var(--ok)}
.card2 .st-queue .q-facts{margin-top:4px;font-size:14px;color:var(--text)}
.card2 .st-queue .q-src{margin-top:3px;font-size:12.5px;color:var(--dim)}
.card2 .st-queue .q-src .ic{width:13px;height:13px;vertical-align:-2px}
/* фирменный цвет сети в шапке */
.card2.branded{background-image:linear-gradient(180deg, color-mix(in srgb, var(--brand) 16%, transparent) 0, color-mix(in srgb, var(--brand) 6%, transparent) 72px, transparent 120px);background-repeat:no-repeat}
.card2.branded .sheet-head .st-av{box-shadow:0 4px 14px color-mix(in srgb, var(--brand) 40%, transparent)}
.card2 .cap .cap-dim{display:inline}

/* кнопка отправки: «off» — визуально не готова, но на тап отвечает подсказкой */
.card2 .submit.off{opacity:.55}
.card2 #vbtns.nudge .vbtn{animation:vbNudge 1.4s ease-in-out 1}
@keyframes vbNudge{0%,100%{box-shadow:none}30%,70%{box-shadow:0 0 0 2px var(--vc,var(--ok)) inset}}
@media (prefers-reduced-motion: reduce){.card2 #vbtns.nudge .vbtn{animation:none}}

/* ===== «Спасибо»-карточка после отметки (18.09) ===== */
.thanks-card{position:fixed;left:14px;right:14px;bottom:calc(var(--safe-b) + var(--tab-h) + 26px);z-index:1200;padding:16px 16px 12px;border-radius:20px;
  background:var(--panel);box-shadow:0 18px 50px rgba(0,0,0,.35);transform:translateY(24px) scale(.97);opacity:0;pointer-events:none;
  transition:transform .55s cubic-bezier(.2,.9,.25,1.15),opacity .35s;max-width:520px;margin:0 auto}
.thanks-card.show{transform:none;opacity:1;pointer-events:auto}
.tc-x{position:absolute;top:8px;right:10px;background:none;border:0;color:var(--dim);font-size:22px;line-height:1;cursor:pointer;padding:4px 6px}
.tc-hero{display:flex;align-items:center;gap:14px;margin-bottom:12px}
.tc-hero-svg{width:108px;height:108px;flex:none;overflow:visible}
/* персонаж: вкатывается с пружинкой (squash & stretch), потом дышит; моргает; машет; искры вспыхивают */
.tc-guy{transform-origin:70px 126px;transform:translateY(40px) scale(.6);opacity:0}
.thanks-card.show .tc-guy{animation:tcIn .8s cubic-bezier(.2,.9,.3,1.2) .1s forwards}
@keyframes tcIn{0%{transform:translateY(40px) scale(.6);opacity:0}55%{transform:translateY(-8px) scale(1.06,.94);opacity:1}75%{transform:translateY(0) scale(.97,1.04)}100%{transform:none;opacity:1}}
.thanks-card.show .tc-body{transform-origin:70px 120px;animation:tcBreath 3.2s ease-in-out 1.2s infinite}
@keyframes tcBreath{0%,100%{transform:scale(1)}50%{transform:scale(1.02,.985)}}
.tc-shadow{fill:rgba(0,0,0,.14)}
.tc-shield-b{fill:var(--ok)}
.tc-shield-i{fill:color-mix(in srgb, var(--ok) 70%, #fff)}
.tc-eye{fill:#06110a;transform-box:fill-box;transform-origin:center}
.thanks-card.show .tc-eye{animation:tcBlink 4.2s ease-in-out 1.6s infinite}
@keyframes tcBlink{0%,92%,100%{transform:scaleY(1)}95%{transform:scaleY(.08)}}
.tc-glint{fill:#fff}
.tc-cheek{fill:#FF7A8A;opacity:.55}
.tc-mouth{fill:none;stroke:#06110a;stroke-width:3;stroke-linecap:round}
.tc-badge circle{fill:#fff;stroke:var(--ok);stroke-width:3}
.tc-badge path{fill:none;stroke:var(--ok);stroke-width:3.5;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:20;stroke-dashoffset:20}
.tc-badge{transform-box:fill-box;transform-origin:center;transform:scale(0)}
.thanks-card.show .tc-badge{animation:tcPop .5s cubic-bezier(.2,.9,.3,1.3) .9s forwards}
.thanks-card.show .tc-badge path{animation:tcDraw .4s ease-out 1.25s forwards}
@keyframes tcPop{0%{transform:scale(0)}60%{transform:scale(1.15)}100%{transform:scale(1)}}
@keyframes tcDraw{to{stroke-dashoffset:0}}
.tc-arm path{fill:none;stroke:var(--ok);stroke-width:7;stroke-linecap:round}
.tc-arm circle{fill:var(--ok)}
.tc-arm{transform-origin:30px 78px}
.thanks-card.show .tc-arm{animation:tcWave 1.6s ease-in-out 1s 1}
@keyframes tcWave{0%,100%{transform:rotate(0)}20%{transform:rotate(-38deg)}40%{transform:rotate(8deg)}60%{transform:rotate(-30deg)}80%{transform:rotate(4deg)}}
.tc-sparks path{fill:#FFC400;transform-box:fill-box;transform-origin:center;transform:scale(0);opacity:0}
.thanks-card.show .tc-sparks .sp1{animation:tcSpark 1.4s ease-out 1.1s 1}
.thanks-card.show .tc-sparks .sp2{animation:tcSpark 1.4s ease-out 1.35s 1}
.thanks-card.show .tc-sparks .sp3{animation:tcSpark 1.4s ease-out 1.6s 1}
@keyframes tcSpark{0%{transform:scale(0) rotate(0);opacity:0}30%{transform:scale(1.2) rotate(20deg);opacity:1}100%{transform:scale(.6) rotate(60deg);opacity:0}}
.tc-h{font-size:17px;font-weight:800;letter-spacing:-.02em;line-height:1.15}
.tc-s{font-size:13.5px;color:var(--dim);margin-top:4px;line-height:1.35}
.tc-s b{color:var(--text);font-variant-numeric:tabular-nums}
/* спонсорская строка с «северным сиянием» по рамке — одно медленное движение */
.tc-sp{position:relative;display:flex;align-items:center;gap:11px;padding:11px 12px;border-radius:14px;text-decoration:none;color:var(--text);
  background:color-mix(in srgb, var(--ok) 8%, var(--panel));isolation:isolate;overflow:hidden}
.tc-sp::before{content:"";position:absolute;inset:-60%;z-index:-2;background:conic-gradient(from 0deg, transparent 0 62%, color-mix(in srgb, var(--ok) 85%, #fff) 74%, transparent 86%);animation:tcAurora 5s linear infinite}
.tc-sp::after{content:"";position:absolute;inset:1.5px;z-index:-1;border-radius:13px;background:color-mix(in srgb, var(--ok) 8%, var(--panel))}
@keyframes tcAurora{to{transform:rotate(360deg)}}
.tc-shield{width:38px;height:38px;border-radius:11px;background:var(--ok);display:flex;align-items:center;justify-content:center;flex:none;box-shadow:0 6px 16px color-mix(in srgb, var(--ok) 45%, transparent)}
.tc-shield .ic{width:20px;height:20px;color:#06110a}
.tc-sp-t{flex:1;min-width:0;line-height:1.25}
.tc-sp-t b{display:block;font-size:14px;font-weight:700}
.tc-sp-t span{display:block;font-size:12.5px;color:var(--dim);margin-top:2px}
.tc-chev{color:var(--dim2);font-size:22px;flex:none}
@media (prefers-reduced-motion: reduce){.thanks-card{transition:opacity .2s}.thanks-card.show .tc-guy,.thanks-card.show .tc-body,.thanks-card.show .tc-eye,.thanks-card.show .tc-badge,.thanks-card.show .tc-badge path,.thanks-card.show .tc-arm,.thanks-card.show .tc-sparks path{animation:none}.tc-guy{transform:none;opacity:1}.tc-badge{transform:none}.tc-badge path{stroke-dashoffset:0}.tc-sp::before{animation:none}}

/* ===== карточка v3.1 (18.09): мета-чипы в шапке, сравнение с соседями, тренд на стеле, два режима, «Сохранить» ===== */
/* мета-строка шапки: открыто/закрыто · моё топливо · удобства — одна прокручиваемая строка без скроллбара */
.card2 .st-meta{display:flex;gap:6px;margin:-4px 0 12px;overflow-x:auto;scrollbar-width:none;-webkit-overflow-scrolling:touch;
  margin-right:-16px;padding-right:16px;mask-image:linear-gradient(90deg,#000 calc(100% - 26px),transparent)}
.card2 .st-meta::-webkit-scrollbar{display:none}
.card2 .mchip{display:inline-flex;align-items:center;gap:5px;flex:none;height:24px;padding:0 9px;border-radius:999px;font-size:12px;font-weight:600;
  color:var(--text);background:var(--fill);white-space:nowrap;line-height:1}
.card2 .mchip i{width:6px;height:6px;border-radius:50%;background:var(--grey);flex:none}
.card2 .mchip.ok{color:var(--ok);background:color-mix(in srgb, var(--ok) 13%, transparent)}
.card2 .mchip.ok i{background:var(--ok);box-shadow:0 0 0 2px color-mix(in srgb, var(--ok) 25%, transparent)}
.card2 .mchip.low{color:#B98A00;background:color-mix(in srgb, var(--low) 16%, transparent)}
.card2 .mchip.low i{background:var(--low)}
.card2 .mchip.no{color:var(--no);background:color-mix(in srgb, var(--no) 12%, transparent)}
.card2 .mchip.no i{background:var(--no)}
.card2 .mchip.fuel{font-variant-numeric:tabular-nums;background:var(--panel);box-shadow:inset 0 0 0 1px var(--border)}
.card2 .mchip.fuel b{font-weight:800}
.card2 .mchip.fuel em{font-style:normal;color:var(--dim);font-weight:500;margin-left:-2px}
:root[data-theme="light"] .card2 .mchip.low{color:#8a6500}

/* «дороже/дешевле, чем рядом» — строка на табло под светофором цены; красная = есть куда поехать (тап), зелёная = лучшая */
.card2 .compare{display:flex;align-items:center;gap:9px;width:100%;margin-top:10px;padding:9px 11px;border-radius:12px;border:0;text-align:left;
  font:inherit;font-size:13px;line-height:1.3;color:var(--text);background:var(--surface);cursor:default}
.card2 .compare i{width:8px;height:8px;border-radius:50%;flex:none;background:var(--grey)}
.card2 .compare span{flex:1;min-width:0}
.card2 .compare u{text-decoration:none;font-weight:700;border-bottom:1px dashed color-mix(in srgb, var(--text) 40%, transparent)}
.card2 .compare.worse{cursor:pointer;background:color-mix(in srgb, var(--no) 9%, var(--surface))}
.card2 .compare.worse i{background:var(--no)}
.card2 .compare.worse:active{transform:scale(.99)}
.card2 .compare.best{background:color-mix(in srgb, var(--ok) 10%, var(--surface))}
.card2 .compare.best i{background:var(--ok);box-shadow:0 0 8px var(--ok)}
.card2 .compare .cmp-chev{flex:none;color:var(--dim2);font-size:20px;line-height:1;margin-left:2px}

/* тренд цены на стеле: маленькая метка над правым краем цифр (▲ дороже — тепло, ▼ дешевле — зелёная) */
.card2 .lamp .v .tr{position:absolute;right:0;top:-9px;z-index:2;font-family:Inter,system-ui,sans-serif;font-style:normal;font-size:9.5px;font-weight:800;letter-spacing:0;line-height:1;text-shadow:none;opacity:.95}
.card2 .lamp .v .tr.up{color:#FFB35C}
.card2 .lamp .v .tr.dn{color:#30D56B}

/* два режима: вдали блок отметки свёрнут в строку «Были здесь?»; у заправки (.at-station) — раскрыт и стоит сразу под табло */
.card2 .vote-fold{display:flex;align-items:center;gap:11px;width:100%;margin:2px 0 16px;padding:11px 12px;border-radius:14px;border:0;text-align:left;
  font:inherit;color:var(--text);background:var(--surface);cursor:pointer}
.card2 .vote-fold:active{transform:scale(.99)}
.card2 .vote-fold .vf-ic{width:34px;height:34px;border-radius:10px;background:var(--fill);display:flex;align-items:center;justify-content:center;flex:none}
.card2 .vote-fold .vf-ic svg{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.card2 .vote-fold .vf-tx{flex:1;min-width:0;line-height:1.25}
.card2 .vote-fold .vf-tx b{display:block;font-size:14px;font-weight:700}
.card2 .vote-fold .vf-tx span{display:block;font-size:12.5px;color:var(--dim);margin-top:2px}
.card2 .vote-fold .vf-chev{color:var(--dim2);font-size:22px;flex:none}
.card2 .vote-block:not(.unfolded) > :not(.vote-fold){display:none!important}
.card2 .vote-block.unfolded .vote-fold{display:none}
.sheet.at-station .vote-block{margin:12px 0 6px}
.sheet.at-station .vote-block .cap{margin-top:2px}

/* «Сохранить» в ряду действий: сохранено — залитая закладка */
.card2 .act#save-act.on{color:var(--ok)}
.card2 .act#save-act.on svg{fill:currentColor}

/* ===== v3.2 (19.09): шторка с положениями, скелетон, график цены на стеле, «популярное время» ===== */
@media (max-width:899px){
  .sheet{transition:transform .28s cubic-bezier(.2,.8,.2,1),max-height .28s cubic-bezier(.2,.8,.2,1)}
  .sheet[data-detent="half"]{overflow:hidden}
  .sheet .grab{cursor:pointer}
  .sheet .grab::before{content:"";position:absolute;left:0;right:0;top:-10px;height:30px}   /* зона тапа по ручке */
  .sheet .grab{position:relative}
}
/* скелетон вместо «Загрузка…» — мерцающие плашки на месте вердикта */
.card2 .sk{display:block;border-radius:8px;background:linear-gradient(90deg,color-mix(in srgb,var(--text) 6%,transparent),color-mix(in srgb,var(--text) 13%,transparent),color-mix(in srgb,var(--text) 6%,transparent));
  background-size:200% 100%;animation:skm 1.2s linear infinite}
.card2 .sk-lbl{height:30px;width:170px;margin:4px 0 2px}
.card2 .sk-meta{height:13px;width:220px;margin-top:6px}
@keyframes skm{from{background-position:200% 0}to{background-position:-200% 0}}
@media (prefers-reduced-motion:reduce){.card2 .sk{animation:none}}

/* строка стелы — кликабельна, выбранная чуть подсвечена; график под ней */
.card2 .lamp{cursor:pointer;transition:background .2s}
.card2 .lamp.picked{background:rgba(255,255,255,.04);margin:0 -16px;padding-left:16px;padding-right:16px}
.card2 .lamp-chart{position:relative;z-index:1;margin:0 -6px;padding:8px 6px 10px;border-bottom:1px solid rgba(255,255,255,.07);color:#D6DCE6;
  animation:lcIn .25s ease-out both}
@keyframes lcIn{from{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:none}}
.card2 .lc-head{display:flex;align-items:baseline;gap:8px;font-size:12.5px;color:#8B96A8;margin-bottom:6px}
.card2 .lc-head b{color:#fff;font-weight:800;font-size:13px}
.card2 .lc-head span{flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.card2 .lc-head em{font-style:normal;font-weight:800;font-variant-numeric:tabular-nums;color:#8B96A8}
.card2 .lc-head em.up{color:#FFB35C}.card2 .lc-head em.dn{color:#30D56B}
.card2 .lamp-chart svg{display:block;width:100%;height:56px}
.card2 .lamp-chart .ln{fill:none;stroke:var(--led);stroke-width:2;vector-effect:non-scaling-stroke;stroke-linejoin:round}
.card2 .lamp-chart .ar{fill:var(--led);opacity:.14}
.card2 .lamp-chart circle{fill:var(--led);filter:drop-shadow(0 0 4px var(--led))}
.card2 .lc-ax{display:flex;justify-content:space-between;font-size:11px;color:#8B96A8;margin-top:4px;font-variant-numeric:tabular-nums}
.card2 .lc-note{font-size:11px;color:#6B7688;margin-top:4px}

/* «популярное время»: столбики по часам суток на всю ширину, текущий час горит; подпись оси 0·6·12·18·24 */
.card2 .pulse.has-pop{flex-wrap:wrap;gap:6px 12px}
.card2 .pulse.has-pop .pt{flex:1 1 100%}
.card2 .pulse .pop{display:flex;align-items:flex-end;gap:2px;height:40px;flex:1 1 100%;width:100%;margin-top:2px}
.card2 .pulse .pop i{flex:1;height:var(--h);border-radius:2px 2px 1px 1px;background:color-mix(in srgb, var(--ok) 45%, var(--dim2));transition:height .6s cubic-bezier(.2,.8,.2,1)}
.card2 .pulse .pop i.z{background:color-mix(in srgb, var(--text) 10%, transparent)}
.card2 .pulse .pop i.now{background:var(--ok);box-shadow:0 0 8px color-mix(in srgb, var(--ok) 70%, transparent)}
.card2 .pulse.old .pop i.now{background:var(--dim)}
.card2 .pulse .pop-ax{display:flex;justify-content:space-between;flex:1 1 100%;font-size:10.5px;color:var(--dim);margin-top:-2px;font-variant-numeric:tabular-nums}
.card2 .pulse .pt .vs{display:inline-block;margin-left:8px;padding:2px 8px;border-radius:999px;font-size:11.5px;font-weight:700;vertical-align:2px}
.card2 .pulse .pt .vs.quiet{color:var(--ok);background:color-mix(in srgb, var(--ok) 14%, transparent)}
.card2 .pulse .pt .vs.busy{color:var(--queue);background:color-mix(in srgb, var(--queue) 14%, transparent)}
.card2 .pulse .pt .vs.same{color:var(--dim);background:var(--fill)}

/* свайп по шапке к соседней АЗС (v3.2.1): шапка едет за пальцем, новая въезжает с противоположной стороны */
.card2 .sheet-head{will-change:transform;transition:transform .25s cubic-bezier(.2,.8,.2,1),opacity .25s}
.card2 .sheet-head.in-l{animation:headInL .32s cubic-bezier(.2,.8,.2,1) both}
.card2 .sheet-head.in-r{animation:headInR .32s cubic-bezier(.2,.8,.2,1) both}
@keyframes headInL{from{transform:translateX(70px);opacity:0}to{transform:none;opacity:1}}
@keyframes headInR{from{transform:translateX(-70px);opacity:0}to{transform:none;opacity:1}}
@media (prefers-reduced-motion:reduce){.card2 .sheet-head.in-l,.card2 .sheet-head.in-r{animation:none}}

/* ===== v3.4 (19.09): модалка «Как мы понимаем, есть ли бензин» — герой, весы, список, шкала ===== */
.rsh-card.ch2{padding:10px 20px calc(16px + var(--safe-b));max-height:92vh;overflow:auto;--c:var(--dim)}
.ch2-grab{width:36px;height:5px;border-radius:3px;background:var(--dim2);margin:0 auto 14px;opacity:.7}
.ch2-hero{display:flex;align-items:center;gap:16px;margin-bottom:10px}
.ch2-ring{position:relative;width:72px;height:72px;flex:none;--c:var(--dim)}
.ch2-ring svg{width:72px;height:72px;transform:rotate(-90deg)}
.ch2-ring circle{fill:none;stroke-width:6;stroke-linecap:round}
.ch2-ring .tr{stroke:color-mix(in srgb, var(--text) 9%, transparent)}
.ch2-ring .fg{stroke:var(--c);stroke-dasharray:194.8;stroke-dashoffset:calc(194.8 - 194.8 * var(--p,0) / 100);transition:stroke-dashoffset .9s cubic-bezier(.2,.8,.2,1) .1s,stroke .3s}
.ch2-ring b{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-size:20px;font-weight:800;letter-spacing:-.03em;font-variant-numeric:tabular-nums;color:var(--text)}
.ch2-ring b small{font-size:11px;font-weight:700;color:var(--dim);margin-left:1px}
.ch2-ht{flex:1;min-width:0}
.ch2-eyebrow{display:block;font-size:12px;font-weight:600;color:var(--dim);text-transform:uppercase;letter-spacing:.06em;margin-bottom:2px}
.ch2-ht h3{font-size:24px;font-weight:800;letter-spacing:-.025em;line-height:1.1;margin:0 0 6px}
.ch2-lvl{display:inline-flex;align-items:center;gap:6px;font-size:13px;font-weight:700}
.ch2-lvl i{width:8px;height:8px;border-radius:50%;background:currentColor;box-shadow:0 0 0 3px color-mix(in srgb, currentColor 22%, transparent)}
.ch2-lead{font-size:14.5px;line-height:1.4;color:var(--text);margin:0 0 14px}
.ch2-lead:empty{display:none}
.ch2-sec{margin-bottom:14px}
/* весы «за/против»: одна полоса, делится по массам свидетельств; заполняется от краёв */
.ch2-balance{position:relative;height:8px;border-radius:4px;overflow:hidden;background:color-mix(in srgb, var(--text) 8%, transparent);display:flex}
.ch2-balance .neg{width:calc(100% - var(--pos,50%));background:var(--no);transform-origin:left;transform:scaleX(0);transition:transform .7s cubic-bezier(.2,.8,.2,1) .35s}
.ch2-balance .pos{width:var(--pos,50%);background:var(--ok);transform-origin:right;transform:scaleX(0);transition:transform .7s cubic-bezier(.2,.8,.2,1) .35s}
.conf-help.anim .ch2-balance span,.route-sheet.anim .ch2-balance span{transform:scaleX(1)}
.ch2-bl{display:flex;justify-content:space-between;font-size:11.5px;font-weight:600;color:var(--dim);margin:6px 0 10px;font-variant-numeric:tabular-nums}
.ch2-bl span:last-child{color:var(--ok)}.ch2-bl span:first-child{color:var(--no)}
/* список свидетельств — системный grouped list: иконка · название/подпись · вес полоской · слово */
.ch2-list{list-style:none;margin:0;padding:0;border-radius:14px;background:var(--fill);overflow:hidden}
.ch2-list li{display:grid;grid-template-columns:30px 1fr 44px auto;align-items:center;gap:12px;min-height:54px;padding:8px 12px 8px 12px;opacity:0;transform:translateY(6px)}
.ch2-list li + li{border-top:1px solid color-mix(in srgb, var(--text) 8%, transparent)}
.route-sheet.anim .ch2-list li{animation:ch2In .4s cubic-bezier(.2,.8,.2,1) both;animation-delay:calc(.45s + var(--i,0) * .07s)}
@keyframes ch2In{to{opacity:1;transform:none}}
.ch2-ic{width:30px;height:30px;border-radius:9px;display:flex;align-items:center;justify-content:center;background:color-mix(in srgb, var(--text) 7%, transparent);color:var(--text)}
.ch2-ic .ic{width:16px;height:16px}
.ch2-list li.pos .ch2-ic{color:var(--ok)}.ch2-list li.neg .ch2-ic{color:var(--no)}
.ch2-tx{min-width:0;line-height:1.25}
.ch2-tx b{display:block;font-size:14.5px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ch2-tx span{display:block;font-size:12.5px;color:var(--dim);margin-top:1px}
.ch2-wt{height:5px;border-radius:3px;background:color-mix(in srgb, var(--text) 9%, transparent);overflow:hidden}
.ch2-wt i{display:block;height:100%;width:var(--w,20%);border-radius:3px;background:var(--dim);transform-origin:left;transform:scaleX(0);transition:transform .6s cubic-bezier(.2,.8,.2,1) calc(.6s + var(--i,0) * .07s)}
.route-sheet.anim .ch2-wt i{transform:scaleX(1)}
.ch2-list li.pos .ch2-wt i{background:var(--ok)}.ch2-list li.neg .ch2-wt i{background:var(--no)}
.ch2-say{font-size:12.5px;font-weight:700;min-width:30px;text-align:right}
.ch2-list li.pos .ch2-say{color:var(--ok)}.ch2-list li.neg .ch2-say{color:var(--no)}
/* шкала уверенности: 5 стопов, маркер едет к текущему; подпись — только про текущий уровень */
.ch2-scale{padding-top:4px}
.ch2-track{position:relative;height:6px;border-radius:3px;background:linear-gradient(90deg,var(--dim2),var(--low) 34%,var(--no) 50%,var(--ok) 68%,var(--ok));opacity:.9}
.ch2-track i{position:absolute;top:-3px;width:12px;height:12px;border-radius:50%;background:var(--panel);border:2px solid color-mix(in srgb, var(--text) 25%, transparent);transform:translateX(-50%)}
.ch2-track i:nth-child(1){left:18%}.ch2-track i:nth-child(2){left:34%}.ch2-track i:nth-child(3){left:50%}.ch2-track i:nth-child(4){left:68%}.ch2-track i:nth-child(5){left:100%}
.ch2-track b{position:absolute;top:-7px;left:var(--x,0%);width:20px;height:20px;border-radius:50%;background:var(--c);border:3px solid var(--panel);box-shadow:0 2px 8px rgba(0,0,0,.25);transform:translateX(-50%) scale(0);transition:left .8s cubic-bezier(.2,.8,.2,1) .5s,transform .3s ease-out .5s}
.route-sheet.anim .ch2-track b{transform:translateX(-50%) scale(1)}
.ch2-labels{display:flex;justify-content:space-between;font-size:10.5px;color:var(--dim);margin:10px 0 8px}
.ch2-labels span{flex:1;text-align:center}.ch2-labels span:first-child{text-align:left}.ch2-labels span:last-child{text-align:right}
.ch2-note{font-size:13.5px;line-height:1.4;color:var(--text);margin:0;padding:10px 12px;border-radius:12px;background:color-mix(in srgb, var(--c) 9%, var(--fill))}
.ch2-scale{--c:var(--dim)}
.ch2-fine{font-size:12px;line-height:1.4;color:var(--dim);margin:0 0 14px}
.ch2-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.ch2-primary,.ch2-secondary{height:50px;border-radius:14px;border:0;font:inherit;font-size:16px;font-weight:700;cursor:pointer}
.ch2-primary{background:var(--text);color:var(--panel)}
.ch2-secondary{background:var(--fill);color:var(--text)}
.ch2-primary:active,.ch2-secondary:active{transform:scale(.98)}
@media (prefers-reduced-motion:reduce){.ch2-ring .fg,.ch2-balance span,.ch2-wt i,.ch2-track b{transition:none}.route-sheet.anim .ch2-list li{animation:none;opacity:1;transform:none}}

/* ===== v3.5 (19.09): раскрытие «Покупки на АЗС» — банки, лента суток, факты, последние ===== */
.card2 .pulse-more{margin:-4px 0 14px;padding:12px 12px 10px;border-radius:14px;background:var(--fill)}
.card2 .pm-banks{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:8px;margin-bottom:12px}
.card2 .pm-bank{position:relative;display:grid;grid-template-columns:auto 1fr;grid-template-rows:auto auto;column-gap:8px;align-items:center;padding:9px 10px 12px;border-radius:12px;background:var(--panel);overflow:hidden}
.card2 .pm-bank b{font-size:14px;font-weight:700}
.card2 .pm-bank span{grid-column:2;font-size:12px;color:var(--dim);font-variant-numeric:tabular-nums}
.card2 .pm-bank u{position:absolute;left:0;bottom:0;height:3px;width:var(--w,0%);background:var(--c);border-radius:0 2px 2px 0;transform-origin:left;transform:scaleX(0);transition:transform .6s cubic-bezier(.2,.8,.2,1) .15s}
.card2 .pulse-more.anim .pm-bank u{transform:scaleX(1)}
.card2 .pm-mark{grid-row:1/3;display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:9px;background:var(--c);color:#fff;font-style:normal;font-weight:800;font-size:13px;flex:none}
.card2 .pm-mark.tbank,.card2 .pm-bank.tbank .pm-mark{color:#1a1a1a}
/* лента суток: две дорожки — Сбер сверху, Т-Банк снизу от оси; засечки появляются слева направо */
.card2 .pm-lane{position:relative;height:34px;margin:2px 4px 0}
.card2 .pm-base{position:absolute;left:0;right:0;top:50%;height:1px;background:color-mix(in srgb, var(--text) 18%, transparent)}
.card2 .pm-lane i{position:absolute;width:2px;border-radius:1px;transform:translateX(-50%) scaleY(0);transition:transform .35s cubic-bezier(.2,.8,.2,1) calc(.1s + var(--i,0) * .02s)}
.card2 .pm-lane i.sber{top:3px;height:calc(50% - 3px);background:#21A038;transform-origin:bottom}
.card2 .pm-lane i.tbank{bottom:3px;height:calc(50% - 3px);background:#E5C400;transform-origin:top}
.card2 .pm-lane i.yandex{bottom:3px;height:calc(50% - 3px);background:#FC3F1D;transform-origin:top;opacity:.85}
.card2 .pulse-more.anim .pm-lane i{transform:translateX(-50%) scaleY(1)}
.card2 .pm-ax{position:relative;height:14px;margin:2px 4px 12px;font-size:10.5px;color:var(--dim);font-variant-numeric:tabular-nums}
.card2 .pm-ax span{position:absolute;top:0;transform:translateX(-50%)}
.card2 .pm-ax span.now{right:0;left:auto;transform:none}
.card2 .pm-facts{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;margin-bottom:12px}
.card2 .pm-facts div{padding:8px 4px;border-radius:10px;background:var(--panel);text-align:center;line-height:1.15}
.card2 .pm-facts b{display:block;font-size:14px;font-weight:800;letter-spacing:-.01em;font-variant-numeric:tabular-nums;white-space:nowrap}
.card2 .pm-facts span{display:block;font-size:10.5px;color:var(--dim);margin-top:3px}
.card2 .pm-feed{list-style:none;margin:0;padding:0;border-radius:12px;background:var(--panel);overflow:hidden}
.card2 .pm-feed li{display:grid;grid-template-columns:auto auto 1fr auto;align-items:center;gap:10px;padding:8px 12px;min-height:42px;opacity:0;transform:translateY(4px)}
.card2 .pm-feed li + li{border-top:1px solid color-mix(in srgb, var(--text) 7%, transparent)}
.card2 .pulse-more.anim .pm-feed li{animation:ch2In .35s cubic-bezier(.2,.8,.2,1) both;animation-delay:calc(.3s + var(--i,0) * .05s)}
.card2 .pm-feed .pm-mark{width:24px;height:24px;border-radius:8px;font-size:12px}
.card2 .pm-feed b{font-size:15px;font-weight:700;font-variant-numeric:tabular-nums}
.card2 .pm-feed span{font-size:13px;color:var(--dim)}
.card2 .pm-feed em{font-style:normal;font-size:12.5px;color:var(--dim);font-variant-numeric:tabular-nums}
.card2 .pm-more{font-size:12.5px;color:var(--dim);text-align:center;padding:8px 0 2px}
.card2 .pm-note{font-size:11.5px;line-height:1.4;color:var(--dim);margin-top:10px}
@media (prefers-reduced-motion:reduce){.card2 .pm-bank u,.card2 .pm-lane i{transition:none;transform:none}.card2 .pulse-more.anim .pm-feed li{animation:none;opacity:1;transform:none}}

/* строка «Яндекс Заправки» на табло (19.09): темп · очередь · давность; источник мелко справа */
.card2 .yline{display:flex;align-items:center;gap:9px;margin-top:10px;padding:9px 11px;border-radius:12px;background:var(--surface);font-size:13px;line-height:1.3;color:var(--text)}
.card2 .yline .ic{width:16px;height:16px;flex:none;color:#FC3F1D}
.card2 .yline span{flex:1;min-width:0}
.card2 .yline em{font-style:normal;font-weight:700}
.card2 .yline em.ok{color:var(--ok)}.card2 .yline em.low{color:#B98A00}.card2 .yline em.no{color:var(--no)}
.card2 .yline small{flex:none;font-size:10.5px;color:var(--dim);white-space:nowrap}

/* лимит отпуска на строке стелы (benzuber): маленькая метка под правым краем цифр */
.card2 .lamp.off .v .lim{color:#8B96A8}

/* пин с логотипом (19.09): крупнее обычного — кольцо цвета статуса 3px, внутри белый круг со знаком сети */
.bz-pin.has-logo{width:44px;height:54px}
.bz-pin.has-logo .pin-body{left:2px;top:1px;width:40px;height:40px}
.bz-pin.has-logo .pin-foot{left:19px;bottom:4px}
.bz-pin.has-logo .pin-ic{left:6px;top:5px;width:32px;height:32px;background:#fff;border-radius:50%;box-shadow:inset 0 0 0 1px rgba(0,0,0,.06)}
.bz-pin .pin-logo{width:86%;height:86%;object-fit:contain;display:block}
.bz-pin .pin-logo.wide{width:94%;height:94%}
.bz-pin.has-logo .pin-q{right:0;top:-1px}
/* «вырастает из земли, как гриб» (как на gdebenz.ru): ножка тянется вверх, шляпка раскрывается с отскоком */
.bz-pin.grow{transform-origin:50% 100%;animation:pinGrow .62s cubic-bezier(.2,.9,.25,1.15) both;animation-delay:var(--gd,0s)}
@keyframes pinGrow{0%{transform:scale(.15,0);opacity:0}35%{transform:scale(.55,1.18);opacity:1}62%{transform:scale(1.12,.9)}82%{transform:scale(.97,1.03)}100%{transform:scale(1,1)}}
.bz-pin.grow .pin-foot{animation:pinFoot .62s ease-out both;animation-delay:var(--gd,0s)}
@keyframes pinFoot{0%{transform:scale(2.4);opacity:0}40%{opacity:.9}100%{transform:scale(1);opacity:1}}
@media (prefers-reduced-motion:reduce){.bz-pin.grow,.bz-pin.grow .pin-foot{animation:none}}
.brand-logo.real{background:#fff!important;padding:5px!important;border-radius:12px!important;box-shadow:inset 0 0 0 1px rgba(0,0,0,.06)}
.la-logo.real{background:#fff;padding:2px;object-fit:contain}

/* цена неизвестна — горят прочерки полным размером, чуть приглушённо */
.card2 .lamp .v b.dash{opacity:.85}

/* ===== v3.6 (19.09): кнопки карточки как в Apple Maps, строка АЗС со «стела-чипами», панель поиска ===== */
/* действия: одна главная капсула «Ехать» + круглые иконки; всё одной высоты 50px */
.card2 .act-row{display:grid;grid-template-columns:1fr 50px 50px;gap:10px;margin:2px 0 16px}
.card2 .act{height:50px;border-radius:25px;flex-direction:row;gap:8px;font-size:16px;font-weight:650;letter-spacing:-.01em;
  background:var(--fill);color:var(--text);border:0;position:relative;transition:transform .15s ease, background .2s}
.card2 .act svg{width:19px;height:19px}
.card2 .act-go,.card2 .act-route{background:var(--ok);color:#06110a;box-shadow:0 6px 16px -6px color-mix(in srgb, var(--ok) 70%, transparent)}
.card2 .act-go em,.card2 .act-route em{font-size:13px;font-weight:600;color:rgba(6,17,10,.62);padding-left:8px;border-left:1px solid rgba(6,17,10,.18);line-height:18px}
.card2 .act-ic{width:50px;padding:0}
.card2 .act-ic span{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
.card2 .act-ic em{position:absolute;top:-3px;right:-3px;min-width:19px;height:19px;padding:0 5px;border-radius:10px;background:var(--ok);color:#06110a;
  font-style:normal;font-size:11px;font-weight:800;line-height:19px;border:2px solid var(--panel)}
.card2 .act-ic em:empty{display:none}
.card2 .act:active{transform:scale(.96)}
.card2 .act:focus-visible{outline:2px solid var(--ok);outline-offset:2px}

/* строка АЗС (Рядом, поиск) */
.srow{display:grid!important;grid-template-columns:40px 1fr auto;align-items:center;gap:12px;padding:10px 16px!important;border:0!important;position:relative;text-align:left;width:100%;background:none;color:inherit;font:inherit}
.srow + .srow::before{content:"";position:absolute;left:68px;right:16px;top:0;height:.5px;background:var(--sep,rgba(128,128,128,.25))}
.srow .b{min-width:0;display:flex;flex-direction:column;gap:3px}
.srow .nm{font-size:16px;font-weight:600;letter-spacing:-.01em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.srow .mt{font-size:13px;color:var(--dim);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin:0}
.srow .mt b{font-weight:600}
.srow .mt em{font-style:normal}
.srow .mt em::before{content:" · "}
.srow .rs{display:flex;flex-direction:column;align-items:flex-end;gap:3px;white-space:nowrap}
.srow .rs b{font-size:15px;font-weight:700;font-variant-numeric:tabular-nums;letter-spacing:-.01em}
.srow .rs b small{font-size:12px;font-weight:500;color:var(--dim)}
.srow .rs>small{font-size:12px;color:var(--dim)}
.srow:active{background:var(--fill)}
/* мини-стела: тёмная плашка, цифры цветом наличия — тот же язык, что табло в карточке */
.fchips{display:flex;gap:3px;margin-top:1px}
.fchips i{font-style:normal;font-family:"DSEG7",ui-monospace,monospace;font-size:10.5px;line-height:1;padding:3px 5px 2px;border-radius:5px;background:#12161d;letter-spacing:.04em}
.fchips i.on{color:#35e07a;text-shadow:0 0 6px rgba(53,224,122,.55)}
.fchips i.off{color:#ff5a64;opacity:.8}
.srow .li-av,.srow .la-mark{width:40px;height:40px}

/* поиск на телефоне: панель во всю ширину до таб-бара */
@media (max-width:899px){
  .search-results:not([hidden]){position:fixed;left:12px;right:12px;width:auto;padding:6px 0;overflow-y:auto;overscroll-behavior:contain;
    border-radius:20px;box-shadow:0 18px 50px -12px rgba(0,0,0,.35);z-index:1000}
  .search-results .srow{border-radius:0}
}
/* пока открыт поиск, список «Рядом» или карточка — всплывашки «Поделись» и спонсор не лезут поверх */
body.searching .share-toast,body.searching .rsec-card,body.near-open .share-toast,body.near-open .rsec-card{opacity:0!important;pointer-events:none!important;transform:translateY(12px)}
.short-best{margin:4px 16px 8px!important;border-radius:16px!important;border:0!important;background:color-mix(in srgb, var(--ok) 12%, var(--panel))!important}
body:has(#sheet.open) .share-toast{opacity:0!important;pointer-events:none!important}
/* v3.6 доводка: статус и мини-стела в одну строку, адрес (поиск) третьей строкой; буквенные виды — обычным жирным */
.srow .mt{display:flex;align-items:center;gap:8px}
.srow .mt b{flex:none}
.srow .ad{font-size:12.5px;color:var(--dim);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.fchips{margin:0}
.fchips i.w{font-family:Inter,system-ui,sans-serif;font-weight:800;font-size:9.5px;letter-spacing:.02em;padding:3px 5px}
.short-best{width:calc(100% - 32px)!important;box-sizing:border-box}

/* v3.7: лимит — своя LED-колонка на табло. Янтарь (#FFB21A) — цвет «ограничения» на реальных стелах; те же сегменты DSEG7,
   те же погасшие «88» позади, что у цены. Шапка колонок — тонкая строка сверху, появляется только при лимитах. */
.card2 .lamps.has-lim .lamp{grid-template-columns:auto 1fr auto auto;column-gap:14px}
.card2 .lamp .lim{position:relative;z-index:1;font-family:"DSEG7",monospace;font-size:21px;line-height:1;letter-spacing:.05em;text-align:right;min-width:2.2ch}
.card2 .lamp .lim .ghost{font-style:normal;position:absolute;right:0;top:0;color:#FFB21A;opacity:.13}
.card2 .lamp .lim b{font-weight:400;position:relative;color:#FFC24A;text-shadow:0 0 6px rgba(255,178,26,.75),0 0 16px rgba(255,150,0,.35)}
.card2 .lamp.off .lim b{opacity:.28;text-shadow:none}
.card2 .lamp .lim:empty{min-width:0}
.card2 .lamps:not(.has-lim) .lamp .lim{display:none}
.card2 .lamp-hd{display:grid;grid-template-columns:auto 1fr auto auto;column-gap:14px;padding:4px 0 6px;border-bottom:1px solid rgba(255,255,255,.07);
  font-size:10.5px;font-weight:600;letter-spacing:.02em;color:rgba(255,255,255,.42)}
.card2 .lamp-hd span:nth-child(1){width:80px}
.card2 .lamp-hd span:nth-child(2){text-align:right;color:rgba(255,194,74,.75);grid-column:3}
.card2 .lamp-hd span:nth-child(3){text-align:right;grid-column:4}
.card2 .lamps.ignite .lamp .lim b{animation:ledOn .45s ease-out both;animation-delay:calc(.25s + var(--i,0) * .1s)}
@media (prefers-reduced-motion:reduce){.card2 .lamps.ignite .lamp .lim b{animation:none}}
/* колонки табло фиксированной ширины — строки отдельные сетки, иначе лимит «плывёт» от ширины цены */
.card2 .lamps.has-lim .lamp{grid-template-columns:80px 1fr 46px 124px}
.card2 .lamps.has-lim .lamp .v{text-align:right;justify-self:end}
.card2 .lamps.has-lim .lamp .lim{width:46px}
.card2 .lamp-hd{grid-template-columns:80px 1fr 46px 124px}
.card2 .lamp-hd span:nth-child(2){white-space:nowrap;justify-self:end}
/* подгонка: цене 132px (888.88 в DSEG 28px), лимиту 40px; лимит мельче и оранжевее — не сливается с жёлтой ценой Роснефти */
.card2 .lamps.has-lim .lamp,.card2 .lamp-hd{grid-template-columns:80px 1fr 40px 132px;column-gap:10px}
.card2 .lamps.has-lim .lamp .lim{width:40px;font-size:18px}
.card2 .lamp .lim b{color:#FF9D2E;text-shadow:0 0 5px rgba(255,140,20,.8),0 0 14px rgba(255,110,0,.35)}
.card2 .lamp .lim .ghost{color:#FF8A1F}
.card2 .lamp-hd span:nth-child(2){color:rgba(255,157,46,.8)}
/* пока открыт поиск, шторка «Рядом» уступает место панели результатов */
body.searching .nearsheet{opacity:0;pointer-events:none;transition:opacity .15s}
/* десктоп: шапка (логотип + поиск) выше полосы вкладок; пока идёт поиск — шапка с результатами поверх всего */
@media (min-width:900px){ body.searching .topbar{z-index:1100} }
/* v3.8: чипы шапки переносятся на вторую строку, а не уезжают за край; удобства — после статусов */
.card2 .st-meta{flex-wrap:wrap;overflow:visible;mask-image:none;-webkit-mask-image:none;margin-right:0;padding-right:0;row-gap:6px}
.card2 .pricelight .limnote{font-style:normal;font-weight:700;color:#E8871A}
.card2 .lamp-hd{display:none}
/* v3.9: шапка колонок табло — по подписи над каждой колонкой, на её оси; приглушённый белый, у лимита — оранжевый */
.card2 .lamp-hd2{display:grid;grid-template-columns:80px 1fr 132px;column-gap:10px;align-items:end;padding:2px 0 7px;border-bottom:1px solid rgba(255,255,255,.07);
  font-size:11px;font-weight:600;letter-spacing:.01em;color:rgba(255,255,255,.45);line-height:1.1}
.card2 .lamps.has-lim .lamp-hd2{grid-template-columns:80px 1fr 40px 132px}
.card2 .lamp-hd2 .c-led{justify-self:start;transform:translateX(calc(5px - 50%))}   /* центр подписи = центр лампочки (10px) */
.card2 .lamp-hd2 .c-lim{justify-self:center;text-align:center;color:rgba(255,157,46,.85);white-space:nowrap}
.card2 .lamp-hd2 .c-lim small{font-size:9.5px;font-weight:600;opacity:.8}
.card2 .lamp-hd2 .c-pr{justify-self:end;text-align:right}
/* v3.9b: подписи колонок — тоже светодиоды: жирный кегль, ореол и решётка диодов (как «ДТ»/«Газ»), шаг решётки мельче под малый кегль */
.card2 .lamp-hd2{font-size:12px;font-weight:800;letter-spacing:.06em;color:rgba(255,255,255,.78);border-bottom-color:rgba(255,255,255,.06)}
.card2 .lamp-hd2>span{position:relative;text-shadow:0 0 1px #fff,0 0 5px rgba(255,255,255,.55)}
.card2 .lamp-hd2>span::after{content:"";position:absolute;inset:-1px;pointer-events:none;background:radial-gradient(circle,transparent 0 .55px,rgba(4,6,9,.55) .8px) 0 0/1.6px 1.6px}
.card2 .lamp-hd2 .c-lim{color:#FF9D2E;text-shadow:0 0 1px #FFB25A,0 0 6px rgba(255,140,20,.7)}
.card2 .lamp-hd2 .c-lim small{font-size:10px;font-weight:800;opacity:.9}
.card2 .lamp-hd2>span:first-child{grid-column:1}
.card2 .lamp-hd2 .c-led{grid-column:2}
.card2 .lamp-hd2 .c-lim{grid-column:3}
.card2 .lamp-hd2 .c-pr{grid-column:3;grid-row:1}
.card2 .lamps.has-lim .lamp-hd2 .c-pr{grid-column:4}
.card2 .lamp-hd2>span{grid-row:1}
.card2 .lamp-hd2{grid-template-columns:80px minmax(0,1fr) 132px}
.card2 .lamps.has-lim .lamp-hd2{grid-template-columns:80px minmax(0,1fr) 40px 132px}
.card2 .lamp-hd2 .c-led{white-space:nowrap}

/* ===== v4.0: живое табло — бегущая строка и «косяки» диодов ===== */
.card2 .led-ticker{position:relative;height:22px;margin:4px -16px -8px;padding:0;overflow:hidden;border-top:1px solid rgba(255,255,255,.06);border-radius:0 0 14px 14px;
  background:linear-gradient(180deg,rgba(0,0,0,.25),transparent)}
.card2 .led-ticker span{position:absolute;left:0;top:3px;white-space:nowrap;font-size:13px;font-weight:800;letter-spacing:.05em;line-height:16px;color:#FF8A1F;
  text-shadow:0 0 1px #FFB25A,0 0 6px rgba(255,120,0,.75);transform:translateX(var(--from,400px))}
.card2 .led-ticker span::after{content:"";position:absolute;inset:-2px;pointer-events:none;background:radial-gradient(circle,transparent 0 .55px,rgba(4,6,9,.6) .85px) 0 0/1.7px 1.7px}
@keyframes ledRun{from{transform:translateX(var(--from,400px))}to{transform:translateX(var(--to,-400px))}}

/* косяки — коротко и редко */
.card2 .lamp.g-flicker{animation:gFlicker .7s steps(1) 1}
@keyframes gFlicker{0%{opacity:1}12%{opacity:.25}20%{opacity:1}34%{opacity:.4}40%{opacity:1}72%{opacity:.6}78%{opacity:1}}
.card2 .lamps.g-brown{animation:gBrown .7s ease-in-out 1}
@keyframes gBrown{0%,100%{filter:none}35%{filter:brightness(.55) saturate(.8)}55%{filter:brightness(.8)}}
.card2 .lamp.g-jitter{animation:gJit .7s steps(1) 1}
@keyframes gJit{0%{transform:none}15%{transform:translateX(2px)}30%{transform:translateX(-1px)}45%{transform:none}70%{transform:translateY(1px)}85%{transform:none}}
.card2 .lamp.g-blink .led{animation:gBlink .7s steps(1) 1}
@keyframes gBlink{0%,40%,80%{opacity:.15}20%,60%,100%{opacity:1}}
/* «битый» столбец диодов поверх цены */
.card2 .lamp.g-deadcol .v::before{content:"";position:absolute;z-index:3;top:-2px;bottom:-2px;left:58%;width:3px;background:#07090c;box-shadow:0 0 0 .5px #07090c}
/* подгоревший оттенок строки */
.card2 .lamp.g-hue .v b{filter:hue-rotate(-28deg) saturate(1.2);transition:filter .6s}
/* половина строки тусклее — отвалился драйвер */
.card2 .lamp.g-halfrow::after{content:"";position:absolute;inset:50% 0 0 0;z-index:3;pointer-events:none;background:rgba(6,8,12,.5)}
.card2 .lamp{position:relative}
/* залипший «призрак» — погасшие восьмёрки чуть светятся */
.card2 .lamp.g-ghost .v .ghost{opacity:.4!important;transition:opacity .4s}
/* самотест: всё табло на миг вспыхивает 88.88 */
.card2 .lamps.g-selftest .lamp .v .ghost{opacity:.9!important}
.card2 .lamps.g-selftest .lamp .v b,.card2 .lamps.g-selftest .lamp .lim b{opacity:0}
/* развёртка: светлая полоса пробегает сверху вниз */
.card2 .lamps.g-scan::after{content:"";position:absolute;left:0;right:0;height:18%;top:-20%;z-index:4;pointer-events:none;border-radius:inherit;
  background:linear-gradient(180deg,transparent,rgba(255,255,255,.07),transparent);animation:gScan 1.2s linear 1}
@keyframes gScan{to{top:100%}}
@media (prefers-reduced-motion:reduce){.card2 .led-ticker{display:none}}
/* доводка шапки: подписи компактнее, «есть» по центру высоты — не читается слитно с «л/сут» */
.card2 .lamp-hd2{font-size:11px;letter-spacing:.03em;align-items:center}
.card2 .lamp-hd2 .c-lim{justify-self:center;align-items:center;text-align:center;line-height:1.15}
.card2 .lamp-hd2 .c-lim small{font-size:9px}
.card2 .lamp-hd2 .c-pr{align-self:end}
/* «битый» столбец — тонкий и не угольно-чёрный */
.card2 .lamp.g-deadcol .v::before{width:2px;background:rgba(7,9,12,.85);box-shadow:none}
/* сетка диодов — маской по самим буквам (без тёмных прямоугольников вокруг подписей и бегущей строки) */
.card2 .lamp-hd2>span::after,.card2 .led-ticker span::after{display:none}
.card2 .lamp-hd2>span,.card2 .led-ticker span{-webkit-mask:radial-gradient(circle,#000 0 .62px,rgba(0,0,0,.35) .9px) 0 0/1.55px 1.55px;mask:radial-gradient(circle,#000 0 .62px,rgba(0,0,0,.35) .9px) 0 0/1.55px 1.55px}
.card2 .lamp-hd2 .c-lim{justify-self:end;align-items:flex-end;text-align:right}
.card2 .lamp-hd2 .c-lim{font-size:10px;letter-spacing:0}
.card2 .lamp-hd2 .c-lim small{font-size:8.5px;letter-spacing:0}

/* ===== Очередь v4 (19.09) — владелец: «непонятно, что с очередью; где это в карточке?» =====
   1) строка очереди прямо в шапке вердикта; 2) блок-«счётчик» сразу под уверенностью, до табло;
   3) на пине «18 мин», на карте — ярлык у хвоста. */
.card2 .verdict .q-hero{grid-column:2;display:inline-flex;align-items:center;gap:6px;justify-self:start;margin-top:8px;padding:6px 11px 6px 9px;border-radius:999px;
  background:color-mix(in srgb, var(--qc) 16%, transparent);color:color-mix(in srgb, var(--qc) 70%, var(--text));font-size:14px;font-weight:700;letter-spacing:-.01em}
.card2 .verdict .q-hero svg{width:15px;height:15px;stroke:currentColor;fill:none;stroke-width:2.2}
.card2 .verdict .q-hero i{font-style:normal;font-weight:800}.card2 .verdict .q-hero i.up{color:var(--no)}.card2 .verdict .q-hero i.down{color:var(--ok)}
.card2 .st-queue{margin:12px 0 0;padding:12px 14px 12px;border:0;border-radius:16px;background:color-mix(in srgb, var(--text) 5%, transparent);font-size:14px}
.card2 .st-queue .q-lbl{display:inline-flex;align-items:center;gap:6px;font-size:13px;font-weight:600;color:var(--dim)}
.card2 .st-queue .q-lbl svg{width:14px;height:14px;stroke:currentColor;fill:none;stroke-width:2.2}
.card2 .st-queue .q-cars{display:flex;align-items:center;gap:2px;margin:10px 0 6px;overflow:hidden}
.card2 .st-queue .q-cars svg{width:20px;height:20px;flex:none;fill:none;stroke:var(--qc);stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;animation:qcar .9s ease-in-out infinite alternate}
.card2 .st-queue .q-cars svg:nth-child(2n){animation-delay:.3s}.card2 .st-queue .q-cars svg:nth-child(3n){animation-delay:.6s}
@keyframes qcar{to{transform:translateX(1.5px)}}
.card2 .st-queue .q-cars b{font-size:12px;font-weight:700;color:var(--qc);margin:0 4px}
.card2 .st-queue .q-cars .q-pump{margin-left:auto;display:flex;padding-left:8px;border-left:2px dashed color-mix(in srgb, var(--text) 18%, transparent)}
.card2 .st-queue .q-cars .q-pump svg{width:18px;height:18px;stroke:var(--text);opacity:.6;animation:none}
.card2 .st-queue .q-src{margin-top:5px;font-size:12.5px;color:var(--dim);line-height:1.4}
.card2 .st-queue .q-cta{display:inline-flex;align-items:center;gap:7px;margin-top:10px;padding:9px 14px;border:0;border-radius:999px;background:var(--text);color:var(--bg);font-size:13.5px;font-weight:600;cursor:pointer}
.card2 .st-queue .q-cta.ghost{background:color-mix(in srgb, var(--text) 9%, transparent);color:var(--text)}
.card2 .st-queue .q-cta svg{width:14px;height:14px;stroke:currentColor;fill:none;stroke-width:2.2}
@media (prefers-reduced-motion:reduce){.card2 .st-queue .q-cars svg{animation:none}}
/* пин: «18 мин» читается, пока не приблизишь */
.bz-pin .pin-wait{font-size:11px;padding:2px 7px;border-radius:9px;top:-11px;line-height:14px}
/* очередь v4.1 — компактно: две строки */
.card2 .st-queue{padding:10px 14px}
.card2 .st-queue .q-big{font-size:20px}
.card2 .st-queue .q-src{margin-top:3px;display:flex;flex-wrap:wrap;align-items:center;gap:0 4px}
.card2 .st-queue .q-dg{border-bottom:1px dotted currentColor;cursor:help}
.card2 .st-queue .q-lnk{margin-left:auto;padding:4px 10px;border:0;border-radius:999px;background:color-mix(in srgb, var(--text) 9%, transparent);color:var(--text);font-size:12.5px;font-weight:600;cursor:pointer}
/* очередь v4.2 — один раз, в шапке: чип + строка деталей */
.card2 .verdict .q-sub{grid-column:2;display:flex;flex-wrap:wrap;align-items:center;gap:0 4px;margin-top:6px;font-size:12.5px;color:var(--dim);line-height:1.4}
.card2 .verdict .q-sub .q-dg{border-bottom:1px dotted currentColor;cursor:help}
.card2 .verdict .q-sub .q-lnk{margin-left:auto;padding:3px 10px;border:0;border-radius:999px;background:color-mix(in srgb, var(--text) 9%, transparent);color:var(--text);font-size:12px;font-weight:600;cursor:pointer}
/* v4.3: «Уточнить» — не таблетка с прижимом вправо (криво при переносе), а ссылка в конце строки */
.card2 .verdict .q-sub{display:block;margin-top:5px}
.card2 .verdict .q-sub .q-lnk{margin:0 0 0 6px;padding:0;background:none;color:var(--blue);font-size:12.5px;font-weight:600;border-radius:0}
.card2 .verdict .q-sub .q-lnk::after{content:" ›"}

/* ===== Очередь v4.4 — одна плашка в вердикте: икона | текст | действие (сетка, ничего не плавает) ===== */
.card2 .verdict .qrow{grid-column:1/-1;display:grid;grid-template-columns:28px minmax(0,1fr) auto;align-items:center;column-gap:10px;margin-top:12px;padding:10px 12px;border-radius:14px;
  background:color-mix(in srgb, var(--qc) 12%, transparent)}
.card2 .verdict .qrow-ic{width:28px;height:28px;border-radius:50%;background:color-mix(in srgb, var(--qc) 22%, transparent);display:flex;align-items:center;justify-content:center;color:color-mix(in srgb, var(--qc) 75%, var(--text))}
.card2 .verdict .qrow-ic svg{width:15px;height:15px;stroke:currentColor;fill:none;stroke-width:2.2}
.card2 .verdict .qrow-t{min-width:0;display:flex;flex-direction:column;gap:1px}
.card2 .verdict .qrow-t b{font-size:15px;font-weight:700;letter-spacing:-.01em;color:color-mix(in srgb, var(--qc) 70%, var(--text));line-height:1.25}
.card2 .verdict .qrow-t b i{font-style:normal}.card2 .verdict .qrow-t b i.up{color:var(--no)}.card2 .verdict .qrow-t b i.down{color:var(--ok)}
.card2 .verdict .qrow-t>span{font-size:12.5px;color:var(--dim);line-height:1.35}
.card2 .verdict .qrow-t .q-dg{border-bottom:1px dotted currentColor;cursor:help}
.card2 .verdict .qrow .q-lnk{margin:0;padding:6px 10px;border:0;border-radius:999px;background:color-mix(in srgb, var(--text) 8%, transparent);color:var(--text);font-size:12.5px;font-weight:600;cursor:pointer;white-space:nowrap}
.card2 .verdict .qrow .q-lnk::after{content:none}
.card2 .verdict .q-hero,.card2 .verdict .q-sub{display:none}
.card2 .verdict .qrow-t b{white-space:nowrap}
