/* ScanLex — стили страницы /buy.php. Общая часть — css/ui.css + css/auth.css. */

/* Вкладки-фильтры групп: тарифов много, без разделения человек теряется «что брать» */
.gtabs{display:flex;gap:4px;flex-wrap:wrap;background:rgba(255,255,255,.7);
       border:1px solid var(--glassb);padding:4px;border-radius:999px;margin:0 0 18px}
.gtab{display:flex;align-items:center;gap:7px;padding:9px 16px;border:0;border-radius:999px;
      background:transparent;color:var(--mute);font-family:var(--sans);font-size:13.5px;
      font-weight:600;cursor:pointer;line-height:1.2;text-decoration:none;white-space:nowrap}
.gtab:hover{color:var(--ink);text-decoration:none}
.gtab.act{background:var(--surface);color:var(--ink);box-shadow:0 1px 2px rgba(20,20,20,.12)}
.gtab .gdot{width:8px;height:8px;border-radius:50%;flex:0 0 auto}
.gtab[data-g="online"] .gdot{background:#137333}
.gtab[data-g="scan"] .gdot{background:#6D28D9}
.gtab[data-g="offline"] .gdot{background:var(--accent)}
.ghint{font-size:13.5px;line-height:1.5;color:var(--mute);margin:-6px 0 18px}
.ghint b{color:var(--ink);font-weight:600}
@media(max-width:560px){.gtab{padding:8px 12px;font-size:13px}}

/* Секция группы тарифов */
.osection{margin:0 0 26px}
.osection .sname{font-weight:600;font-size:18px;line-height:1.3;letter-spacing:-.02em;
                 color:var(--ink);margin:2px 0 4px}
.osection .sdesc{font-size:13.5px;line-height:1.5;color:var(--mute);margin:0 0 14px}

/* Карточка тарифа */
.ocard{border:1px solid var(--glassb);border-radius:18px;padding:20px 22px;
       background:var(--glass);box-shadow:var(--shadow);margin:0 0 14px}
.ocard.best{background:rgba(255,255,255,.92);border:1.5px solid var(--accent);
            box-shadow:0 24px 56px -34px color-mix(in oklab,var(--accent) 70%,transparent)}
.ocard .plan{font-weight:600;font-size:16px;line-height:1.3;color:var(--ink)}
.ocard .psub{color:var(--mute);font-size:13px;line-height:1.45;margin:4px 0 10px}
.ocard .price{font-weight:600;font-size:30px;letter-spacing:-.03em;color:var(--ink)}
.ocard .price small{font-size:13.5px;font-weight:400;color:var(--mute);letter-spacing:0}
.ocard ul{list-style:none;padding:0;margin:12px 0 16px;display:flex;flex-direction:column;gap:8px}
.ocard li{position:relative;padding-left:20px;font-size:14px;line-height:1.45;color:var(--mute)}
.ocard li:before{content:"·";position:absolute;left:4px;top:-3px;color:var(--accent);
                 font-weight:700;font-size:20px}

/* Ряд тарифов. 170px, а не 200: у онлайна ЧЕТЫРЕ тарифа — при 200px четвёртый уезжал
   на свою строку и группа выглядела «3+1». */
.ocards{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:14px}
@media(max-width:760px){.ocards{grid-template-columns:1fr 1fr}}
@media(max-width:480px){.ocards{grid-template-columns:1fr}}
/* Карточки в ряду — одной высоты, кнопка прижата к низу: заголовки тарифов разной длины,
   иначе цены с кнопками «пляшут». Срок — ПОД ценой: строка «250 ₽ / 7 дней» рвалась пополам. */
.ocards .ocard{margin:0;padding:18px;display:flex;flex-direction:column}
.ocards .ocard .price small{display:block;margin-top:4px;font-size:12.5px}
.ocards .ocard .type-badge{align-self:flex-start}
.ocards .ocard .plan{min-height:3.9em}
.ocards .ocard .psub{min-height:2.6em}
.ocards .ocard ul{flex:1}
.ocards .ocard .pick{margin-top:auto}

/* Кнопка выбора тарифа */
.pick{display:block;text-align:center;border:1.5px solid var(--ink);background:transparent;
      color:var(--ink);border-radius:999px;padding:11px 16px;font-weight:600;font-size:14.5px}
.pick:hover{background:rgba(255,255,255,.85);color:var(--ink);text-decoration:none}
.who{font-size:13.5px;line-height:1.5;color:var(--mute);margin:0 0 16px}
.chg{display:inline-block;margin-top:16px;font-size:14px}

.type-badge{display:inline-block;font-size:11.5px;font-weight:600;padding:3px 10px;
            border-radius:999px;margin-bottom:10px}
.type-badge.off{background:rgba(37,99,235,.10);color:var(--accent)}
.type-badge.on{background:#ECFDF3;color:#137333}
.type-badge.ai{background:#F3EEFF;color:#6D28D9}

/* Количество лицензий (только офлайн-тариф) */
.qtyrow{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:4px 0 10px}
.qtyrow label{font-weight:600;color:var(--ink);font-size:15px}
.qtyctl{display:inline-flex;align-items:center;border:1px solid var(--line2);border-radius:999px;
        overflow:hidden;background:#fff}
.qbtn{width:44px;height:44px;border:0;background:transparent;color:var(--accent);font-size:22px;
      font-weight:600;cursor:pointer;line-height:1}
.qbtn:hover{background:rgba(37,99,235,.08)}
.qtyctl input{width:66px;height:44px;border:0;border-left:1px solid var(--line2);
      border-right:1px solid var(--line2);text-align:center;font-size:17px;font-weight:600;
      color:var(--ink);font-family:var(--sans);-moz-appearance:textfield;background:transparent}
.qtyctl input::-webkit-outer-spin-button,.qtyctl input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}
.qtyctl input:focus{outline:none}
.qtynote{font-size:12.5px;line-height:1.5;color:var(--mute);margin:0 0 16px}
