/* =====================================================================
   CS-RYAZAN :: CYBERPUNK — модули modules_extra
   Подключается после стилей модулей ({files}) и перекрывает их.
   кейсы, награды, розыгрыш, статистика, магазины, подарки, кланы,
   демо, звания, VIP-ключи, донат-виджет, онлайн-линия
   ===================================================================== */

/* ---------- баннеры в сайдбаре: кейсы и награды ---------- */
.case-banner, .activity-rewards-banner {
	position: relative; overflow: hidden; margin-bottom: 24px !important;
	background:
		radial-gradient(260px 160px at 50% 35%, rgba(255, 34, 69, .28), transparent 70%),
		linear-gradient(160deg, rgba(22, 14, 18, .96), rgba(8, 5, 7, .98)) !important;
	border: 1px solid var(--cp-line) !important; border-radius: 0 !important;
	box-shadow: 0 0 24px rgba(255, 34, 69, .18) !important;
	clip-path: polygon(16px 0, 100% 0, 100% calc(100% - 16px), calc(100% - 16px) 100%, 0 100%, 0 16px);
}
.case-banner::before, .activity-rewards-banner::before {
	content: ""; position: absolute; inset: 0; pointer-events: none;
	background: repeating-linear-gradient(115deg, rgba(255, 34, 69, .05) 0 2px, transparent 2px 6px);
}
.case-banner a, .activity-rewards-banner a { position: relative; display: block; padding: 22px 18px 20px !important; text-align: center; text-decoration: none !important; }
.case-banner h3, .activity-rewards-banner h3 {
	margin: 0 0 12px !important; font-family: var(--font-display) !important; font-size: .78rem !important; font-weight: 700 !important;
	letter-spacing: .14em; text-transform: uppercase; color: #fff !important;
}
.activity-rewards-banner h3 i { color: var(--cp-red) !important; }
.case-banner img, .activity-rewards-banner img { max-width: 190px !important; margin: 0 auto 12px !important; display: block; filter: drop-shadow(0 0 18px rgba(255, 34, 69, .45)); transition: transform .6s ease !important; }
.case-banner a:hover img, .activity-rewards-banner a:hover img { transform: scale(1.08) rotate(-2deg) !important; }
.case-banner p, .activity-rewards-banner p {
	margin: 0; font-family: var(--font-ui) !important; font-weight: 700 !important; font-size: .95rem !important; letter-spacing: .04em; color: var(--cp-text-2) !important; text-shadow: none !important;
}
.case-banner a::after, .activity-rewards-banner a::after {
	content: "ОТКРЫТЬ \203A"; display: inline-block; margin-top: 12px; padding: 6px 14px;
	font-family: var(--font-display); font-size: .56rem; font-weight: 700; letter-spacing: .16em; color: #170307;
	background: linear-gradient(135deg, var(--cp-red), #c4102c);
	clip-path: polygon(7px 0, 100% 0, 100% calc(100% - 7px), calc(100% - 7px) 100%, 0 100%, 0 7px);
}
.activity-rewards-banner a::after { content: "ЗАБРАТЬ \203A"; }

/* ---------- кейсы ---------- */
.cases-main-block { position: relative; }
.cases-main-block h2, .cases-main-block h3 { font-family: var(--font-display) !important; letter-spacing: .08em; }
.cases-main-block > h2 { text-transform: uppercase; font-size: 1.15rem !important; }
.cases-main-block .info-block h3 { font-size: .82rem !important; text-transform: uppercase; }
.cases-opens-head { font-family: var(--font-display) !important; letter-spacing: .14em !important; color: var(--cp-text) !important; }
.case-block { clip-path: polygon(14px 0, 100% 0, 100% calc(100% - 14px), calc(100% - 14px) 100%, 0 100%, 0 14px); }
.case-block span { font-family: var(--font-ui); font-weight: 700; letter-spacing: .03em; }
.case-block span:last-child { font-family: var(--font-display) !important; font-size: .7rem !important; }
button.open-case {
	font-family: var(--font-display) !important; letter-spacing: .12em; text-transform: uppercase !important; font-size: .9rem !important;
	clip-path: polygon(14px 0, 100% 0, 100% calc(100% - 14px), calc(100% - 14px) 100%, 0 100%, 0 14px);
	box-shadow: 0 0 26px rgba(255, 34, 69, .45) !important;
}
.roulette { border-color: var(--cp-line) !important; }
.roulette .top-arr, .roulette .bottom-arr { filter: hue-rotate(-40deg) saturate(1.4); }
#prize .modal-body h4 { font-family: var(--font-display); font-size: .9rem; letter-spacing: .14em; text-transform: uppercase; color: var(--cp-red-hot); }

/* ---------- награды за активность ---------- */
.day-in-a-row { color: var(--cp-red-hot) !important; background: none !important; -webkit-text-fill-color: currentColor !important; border-bottom-color: var(--cp-red) !important; font-family: var(--font-display); }
.reward {
	border: 1px solid var(--cp-line-soft) !important; border-radius: 0 !important; background: rgba(8, 5, 7, .6);
	transition: border-color .2s, background .2s;
}
.reward:hover { border-color: var(--cp-line) !important; background: rgba(255, 34, 69, .04); }
.reward .reward-day {
	background: linear-gradient(160deg, rgba(255, 34, 69, .25), rgba(255, 34, 69, .06)) !important; border: 1px solid var(--cp-line);
	border-radius: 0 !important; clip-path: polygon(12px 0, 100% 0, 100% calc(100% - 12px), calc(100% - 12px) 100%, 0 100%, 0 12px);
}
.reward .reward-day span { font-family: var(--font-display); font-size: 1.8rem !important; color: #fff !important; text-shadow: 0 0 12px var(--cp-red-glow) !important; }
.reward .reward-day i { font-family: var(--font-ui); font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: var(--cp-text-mute) !important; }
.reward .reward-content span:nth-child(1) { font-family: var(--font-ui); font-weight: 700; color: #fff; }
.reward .reward-content span:nth-child(2) { color: var(--cp-text-mute); }
.reward.active { border-color: rgba(43, 255, 136, .35) !important; }
.reward.active .received { background: rgba(5, 4, 6, .82) !important; color: var(--cp-green) !important; font-family: var(--font-display); font-size: 1.1rem !important; letter-spacing: .2em; text-shadow: 0 0 12px rgba(43, 255, 136, .6) !important; }

/* ---------- розыгрыш ---------- */
.sortition .ending, .sortition #prizes, .sortition #participants {
	margin-left: -22px !important; margin-right: -22px !important;
	background: radial-gradient(600px 220px at 50% 50%, rgba(255, 34, 69, .18), transparent 70%), repeating-linear-gradient(115deg, rgba(255, 34, 69, .04) 0 2px, transparent 2px 6px), #07050a !important;
	border-top: 1px solid var(--cp-line-soft); border-bottom: 1px solid var(--cp-line-soft);
}
.sortition h3 { font-family: var(--font-ui) !important; font-weight: 700 !important; font-size: 1.05rem !important; letter-spacing: .03em; color: var(--cp-text) !important; }
.sortition #ending span {
	font-family: var(--font-display) !important; font-weight: 900 !important; font-size: 2.6rem !important; line-height: 1 !important; min-width: 84px;
	color: #fff !important; background: linear-gradient(160deg, var(--cp-panel-2), var(--cp-void)) !important;
	border: 1px solid var(--cp-line) !important; border-radius: 0 !important; padding: 14px 12px !important;
	box-shadow: 0 0 22px rgba(255, 34, 69, .25), inset 0 0 20px rgba(255, 34, 69, .12) !important;
	text-shadow: 0 0 16px var(--cp-red-glow);
	clip-path: polygon(10px 0, 100% 0, 100% calc(100% - 10px), calc(100% - 10px) 100%, 0 100%, 0 10px);
}
.sortition #ending i { font-family: var(--font-ui) !important; font-weight: 700; font-size: .72rem !important; letter-spacing: .2em; text-transform: uppercase; color: var(--cp-red-hot); margin-top: 8px; }
.sortition #prizes h5 {
	width: auto !important; display: inline-block !important; padding: 6px 14px !important;
	background: linear-gradient(135deg, var(--cp-red), #c4102c) !important; color: #170307 !important; border-radius: 0 !important; box-shadow: none !important;
	font-family: var(--font-display); font-size: .7rem !important; letter-spacing: .14em; text-transform: uppercase;
}
.sortition #prizes .prize, .sortition .with_code {
	background: rgba(8, 5, 7, .85) !important; color: var(--cp-text-2) !important; border: 1px solid var(--cp-line-soft); border-radius: 0 !important;
}
.sortition #prizes .prize span { color: #fff; font-family: var(--font-ui); font-weight: 700 !important; }
.sortition #prizes .prize span small { color: var(--cp-text-mute) !important; }
.sortition .participate {
	font-family: var(--font-display) !important; font-weight: 700; font-size: .82rem !important; letter-spacing: .14em; text-transform: uppercase;
	background: linear-gradient(135deg, var(--cp-red), #c4102c) !important; color: #170307 !important; text-shadow: none !important;
	border: 0 !important; border-radius: 0 !important; padding: 16px 28px !important;
	clip-path: polygon(12px 0, 100% 0, 100% calc(100% - 12px), calc(100% - 12px) 100%, 0 100%, 0 12px);
	box-shadow: 0 0 26px rgba(255, 34, 69, .45) !important; transition: filter .2s, transform .2s;
}
.sortition .participate:hover { filter: brightness(1.12); transform: translateY(-1px); background: linear-gradient(135deg, var(--cp-red), #c4102c) !important; }
.sortition #participants a img { border: 1px solid var(--cp-line); border-radius: 0 !important; }
.sortition #winners a.winner-card { background: rgba(8, 5, 7, .85) !important; border: 1px solid var(--cp-line-soft) !important; border-radius: 0 !important; }
.sortition #winners a.winner-card:hover { border-color: var(--cp-red) !important; }
.sortition #winners .winner-place { background: linear-gradient(135deg, var(--cp-red), #c4102c) !important; color: #170307 !important; font-family: var(--font-display); border-radius: 0 !important; }
.sortition #winners .winner-name { font-family: var(--font-ui); font-weight: 700; color: #fff !important; }
.sortition a.read-more { font-family: var(--font-display); font-size: .6rem; letter-spacing: .16em; text-transform: uppercase; }
.sortition .noty-block.mb-5 { margin-bottom: 0 !important; }

/* ---------- статистика сайта (плитки) ---------- */
.cx-stats-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px; }
.cx-stats-grid--col { grid-template-columns: 1fr; gap: 6px; }
.cx-stat {
	position: relative; display: flex; align-items: center; gap: 12px; padding: 12px;
	background: linear-gradient(160deg, rgba(255, 34, 69, .07), rgba(255, 34, 69, .01)); border: 1px solid var(--cp-line-soft);
	clip-path: polygon(10px 0, 100% 0, 100% calc(100% - 10px), calc(100% - 10px) 100%, 0 100%, 0 10px);
	transition: border-color .2s, background .2s;
}
.cx-stat:hover { border-color: var(--cp-line); background: rgba(255, 34, 69, .1); }
.cx-stat > i { flex: 0 0 34px; width: 34px; height: 34px; display: inline-flex; align-items: center; justify-content: center; color: var(--cp-red); background: rgba(0, 0, 0, .35); border: 1px solid var(--cp-line-soft); font-size: .9rem; }
.cx-stat__body { display: flex; flex-direction: column; min-width: 0; line-height: 1.15; }
.cx-stat__val { font-family: var(--font-display); font-weight: 700; font-size: 1rem; color: #fff; }
.cx-stat__lbl { font-family: var(--font-ui); font-weight: 600; font-size: .82rem; color: var(--cp-text-mute); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.cx-stat__diff { position: absolute; top: 6px; right: 8px; font-family: var(--font-display); font-size: .56rem; color: var(--cp-green) !important; }
.cx-stat__diff a { color: var(--cp-green) !important; }
.cx-stats-grid--col .cx-stat { padding: 8px 10px; }
.cx-stats-grid--col .cx-stat > i { flex-basis: 28px; width: 28px; height: 28px; font-size: .78rem; }
.cx-stats-grid--col .cx-stat__val { font-size: .86rem; }

/* ---------- магазин оружия (digital_store) ---------- */
.product-card {
	border: 1px solid var(--cp-line-soft); border-radius: 0 !important; box-shadow: 0 10px 26px rgba(0, 0, 0, .45) !important;
	clip-path: polygon(14px 0, 100% 0, 100% calc(100% - 14px), calc(100% - 14px) 100%, 0 100%, 0 14px);
	transition: border-color .25s, transform .25s;
}
.product-card:hover { border-color: var(--cp-red); transform: translateY(-3px); }
.product-card > div:nth-child(2) { background: linear-gradient(180deg, rgba(5, 4, 6, .1), rgba(5, 4, 6, .55)) !important; }
.product-card > div:nth-child(2) > span:nth-child(1), .product-card > div:nth-child(2) > span:nth-child(2) {
	font-family: var(--font-display); font-size: .64rem; letter-spacing: .06em; border-radius: 0 !important;
	clip-path: polygon(6px 0, 100% 0, 100% calc(100% - 6px), calc(100% - 6px) 100%, 0 100%, 0 6px);
}
.product-card > div:nth-child(2) > span:nth-child(1) { background: linear-gradient(135deg, var(--cp-red), #c4102c) !important; color: #170307 !important; }
.product-card > div:nth-child(2) > span:nth-child(2) { background: rgba(8, 5, 7, .85) !important; border: 1px solid var(--cp-line); color: #fff !important; }
.product-card > div:nth-child(2) p { font-family: var(--font-ui); font-weight: 700; font-size: 1rem; letter-spacing: .03em; background: linear-gradient(90deg, rgba(5, 4, 6, .95), rgba(5, 4, 6, .7)) !important; border-top: 1px solid var(--cp-line); }
.product-block { border-radius: 0 !important; }
.product-block .product-content { border-radius: 0 !important; background: linear-gradient(90deg, rgba(5, 4, 6, .92), rgba(5, 4, 6, .55)) !important; }
.product-block .product-content h2 { font-family: var(--font-display) !important; font-size: 1.4rem !important; text-transform: uppercase; letter-spacing: .06em; }
.product-block .product-content span b { font-family: var(--font-display); font-size: .7rem; border-radius: 0 !important; }
.product-block .product-content span .price { background: linear-gradient(135deg, var(--cp-red), #c4102c) !important; color: #170307 !important; }
.product-block .product-content span .count { background: rgba(8, 5, 7, .85) !important; border: 1px solid var(--cp-line); }
.product-block .product-content button { background: linear-gradient(135deg, var(--cp-red), #c4102c) !important; color: #170307 !important; border: 0; }
.buy-product-key-info { background: rgba(43, 255, 136, .06) !important; border: 1px solid rgba(43, 255, 136, .3); border-radius: 0 !important; }

/* ---------- RCON-магазин / магазин ключей ---------- */
.rcon-shop-product { padding: 0 !important; overflow: hidden; border-radius: 0 !important; }
.rcon-shop-product .image { filter: saturate(.9); transition: transform .5s ease, filter .3s !important; }
.rcon-shop-product:hover .image { filter: saturate(1.1); }
.rcon-shop-product .image::after { content: ""; position: absolute; inset: 0; pointer-events: none; background: linear-gradient(180deg, transparent 50%, rgba(5, 4, 6, .8)), repeating-linear-gradient(0deg, rgba(0, 0, 0, .18) 0 1px, transparent 1px 3px); }
.rcon-shop-product .image .title { z-index: 2; background: rgba(8, 5, 7, .85) !important; border: 1px solid var(--cp-line); border-radius: 0 !important; font-family: var(--font-ui); font-weight: 700; letter-spacing: .03em; }
.rcon-shop-product .image .price { z-index: 2; }
.rcon-shop-product .actions { display: flex; gap: 8px; padding: 12px; }
.rcon-shop-product .actions .btn { flex: 1; width: auto !important; margin: 0 !important; }
.rcon-shop-product-in-detail .image img { border: 1px solid var(--cp-line); border-radius: 0 !important; }

/* ---------- подарки ---------- */
.gift_price { transition: transform .2s; }
.gift_price:hover { transform: translateY(-3px); }
.gift_price .image img { filter: drop-shadow(0 0 12px rgba(255, 34, 69, .35)); }
.holder, .gift_free {
	background: linear-gradient(135deg, var(--cp-red), #c4102c) !important; color: #170307 !important; border-radius: 0 !important;
	font-family: var(--font-display); font-size: .62rem !important; letter-spacing: .08em;
}
.gift { background: rgba(255, 34, 69, .08) !important; border-bottom: 1px solid var(--cp-line-soft); font-family: var(--font-ui); font-weight: 700; }
.gift-block { border-color: var(--cp-line-soft) !important; box-shadow: none !important; }
#GiftProfile img { filter: drop-shadow(0 0 8px rgba(255, 34, 69, .3)); }

/* ---------- кланы ---------- */
.block_header {
	font-family: var(--font-display) !important; font-size: .9rem !important; letter-spacing: .12em; text-transform: uppercase; color: #fff !important;
}
ul.clans { list-style: none; margin: 0; padding: 0; }
ul.clans > li {
	display: flex; align-items: center; gap: 10px; flex-wrap: wrap;
	padding: 12px !important; margin-bottom: 8px; border: 1px solid var(--cp-line-soft) !important; background: rgba(8, 5, 7, .6) !important; border-radius: 0 !important;
	transition: border-color .2s, background .2s;
}
ul.clans > li:hover { border-color: var(--cp-red) !important; background: rgba(255, 34, 69, .05) !important; }
ul.clans > li > div { display: flex; align-items: center; gap: 10px; }
ul.clans > li img { width: 42px !important; height: 42px !important; object-fit: cover; border-radius: 0 !important; border: 1px solid var(--cp-line); clip-path: polygon(10px 0, 100% 0, 100% calc(100% - 10px), calc(100% - 10px) 100%, 0 100%, 0 10px); }
ul.clans > li svg { color: var(--cp-red); }
ul.clans > li .content p { margin: 0; font-family: var(--font-ui); font-weight: 700; color: #fff; line-height: 1.2; }
ul.clans > li .content span { font-size: .78rem; color: var(--cp-text-mute); }
.clans.more .cover { min-height: 180px; }
.clans.more .players > * { border-color: var(--cp-line-soft) !important; }

/* ---------- демо-записи ---------- */
.demo { border-bottom: 1px solid var(--cp-line-soft) !important; transition: background .2s; }
.demo:hover { background: rgba(255, 34, 69, .04); }
.demo .col-lg-2 .map, .demo .col-xs-2 .map { border-radius: 0 !important; border: 1px solid var(--cp-line); clip-path: polygon(10px 0, 100% 0, 100% calc(100% - 10px), calc(100% - 10px) 100%, 0 100%, 0 10px); }
.demo .col-lg-5 p a, .demo .col-xs-5 p a { color: var(--cp-red-hot) !important; text-decoration: none !important; }
.demo .col-lg-5:nth-child(3) p:nth-child(1) b { color: var(--cp-red-hot) !important; }
.demo .col-lg-5:nth-child(3) p:nth-child(2) b { color: var(--cp-cyan) !important; }

/* ---------- звания (aes_plugin) ---------- */
#list td img, .aes-rank img { filter: drop-shadow(0 0 6px rgba(255, 34, 69, .35)); }

/* ---------- VIP-ключи / покупка ключа ---------- */
#store_service_info.with_code.noty-block { border-left-color: var(--cp-red) !important; }
#buy_service_area .form-check { padding: 10px 12px 10px 32px; background: rgba(255, 255, 255, .02); border: 1px solid var(--cp-line-soft); }

/* ---------- виджет пожертвований ---------- */
#dw_donations .card, .dw_content .card { background: rgba(8, 5, 7, .6) !important; }
.dw_target-sum { font-family: var(--font-display); color: var(--cp-red-hot); }
#dw_donations .progress { height: 10px; }

/* ---------- общая строка онлайна (online_line) — вне мониторинга ---------- */
.online-line-total { border-radius: 0 !important; }

/* ---------- адаптив ---------- */
@media (max-width: 1199.98px) { .cx-stats-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (max-width: 767.98px) {
	.cx-stats-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.sortition #ending span { font-size: 1.8rem !important; min-width: 62px; padding: 10px 8px !important; }
	.sortition .ending, .sortition #prizes, .sortition #participants { margin-left: -16px !important; margin-right: -16px !important; }
}
