.shortlist-btn{min-height:36px;padding:7px 11px;border:1px solid var(--gold);border-radius:7px;background:rgba(212,168,71,.08);color:var(--gold2);font:600 11px 'Golos Text',sans-serif;white-space:nowrap;cursor:pointer;transition:background .16s ease,border-color .16s ease,color .16s ease,opacity .16s ease}
.shortlist-btn:hover,.shortlist-btn:focus-visible{background:rgba(212,168,71,.16);outline:2px solid transparent;box-shadow:0 0 0 2px rgba(212,168,71,.25)}
.shortlist-btn:active{transform:translateY(1px)}
.shortlist-btn.saved{border-color:var(--teal);background:rgba(58,212,176,.08);color:var(--teal)}
.shortlist-btn.error{border-color:var(--red);color:#ff9b9b}
.shortlist-btn:disabled{cursor:wait;opacity:.7}
.shortlist-inline{display:flex;align-items:center;gap:7px;flex-wrap:wrap}

/* Вход в профиль — единственная кнопка шапки, ведущая в личные данные.
   Золотой контур отделяет её от справочных ссылок рядом. Селектор из двух
   классов: правила .back-btn лежат в <style> страницы, ниже этого файла. */
.hdr .account-nav-link{border-color:rgba(212,168,71,.5);background:rgba(212,168,71,.1);color:var(--gold2);font-weight:600;gap:7px}
/* Кружок аватара в кнопке. Появляется только у вошедшего: у гостя кнопка
   выглядит ровно как раньше. */
.hdr .account-nav-link .nav-av{width:20px;height:20px;flex:none;border-radius:50%;
  object-fit:cover;display:block}
.hdr .account-nav-link:hover,.hdr .account-nav-link:focus-visible{border-color:var(--gold);background:rgba(212,168,71,.18)}

/* Сердечко в ячейке «Программа». Размер кнопки постоянный во всех состояниях:
   строка таблицы не должна дёргаться от того, что программу сохранили. */
.pc-inner{display:flex;align-items:flex-start;gap:10px}
.pc-text{flex:1 1 auto;min-width:0}
.shortlist-heart{position:relative;flex:none;width:26px;height:26px;margin:-3px -4px -3px auto;padding:0;display:inline-flex;align-items:center;justify-content:center;border:0;border-radius:7px;background:none;color:var(--muted);opacity:.72;cursor:pointer;transition:color .16s ease,opacity .16s ease,background .16s ease}
.shortlist-heart svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linejoin:round}
/* Область нажатия дотягивается до 44px, не раздвигая ячейку. */
.shortlist-heart::after{content:"";position:absolute;top:50%;left:50%;width:44px;height:44px;transform:translate(-50%,-50%)}
.shortlist-heart:hover,.shortlist-heart:focus-visible{color:var(--gold2);opacity:1;background:rgba(212,168,71,.12)}
.shortlist-heart:focus-visible{outline:2px solid var(--gold);outline-offset:1px}
.shortlist-heart.saved{color:var(--gold2);opacity:1;cursor:default}
.shortlist-heart.saved svg{fill:currentColor;stroke:currentColor}
.shortlist-heart.saving{opacity:.85;cursor:wait;animation:heart-beat .9s ease-in-out infinite}
.shortlist-heart.error{color:#ff9b9b;opacity:1}
@keyframes heart-beat{50%{transform:scale(1.16)}}

@media(max-width:640px){.shortlist-btn{min-height:44px}.shortlist-inline{width:100%}.shortlist-inline .shortlist-btn{flex:1}.shortlist-heart{width:34px;height:34px;margin:-4px -6px -4px auto}.shortlist-heart svg{width:19px;height:19px}}
@media(prefers-reduced-motion:reduce){.shortlist-btn,.shortlist-heart{transition:none}.shortlist-heart.saving{animation:none}}
