.cp_progress {}
.cp_progress p {padding: 0 4px 2px 28px!important;}
.cp_progress img {float: left; margin: 0 10px 0 0; cursor: help;}
.cp_progress div {margin: 0; width: calc(100% - 28px);}
.cp_progress div span {
    margin-left: calc(50% - 20px);
    min-width: 40px;
}
.cp_progress ul {margin: 20px 24px 10px;}
.cp_progress ul li {list-style-image: url('../img_interface/controls/bullet_blue.png'); list-style-position: inside;}

.cp_progress p.descrAc {margin: 20px 0 10px -2px;}
.cp_progress p.descrAc img {margin: 2px 6px 0 0; cursor: inherit;}
.cp_progress p.descrAc span {display: table-cell;}

.xtreeTrigger {margin: 0; padding: 0 !important;}
.xtreeTrigger label {cursor: pointer;}
.xtreeTrigger input {cursor: pointer; display: block; float: left; margin: 4px 10px 0 4px;}

.giftRadio input {cursor: pointer; display: block; height: 22px; margin: 0 0 0 4px; width: 246px;}
.giftRadio td:hover {background-color: #fcfcfc;}
.giftBut {margin: 10px 0 0 4px;}
.giftTable td.thIco img {margin: 0 0 -4px 0px;}
.giftPlayers {margin: 10px 4px;}

.mt10 {margin-top: 10px;}
.ml10 {margin-left: 10px;}

.miniTable input.g-option, .miniTable .g-all {margin: 0;}

.g-plus, .g-minus {font-family: Tahoma;
    height: 22px;
    vertical-align: middle;
    width: 22px;
    text-align: center;
    padding: 0;
    font-weight: bolder;
    border-radius: 2px;
    border: 1px solid #ccc;
    box-shadow: 0 0 2px rgb(0 0 0 / 20%);
    background-color: #eee;
    cursor: pointer;
    font-size: 14px;
    color: #555;
    line-height: 18px;}
.g-plus:not(.g-novis):hover, .g-minus:not(.g-novis):hover {box-shadow: none; border-color: #888; background-color: #ccc; color: #eee;}
.g-stroke {}
.g-row {}
.g-row td {}
.g-active-text {color: #64B813;}
.raz {
    all: unset;
    -moz-appearance: textfield;
    width: 3em;
    text-align: center;
}
.raz::-webkit-inner-spin-button {
    display: none;
}
.Block > p.g-form-p {border-top: 1px dashed #ccc; padding-top: 6px; margin-top: 20px;}

#g-form .g-form-p:not(:first-child) {
    margin-top: 20px;
}
#g-form p:not(.g-form-p) {
    margin-top: 0;
}

.p-tip {margin: 0 10px 0;}
#edit {margin: 20px 10px 0; padding: 10px 0;}
#edit.borders {border-bottom: 1px dashed #ccc; border-top: 1px dashed #ccc; margin: 30px 10px 20px;}
#edit fieldset {width: calc(100% - 42px);}
#edit fieldset label input {display: inline-block; margin: 0px 2px 3px 4px; vertical-align: middle;}
.Block #edit fieldset > div {color: #555; padding: 0 10px!important;}
div#edit div.ui-progressbar {margin: 10px 0; width: calc(100% - 0px);}
div#edit div.ui-progressbar span {margin-left: calc(50% - 10px);}

.groupBonus {
    margin: 4px 2px;
    border: 1px dashed #ccc;
    border-radius: 4px;
    padding: 4px 8px;
}
.groupBonus img.gift-control {display: none; float: right; margin: 3px!important;}
.groupBonus.active {border: 1px solid #64B813;}
.groupBonus.active .tick {display: inline;}
.groupBonus.disabled {border: 1px solid #FCBC3B; text-decoration: line-through;}
.groupBonus.disabled .cross {display: inline;}

.others {text-align: left;}
.others > fieldset legend {
    padding: 0 6px;
}
.others > fieldset {
    border: 1px dashed #eee;
    border-radius: 4px;
    color: #777;
    padding: 10px;
    min-height: 27px;
    margin-left: 4px;
    margin-right: 4px;
}
.others > fieldset small {
    margin-left: 0;
}
.others > fieldset.success {
    border: 1px solid #64B813;
}
.others > fieldset:not(:last-child) {margin-bottom: 8px;}
.others > fieldset:last-child {margin-bottom: 4px;}
.others > fieldset > div {
    display: flex;
    /*align-items: baseline;*/
    justify-content: space-between;
    gap: 10px;
}
.others > fieldset > div > div.tip {
    margin-right: auto;
}
/* Уточнение под названием опции в модалке активации — тем же серым, что на витрине */
.others .gift-modal-tip {
    display: block;
    color: #999;
}

/* Колонка с информацией об активации: без своей ширины текст сжимается в кашу,
   особенно с подсказкой во второй строке. Фиксируем — модалка достаточно широкая. */
.others > fieldset.success > div > div:last-child {
    flex: 0 0 340px;
}

.others > fieldset > div > div.but {
    display: flex;
    align-items: end;
    gap: 10px;
    margin-left: auto;
}
.others > fieldset > div > div.but .progress {
    margin-right: 10px;
}

.collapse-icon {
    float: right;
    cursor: pointer;
    margin: 4px 2px 0 0;
}

table.disabled {
    display: none;
}

.collapsed {
    cursor: pointer;
}
.gray {
    color: #BBBBBB!important;
}

.gift__first-pay {
    border: 1px dashed #64B813;
    padding: 10px;
    border-radius: 4px;
    margin: 4px;
}

.balance_otc {
    border: 1px solid #ccc;
    padding: 0 10px;
    border-radius: 4px;
}

/* UPD */
.miniTable.upgrade td {
    border: none;
}

.miniTable.upgrade td.gift-icon {
    text-align: center;
}

.miniTable.upgrade td.gift-icon img {
    width: 40px;
}

.miniTable.upgrade td.gift-counter {
    text-align: center;
}

.miniTable.upgrade td.gift-price {
    text-align: center;
    color: #64B813;
    font-weight: bold;
    font-size: 18px;
    font-family: Arial, sans-serif;
    line-height: 20px;
    vertical-align: middle;
}

.miniTable.upgrade td.gift-full-price {
    text-align: center;
    color: #555555;
    font-weight: bold;
    font-size: 18px;
    font-family: Arial, sans-serif;
    line-height: 20px;
    vertical-align: middle;
}

.miniTable.upgrade td.gift-description {
    vertical-align: top;
}

.miniTable.upgrade td.gift-description p {
    margin: 0;
    padding: 0;
    line-height: 20px;
}

.miniTable.upgrade td.gift-description p:nth-child(2) {
    color: #999;
}

.miniTable.upgrade td img {
    margin: 0;
    vertical-align: middle;
}

.gift-group-icon {width: 40px; height: 40px}

.gift-group-item {
    display: flex;
    position: relative;
    cursor: default;
    flex-direction: row;
    gap: 8px;
}

table.miniTable .gift-group-item > img {
    margin: 0;
    vertical-align: middle;
}

.gift-group-description {
    vertical-align: top;
}

.gift-group-description p {
    margin: 0;
    padding: 0!important;
    line-height: 20px;
}

.gift-group-description p:nth-child(2) {
    color: #999;
}

.gift-group-hold {
    position: absolute;
    width: 100%;
    height: 100%;
    background-color: #ccc;
    opacity: 0.9;
    transition: opacity 0.3s ease;
    margin: -4px 0 0 -8px;
    border-radius: 4px;
    text-align: center;
    line-height: 43px;
    font-size: 16px;
    color: #555;
}

.gift-group-hold img {
    vertical-align: middle;
    margin: 0 !important;
    width: 32px;
    height: 32px;
}

.gift-group-item.active .gift-group-hold {
    display: none;
}

.gift-group-item:not(.active):hover .gift-group-hold {
    opacity: 0;
    cursor: default;
}

.g-novis {visibility: hidden;}
.upgrade .g-novis {visibility: visible; opacity: 0.2;}

.g-plus.g-novis:hover, .g-minus.g-novis:hover {cursor: no-drop;}

.gift-icon-modal {

}

.gift-icon-modal img {
    width: 32px;
    height: 32px;
    vertical-align: middle;
}
/* Правая колонка страницы акции: в 270 px иконка слева не нужна, полосы во всю ширину */
.gift-aside-left {margin: 0 0 10px; padding: 0 !important;}
.gift-aside-progress {}
.gift-aside-progress p {margin: 0 0 3px; padding: 0 !important;}
.gift-aside-progress div {margin: 0; width: 100%;}

.gift-aside-progress div span {
    margin-left: calc(50% - 20px);
    min-width: 40px;
    text-align: center;
}
.g-set-progress {color: inherit;}
.gift-gap {margin: 0 0 8px; padding: 0 !important; min-height: 14px;}

/*
 * Раскладка страницы акции: вместо флоатов — флекс, чтобы правая колонка тянулась
 * на высоту витрины. Без этого липкая корзина «кончается» вместе с колонкой,
 * то есть примерно на трети прокрутки.
 */
/* 30, а не 10: внутренний блок вылезает за свою колонку на величину паддингов,
   и видимый зазор получается ровно 10 px */
#Body.giftBody {display: flex; align-items: stretch; gap: 30px;}
#Body.giftBody > br {display: none;}
/* Только прямые потомки: класс TMenu висит и на колонке, и на каждом блоке внутри */
/* Витрина сохраняет родную ширину — ту же, что в офисе и профиле */
#Body.giftBody > .CenterT {float: none; flex: 0 0 auto; min-width: 0;}
/* Свободное место забирает правая колонка, а не витрина */
#Body.giftBody > .TMenu {float: none; flex: 1 1 auto; display: flex; flex-direction: column;}

/*
 * Корзина стоит сразу под переключателем школы и прилипает к верху окна, когда
 * до неё долистали. Пустой остаток колонки оказывается НИЖЕ корзины, где его не видно,
 * — при прижиме к низу он был бы над ней и колонка выглядела бы разъехавшейся.
 * Растянутая колонка всё равно нужна: sticky не выходит за пределы родителя.
 */
.gift-cart {
    min-height: 84px;
    display: flex;
    flex-direction: column;
}
.gift-sticky {position: sticky; top: 10px;}
.gift-cart-sum {margin: 0 0 8px; padding: 0 !important;}

/*
 * Чекбоксы витрины вдвое крупнее обычных: по ним целятся мышью десятки раз за покупку,
 * а стандартные 13 px для этого мелковаты. Отключённые курсор не меняют — жать нечего.
 */
.miniTable input.g-option,
.miniTable input.g-group {width: 22px; height: 22px; cursor: pointer;}
.miniTable input.g-option:disabled,
.miniTable input.g-group:disabled {cursor: default;}

/* Колонка под чекбокс должна вместить укрупнённый квадрат */
.miniTable.upgrade th:last-child,
.miniTable.upgrade td:last-child {}

/* Кликается вся строка, а не только квадратик — мишень вместо двух десятков пикселей
   становится во всю ширину витрины. Строки, где жать нечего, вида не меняют. */
.g-row:not(.g-row-off), .g-group-row:not(.g-row-off) {cursor: pointer; height: 46px;}
/* Цвета не свои, а проектные: так подсвечивается выбираемый элемент в basis_css
   (.freeTeam — нейтральный #f5f7f8 в покое, мятный #d7f0d7 при выборе). */
.g-row:not(.g-row-off):hover > td {background-color: #d7f0d7;}
.g-group-row:not(.g-row-off):hover > th {background-color: #d7f0d7;}
/* Тем же цветом остаётся уже купленное: видно, что у клуба это есть */
.g-row.g-row-on > td, .g-row.g-row-bought > td {background-color: #d7f0d7;}

/* Вместо иконки монеты в шапке теперь слова «Цена» и «Итог» — раньше над обеими
   колонками стояла одна и та же монета и различить их можно было только наведением.
   Курсор-подсказку сохраняем: текст по-прежнему поясняется тултипом. */
.miniTable th {
    vertical-align: middle;
    color: #777777!important;
}
.miniTable th.thIco span {cursor: help;}

/* Корзина липкая, а под ней ещё блоки — без слоя они бы наезжали на неё при прокрутке */
.gift-sticky {z-index: 1;}

/*
 * Вкладки модалки активации. Панель сама несёт класс others — оформление блоков висит
 * на .others > fieldset, то есть на прямых потомках, и обёртка сверху его сломала бы.
 * Высоту снимаем: jquery.ui.css задаёт панелям жёсткие 410 px.
 */
#giftTabs .ui-tabs-panel {height: auto; min-height: 0; padding: 10px 0 0;}
#giftTabs .ui-tabs-nav li a small {color: #999; font-weight: normal;}

.gift-modal-filter {margin: 0 0 8px; padding: 0 !important;}
.gift-modal-filter label {cursor: pointer;}
.gift-modal-filter input {cursor: pointer; margin: 0 6px 0 0; vertical-align: middle;}

/* Прячем только пришедшее активированным с сервера: активированное прямо сейчас
   остаётся на месте вместе с подтверждающим текстом */
.gift-hide-activated fieldset[id^="bonus-activated-"] {display: none;}
