/* Bigon desktop — shared shell: header, cabinet sidebar, controls, auth.
   Built from Figma SG7jHFmMbXAHVFpctabyHy. Uses tokens.css. */

/* ---------- generic controls ---------- */
.btn { display:inline-flex; align-items:center; justify-content:center; gap:8px;
  border:none; border-radius:var(--radius-sm); font-size:var(--fz-15); font-weight:var(--fw-med);
  padding:12px 22px; line-height:1; transition:.15s; }
.btn--green { background:var(--ok); color:#fff; }
.btn--green:hover { filter:brightness(1.05); }
.btn--green:disabled { background:#A9D7BC; cursor:default; }
.btn--grey { background:#EDEFF2; color:var(--tx); }
.btn--grey:hover { background:#E3E6EA; }
.btn--blue { background:var(--bg-blue); color:#fff; }
.btn--cta { background:var(--grad-cta); color:#fff; border-radius:var(--radius-pill); font-weight:var(--fw-semi); }
.btn--catalog { background:var(--grad-catalog); color:#fff; border-radius:var(--radius-sm); font-weight:var(--fw-semi); padding:12px 18px; }
.btn--block { width:100%; }
.btn--soft { background:#EDEFF2; color:var(--tx-head); border-radius:var(--radius-sm); font-weight:var(--fw-semi); padding:12px 18px; }
.btn--soft:hover { background:#E3E6EA; }
/* lightweight on-site modal (replaces native confirm/alert flows) */
.bg-modal { position:fixed; inset:0; background:rgba(20,28,46,.45); display:flex; align-items:center; justify-content:center; z-index:10000; padding:20px; }
.bg-modal__box { background:#fff; border-radius:16px; padding:26px; max-width:420px; width:100%; box-shadow:0 20px 60px rgba(20,28,46,.25); }
.bg-modal__title { font-size:var(--fz-18,18px); font-weight:var(--fw-bold); margin-bottom:18px; text-align:center; }
.bg-modal__actions { display:flex; gap:10px; flex-wrap:wrap; }
.bg-modal__actions .btn { flex:1; min-width:150px; text-align:center; }

.field { width:100%; background:var(--bg); border:1px solid transparent; border-radius:var(--radius-sm);
  padding:13px 16px; font-size:var(--fz-14); color:var(--tx); font-family:var(--font); }
.field::placeholder { color:#A6AEB6; }
.field:focus { outline:none; border-color:var(--bg-blue); background:#fff; }

.switch { position:relative; width:38px; height:22px; flex:0 0 auto; cursor:pointer; }
/* The input must cover the whole switch (was 0×0, so the visible slider wasn't
   clickable — the toggle looked "on" and could never be turned off). */
.switch input { position:absolute; inset:0; width:100%; height:100%; margin:0; opacity:0; cursor:pointer; z-index:2; }
.switch i { position:absolute; inset:0; background:#CDD3DA; border-radius:999px; transition:.15s; pointer-events:none; }
.switch i::after { content:""; position:absolute; top:2px; left:2px; width:18px; height:18px; background:#fff; border-radius:50%; transition:.15s; }
.switch input:checked + i { background:var(--bg-blue); }
.switch input:checked + i::after { transform:translateX(16px); }

.card { background:var(--surface); border-radius:var(--radius); box-shadow:var(--shadow-card); }

/* ---------- top header ---------- */
.hdr-top { max-width:var(--container); margin:0 auto; padding:10px 20px 0; display:flex; justify-content:flex-end; gap:26px; }
.hdr-top a { color:var(--tx-head); font-size:var(--fz-14); font-weight:var(--fw-med); }
.hdr { max-width:var(--container); margin:0 auto; padding:8px 20px 14px; display:flex; align-items:center; gap:16px; }
/* лого-заглушка в шапке (задача #25) — слева от «Каталог», ведёт на главную */
.hdr__logo { display:inline-flex; align-items:center; gap:9px; text-decoration:none; flex:0 0 auto; }
.hdr__logo-mark { width:36px; height:36px; border-radius:10px; background:linear-gradient(135deg, var(--bg-purple) 0%, var(--ok) 100%); color:#fff; font-weight:800; font-size:21px; line-height:1; display:inline-flex; align-items:center; justify-content:center; } /* #55 — оба бренд-цвета (фиолет+зелёный) в лого */
.hdr__logo-word { font-weight:800; font-size:21px; letter-spacing:-.02em; color:var(--tx-head); }
@media (max-width:900px){ .hdr__logo-word { display:none; } }
.hdr__search { flex:1; display:flex; align-items:center; gap:10px; background:var(--bg); border-radius:var(--radius-sm); padding:0 16px; height:48px; }
.hdr__search > svg { width:20px; height:20px; flex:0 0 auto; }
.hdr__city svg { width:16px; height:16px; }
.btn--catalog svg { width:18px; height:18px; }
.hdr__search input { flex:1; border:none; background:transparent; font-size:var(--fz-14); font-family:var(--font); color:var(--tx); }
.hdr__search input:focus { outline:none; }
.hdr__city { color:var(--bg-blue); font-weight:var(--fw-med); display:inline-flex; align-items:center; gap:6px; white-space:nowrap; cursor:pointer; position:relative; }
/* мегаменю каталога (#16) */
.hdr__catalog { position:relative; flex:0 0 auto; }
.hdr__catmenu { position:absolute; top:calc(100% + 8px); left:0; min-width:300px; background:#fff; border:1px solid var(--line-soft); border-radius:14px; box-shadow:0 12px 34px rgba(0,26,52,.14); padding:8px; z-index:60; display:grid; grid-template-columns:1fr 1fr; gap:2px; }
.hdr__catmenu a { padding:9px 12px; border-radius:9px; color:var(--tx); font-size:var(--fz-14); }
.hdr__catmenu a:hover { background:var(--bg); color:var(--tx-head); }
.hdr__catmenu-all { grid-column:1 / -1; color:var(--bg-blue); font-weight:var(--fw-med); }
/* выбор города (#17) */
.hdr__citymenu { position:absolute; top:calc(100% + 10px); left:0; width:250px; background:#fff; border:1px solid var(--line-soft); border-radius:14px; box-shadow:0 12px 34px rgba(0,26,52,.14); padding:10px; z-index:60; cursor:default; }
.hdr__citymenu > input { width:100%; height:38px; border:1px solid var(--line); border-radius:9px; padding:0 12px; font-size:var(--fz-14); font-family:inherit; margin-bottom:8px; box-sizing:border-box; }
.hdr__citylist { max-height:240px; overflow:auto; display:flex; flex-direction:column; }
.hdr__citylist button { text-align:left; padding:9px 10px; border:none; background:none; border-radius:8px; font-size:var(--fz-14); color:var(--tx); cursor:pointer; font-family:inherit; }
.hdr__citylist button:hover { background:var(--bg); }
.hdr__city-empty { color:var(--tx-soft); font-size:var(--fz-13); padding:8px 10px; }
.hdr__icons { display:flex; align-items:center; gap:20px; }
.hdr__ico { display:flex; flex-direction:column; align-items:center; gap:3px; color:var(--tx-head); font-size:var(--fz-11); cursor:pointer; position:relative; }
.hdr__ico svg { width:24px; height:24px; }
.hdr__ico-img { position:relative; display:inline-flex; } /* якорь для бейджа-уголка (#27) */
.hdr__avatar { width:44px; height:44px; border-radius:50%; object-fit:cover; background:#E7EAF0; cursor:pointer; }
/* выпадающее меню под аватаром (#33) */
.hdr__user { position:relative; display:flex; align-items:center; }
.hdr__menu { position:absolute; top:calc(100% + 10px); right:0; min-width:190px; background:#fff; border:1px solid var(--line-soft); border-radius:14px; box-shadow:0 12px 34px rgba(0,26,52,.14); padding:6px; opacity:0; visibility:hidden; transform:translateY(-6px); transition:opacity .15s, transform .15s, visibility .15s; z-index:60; }
.hdr__user:hover .hdr__menu, .hdr__menu:hover { opacity:1; visibility:visible; transform:none; }
.hdr__menu a { display:block; padding:10px 12px; border-radius:9px; color:var(--tx); font-size:var(--fz-14); white-space:nowrap; }
.hdr__menu a:hover { background:var(--bg); color:var(--tx-head); }
.hdr__menu .hdr__menu-sep { height:1px; background:var(--line-soft); margin:5px 6px; }
.hdr-divider { border:none; border-top:1px solid var(--line-soft); margin:0; }

/* ---------- cabinet layout (header + left sidebar + content) ---------- */
.cab { max-width:var(--container); margin:0 auto; padding:24px 20px 60px; display:grid; grid-template-columns:var(--sidebar-w) 1fr; gap:60px; }
.cab__breadcrumb { max-width:var(--container); margin:0 auto; padding:18px 20px 0; color:var(--bg-blue); font-size:var(--fz-14); }
.cab__breadcrumb b { color:var(--tx-head); font-weight:var(--fw-reg); }

.side { }
.side__head { text-align:center; }
.side__avatar { width:96px; height:96px; border-radius:50%; object-fit:cover; background:#E7EAF0; }
.side__name { font-size:var(--fz-20); font-weight:var(--fw-semi); margin-top:10px; }
.side__since { color:var(--tx-muted); font-size:var(--fz-13); margin-top:4px; }
.side__rating { color:var(--tx-muted); font-size:var(--fz-13); margin-top:4px; }
.side__points { display:flex; align-items:center; gap:8px; color:var(--ok); font-size:var(--fz-14); font-weight:var(--fw-med); margin:18px 0 8px; }
.side__menu { display:flex; flex-direction:column; }
.side__item { display:flex; align-items:center; gap:12px; padding:11px 4px; color:var(--tx); font-size:var(--fz-14); border-radius:var(--radius-sm); cursor:pointer; }
.side__item:hover { color:var(--tx-head); }
/* активный пункт — чёрный жирный, без голубого (#34) */
.side__item.is-active { color:var(--tx-head); font-weight:700; }
.side__item svg { width:20px; height:20px; flex:0 0 auto; opacity:.85; }
/* смена аватара из сайдбара (#45) */
.side__avatar-wrap { position:relative; display:inline-block; cursor:pointer; }
.side__avatar-cam { position:absolute; right:-2px; bottom:-2px; width:26px; height:26px; border-radius:50%; background:var(--bg-purple); color:#fff; box-shadow:0 1px 5px rgba(0,0,0,.25); display:flex; align-items:center; justify-content:center; font-size:13px; }
/* «Поделиться профилем» — ярче и кликабельнее (#43) */
.side__share { color:var(--bg-blue); font-weight:var(--fw-med); font-size:var(--fz-14); margin-top:22px; cursor:pointer; display:inline-flex; align-items:center; gap:6px; }
.side__share:hover { color:var(--bg-blue-600); }
.side__socials { display:flex; gap:10px; margin-top:8px; }
.side__socials img { width:26px; height:26px; }

.content h1 { font-size:var(--fz-32); font-weight:var(--fw-semi); margin-bottom:18px; }

/* ---------- auth ---------- */
.auth-wrap { min-height:100vh; display:flex; flex-direction:column; align-items:center; justify-content:center; padding:40px 20px; }
.auth-card { display:grid; grid-template-columns:340px 380px; border-radius:18px; overflow:hidden; box-shadow:var(--shadow-card); background:#fff; }
.auth-aside { background:linear-gradient(160deg,#EAF2FE 0%,#F3ECFB 100%); padding:34px 32px; }
.auth-aside__brand { font-size:24px; font-weight:var(--fw-bold); color:var(--tx-head); }
.auth-aside__sub { color:var(--tx); font-size:var(--fz-14); line-height:1.5; margin:14px 0 22px; }
.auth-aside__li { display:flex; gap:12px; margin-bottom:16px; }
.auth-aside__li svg { width:18px; height:18px; color:var(--tx-head); flex:0 0 auto; margin-top:2px; }
.auth-aside__li b { display:block; color:var(--tx-head); font-weight:var(--fw-semi); font-size:var(--fz-14); }
.auth-aside__li span { color:var(--tx-muted-2); font-size:var(--fz-13); }
.auth-main { padding:30px 34px; }
.auth-tabs { display:flex; gap:30px; border-bottom:1px solid var(--line-soft); margin-bottom:22px; }
.auth-tab { background:none; border:none; padding:0 0 12px; font-size:var(--fz-15); font-weight:var(--fw-semi); color:var(--tx-soft); border-bottom:2px solid transparent; margin-bottom:-1px; }
.auth-tab.is-active { color:var(--ok); border-bottom-color:var(--ok); }
.auth-hint { text-align:center; color:var(--tx); font-size:var(--fz-14); margin-bottom:18px; }
.auth-form { display:flex; flex-direction:column; gap:14px; }
.auth-row { display:flex; align-items:center; gap:10px; color:var(--tx); font-size:var(--fz-14); }
.auth-foot { text-align:center; color:var(--tx-muted); font-size:var(--fz-13); margin-top:18px; max-width:760px; line-height:1.5; }
.auth-err { color:var(--danger); font-size:var(--fz-13); text-align:center; min-height:16px; }

/* ---------- page container ---------- */
.page { max-width:var(--container); margin:0 auto; padding:8px 20px 60px; }
.crumb { color:var(--bg-blue); font-size:var(--fz-14); margin:14px 0; }
.crumb b { color:var(--tx-soft); font-weight:var(--fw-reg); }
.page h1 { font-size:var(--fz-32); font-weight:var(--fw-semi); }

/* ---------- catalog ---------- */
.cat-quick { display:grid; grid-template-columns:repeat(3, max-content); gap:10px 56px; margin:16px 0 34px; }
.cat-quick a { color:var(--tx); font-size:var(--fz-14); }
.cat-quick a:hover { color:var(--bg-blue); }
.cat-sect-title { font-size:var(--fz-20); font-weight:var(--fw-semi); margin:0 0 18px; }
.cat-row { display:grid; grid-template-columns:repeat(6,1fr); gap:16px; margin-bottom:40px; }
.cat-body { display:grid; grid-template-columns:230px 1fr; gap:34px; align-items:start; }
.cat-filter h4 { font-size:var(--fz-14); font-weight:var(--fw-semi); margin:0 0 12px; }
.cat-filter__group { margin-bottom:20px; }
.cat-check { display:flex; align-items:center; gap:8px; font-size:var(--fz-14); margin-bottom:9px; color:var(--tx); }
.cat-price { display:flex; gap:8px; }
.cat-price input { width:100%; text-align:center; }
.cat-select { width:100%; background:var(--bg); border:1px solid transparent; border-radius:var(--radius-sm); padding:11px 14px; font-size:var(--fz-14); font-family:var(--font); color:var(--tx); }
.cat-toolbar { display:flex; justify-content:flex-end; align-items:center; gap:14px; margin-bottom:16px; color:var(--tx-muted); font-size:var(--fz-14); }
.cat-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:20px 18px; }
/* поиск: подсказка об исправлении раскладки (#47) */
.cat-hint { grid-column:1 / -1; color:var(--tx-muted); font-size:var(--fz-14); background:var(--bg); border-radius:10px; padding:10px 14px; margin-bottom:4px; }
/* каталог: сортировка в тулбаре сверху + кол-во фото на карточке (#26) */
.cat-toolbar { display:flex; justify-content:space-between; align-items:center; gap:16px; margin-bottom:16px; }
.cat-sort { color:var(--tx-muted); font-size:var(--fz-14); display:inline-flex; align-items:center; gap:8px; white-space:nowrap; }
.cat-sort .cat-select { width:auto; }
.pcard__img { position:relative; }
.pcard__count { position:absolute; left:8px; bottom:8px; background:rgba(0,0,0,.55); color:#fff; font-size:11px; padding:2px 7px; border-radius:10px; }
/* избранное — компактная кнопка в правом верхнем углу карточки (#24) */
.pdp-head { display:flex; align-items:flex-start; justify-content:space-between; gap:16px; }
.pdp-fav { flex:0 0 auto; border:1px solid var(--line); background:#fff; border-radius:var(--radius-pill); padding:9px 16px; font-size:var(--fz-14); color:var(--tx); cursor:pointer; white-space:nowrap; font-family:inherit; }
.pdp-fav:hover { border-color:var(--danger); color:var(--danger); }
.pdp-fav[data-on="1"] { color:var(--danger); border-color:var(--danger); }
/* поделиться объявлением (#56) + блок «из той же категории» (#23) */
.pdp-share { color:var(--bg-blue); font-weight:var(--fw-med); cursor:pointer; }
.pdp-same { margin-top:34px; }
.pdp-same > h2 { margin:0 0 16px; }
.share-row { display:flex; gap:8px; margin:14px 0; }
.share-row .field { flex:1; }
/* форма подачи объявления (#37) */
.ann-hint { color:var(--tx-soft); font-size:var(--fz-12); margin-top:4px; }
.ann-cur { color:var(--tx-muted); margin-left:4px; }
.seg { display:inline-flex; background:var(--bg); border-radius:var(--radius-sm); padding:3px; gap:2px; }
.seg__btn { border:none; background:none; padding:8px 16px; border-radius:8px; font-size:var(--fz-14); color:var(--tx); cursor:pointer; font-family:inherit; }
.seg__btn.is-active { background:#fff; color:var(--tx-head); font-weight:var(--fw-med); box-shadow:0 1px 3px rgba(0,0,0,.08); }
.ann-city { position:relative; }
.ann-city__list { position:absolute; top:calc(100% + 4px); left:0; right:0; background:#fff; border:1px solid var(--line-soft); border-radius:10px; box-shadow:0 10px 28px rgba(0,26,52,.12); padding:6px; z-index:30; max-height:220px; overflow:auto; }
.ann-city__list button { display:block; width:100%; text-align:left; padding:8px 10px; border:none; background:none; border-radius:7px; font-size:var(--fz-14); cursor:pointer; font-family:inherit; color:var(--tx); }
.ann-city__list button:hover { background:var(--bg); }
.ann-alert { background:#FFF0F0; color:var(--danger); border:1px solid #FBD5D5; border-radius:10px; padding:10px 14px; font-size:var(--fz-14); margin-bottom:10px; }
.ann-attrs { display:flex; flex-direction:column; gap:12px; }
.ann-attr { display:flex; flex-direction:column; gap:6px; }
.ann-attr > span { font-size:var(--fz-13); color:var(--tx-muted); }
.ann-attr .field { max-width:360px; }
/* кнопка удаления (#12) */
.btn--danger { background:var(--danger); color:#fff; }
/* автозаполнение по ИНН (#12) */
.inn-row { display:flex; gap:8px; align-items:center; }
.inn-row .field { flex:1; }
/* форма «оставить отзыв» (#48) */
.pdp-review-form { margin-top:20px; padding-top:18px; border-top:1px solid var(--line-soft); }
.pdp-review-form h3 { font-size:16px; margin:0 0 12px; }
.rev-row { display:flex; gap:18px; margin-bottom:10px; flex-wrap:wrap; }
.rev-lbl { display:inline-flex; flex-direction:column; gap:4px; font-size:var(--fz-13); color:var(--tx-muted); }
.rev-lbl .field { width:auto; min-width:130px; }
.pdp-review-form textarea.field { width:100%; margin-bottom:10px; }
.rev-msg { margin-top:8px; font-size:var(--fz-14); }
.rev-msg--ok { color:var(--ok); }
.rev-msg--err { color:var(--danger); }
/* всплывающий чат в объявлении (#21c) */
.pdp-chat__box { width:420px; max-width:92vw; padding:0; overflow:hidden; }
.pdp-chat__head { display:flex; align-items:center; justify-content:space-between; padding:14px 18px; border-bottom:1px solid var(--line-soft); font-weight:600; }
.pdp-chat__close { border:0; background:none; font-size:24px; cursor:pointer; color:var(--tx-muted); line-height:1; }
.pdp-chat__body { height:320px; overflow-y:auto; padding:16px; display:flex; flex-direction:column; gap:8px; background:#FAFBFD; }
.pc-msg { max-width:78%; padding:8px 12px; border-radius:12px; font-size:14px; line-height:1.4; word-wrap:break-word; }
.pc-msg--mine { align-self:flex-end; background:var(--bg-blue); color:#fff; }
.pc-msg--them { align-self:flex-start; background:#fff; border:1px solid var(--line-soft); }
.pc-empty { margin:auto; color:var(--tx-soft); }
.pdp-chat__form { display:flex; gap:8px; padding:12px; border-top:1px solid var(--line-soft); }
.pdp-chat__form .field { flex:1; }
/* рейтинг продавца в карточке (#22) */
.pdp-seller__rating { display:block; color:var(--warn); font-size:var(--fz-13); font-weight:600; margin-top:2px; }
/* страница продавца (#22/#48) */
.seller-head { display:flex; gap:20px; align-items:center; margin:8px 0 24px; }
.seller-ava { width:84px; height:84px; border-radius:50%; background:var(--bg); flex:0 0 auto; }
.seller-meta { color:var(--tx-muted); margin-top:6px; }
.seller-rating { color:var(--warn); font-weight:600; margin-top:6px; }
.srev { padding:14px 0; border-bottom:1px solid var(--line-soft); }
.srev__top { display:flex; justify-content:space-between; }
.srev__top b { color:var(--warn); }
.srev__top span { color:var(--tx-soft); font-size:var(--fz-13); }
.srev p { margin:6px 0 0; }
.srev__reply { margin-top:8px; padding:8px 12px; background:var(--bg); border-radius:8px; font-size:var(--fz-13); }
/* состояние «продано» в карточке (#54) */
.pdp-sold { display:inline-block; background:#FFF0F0; color:var(--danger); border:1px solid #FBD5D5; border-radius:8px; padding:6px 12px; font-weight:600; margin:0 0 10px; }
/* касса (#59) */
.cashier { max-width:560px; margin-top:20px; }
.cashier__row { display:flex; gap:10px; align-items:center; margin-top:8px; }
.cashier__buyer { margin:18px 0; padding:14px 18px; background:var(--bg); border-radius:12px; display:flex; flex-direction:column; gap:2px; }
.cashier__buyer b { color:var(--tx-head); font-size:18px; }
.cashier__buyer span { color:var(--tx-muted); }
.cashier__actions { display:flex; flex-direction:column; gap:18px; }
.cashier__act h3 { font-size:16px; margin:0 0 4px; }
.cashier__result { margin-top:16px; font-weight:600; }
.cashier__result--ok { color:var(--ok); }
.cashier__result--err { color:var(--danger); }
.wallet-qr { margin:18px 0; padding:18px; border:1px solid var(--line-soft); border-radius:14px; display:inline-flex; flex-direction:column; align-items:center; gap:6px; text-align:center; }
.wallet-qr__label { font-weight:600; color:var(--tx-head); }
.wallet-qr__img { width:180px; height:180px; }
.wallet-qr__code { font-size:22px; font-weight:700; letter-spacing:4px; color:var(--tx-head); }
.wallet-qr__hint { color:var(--tx-muted); font-size:var(--fz-13); max-width:220px; }
/* магазины по сферам (#32) */
.shops-bar { margin:12px 0 18px; }
.shop-card { display:block; border:1px solid var(--line-soft); border-radius:14px; padding:18px; color:inherit; transition:box-shadow .15s; }
.shop-card:hover { box-shadow:0 6px 20px rgba(0,26,52,.08); }
.shop-card__name { font-weight:700; color:var(--tx-head); font-size:16px; }
.shop-card__meta { color:var(--tx-muted); font-size:var(--fz-14); margin-top:4px; }
.shop-card__kind { color:var(--bg-blue); font-size:var(--fz-13); margin-top:10px; }
/* тариф продавца (#52) */
.t-current { background:#EAF7EF; border:1px solid #BFE6CD; border-radius:12px; padding:14px 18px; display:flex; flex-direction:column; gap:2px; }
.t-current b { color:var(--ok); }
.t-current span { color:var(--tx-muted); font-size:var(--fz-14); }
.t-current--off { background:#FFF8E6; border-color:#F4E2B0; }
.t-current--off b { color:var(--warn); }
.t-free { color:var(--ok); font-weight:var(--fw-med); margin-top:8px; }
.t-bundles { display:grid; grid-template-columns:repeat(auto-fill, minmax(220px, 1fr)); gap:16px; margin-top:16px; }
.t-card { border:1px solid var(--line-soft); border-radius:14px; padding:18px; }
.t-card__title { font-weight:700; font-size:18px; color:var(--tx-head); }
.t-card__days { color:var(--tx-muted); font-size:var(--fz-14); margin:4px 0 12px; }
.t-card__price { font-weight:800; font-size:24px; color:var(--tx-head); margin-bottom:14px; }
/* онбординг-шаги (#51) */
.onb-steps { background:#FFF8E6; border:1px solid #F4E2B0; border-radius:12px; padding:12px 16px; margin:0 0 16px; color:var(--tx-head); font-size:var(--fz-14); display:flex; flex-direction:column; gap:4px; }
.onb-steps span { color:var(--tx-muted); }
/* мои объявления: цена без переноса + кликабельное название (#49) */
.ads-price { white-space:nowrap; }
/* причина отклонения объявления (#53) */
.ads-reject-reason { color:var(--danger); font-size:var(--fz-12); margin-top:4px; max-width:240px; line-height:1.35; }
/* плавность отрисовки: резерв высоты шапки (без скачка) + мягкое появление (#41) */
[data-shell-header] { display:block; min-height:120px; }
@keyframes pageIn { from { opacity:0; transform:translateY(4px); } to { opacity:1; transform:none; } }
.page, .cab { animation:pageIn .24s ease both; }
.ads-title-link { color:var(--tx-head); font-weight:var(--fw-med); }
.ads-title-link:hover { color:var(--bg-blue); }
/* подкатегории: ссылка «назад» (#46) */
.cat-quick__back { font-weight:var(--fw-med); }
/* корзина: имя продавца, ввод кол-ва, доступные баллы (#39) */
.cart-seller-head { font-weight:var(--fw-semi); color:var(--tx-head); margin-bottom:10px; }
.qty__inp { width:48px; text-align:center; border:1px solid var(--line); border-radius:6px; height:30px; font-family:inherit; font-size:var(--fz-14); margin:0 2px; }
.summary__pts { color:var(--tx-soft); font-weight:400; font-size:var(--fz-12); }
.summary__total .old { color:var(--tx-soft); text-decoration:line-through; font-weight:400; margin-right:8px; font-size:var(--fz-14); }
/* чекаут: поля не на всю ширину (#40) */
.co-field .field { max-width:460px; }
/* слайдер на главной (#30) */
.hero-slider { position:relative; }
.hero-slide { display:none; }
.hero-slide.is-active { display:block; }
.hero-slider__nav { position:absolute; top:42%; transform:translateY(-50%); width:40px; height:40px; border-radius:50%; border:none; background:#fff; box-shadow:0 2px 12px rgba(0,0,0,.12); color:var(--tx-head); font-size:24px; line-height:1; cursor:pointer; z-index:2; }
.hero-slider__nav--prev { left:-6px; } .hero-slider__nav--next { right:-6px; }
.hero-slider__dots { display:flex; gap:8px; justify-content:center; margin-top:14px; }
.hero-slider__dots button { width:8px; height:8px; border-radius:50%; border:none; background:var(--line); cursor:pointer; padding:0; transition:width .2s, background .2s; }
.hero-slider__dots button.is-active { background:var(--bg-purple); width:22px; border-radius:4px; }
.cat-empty { grid-column:1/-1; text-align:center; color:var(--tx-soft); padding:50px 0; }

.pcard { display:block; color:var(--tx); }
.pcard__img { position:relative; aspect-ratio:1/1; border-radius:var(--radius-sm); overflow:hidden; background:var(--bg); }
.pcard__img img { width:100%; height:100%; object-fit:cover; }
.pcard__cnt { position:absolute; left:8px; bottom:8px; background:rgba(0,0,0,.55); color:#fff; font-size:11px; border-radius:6px; padding:2px 7px; }
.pcard__price { font-size:var(--fz-17); font-weight:var(--fw-semi); margin:11px 0 4px; display:flex; align-items:center; gap:8px; }
.pcard__cb { background:#EAFBF1; color:var(--ok); font-size:11px; font-weight:var(--fw-med); border-radius:6px; padding:2px 7px; }
.pcard__title { font-size:var(--fz-14); line-height:1.35; }
.pcard__loc { color:var(--tx-muted); font-size:var(--fz-13); margin-top:5px; }
.pcard__date { color:var(--tx-soft); font-size:var(--fz-13); margin-top:2px; }

/* ---------- product (PDP) ---------- */
.pdp-head { display:flex; align-items:flex-start; justify-content:space-between; gap:20px; }
.pdp-head h1 { font-size:var(--fz-24); font-weight:var(--fw-bold); }
.pdp-meta { color:var(--tx-soft); font-size:var(--fz-13); margin:6px 0 18px; display:flex; gap:18px; }
.pdp { display:grid; grid-template-columns:1fr 372px; gap:34px; align-items:start; }
.pdp-hero { position:relative; aspect-ratio:16/11; border-radius:var(--radius); overflow:hidden; background:var(--bg); }
.pdp-hero img { width:100%; height:100%; object-fit:cover; }
/* галерея карточки: вотермарк, стрелки, зум-лайтбокс (#20) */
.pdp-hero__wm { position:absolute; right:14px; bottom:12px; color:rgba(255,255,255,.78); font-weight:700; font-size:15px; letter-spacing:.04em; text-shadow:0 1px 4px rgba(0,0,0,.45); pointer-events:none; user-select:none; }
.pdp-hero__nav { position:absolute; top:50%; transform:translateY(-50%); width:42px; height:42px; border-radius:50%; border:none; background:rgba(255,255,255,.92); color:var(--tx-head); font-size:24px; line-height:1; cursor:pointer; display:flex; align-items:center; justify-content:center; box-shadow:0 2px 12px rgba(0,0,0,.18); opacity:0; transition:opacity .15s; }
.pdp-hero:hover .pdp-hero__nav { opacity:1; }
.pdp-hero__nav--prev { left:12px; } .pdp-hero__nav--next { right:12px; }
.pdp-lightbox { position:fixed; inset:0; background:rgba(8,12,20,.93); z-index:9999; display:flex; align-items:center; justify-content:center; }
.pdp-lightbox__stage { position:relative; display:flex; }
.pdp-lightbox__stage img { max-width:84vw; max-height:88vh; object-fit:contain; border-radius:8px; }
.pdp-lightbox__close { position:absolute; top:20px; right:24px; width:44px; height:44px; border-radius:50%; border:none; background:rgba(255,255,255,.16); color:#fff; font-size:26px; cursor:pointer; }
.pdp-lightbox__nav { width:54px; height:54px; border-radius:50%; border:none; background:rgba(255,255,255,.16); color:#fff; font-size:30px; line-height:1; cursor:pointer; margin:0 18px; flex:0 0 auto; }
.pdp-thumbs { display:flex; gap:10px; margin-top:12px; flex-wrap:wrap; }
.pdp-thumb { width:64px; height:64px; border-radius:var(--radius-sm); overflow:hidden; background:var(--bg); cursor:pointer; border:2px solid transparent; }
.pdp-thumb.is-active { border-color:var(--bg-blue); }
.pdp-thumb img { width:100%; height:100%; object-fit:cover; }
.pdp-section { margin-top:28px; }
.pdp-section h2 { font-size:var(--fz-17); font-weight:var(--fw-semi); margin-bottom:12px; }
.pdp-section p { line-height:1.55; }
.pdp-feat { display:flex; font-size:var(--fz-14); margin-bottom:8px; }
.pdp-feat dt { color:var(--tx-muted); width:180px; flex:0 0 auto; }
.pdp-aside { position:sticky; top:16px; }
.pdp-card { background:#fff; border:1px solid var(--line-soft); border-radius:var(--radius); padding:22px; }
.pdp-price { font-size:var(--fz-24); font-weight:var(--fw-bold); margin-bottom:16px; }
.pdp-seller { display:flex; gap:12px; align-items:center; margin-top:18px; padding-top:18px; border-top:1px solid var(--line-soft); }
.pdp-seller img { width:44px; height:44px; border-radius:50%; background:#E7EAF0; }
.pdp-seller b { display:block; font-size:var(--fz-14); }
.pdp-seller span { color:var(--tx-muted); font-size:var(--fz-13); }
.pdp-report { color:var(--danger); font-size:var(--fz-13); text-align:center; margin-top:14px; }
.site-foot { border-top:1px solid var(--line-soft); margin-top:40px; }
.site-foot__in { max-width:var(--container); margin:0 auto; padding:22px 20px; display:flex; gap:26px; color:var(--tx-muted); font-size:var(--fz-13); }

/* ---------- cart / checkout split ---------- */
.split { display:grid; grid-template-columns:1fr 372px; gap:30px; align-items:start; }
.box { background:#fff; border:1px solid var(--line-soft); border-radius:var(--radius); }
.cart-list { padding:4px 22px; }
.cart-item { display:grid; grid-template-columns:96px 1fr auto; gap:16px; padding:20px 0; border-bottom:1px solid var(--line-soft); align-items:start; }
.cart-item:last-child { border-bottom:none; }
.cart-item__img { width:96px; height:96px; border-radius:var(--radius-sm); object-fit:cover; background:var(--bg); }
.cart-item__title { font-weight:var(--fw-semi); }
.cart-item__loc { color:var(--tx-muted); font-size:var(--fz-13); margin-top:4px; }
.cart-item__price { font-size:var(--fz-17); font-weight:var(--fw-semi); margin-top:12px; }
.cart-item__del { display:inline-flex; align-items:center; gap:6px; height:40px; padding:0 14px; font-size:var(--fz-14); font-weight:var(--fw-med); color:var(--danger); background:none; border:1px solid var(--line-soft); border-radius:10px; cursor:pointer; transition:background .15s, border-color .15s; }
.cart-item__del:hover { background:#FDECEC; border-color:var(--danger); }
.cart-item__del svg { width:18px; height:18px; }
.qty { display:inline-flex; align-items:center; border:1px solid var(--line); border-radius:var(--radius-sm); margin-top:10px; }
.qty button { background:none; border:none; padding:6px 14px; font-size:16px; color:var(--tx); cursor:pointer; }
.qty span { min-width:30px; text-align:center; font-size:var(--fz-14); }
.cart-seller-h { font-weight:var(--fw-semi); padding:16px 22px 0; color:var(--tx-muted); font-size:var(--fz-13); }

.summary { background:#fff; border:1px solid var(--line-soft); border-radius:var(--radius); padding:24px; margin-bottom:18px; }
.summary h2 { font-size:var(--fz-20); font-weight:var(--fw-bold); margin-bottom:18px; }
.summary__row { display:flex; justify-content:space-between; align-items:center; margin-bottom:14px; font-size:var(--fz-14); }
.summary__row .green { color:var(--ok); }
.summary__total { display:flex; justify-content:space-between; font-size:var(--fz-20); font-weight:var(--fw-bold); margin:8px 0 18px; }
.summary__total b { color:var(--bg-purple); }

/* ---------- checkout ---------- */
.co-field { margin-bottom:18px; max-width:560px; }
.co-field > span { display:block; color:var(--tx); font-size:var(--fz-14); margin-bottom:7px; }
.co-field em { color:var(--danger); font-style:normal; }
.pay-opt { display:flex; align-items:center; gap:10px; margin-bottom:12px; font-size:var(--fz-14); }

/* ---------- orders / tabs ---------- */
.tabs { display:flex; gap:28px; border-bottom:1px solid var(--line-soft); margin:6px 0 22px; }
.tab { background:none; border:none; padding:0 0 12px; font-size:var(--fz-15); font-weight:var(--fw-med); color:var(--tx-soft); border-bottom:2px solid transparent; margin-bottom:-1px; cursor:pointer; }
.tab.is-active { color:var(--tx-head); border-bottom-color:var(--bg-blue); }
.ord-row { display:grid; grid-template-columns:max-content 64px 1fr auto; gap:18px; align-items:center; padding:16px; border:1px solid var(--line-soft); border-radius:var(--radius); margin-bottom:12px; color:var(--tx); }
.ord-row img { width:64px; height:64px; border-radius:var(--radius-sm); object-fit:cover; background:var(--bg); grid-column:2; }
.ord-row__price { font-weight:var(--fw-semi); }
.ord-row__title { font-size:var(--fz-14); }
.ord-row__meta { color:var(--tx-muted); font-size:var(--fz-13); }
.ord-actions { grid-column:1/-1; display:flex; gap:8px; flex-wrap:wrap; align-items:center; margin-top:10px; padding-top:12px; border-top:1px solid var(--line-soft); }
.ord-actions .btn { padding:9px 16px; font-size:var(--fz-14); border-radius:var(--radius-sm); }
.ord-note { color:var(--tx-muted); font-size:var(--fz-14); }
.ord-pts { display:inline-flex; align-items:center; gap:8px; }
.ord-pts .field { width:96px; padding:9px 10px; }
.badge { font-size:12px; font-weight:var(--fw-med); border-radius:6px; padding:4px 10px; white-space:nowrap; }
.badge--green { background:#EAFBF1; color:var(--ok); }
.badge--amber { background:#FFF6E5; color:#C98A00; }
.badge--blue { background:#EAF1FE; color:var(--bg-blue); }
.badge--red { background:#FDEAEC; color:var(--danger); }
.empty { text-align:center; color:var(--tx-soft); padding:48px 0; }

/* ---------- cabinet: settings form + account + wallet ---------- */
.mode-toggle { display:inline-flex; background:#EDEFF2; border-radius:var(--radius-sm); padding:4px; gap:4px; margin-bottom:22px; }
.mode-toggle button { background:none; border:none; padding:9px 20px; border-radius:6px; font-size:var(--fz-14); color:var(--tx-muted); display:inline-flex; gap:8px; align-items:center; }
.mode-toggle button.is-active { background:#fff; color:var(--tx-head); font-weight:var(--fw-med); box-shadow:0 1px 3px rgba(0,0,0,.08); }
.alert { background:#FFF8E6; border:1px solid #FCE9B8; border-radius:var(--radius-sm); padding:14px 18px; color:var(--tx); font-size:var(--fz-14); margin-bottom:24px; }
.form-grid { display:grid; grid-template-columns:200px 1fr; gap:16px 24px; align-items:center; max-width:760px; }
.form-grid > .lbl { color:var(--tx); font-size:var(--fz-14); }
.form-grid em { color:var(--danger); font-style:normal; }
.radio-row { display:flex; gap:26px; }
.radio-row label { display:flex; align-items:center; gap:8px; font-size:var(--fz-14); }
.sect-title { font-size:var(--fz-17); font-weight:var(--fw-semi); margin:34px 0 4px; }
.acct-row { display:grid; grid-template-columns:200px 1fr; gap:24px; padding:14px 0; font-size:var(--fz-14); border-bottom:1px solid var(--line-soft); max-width:760px; align-items:center; }
.acct-row dt { color:var(--tx-muted); }
.acct-ok { color:var(--ok); font-size:var(--fz-13); margin-left:10px; }

.wallet-balance { background:var(--bg); border-radius:var(--radius); padding:22px 26px; display:inline-block; min-width:260px; }
.wallet-balance b { font-size:32px; font-weight:var(--fw-bold); }
.wallet-balance span { color:var(--tx-muted); margin-left:8px; }
.wallet-burn { background:#FDEEEE; color:var(--danger); border-radius:var(--radius); padding:14px 18px; margin-top:14px; display:inline-flex; gap:8px; align-items:center; }
.hist { width:100%; border-collapse:collapse; margin-top:14px; }
.hist th { text-align:left; color:var(--tx-muted); font-size:12px; font-weight:var(--fw-med); padding:10px 0; border-bottom:1px solid var(--line-soft); text-transform:uppercase; letter-spacing:.03em; }
.hist th:last-child, .hist td.amt { text-align:right; }
.hist td { padding:18px 0; border-bottom:1px solid var(--line-soft); font-size:var(--fz-14); }
.hist td.amt { color:var(--ok); font-weight:var(--fw-med); }
.hist td.amt.neg { color:var(--danger); }

/* ---------- my ads table ---------- */
.ads-head { display:flex; justify-content:space-between; align-items:center; }
.ads-toolbar { display:flex; justify-content:space-between; align-items:center; gap:16px; margin:6px 0 14px; }
.ads-toolbar .right { display:flex; gap:12px; align-items:center; }
.ads-table { width:100%; border-collapse:collapse; }
.ads-table th { text-align:left; color:var(--tx-muted); font-size:12px; font-weight:var(--fw-med); text-transform:uppercase; letter-spacing:.02em; padding:12px; border-bottom:1px solid var(--line-soft); }
.ads-table td { padding:14px 12px; border-bottom:1px solid var(--line-soft); font-size:var(--fz-14); vertical-align:middle; }
.ads-table th:nth-child(4), .ads-table td:nth-child(4), .ads-table th:nth-child(5), .ads-table td:nth-child(5) { text-align:right; }
.ads-table img { width:48px; height:48px; border-radius:8px; object-fit:cover; background:var(--bg); display:block; }
.ads-status { display:inline-block; font-size:12px; font-weight:var(--fw-med); border-radius:6px; padding:4px 12px; }
.ads-status--pub { background:#EAFBF1; color:var(--ok); }
.ads-status--draft { background:#EEF1F4; color:var(--tx-muted); }
.ads-status--pending { background:#FFF6E6; color:#B7791F; }
.ads-status--rejected { background:#FDECEC; color:var(--danger); }
.ads-actions { white-space:nowrap; }
.ads-act { display:inline-block; font-size:13px; font-weight:var(--fw-med); padding:6px 10px; border-radius:8px; border:1px solid var(--line-soft); background:#fff; cursor:pointer; text-decoration:none; margin-right:6px; }
.ads-act--edit { color:var(--tx-head); }
.ads-act--edit:hover { background:var(--bg); }
.ads-act--del { color:var(--danger); }
.ads-act--del:hover, .ads-act--del.is-armed { background:#FDECEC; border-color:var(--danger); }
/* ad photo upload thumbnails (new-ad / edit-ad) */
.ann-photo { position:relative; width:84px; height:84px; border-radius:10px; overflow:hidden; border:1px solid var(--line-soft); background:var(--bg); cursor:grab; }
.ann-photo img { width:100%; height:100%; object-fit:cover; display:block; }
.ann-photo__del { position:absolute; top:3px; right:3px; width:22px; height:22px; border:none; border-radius:50%; background:rgba(20,28,46,.72); color:#fff; font-size:15px; line-height:1; cursor:pointer; display:flex; align-items:center; justify-content:center; }
.ann-photo__del:hover { background:var(--danger); }
.ads-del { color:var(--danger); background:none; border:none; cursor:pointer; }

/* ---------- home / landing ---------- */
.hero { background:linear-gradient(120deg,#EAF2FE 0%,#F3ECFB 100%); border-radius:var(--radius); padding:48px 44px; margin:18px 0 38px; }
.hero h1 { font-size:38px; font-weight:var(--fw-bold); max-width:560px; line-height:1.15; }
.hero p { color:var(--tx-muted-2); font-size:var(--fz-15); margin:16px 0 24px; max-width:520px; line-height:1.5; }
.home-cats { display:grid; grid-template-columns:repeat(6,1fr); gap:16px; margin-bottom:44px; }
.home-cat { background:#fff; border:1px solid var(--line-soft); border-radius:var(--radius); padding:20px 16px; text-align:center; color:var(--tx); transition:.15s; }
.home-cat:hover { border-color:var(--bg-blue); transform:translateY(-2px); }
.home-cat__ic { width:60px; height:60px; margin:0 auto 12px; border-radius:14px; background:var(--bg); display:flex; align-items:center; justify-content:center; font-size:24px; overflow:hidden; }
.home-cat__ic img { width:100%; height:100%; object-fit:cover; display:block; }
.home-cat__name { font-size:var(--fz-14); font-weight:var(--fw-med); }
.home-banners { display:grid; grid-template-columns:1fr; gap:14px; margin:0 0 38px; }
.home-banners:has(.home-banner:nth-child(2)) { grid-template-columns:1fr 1fr; }
.home-banner { display:block; border-radius:var(--radius); overflow:hidden; border:1px solid var(--line-soft); background:#F4F5FB; line-height:0; }
.home-banner img { width:100%; height:auto; max-height:240px; object-fit:cover; display:block; transition:transform .25s; }
.home-banner:hover img { transform:scale(1.02); }

.home-sect { display:flex; justify-content:space-between; align-items:center; margin:0 0 20px; }
.home-sect h2 { font-size:var(--fz-24); font-weight:var(--fw-semi); }
.home-sect a { font-size:var(--fz-14); }

/* ---------- admin (dark sidebar) ---------- */
.adm { display:grid; grid-template-columns:240px 1fr; min-height:100vh; }
.adm-side { background:var(--admin-sidebar); color:var(--admin-sidebar-tx); padding:22px 0; }
.adm-side__logo { color:#fff; font-weight:var(--fw-bold); font-size:18px; padding:0 24px 22px; }
.adm-side a { display:flex; align-items:center; gap:10px; padding:11px 24px; color:var(--admin-sidebar-tx); font-size:var(--fz-14); }
.adm-side a:hover, .adm-side a.is-active { background:rgba(255,255,255,.08); color:#fff; }
.adm-main { background:var(--admin-bg); padding:30px 40px 60px; }
.adm-main h1 { font-size:var(--fz-24); font-weight:var(--fw-semi); margin-bottom:6px; }
.adm-sub { color:var(--tx-muted); font-size:var(--fz-14); margin-bottom:24px; }
.adm-tabs { display:flex; gap:24px; border-bottom:1px solid #E3E6F0; margin-bottom:22px; }
.adm-tab { background:none; border:none; padding:0 0 12px; font-size:var(--fz-14); font-weight:var(--fw-med); color:var(--tx-muted); border-bottom:2px solid transparent; margin-bottom:-1px; cursor:pointer; }
.adm-tab.is-active { color:var(--tx-head); border-bottom-color:var(--bg-blue); }
.adm-review { background:#fff; border:1px solid var(--line-soft); border-radius:12px; padding:18px 20px; margin-bottom:14px; }
.adm-review__top { display:flex; justify-content:space-between; align-items:center; margin-bottom:8px; }
.adm-review__rate { font-weight:var(--fw-semi); }
.adm-review__meta { color:var(--tx-soft); font-size:var(--fz-13); }
.adm-review__actions { display:flex; gap:10px; margin-top:14px; }

/* ---------- admin dashboard: stat cards ---------- */
.adm-cards { display:grid; grid-template-columns:repeat(auto-fit,minmax(190px,1fr)); gap:16px; margin-bottom:26px; }
.adm-card { background:#fff; border:1px solid var(--line-soft); border-radius:var(--radius); padding:18px 20px; }
.adm-card__label { color:var(--tx-muted); font-size:var(--fz-13); margin-bottom:8px; }
.adm-card__value { font-size:var(--fz-32); font-weight:var(--fw-bold); color:var(--tx-head); line-height:1.1; }
.adm-card__sub { color:var(--tx-soft); font-size:var(--fz-13); margin-top:6px; }
.adm-card__sub b { color:var(--ok); font-weight:var(--fw-semi); }

/* ---------- admin dashboard: charts (inline bars) ---------- */
.adm-charts { display:grid; grid-template-columns:repeat(auto-fit,minmax(320px,1fr)); gap:16px; margin-bottom:26px; }
.adm-chart { background:#fff; border:1px solid var(--line-soft); border-radius:var(--radius); padding:18px 20px; }
.adm-chart__title { font-weight:var(--fw-semi); font-size:var(--fz-14); color:var(--tx-head); margin-bottom:4px; }
.adm-chart__total { color:var(--tx-muted); font-size:var(--fz-13); margin-bottom:14px; }
.adm-bars { display:flex; align-items:flex-end; gap:4px; height:120px; }
.adm-bar { flex:1; display:flex; flex-direction:column; justify-content:flex-end; align-items:center; height:100%; }
.adm-bar__fill { width:100%; min-height:2px; background:var(--bg-blue); border-radius:3px 3px 0 0; transition:height .3s; }
.adm-bar__fill--rev { background:var(--ok); }
.adm-bar__cap { font-size:9px; color:var(--tx-soft); margin-top:4px; white-space:nowrap; }

/* ---------- admin toolbar (filters + search) ---------- */
.adm-toolbar { display:flex; gap:12px; flex-wrap:wrap; align-items:center; margin-bottom:18px; }
.adm-toolbar input, .adm-toolbar select { height:38px; border:1px solid var(--line-soft); border-radius:var(--radius-sm); padding:0 12px; font-size:var(--fz-14); background:#fff; }
.adm-toolbar input[type=search] { min-width:240px; }

/* ---------- admin table ---------- */
.adm-table { width:100%; border-collapse:collapse; background:#fff; border:1px solid var(--line-soft); border-radius:var(--radius); overflow:hidden; }
.adm-table th { text-align:left; font-size:12px; text-transform:uppercase; letter-spacing:.04em; color:var(--tx-muted); padding:12px 16px; border-bottom:1px solid var(--line-soft); background:#FAFBFE; }
.adm-table td { padding:13px 16px; font-size:var(--fz-14); color:var(--tx); border-bottom:1px solid var(--line-soft); vertical-align:middle; }
.adm-table tr:last-child td { border-bottom:none; }
.adm-table tr:hover td { background:#FAFBFE; }
.adm-table .num { text-align:right; font-variant-numeric:tabular-nums; }
.adm-table .row-actions { display:flex; gap:8px; justify-content:flex-end; }

/* ---------- status badge ---------- */
.adm-badge { display:inline-block; padding:3px 10px; border-radius:var(--radius-pill); font-size:12px; font-weight:var(--fw-med); background:#EEF1F4; color:var(--tx-soft); white-space:nowrap; }
.adm-badge--ok { background:rgba(83,179,116,.14); color:#2E8B57; }
.adm-badge--wait { background:rgba(250,183,24,.16); color:#9A7400; }
.adm-badge--bad { background:rgba(235,0,27,.10); color:var(--danger); }
.adm-badge--blue { background:rgba(0,102,245,.10); color:var(--bg-blue); }

/* ---------- admin form (banner add/edit) ---------- */
.adm-form { background:#fff; border:1px solid var(--line-soft); border-radius:var(--radius); padding:22px 24px; max-width:640px; margin-bottom:22px; display:grid; gap:14px; }
.adm-form label { display:block; font-size:var(--fz-13); color:var(--tx-muted); margin-bottom:5px; }
.adm-form input[type=text], .adm-form input[type=url], .adm-form input[type=number], .adm-form input[type=datetime-local], .adm-form select { width:100%; height:38px; border:1px solid var(--line-soft); border-radius:var(--radius-sm); padding:0 12px; font-size:var(--fz-14); }
.adm-form .row2 { display:grid; grid-template-columns:1fr 1fr; gap:14px; }
.adm-form .check { display:flex; align-items:center; gap:8px; font-size:var(--fz-14); color:var(--tx); }
.adm-form__actions { display:flex; gap:10px; margin-top:4px; }
.adm-thumb { width:64px; height:40px; object-fit:cover; border-radius:6px; border:1px solid var(--line-soft); background:#F4F5FB; }
.adm-muted { color:var(--tx-muted); font-size:var(--fz-13); }

/* ---------- addresses ---------- */
.addr-list { display:flex; flex-direction:column; gap:12px; margin-bottom:8px; max-width:760px; }
.addr-item { display:flex; align-items:flex-start; justify-content:space-between; gap:16px; padding:16px 18px; }
.addr-item__head { font-weight:var(--fw-semi); font-size:var(--fz-14); margin-bottom:4px; display:flex; align-items:center; flex-wrap:wrap; }
.addr-item__body { font-size:var(--fz-14); color:var(--tx); }
.addr-item__note { color:var(--tx-muted); font-size:var(--fz-13); margin-top:4px; }
.addr-item__del { font-size:18px; line-height:1; flex:0 0 auto; }
.addr-form { padding:22px 22px 26px; max-width:760px; }
.addr-form .form-grid { max-width:none; }

/* ---------- cabinet: employees ---------- */
.emp-list { display:flex; flex-direction:column; gap:12px; max-width:760px; margin-top:14px; }
.emp-row { display:flex; align-items:center; gap:16px; padding:16px 20px; }
.emp-row__name { flex:1; font-size:var(--fz-14); font-weight:var(--fw-med); color:var(--tx); }
.emp-del { font-size:var(--fz-14); }
.emp-add { display:flex; align-items:center; gap:12px; flex-wrap:wrap; max-width:760px; margin-top:14px; }
.emp-add .field { flex:1; min-width:200px; }
.emp-add .btn { flex:0 0 auto; }

/* ---------- settings sub-tabs (Общая настройка / Программа лояльности / Сотрудники) ---------- */
.set-tabs { display:flex; gap:28px; border-bottom:1px solid var(--line-soft); margin:2px 0 8px; }
.set-tabs a { color:var(--tx-soft); font-size:var(--fz-14); padding:0 0 12px; border-bottom:2px solid transparent; margin-bottom:-1px; }
.set-tabs a:hover { color:var(--bg-blue); }
.set-tabs a.is-active { color:var(--tx-head); font-weight:var(--fw-med); border-bottom-color:var(--bg-blue); }

/* ===== QA-фиксы 2026-06-29 (задачи #10 #35 #43 #49) ===== */
/* #10 — кликабельное лого над формой входа + бренд-ссылка в aside */
.auth-aside__brand { display:inline-block; text-decoration:none; }
.auth-aside__brand:hover { opacity:.9; }
.auth-logo { display:inline-flex; align-items:center; gap:8px; font-size:20px; font-weight:var(--fw-bold); color:var(--tx-head); text-decoration:none; margin-bottom:18px; }
.auth-logo:hover { opacity:.9; }
.auth-logo__mark { width:30px; height:30px; border-radius:9px; background:linear-gradient(135deg, var(--bg-purple) 0%, var(--ok) 100%); color:#fff; font-weight:800; font-size:18px; display:inline-flex; align-items:center; justify-content:center; }

/* #35 — оформление вкладки «Программа лояльности» в кошельке (раньше голый текст) */
.wallet-loyalty { background:var(--bg); border:1px solid var(--line-soft); border-radius:var(--radius); padding:18px 20px; line-height:1.6; }
.wallet-loyalty p { margin:0 0 6px; }
.wallet-loyalty ul { margin:8px 0 0 18px; padding:0; line-height:1.7; }
.wallet-loyalty li { margin-bottom:4px; }

/* #43 — «Поделиться профилем» оформлено как заметная кнопка (было голубым текстом) */
.side__share { color:var(--bg-purple-deep); font-weight:var(--fw-semi); font-size:var(--fz-14); margin-top:18px; cursor:pointer; display:inline-flex; align-items:center; gap:6px; border:1px solid var(--bg-purple); border-radius:var(--radius-sm); padding:9px 14px; background:#fff; transition:background .15s,color .15s; }
.side__share:hover { background:var(--bg-purple); color:#fff; }

/* #49 — «Кол-во» без переноса + действия иконками (карандаш/крестик) */
.ads-qty { white-space:nowrap; }
.ads-act--icon { display:inline-flex; align-items:center; justify-content:center; width:32px; height:32px; padding:0; font-size:15px; line-height:1; }

/* #39 — корзина: монета баллов, строка списания, блок «Мои заказы» */
.summary__coin { width:16px; height:16px; vertical-align:-3px; margin-right:2px; }
.summary__pts-row { align-items:center; }
.summary__was { color:var(--tx-muted); font-weight:var(--fw-reg); font-size:var(--fz-13); margin-left:6px; }
.cart-orders-link { display:flex; align-items:center; justify-content:space-between; background:#fff; border:1px solid var(--line-soft); border-radius:var(--radius); padding:14px 18px; margin-top:4px; color:var(--tx-head); font-weight:var(--fw-med); text-decoration:none; box-shadow:var(--shadow-card); }
.cart-orders-link:hover { border-color:var(--bg-purple); }
.cart-orders-link__go { color:var(--bg-purple-deep); font-weight:var(--fw-semi); }

/* #49 — статус «В архиве» */
.ads-status--archived { background:#EEF1F4; color:var(--tx-muted); }
