@charset "utf-8";

/* =========================================================================
   STAKE THEME  ·  단계 1: 레이아웃 뼈대 (사이드바 + 헤더 + 다크/라이트 테마)
   - 신규 클래스는 모두 stk- 접두사를 사용해 기존 style.css 와 충돌을 피합니다.
   - 색상/간격은 CSS 변수로 정의하여 다크/라이트 전환을 지원합니다.
   ========================================================================= */

/* ------------------------- 테마 변수 : 다크(기본) ------------------------- */
:root,
:root[data-theme="dark"] {
	--stk-bg: #0f212e;
	--stk-surface: #1a2c38;
	--stk-surface-2: #213743;
	--stk-surface-3: #2f4553;
	--stk-border: #2f4553;
	--stk-text: #ffffff;
	--stk-text-muted: #b1bad3;
	--stk-text-dim: #8595a9;
	--stk-primary: #1475e1;
	--stk-primary-hover: #2b83e3;
	--stk-success: #1fff20;
	--stk-danger: #ed4163;
	--stk-shadow: rgba(0, 0, 0, 0.35);
	--stk-overlay: rgba(0, 0, 0, 0.6);
}

/* ---------------------------- 테마 변수 : 라이트 ---------------------------- */
:root[data-theme="light"] {
	--stk-bg: #f2f5f9;
	--stk-surface: #ffffff;
	--stk-surface-2: #eef2f7;
	--stk-surface-3: #e2e8f0;
	--stk-border: #dbe2ea;
	--stk-text: #12212e;
	--stk-text-muted: #55657e;
	--stk-text-dim: #7c8aa0;
	--stk-primary: #1475e1;
	--stk-primary-hover: #0e63c4;
	--stk-success: #12a312;
	--stk-danger: #d32f4f;
	--stk-shadow: rgba(16, 33, 46, 0.12);
	--stk-overlay: rgba(16, 33, 46, 0.4);
}

/* --------------------------------- 치수 --------------------------------- */
:root {
	--stk-sidebar-w: 240px;
	--stk-sidebar-w-collapsed: 64px;
	--stk-header-h: 60px;
	--stk-radius: 8px;
	--stk-radius-sm: 6px;
	--stk-content-max: 1200px;
	--stk-transition: 0.2s ease;
}

/* --------------------------------- 베이스 -------------------------------- */
.stk-app * {
	box-sizing: border-box;
}

body.stk-body {
	margin: 0;
	background: var(--stk-bg);
	color: var(--stk-text);
	transition: background var(--stk-transition), color var(--stk-transition);
	-webkit-font-smoothing: antialiased;
	/* 모바일 확대 차단: 좌우/상하 스크롤만 허용해 핀치와 더블탭 확대를 막는다. */
	touch-action: pan-x pan-y;
	/* 입력창 포커스 시 iOS 가 화면을 확대하지 않도록 텍스트 크기를 고정한다. */
	-webkit-text-size-adjust: 100%;
	text-size-adjust: 100%;
}

.stk-app a {
	color: inherit;
	text-decoration: none;
}

/* ------------------------------- 앱 셸 그리드 ------------------------------ */
.stk-app {
	min-height: 100vh;
}

/* 사이드바 폭만큼 본문을 밀어줍니다. */
.stk-main {
	min-height: 100vh;
	margin-left: var(--stk-sidebar-w);
	display: flex;
	flex-direction: column;
	transition: margin-left var(--stk-transition);
}

.stk-app[data-sidebar="collapsed"] .stk-main {
	margin-left: var(--stk-sidebar-w-collapsed);
}

/* ================================ 사이드바 =============================== */
.stk-sidebar {
	position: fixed;
	top: 0;
	left: 0;
	width: var(--stk-sidebar-w);
	height: 100vh;
	background: var(--stk-surface);
	border-right: 1px solid var(--stk-border);
	display: flex;
	flex-direction: column;
	z-index: 1040;
	transition: width var(--stk-transition), transform var(--stk-transition);
	overflow: hidden;
}

.stk-app[data-sidebar="collapsed"] .stk-sidebar {
	width: var(--stk-sidebar-w-collapsed);
}

/* 사이드바 상단: 카지노/스포츠(=슬롯) 토글 pill */
.stk-sidebar-top {
	display: flex;
	gap: 6px;
	padding: 12px;
	border-bottom: 1px solid var(--stk-border);
}

.stk-seg {
	flex: 1;
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 7px;
	height: 38px;
	border: none;
	border-radius: 8px;
	background: var(--stk-surface-2);
	color: var(--stk-text-muted);
	font-weight: 700;
	font-size: 13px;
	cursor: pointer;
	white-space: nowrap;
	transition: background var(--stk-transition), color var(--stk-transition);
}

.stk-seg svg {
	width: 18px;
	height: 18px;
	flex: none;
}

.stk-seg:hover {
	color: var(--stk-text);
}
.stk-seg.active {
	background: var(--stk-surface);
	color: var(--stk-text);
	box-shadow: 0 2px 6px var(--stk-shadow);
}

.stk-app[data-sidebar="collapsed"] .stk-seg .stk-seg-label {
	display: none;
}

/* 사이드바 메뉴 */
.stk-nav {
	flex: 1;
	overflow-y: auto;
	padding: 8px 0;
}

.stk-nav::-webkit-scrollbar {
	width: 6px;
}
.stk-nav::-webkit-scrollbar-thumb {
	background: var(--stk-surface-3);
	border-radius: 3px;
}

.stk-nav-section {
	padding: 8px 0;
	border-bottom: 1px solid var(--stk-border);
}
.stk-nav-section:last-child {
	border-bottom: none;
}

.stk-nav-item {
	display: flex;
	align-items: center;
	gap: 12px;
	width: 100%;
	padding: 10px 18px;
	border: none;
	background: transparent;
	color: var(--stk-text-muted);
	font-size: 14px;
	font-weight: 600;
	cursor: pointer;
	text-align: left;
	white-space: nowrap;
	position: relative;
	transition: background var(--stk-transition), color var(--stk-transition);
}

.stk-nav-item:hover,
.stk-nav-item.active {
	background: var(--stk-surface-2);
	color: var(--stk-text);
}

.stk-nav-item .stk-ico {
	width: 20px;
	height: 20px;
	flex: none;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	color: var(--stk-text-dim);
}
.stk-nav-item:hover .stk-ico,
.stk-nav-item.active .stk-ico {
	color: var(--stk-primary);
}

.stk-nav-item .stk-badge {
	margin-left: auto;
	min-width: 18px;
	height: 18px;
	padding: 0 5px;
	border-radius: 9px;
	background: var(--stk-danger);
	color: #fff;
	font-size: 11px;
	line-height: 18px;
	text-align: center;
}

.stk-app[data-sidebar="collapsed"] .stk-nav-item .stk-nav-label,
.stk-app[data-sidebar="collapsed"] .stk-nav-item .stk-badge {
	display: none;
}
.stk-app[data-sidebar="collapsed"] .stk-nav-item {
	justify-content: center;
	padding: 12px 0;
}

/* 접힌 사이드바(64px)에서는 배너가 알아볼 수 없게 줄어들어 감춘다. */
.stk-app[data-sidebar="collapsed"] .stk-tg-banner {
	display: none;
}

/* ================================= 헤더 ================================= */
.stk-header {
	position: sticky;
	top: 0;
	height: var(--stk-header-h);
	display: flex;
	align-items: center;
	gap: 12px;
	padding: 0 16px;
	background: var(--stk-surface);
	border-bottom: 1px solid var(--stk-border);
	z-index: 1030;
}

.stk-icon-btn {
	width: 40px;
	height: 40px;
	flex: none;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	border: none;
	border-radius: var(--stk-radius-sm);
	background: transparent;
	color: var(--stk-text-muted);
	cursor: pointer;
	transition: background var(--stk-transition), color var(--stk-transition);
}
.stk-icon-btn:hover {
	background: var(--stk-surface-2);
	color: var(--stk-text);
}
.stk-icon-btn svg {
	width: 20px;
	height: 20px;
}

.stk-logo {
	display: flex;
	align-items: center;
	height: 36px;
}
.stk-logo img {
	max-height: 32px;
	width: auto;
}

/* 검색바 */
.stk-search {
	flex: 1;
	max-width: 420px;
	display: flex;
	align-items: center;
	gap: 8px;
	height: 40px;
	padding: 0 12px;
	border-radius: var(--stk-radius-sm);
	background: var(--stk-surface-2);
	color: var(--stk-text-dim);
}
.stk-search svg {
	width: 16px;
	height: 16px;
	flex: none;
}
.stk-search input {
	flex: 1;
	border: none;
	background: transparent;
	color: var(--stk-text);
	font-size: 14px;
	outline: none;
}
.stk-search input::placeholder {
	color: var(--stk-text-dim);
}

.stk-header-spacer {
	flex: 1;
}

.stk-header-right {
	display: flex;
	align-items: center;
	gap: 8px;
}

/* 잔액 표시 */
.stk-vip-badge {
	display: inline-flex;
	align-items: center;
	height: 40px;
	padding: 0 12px;
	border-radius: var(--stk-radius-sm);
	background: linear-gradient(135deg, #f5c451, #e0a626);
	color: #1a1300;
	font-weight: 800;
	font-size: 13px;
	letter-spacing: 0.3px;
	white-space: nowrap;
}
.stk-balance {
	display: flex;
	align-items: center;
	gap: 8px;
	height: 40px;
	padding: 0 6px 0 14px;
	border-radius: var(--stk-radius-sm);
	background: var(--stk-surface-2);
	font-weight: 700;
	font-size: 14px;
}
.stk-balance .stk-balance-amount {
	color: var(--stk-text);
}
.stk-balance .stk-balance-unit {
	color: var(--stk-text-dim);
	font-size: 12px;
}
.stk-balance .stk-wallet-btn {
	/* display 지정이 없으면 글자가 박스 위쪽에 붙는다. */
	display: inline-flex;
	align-items: center;
	justify-content: center;
	height: 30px;
	padding: 0 12px;
	border: none;
	border-radius: var(--stk-radius-sm);
	background: var(--stk-primary);
	color: #fff;
	font-family: inherit;
	font-weight: 700;
	font-size: 12px;
	line-height: 1;
	cursor: pointer;
	transition: background var(--stk-transition);
}
.stk-balance .stk-wallet-btn:hover {
	background: var(--stk-primary-hover);
}

/* 버튼 */
.stk-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	height: 40px;
	padding: 0 18px;
	border: none;
	border-radius: var(--stk-radius-sm);
	font-weight: 700;
	font-size: 14px;
	cursor: pointer;
	white-space: nowrap;
	text-decoration: none;
	transition: background var(--stk-transition), color var(--stk-transition);
}
.stk-btn:hover {
	text-decoration: none;
}
.stk-btn-ghost {
	background: transparent;
	color: var(--stk-text);
}
.stk-btn-ghost:hover {
	background: var(--stk-surface-2);
}
.stk-btn-primary {
	background: var(--stk-primary);
	color: #fff;
}
.stk-btn-primary:hover {
	background: var(--stk-primary-hover);
}
/* 로그인 버튼: STAKE 스타일의 채워진 어두운 서페이스 버튼 */
.stk-btn-dark {
	background: var(--stk-surface-3);
	color: var(--stk-text);
}
.stk-btn-dark:hover {
	background: var(--stk-surface-2);
}

/* 프로필/유저 아이콘 버튼 */
/* 내정보 드로어를 여는 버튼. 헤더에서 가장 눈에 띄어야 하므로
   포인트 컬러로 채우고 flex 축소 대상에서 제외한다. */
.stk-user-btn {
	flex: none;
	width: 40px;
	height: 40px;
	border-radius: 50%;
	border: 2px solid var(--stk-primary);
	background: var(--stk-primary);
	color: #fff;
	cursor: pointer;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	box-shadow: 0 2px 8px rgba(0, 0, 0, 0.35);
	transition: filter var(--stk-transition);
}
.stk-user-btn:hover,
.stk-user-btn:focus {
	filter: brightness(1.12);
	outline: none;
}
.stk-user-btn svg {
	width: 22px;
	height: 22px;
}

/* ============================== 콘텐츠 영역 ============================== */
.stk-content {
	flex: 1;
	width: 100%;
}
.stk-content-inner {
	max-width: var(--stk-content-max);
	margin: 0 auto;
	padding: 20px 16px 60px;
}

/* 신규(구버전에 없던) 블록 자리표시자 — 관리자 설정 연동은 이후 단계 */
.stk-block-placeholder {
	border: 1px dashed var(--stk-border);
	border-radius: var(--stk-radius);
	background: var(--stk-surface);
	color: var(--stk-text-dim);
	padding: 28px;
	text-align: center;
	font-size: 13px;
	margin-bottom: 20px;
}

/* ============================== 콘텐츠 섹션 ============================== */
.stk-section {
	margin-bottom: 28px;
}
.stk-section-head {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	margin-bottom: 14px;
}
.stk-section-title {
	display: flex;
	align-items: center;
	gap: 8px;
	font-size: 18px;
	font-weight: 800;
	color: var(--stk-text);
}
.stk-section-title svg {
	width: 20px;
	height: 20px;
	color: var(--stk-primary);
}

/* 탭 (라이브 카지노 / 슬롯) */
.stk-tabs {
	display: inline-flex;
	gap: 4px;
	padding: 4px;
	background: var(--stk-surface);
	border: 1px solid var(--stk-border);
	border-radius: var(--stk-radius);
}
.stk-tab {
	height: 36px;
	padding: 0 18px;
	border: none;
	border-radius: var(--stk-radius-sm);
	background: transparent;
	color: var(--stk-text-muted);
	font-weight: 700;
	font-size: 14px;
	cursor: pointer;
	transition: background var(--stk-transition), color var(--stk-transition);
}
.stk-tab:hover {
	color: var(--stk-text);
}
.stk-tab.on {
	background: var(--stk-primary);
	color: #fff;
}

/* ============================== 게임 카드 그리드 =========================== */
.stk-games-grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(150px, 1fr));
	gap: 14px;
}
.stk-games-grid.stk-hidden {
	display: none;
}
.stk-game-card {
	display: block;
	border-radius: var(--stk-radius);
	overflow: hidden;
	background: var(--stk-surface);
	border: 1px solid var(--stk-border);
	cursor: pointer;
	transition: transform var(--stk-transition), box-shadow var(--stk-transition), border-color var(--stk-transition);
}
.stk-game-card:hover {
	transform: translateY(-4px);
	border-color: var(--stk-primary);
	box-shadow: 0 8px 20px var(--stk-shadow);
}
.stk-game-thumb {
	position: relative;
	width: 100%;
	aspect-ratio: 4 / 3;
	background: var(--stk-surface-2);
	display: flex;
	align-items: center;
	justify-content: center;
	overflow: hidden;
}
.stk-game-thumb img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform var(--stk-transition);
}
.stk-game-card:hover .stk-game-thumb img {
	transform: scale(1.06);
}
.stk-game-play {
	position: absolute;
	inset: 0;
	margin: auto;
	width: 52px;
	height: 52px;
	border-radius: 50%;
	background: var(--stk-primary);
	color: #fff;
	display: flex;
	align-items: center;
	justify-content: center;
	opacity: 0;
	transform: scale(0.7);
	transition: opacity var(--stk-transition), transform var(--stk-transition);
	box-shadow: 0 6px 16px rgba(0, 0, 0, 0.4);
}
.stk-game-play svg {
	width: 24px;
	height: 24px;
	margin-left: 2px;
}
.stk-game-card:hover .stk-game-play {
	opacity: 1;
	transform: scale(1);
}
.stk-game-name {
	padding: 10px 12px;
	font-size: 13px;
	font-weight: 700;
	color: var(--stk-text);
	text-align: center;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}

@media (max-width: 575px) {
	.stk-games-grid {
		grid-template-columns: repeat(auto-fill, minmax(110px, 1fr));
		gap: 10px;
	}
	.stk-game-name {
		font-size: 12px;
		padding: 8px 6px;
	}
}

/* ================================ 게시판 카드 =============================== */
.stk-boards {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
	gap: 16px;
}
.stk-board {
	background: var(--stk-surface);
	border: 1px solid var(--stk-border);
	border-radius: var(--stk-radius);
	overflow: hidden;
	display: flex;
	flex-direction: column;
}
.stk-board-head {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 10px;
	padding: 14px 16px;
	border-bottom: 1px solid var(--stk-border);
}
.stk-board-title {
	display: flex;
	align-items: center;
	gap: 10px;
	min-width: 0;
}
.stk-board-ico {
	width: 34px;
	height: 34px;
	flex: none;
	border-radius: var(--stk-radius-sm);
	background: var(--stk-surface-2);
	color: var(--stk-primary);
	display: flex;
	align-items: center;
	justify-content: center;
}
.stk-board-ico svg {
	width: 18px;
	height: 18px;
}
.stk-board-title b {
	font-size: 15px;
	color: var(--stk-text);
}
.stk-board-title em {
	font-style: normal;
	font-size: 12px;
	color: var(--stk-text-dim);
	margin-left: 2px;
}
.stk-board-title small {
	display: block;
	font-size: 11px;
	color: var(--stk-text-dim);
	margin-top: 2px;
}
.stk-more-btn {
	flex: none;
	/* a 태그라 display 지정이 없으면 글자가 박스 위쪽에 붙는다. */
	display: inline-flex;
	align-items: center;
	justify-content: center;
	height: 30px;
	padding: 0 12px;
	border: 1px solid var(--stk-border);
	border-radius: var(--stk-radius-sm);
	background: var(--stk-surface-2);
	color: var(--stk-text-muted);
	font-size: 12px;
	font-weight: 700;
	line-height: 1;
	cursor: pointer;
	transition: background var(--stk-transition), color var(--stk-transition);
}
.stk-more-btn:hover {
	background: var(--stk-primary);
	color: #fff;
	border-color: var(--stk-primary);
}
.stk-seg-group {
	display: inline-flex;
	gap: 4px;
	flex: none;
}
.stk-seg-group button {
	height: 30px;
	padding: 0 14px;
	border: 1px solid var(--stk-border);
	border-radius: var(--stk-radius-sm);
	background: var(--stk-surface-2);
	color: var(--stk-text-muted);
	font-size: 12px;
	font-weight: 700;
	cursor: pointer;
	transition: background var(--stk-transition), color var(--stk-transition);
}
.stk-seg-group button.active-button-menu-category {
	background: var(--stk-primary);
	color: #fff;
	border-color: var(--stk-primary);
}
.stk-board-body {
	padding: 6px 8px;
	max-height: 260px;
	overflow-y: auto;
}
.stk-board-table {
	width: 100%;
	border-collapse: collapse;
}
.stk-board-table td {
	padding: 9px 8px;
	font-size: 13px;
	color: var(--stk-text-muted);
	border-bottom: 1px solid var(--stk-border);
	white-space: nowrap;
}
.stk-board-table tr:last-child td {
	border-bottom: none;
}
.stk-board-table td.text-left {
	width: 100%;
	overflow: hidden;
	text-overflow: ellipsis;
}
.stk-board-table td a {
	color: var(--stk-text);
	cursor: pointer;
}
.stk-board-table td a:hover {
	color: var(--stk-primary);
}
.stk-board-table tr:hover td {
	background: var(--stk-surface-2);
}
.stk-board-date {
	color: var(--stk-text-dim);
	text-align: right;
	font-size: 12px;
}
.stk-board-amount {
	color: var(--stk-text);
	font-weight: 700;
	text-align: right;
}
.stk-board-empty {
	padding: 28px 12px;
	text-align: center;
	color: var(--stk-text-dim);
	font-size: 13px;
}
.stk-tag {
	display: inline-block;
	padding: 2px 7px;
	border-radius: 4px;
	font-size: 11px;
	font-weight: 700;
	margin-right: 6px;
	color: #fff;
}
.stk-tag-in {
	background: var(--stk-success);
	color: #08210b;
}
.stk-tag-out {
	background: var(--stk-danger);
}

/* =============================== 오버레이 =============================== */
.stk-overlay {
	position: fixed;
	inset: 0;
	background: var(--stk-overlay);
	z-index: 1035;
	display: none;
}
.stk-overlay.show {
	display: block;
}

/* ============================== 반응형(모바일) ============================ */
@media (max-width: 991px) {
	.stk-sidebar {
		transform: translateX(-100%);
	}
	.stk-app[data-sidebar="open"] .stk-sidebar {
		transform: translateX(0);
		width: var(--stk-sidebar-w);
	}
	.stk-main {
		margin-left: 0 !important;
	}
	.stk-search {
		display: none;
	}
}

/* 좁은 화면에서는 헤더 요소가 넘쳐 우측 끝의 내정보 버튼이 잘려나간다.
   드로어에서도 볼 수 있는 등급·로그아웃을 접고 잔액을 줄여 자리를 확보한다. */
@media (max-width: 767px) {
	.stk-header {
		gap: 6px;
		padding: 0 10px;
	}
	.stk-header-right {
		gap: 6px;
		min-width: 0;
	}
	.stk-header-right .stk-vip-badge,
	.stk-header-right #btn_logout {
		display: none;
	}
	.stk-logo img {
		max-height: 26px;
	}
	.stk-balance {
		min-width: 0;
		padding: 0 4px 0 10px;
		gap: 6px;
		font-size: 13px;
	}
	.stk-balance .stk-balance-amount {
		min-width: 0;
		overflow: hidden;
		text-overflow: ellipsis;
		white-space: nowrap;
	}
	.stk-balance .stk-wallet-btn {
		flex: none;
	}
	.stk-user-btn {
		width: 42px;
		height: 42px;
	}
	.stk-user-btn svg {
		width: 24px;
		height: 24px;
	}
}

@media (max-width: 575px) {
	.stk-balance .stk-balance-unit {
		display: none;
	}
	.stk-content-inner {
		padding: 14px 10px 48px;
	}
}

/* =====================================================================
   단독 페이지 (입금/출금/공지/이벤트/고객센터/쪽지) - 팝업 대체
   ===================================================================== */

/* 앵커로 바뀐 네비/버튼의 밑줄 제거 */
.stk-nav-item,
.stk-seg,
.stk-more-btn,
.stk-wallet-btn,
.userSidebar .menu-box {
	text-decoration: none;
}
.stk-seg:hover {
	text-decoration: none;
}
.stk-nav-item:hover {
	text-decoration: none;
}

.stk-page {
	max-width: 780px;
	margin: 0 auto;
}
.stk-page-head {
	display: flex;
	align-items: center;
	gap: 12px;
	margin-bottom: 18px;
}
.stk-page-ico {
	width: 34px;
	height: 34px;
	flex: none;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	border-radius: var(--stk-radius-sm);
	background: var(--stk-surface-2);
	color: var(--stk-primary);
}
.stk-page-ico svg {
	width: 20px;
	height: 20px;
}
.stk-page-head h1 {
	margin: 0;
	font-size: 20px;
	font-weight: 800;
	color: var(--stk-text);
}
.stk-page-subhead {
	margin: 22px 0 10px;
	font-size: 15px;
	font-weight: 800;
	color: var(--stk-text);
}
.stk-page-card {
	background: var(--stk-surface);
	border: 1px solid var(--stk-border);
	border-radius: var(--stk-radius);
	padding: 20px;
}

.stk-field-row {
	display: flex;
	gap: 16px;
}
.stk-field-row .stk-field {
	flex: 1;
}
.stk-field {
	margin-bottom: 16px;
}
.stk-field > label {
	display: block;
	font-size: 12px;
	font-weight: 700;
	color: var(--stk-text-muted);
	margin-bottom: 7px;
}
.stk-static {
	display: flex;
	align-items: center;
	gap: 8px;
	min-height: 42px;
	padding: 0 14px;
	background: var(--stk-surface-2);
	border: 1px solid var(--stk-border);
	border-radius: var(--stk-radius-sm);
	color: var(--stk-text);
	font-size: 14px;
	font-weight: 600;
}
.stk-static-accent {
	color: var(--stk-primary);
	font-weight: 800;
}
.stk-refresh {
	margin-left: auto;
	width: 30px;
	height: 30px;
	border: none;
	border-radius: var(--stk-radius-sm);
	background: var(--stk-surface-3);
	color: var(--stk-text-muted);
	cursor: pointer;
	display: inline-flex;
	align-items: center;
	justify-content: center;
}
.stk-refresh svg {
	width: 16px;
	height: 16px;
}
.stk-refresh:hover {
	color: var(--stk-primary);
}

.stk-input {
	width: 100%;
	height: 44px;
	padding: 0 14px;
	background: var(--stk-surface-2);
	border: 1px solid var(--stk-border);
	border-radius: var(--stk-radius-sm);
	color: var(--stk-text);
	font-size: 14px;
	outline: none;
	transition: border-color var(--stk-transition);
}
.stk-input:focus {
	border-color: var(--stk-primary);
}
.stk-input::placeholder {
	color: var(--stk-text-dim);
}
/* iOS 는 글자가 16px 보다 작은 입력창에 포커스하면 화면을 확대한다. 모바일에서만 16px 로 올린다. */
@media (max-width: 767px) {
	.stk-input,
	input[type="text"],
	input[type="number"],
	input[type="password"],
	input[type="email"],
	select,
	textarea {
		font-size: 16px;
	}
}

.stk-quick-btns {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin-bottom: 16px;
}
.stk-quick-btns button {
	flex: 1;
	min-width: 72px;
	height: 40px;
	border: 1px solid var(--stk-border);
	border-radius: var(--stk-radius-sm);
	background: var(--stk-surface-2);
	color: var(--stk-text);
	font-weight: 700;
	font-size: 13px;
	cursor: pointer;
	transition: border-color var(--stk-transition), color var(--stk-transition);
}
.stk-quick-btns button:hover {
	border-color: var(--stk-primary);
	color: var(--stk-primary);
}
.stk-quick-btns .stk-quick-reset {
	background: var(--stk-surface-3);
	color: var(--stk-text-muted);
}

.stk-submit-row {
	display: flex;
	gap: 10px;
}
.stk-submit-row button {
	flex: 1;
	height: 48px;
	border: none;
	border-radius: var(--stk-radius-sm);
	font-weight: 800;
	font-size: 15px;
	cursor: pointer;
	color: #fff;
	transition: filter var(--stk-transition);
}
.stk-submit-row button:hover {
	filter: brightness(1.08);
}
.stk-btn-blue {
	background: var(--stk-primary);
}
.stk-btn-green {
	background: var(--stk-success);
	color: #08210b;
}
.stk-btn-red {
	background: var(--stk-danger);
}
.stk-btn-grey {
	background: var(--stk-surface-3);
	color: var(--stk-text) !important;
}

.stk-account-info {
	margin-top: 18px;
	padding-top: 18px;
	border-top: 1px solid var(--stk-border);
}

/* 충전내역에서 해시가 있는 건의 금액. 클릭하면 이체 조회 페이지로 나간다. */
.stk-tx-link {
	color: var(--stk-primary);
	font-weight: 700;
	text-decoration: none;
}
.stk-tx-link:hover {
	text-decoration: underline;
}

/* 입금 2단계의 '이전' 버튼. 보조 동작이라 폭을 좁게 고정한다. */
.stk-submit-row .stk-btn-back {
	flex: 0 0 110px;
	background: var(--stk-surface-3);
	color: var(--stk-text);
}
.stk-step-note {
	margin: 14px 0 16px;
	font-size: 13px;
	line-height: 1.6;
	color: var(--stk-text-muted);
}

.stk-qr-field {
	text-align: center;
}

/* USDT 입금 지갑 바코드. QR 은 흰 여백이 있어야 스캔이 되므로 배경을 흰색으로 고정한다. */
.stk-usdt-qr {
	display: block;
	width: 180px;
	height: 180px;
	margin: 0 auto;
	object-fit: contain;
	padding: 8px;
	background: #fff;
	border-radius: var(--stk-radius-sm);
}

.stk-table {
	width: 100%;
	border-collapse: collapse;
}
.stk-table thead th {
	padding: 10px 8px;
	font-size: 12px;
	font-weight: 700;
	color: var(--stk-text-dim);
	text-align: center;
	border-bottom: 1px solid var(--stk-border);
}
.stk-table tbody td {
	padding: 11px 8px;
	font-size: 13px;
	color: var(--stk-text-muted);
	text-align: center;
	border-bottom: 1px solid var(--stk-border);
}
.stk-table tbody tr:last-child td {
	border-bottom: none;
}
.stk-table .stk-badge {
	display: inline-block;
	padding: 3px 10px;
	border-radius: 4px;
	color: #fff;
	font-size: 12px;
	font-weight: 700;
}

.stk-event-empty {
	padding: 40px 12px;
	text-align: center;
	color: var(--stk-text-dim);
	font-size: 14px;
}

/* 이벤트 목록. 본문은 관리자가 넣는 HTML이라 폭을 넘지 않게 제한한다. */
.stk-event-list {
	display: flex;
	flex-direction: column;
	gap: 14px;
}
.stk-event-item {
	border: 1px solid var(--stk-border);
	border-radius: var(--stk-radius);
	background: var(--stk-surface-2);
	overflow: hidden;
}
.stk-event-item-head {
	display: flex;
	align-items: center;
	gap: 10px;
	padding: 12px 14px;
	border-bottom: 1px solid var(--stk-border);
}
.stk-event-subject {
	flex: 1;
	min-width: 0;
	margin: 0;
	font-size: 15px;
	font-weight: 800;
	color: var(--stk-text);
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}
.stk-event-date {
	flex: none;
	font-size: 12px;
	color: var(--stk-text-dim);
}
.stk-event-content {
	padding: 14px;
	font-size: 14px;
	color: var(--stk-text-muted);
	overflow-x: auto;
}
.stk-event-content img,
.stk-event-content table,
.stk-event-content iframe {
	max-width: 100%;
}
.stk-event-content img {
	height: auto;
}
.stk-event-pager {
	margin-top: 16px;
	display: flex;
	justify-content: center;
}

/* 임베드된 Livewire(공지/고객센터/쪽지) 가독성 보정
   - 기존 style.css의 골드/다크 전용 색을 테마 변수로 덮어씀 */
.stk-livewire {
	color: var(--stk-text);
}
.stk-livewire a {
	color: var(--stk-text);
}
.stk-livewire a:hover {
	color: var(--stk-primary);
}
.stk-livewire .pop-up-body ul {
	padding-left: 0;
	padding-right: 0;
	color: var(--stk-text);
}
.stk-livewire .pop-up-body ul li {
	border-bottom: 1px solid var(--stk-border);
}
.stk-livewire .pop-up-body .info,
.stk-livewire .pop-up-body .top-badge {
	color: var(--stk-text);
}
.stk-livewire .pop-up-body .top-badge {
	color: var(--stk-text-muted);
}
.stk-livewire .pop-up-body .info {
	background: var(--stk-surface-2);
	border: 1px solid var(--stk-border);
	border-radius: var(--stk-radius-sm);
	padding: 10px 12px;
}
.stk-livewire .pop-up-body input.info::placeholder,
.stk-livewire .pop-up-body textarea.info::placeholder {
	color: var(--stk-text-dim);
}
.stk-livewire .pop-table th {
	color: var(--stk-text) !important;
}
.stk-livewire .pop-up-body .pop-table td {
	color: var(--stk-text-muted);
}
.stk-livewire .pop-up-body .pop-table tr:first-child {
	background: var(--stk-surface-2);
}
.stk-livewire .pop-up-body .pop-table tr:first-child:hover {
	background: var(--stk-surface-2);
}
.stk-livewire .pop-up-body .pop-table tr {
	border-bottom: 1px solid var(--stk-border);
}
.stk-livewire .pop-up-body .pop-table tr:hover {
	background: var(--stk-surface-2);
}
.stk-livewire .text-popup {
	background: var(--stk-surface-2);
	color: var(--stk-text);
	border-radius: var(--stk-radius-sm);
	/* 본문이 너무 좁아 style.css 의 200px 을 두 배로 넓힌다. */
	height: 400px;
}
/* 목록가기 등 Livewire 안의 버튼. style.css 의 회색(#ccc) 배경이 남아 있으면
   흰 글자와 겹쳐 사이트 톤과 어긋나므로 배경까지 테마 색으로 덮는다. */
.stk-livewire .button-holder button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	height: 34px;
	padding: 0 18px;
	border: 1px solid var(--stk-border);
	border-radius: var(--stk-radius-sm);
	background: var(--stk-surface-2);
	color: var(--stk-text);
	font-size: 13px;
	font-weight: 700;
	line-height: 1;
	transition: background var(--stk-transition), color var(--stk-transition), border-color var(--stk-transition);
}
.stk-livewire .button-holder button:hover {
	background: var(--stk-primary);
	border-color: var(--stk-primary);
	color: #fff;
}
/* 삭제/작성처럼 인라인 !important 배경을 직접 지정한 버튼은 배경을 덮을 수 없으므로
   글자와 테두리만 그 배경에 맞춰 둔다. */
.stk-livewire .button-holder button[style*="background"],
.stk-livewire .button-holder button[style*="background"]:hover {
	color: #fff;
	border-color: transparent;
}
.stk-livewire .content-drop-down .slide-button {
	color: var(--stk-text);
	background: var(--stk-surface-2);
	border: 1px solid var(--stk-border);
	border-radius: var(--stk-radius-sm);
	margin-bottom: 6px;
}
.stk-livewire .content-drop-down .slide-content {
	color: var(--stk-text-muted);
}
/* Livewire 목록 페이지네이션 */
.stk-livewire nav[role="navigation"] {
	margin-top: 12px;
}
.stk-livewire .pagination {
	flex-wrap: wrap;
}

@media (max-width: 575px) {
	.stk-field-row {
		flex-direction: column;
		gap: 0;
	}
	.stk-quick-btns button {
		min-width: calc(33.333% - 6px);
	}
}

/* =====================================================================
   로그인 / 회원가입 단독 페이지
   ===================================================================== */
.stk-auth {
	display: flex;
	justify-content: center;
	padding: 24px 0 40px;
}
.stk-auth-card {
	width: 100%;
	max-width: 420px;
	background: var(--stk-surface);
	border: 1px solid var(--stk-border);
	border-radius: var(--stk-radius);
	padding: 32px 28px;
}
.stk-auth-wide .stk-auth-card {
	max-width: 560px;
}
.stk-auth-logo {
	text-align: center;
	margin-bottom: 18px;
}
.stk-auth-logo img {
	max-height: 46px;
	width: auto;
}
.stk-auth-title {
	margin: 0;
	text-align: center;
	font-size: 22px;
	font-weight: 800;
	color: var(--stk-text);
}
.stk-auth-sub {
	margin: 6px 0 22px;
	text-align: center;
	font-size: 13px;
	color: var(--stk-text-dim);
}
.stk-auth-form .stk-field:last-of-type {
	margin-bottom: 20px;
}
.stk-auth-submit {
	width: 100%;
	height: 48px;
	border: none;
	border-radius: var(--stk-radius-sm);
	background: var(--stk-primary);
	color: #fff;
	font-size: 15px;
	font-weight: 800;
	cursor: pointer;
	transition: filter var(--stk-transition);
}
.stk-auth-submit:hover {
	filter: brightness(1.08);
}
.stk-auth-alt {
	margin-top: 18px;
	text-align: center;
	font-size: 13px;
	color: var(--stk-text-muted);
}
.stk-auth-alt a {
	color: var(--stk-primary);
	font-weight: 700;
	text-decoration: none;
}
.stk-auth-alt a:hover {
	text-decoration: underline;
}
/* 유효성 표시 (register) */
.stk-auth-form .stk-input.is-invalid {
	border-color: var(--stk-danger);
}
.stk-auth-form .stk-input.is-valid {
	border-color: var(--stk-success);
}

/* =====================================================================
   STAKE 스타일 인증 모달 (로그인 / 회원가입)
   ===================================================================== */
.stk-modal-dialog {
	max-width: 400px;
}
.stk-modal-dialog-wide {
	max-width: 520px;
}
.stk-modal .modal-content,
.stk-modal-content {
	position: relative;
	background: var(--stk-surface);
	border: 1px solid var(--stk-border);
	border-radius: 14px;
	color: var(--stk-text);
	overflow: hidden;
	max-height: 92vh;
	display: flex;
	flex-direction: column;
	box-shadow: 0 24px 60px var(--stk-shadow);
}
.stk-modal-close {
	position: absolute;
	top: 12px;
	right: 12px;
	width: 32px;
	height: 32px;
	border: none;
	border-radius: 8px;
	background: transparent;
	color: var(--stk-text-muted);
	display: inline-flex;
	align-items: center;
	justify-content: center;
	cursor: pointer;
	z-index: 2;
}
.stk-modal-close:hover {
	background: var(--stk-surface-2);
	color: var(--stk-text);
}
.stk-modal-close svg {
	width: 18px;
	height: 18px;
}
.stk-modal-seg {
	display: flex;
	gap: 6px;
	padding: 16px 16px 0;
	flex: none;
}
.stk-modal-seg-btn {
	flex: 1;
	height: 42px;
	border: none;
	border-radius: var(--stk-radius-sm);
	background: var(--stk-surface-2);
	color: var(--stk-text-muted);
	font-weight: 800;
	font-size: 14px;
	cursor: pointer;
	transition: background var(--stk-transition), color var(--stk-transition);
}
.stk-modal-seg-btn.active {
	background: var(--stk-primary);
	color: #fff;
}
.stk-modal-seg-btn:not(.active):hover {
	color: var(--stk-text);
}
/* 탭이 링크(a)일 때. display 지정이 없으면 글자가 박스 위쪽에 붙는다. */
a.stk-modal-seg-btn,
a.stk-modal-seg-btn:hover {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	line-height: 1;
	text-decoration: none;
}

/* 지갑 모달 잔액 탭 */
.stk-wallet-row {
	display: flex;
	align-items: center;
	gap: 10px;
	padding: 14px 0;
	border-bottom: 1px solid var(--stk-border);
}
.stk-wallet-row:last-child {
	border-bottom: none;
}
.stk-wallet-label {
	min-width: 84px;
	color: var(--stk-text-muted);
	font-size: 13px;
}
.stk-wallet-value {
	flex: 1;
	color: var(--stk-text);
	font-weight: 700;
}
.stk-wallet-value .my-money {
	color: var(--stk-success);
}
.stk-wallet-act {
	flex: none;
	height: 30px;
	padding: 0 14px;
	border: none;
	border-radius: var(--stk-radius-sm);
	background: var(--stk-primary);
	color: #fff;
	font-family: inherit;
	font-size: 12px;
	font-weight: 700;
	cursor: pointer;
	transition: background var(--stk-transition);
}
.stk-wallet-act:hover {
	background: var(--stk-primary-hover);
}
.stk-modal-body {
	padding: 20px 22px 24px;
	overflow-y: auto;
}
.stk-modal-logo {
	text-align: center;
	margin-bottom: 16px;
}
.stk-modal-logo img {
	max-height: 42px;
	width: auto;
}
.stk-modal-sub {
	text-align: center;
	font-size: 12px;
	color: var(--stk-text-dim);
	margin: -6px 0 18px;
}
.stk-modal-alt {
	margin-top: 16px;
	text-align: center;
	font-size: 13px;
	color: var(--stk-text-muted);
}
.stk-modal-alt a {
	color: var(--stk-primary);
	font-weight: 700;
	text-decoration: none;
}
.stk-modal-alt a:hover {
	text-decoration: underline;
}

/* 모달 스크롤바 숨김 (스크롤 기능은 유지) */
.stk-modal-body {
	scrollbar-width: none;
	-ms-overflow-style: none;
}
.stk-modal-body::-webkit-scrollbar {
	width: 0;
	height: 0;
}

/* 회원가입 모달: 세로 간격 압축으로 스크롤 최소화 */
.stk-modal .stk-modal-body {
	padding: 14px 22px 20px;
}
.stk-modal .stk-modal-logo {
	margin-bottom: 10px;
}
.stk-modal .stk-modal-logo img {
	max-height: 36px;
}
.stk-modal .stk-modal-sub {
	margin: -2px 0 12px;
}
.stk-modal .stk-auth-form .stk-field {
	margin-bottom: 12px;
}
.stk-modal .stk-auth-form .stk-field:last-of-type {
	margin-bottom: 16px;
}
.stk-modal .stk-input {
	height: 40px;
}
.stk-modal .stk-auth-submit {
	height: 44px;
}

/* =========================================================================
   우측 유저 드로어(사이드바) — STAKE 테마 오버라이드
   - 기존 style.css(.userSidebar/.user-details/.menu-box) 골드·다크 테마를
     stake 변수 기반으로 재정의합니다. JS 애니메이션(right 값)은 건드리지 않습니다.
   ========================================================================= */

/* 드로어는 헤더(1030)·오버레이(1035)·좌측 네비(1040)보다 위에 떠야 한다.
   style.css 의 z-index:50 이면 헤더 밑으로 열려서 가려진다.
   단 부트스트랩 모달(1050)보다는 낮게 두어 모달이 항상 위에 오도록 한다. */
.userSidebar {
	z-index: 1045;
}
.sidebarOverlay {
	z-index: 1042;
}

.userSidebar.right-open {
	width: 320px;
	max-width: 88vw;
	background: var(--stk-surface) !important;
	border-left: 1px solid var(--stk-border);
	box-shadow: -12px 0 32px var(--stk-shadow);
	display: flex;
	flex-direction: column;
	overflow-y: auto;
	scrollbar-width: none;
}
.userSidebar.right-open::-webkit-scrollbar {
	width: 0;
	height: 0;
}

/* 상단 닫기 헤더 */
.userSidebar.right-open .logo-container {
	background: var(--stk-surface) !important;
	border-bottom: 1px solid var(--stk-border);
	height: 56px;
	padding: 0 16px;
	flex: none;
}
.userSidebar.right-open .logo-container span {
	color: var(--stk-text-muted) !important;
	font-size: 13px;
	font-weight: 600;
}
.userSidebar.right-open .close-usersidebar {
	position: static;
	width: 16px !important;
	margin-left: 8px;
	filter: grayscale(1) opacity(0.7);
}

.userSidebar.right-open .sidebar-content {
	padding: 16px !important;
	display: flex;
	flex-direction: column;
	gap: 16px;
}

/* 프로필 카드 */
.userSidebar.right-open .user-details {
	margin: 0 !important;
	padding: 16px !important;
	background: var(--stk-surface-2);
	border: 1px solid var(--stk-border);
	border-radius: var(--stk-radius);
}
.userSidebar.right-open .user-details.pt-5 {
	padding-top: 40px !important;
}
.userSidebar.right-open .user-details .user-img {
	top: -28px;
	left: 50%;
	transform: translateX(-50%);
	width: 56px;
	height: 56px;
	border-radius: 50%;
	background: var(--stk-surface-3);
	padding: 8px;
	object-fit: contain;
}

/* 정보 행 (닉네임/통합머니) */
.userSidebar.right-open .user-details .menu-box {
	height: auto;
	min-height: 40px;
	border-bottom: 1px solid var(--stk-border);
	color: var(--stk-text-muted) !important;
	font-size: 13px;
	padding: 10px 4px;
	gap: 6px;
}
.userSidebar.right-open .user-details .menu-box .text-white {
	color: var(--stk-text) !important;
	font-weight: 600;
}
.userSidebar.right-open .user-details .menu-box .my-money {
	color: var(--stk-success) !important;
	font-weight: 700;
}

/* 조회 버튼 */
.userSidebar.right-open .user-details .menu-box .btn-money {
	position: absolute;
	right: 0;
	height: 28px;
	padding: 0 12px;
	border: none;
	border-radius: 6px;
	color: #fff !important;
	background: var(--stk-primary) !important;
	font-size: 12px;
	font-weight: 700;
	transition: background var(--stk-transition);
}

/* 회원등급 배지(우측 드로어). 헤더 배지는 높이 40px이라 드로어 행에는 맞지 않는다. */
.userSidebar.right-open .user-details .menu-box .stk-vip-chip {
	display: inline-flex;
	align-items: center;
	height: 20px;
	padding: 0 9px;
	border-radius: 10px;
	background: linear-gradient(135deg, #f5c451, #e0a626);
	color: #1a1300;
	font-size: 11px;
	font-weight: 800;
	letter-spacing: 0.3px;
	line-height: 1;
}

/* 다크/라이트 전환 버튼(우측 드로어로 이동) */
.userSidebar.right-open .user-details .menu-box .stk-theme-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 6px;
	background: var(--stk-surface-3) !important;
	color: var(--stk-text) !important;
	border: 1px solid var(--stk-border);
}
.userSidebar.right-open .user-details .menu-box .stk-theme-btn svg {
	width: 15px;
	height: 15px;
	flex: none;
}
.userSidebar.right-open .user-details .menu-box .btn-money:hover {
	background: var(--stk-primary-hover) !important;
}

/* 링크 메뉴(입금/출금/공지/고객센터/이벤트/쪽지) */
.userSidebar.right-open .user-details a.menu-box {
	justify-content: flex-start;
	color: var(--stk-text) !important;
	font-weight: 500;
	text-decoration: none;
	border-radius: 6px;
	padding: 12px 10px;
	transition: background var(--stk-transition), color var(--stk-transition);
}
.userSidebar.right-open .user-details a.menu-box:hover {
	background: var(--stk-surface-3);
	color: var(--stk-text) !important;
}

/* 로그아웃 버튼 */
.userSidebar.right-open .logout {
	margin: 0 !important;
	padding: 0 !important;
	border: none !important;
	background: transparent !important;
	border-radius: var(--stk-radius);
}
.userSidebar.right-open .logout .menu-box {
	height: 44px !important;
	border: 1px solid var(--stk-danger) !important;
	border-radius: var(--stk-radius);
	color: var(--stk-danger) !important;
	font-weight: 700;
	transition: background var(--stk-transition), color var(--stk-transition);
}
.userSidebar.right-open .logout:hover {
	background: transparent !important;
}
.userSidebar.right-open .logout:hover .menu-box {
	background: var(--stk-danger) !important;
	color: #fff !important;
}

/* =========================================================================
   슬롯 게임 목록 모달(#slotGames) — STAKE 테마
   ========================================================================= */
#slotGames .modal-content {
	background: var(--stk-surface) !important;
	border: 1px solid var(--stk-border) !important;
	border-radius: 14px !important;
	color: var(--stk-text) !important;
	overflow: hidden;
	box-shadow: 0 24px 60px var(--stk-shadow);
}
#slotGames .modal-header {
	background: var(--stk-surface-2);
	border-bottom: 1px solid var(--stk-border) !important;
	padding: 16px 20px;
	align-items: center;
}
#slotGames .modal-title {
	color: var(--stk-text) !important;
	font-size: 16px;
	font-weight: 700;
}
#slotGames .close.stk-modal-x {
	width: 32px;
	height: 32px;
	margin: 0;
	padding: 0;
	border: none;
	border-radius: 8px;
	background: transparent;
	color: var(--stk-text-muted);
	opacity: 1;
	text-shadow: none;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	cursor: pointer;
	transition: background var(--stk-transition), color var(--stk-transition);
}
#slotGames .close.stk-modal-x:hover {
	background: var(--stk-surface-3);
	color: var(--stk-text);
}
#slotGames .close.stk-modal-x svg {
	width: 18px;
	height: 18px;
}
#slotGames .modal-body {
	background: var(--stk-surface) !important;
	color: var(--stk-text) !important;
	padding: 18px 20px;
	max-height: 72vh;
	overflow-y: auto;
}
#slotGames .modal-body::-webkit-scrollbar {
	width: 8px;
}
#slotGames .modal-body::-webkit-scrollbar-thumb {
	background: var(--stk-surface-3);
	border-radius: 4px;
}
/* 게임 카드 (JS로 생성되는 마크업) */
#slotGames .user-latest-img {
	position: relative;
	border-radius: var(--stk-radius);
	overflow: hidden;
	background: var(--stk-surface-2);
	border: 1px solid var(--stk-border);
	transition: transform var(--stk-transition), border-color var(--stk-transition);
}
#slotGames .user-latest-img:hover {
	transform: translateY(-3px);
	border-color: var(--stk-primary);
}
#slotGames .user-latest-img .image {
	display: block;
	position: relative;
}
#slotGames .user-latest-img .img-thumbnail {
	width: 100%;
	height: auto;
	aspect-ratio: 1 / 1;
	object-fit: cover;
	padding: 0;
	margin: 0;
	border: none;
	border-radius: 0;
	background: transparent;
	display: block;
}
#slotGames .user-latest-img .img-button.img-start {
	position: absolute;
	left: 50%;
	bottom: 10px;
	transform: translateX(-50%) translateY(6px);
	opacity: 0;
	border: none;
	border-radius: 999px;
	background: var(--stk-primary);
	color: #fff;
	font-size: 12px;
	font-weight: 700;
	padding: 6px 16px;
	white-space: nowrap;
	transition: opacity var(--stk-transition), transform var(--stk-transition), background var(--stk-transition);
}
#slotGames .user-latest-img:hover .img-button.img-start {
	opacity: 1;
	transform: translateX(-50%) translateY(0);
}
#slotGames .user-latest-img .img-button.img-start:hover {
	background: var(--stk-primary-hover);
}
#slotGames .small-font {
	display: block;
	margin-top: 8px;
	text-align: center;
	font-size: 13px;
	font-weight: 600;
	color: var(--stk-text);
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}

/* =========================================================================
   공지 팝업(.popup-box) — STAKE 테마
   ========================================================================= */
.modal-content.popup-box.stk-popup {
	border: 1px solid var(--stk-border) !important;
	border-image: none !important;
	border-radius: 12px !important;
	background: var(--stk-surface) !important;
	color: var(--stk-text) !important;
	overflow: hidden;
	box-shadow: 0 24px 60px var(--stk-shadow);
}
.stk-popup .modal-header {
	background: var(--stk-surface-2);
	border-bottom: 1px solid var(--stk-border) !important;
	color: var(--stk-text) !important;
	padding: 14px 16px;
	font-size: 15px;
	font-weight: 700;
	display: flex;
	align-items: center;
	position: relative;
}
.stk-popup .stk-popup-title {
	color: var(--stk-text) !important;
}
.stk-popup .close-modal-btn {
	position: absolute;
	top: 50%;
	right: 12px;
	transform: translateY(-50%);
	width: 30px;
	height: 30px;
	padding: 0;
	border: none;
	border-radius: 8px;
	background: transparent;
	color: var(--stk-text-muted);
	display: inline-flex;
	align-items: center;
	justify-content: center;
	cursor: pointer;
	transition: background var(--stk-transition), color var(--stk-transition);
}
.stk-popup .close-modal-btn:hover {
	background: var(--stk-surface-3);
	color: var(--stk-text);
}
.stk-popup .close-modal-btn svg {
	width: 18px;
	height: 18px;
}
.stk-popup .modal-body {
	background: var(--stk-surface) !important;
	color: var(--stk-text) !important;
	padding: 16px;
}
.stk-popup .modal-footer {
	background: var(--stk-surface-2);
	border-top: 1px solid var(--stk-border) !important;
	color: var(--stk-text-muted) !important;
	padding: 10px 16px;
	display: flex;
	align-items: center;
	gap: 12px;
	flex-wrap: nowrap;
}
.stk-popup .popup-close-btn {
	line-height: 1;
	font-size: 13px;
	font-weight: 700;
	color: #fff !important;
	background: var(--stk-primary) !important;
	border-radius: 8px !important;
	border: 0 !important;
	padding: 9px 18px;
	transition: background var(--stk-transition);
}
.stk-popup .popup-close-btn:hover {
	background: var(--stk-primary-hover) !important;
}
.stk-popup .stk-popup-check {
	margin: 0;
	display: inline-flex;
	align-items: center;
	gap: 6px;
	font-size: 13px;
	color: var(--stk-text-muted) !important;
	cursor: pointer;
}
.stk-popup .stk-popup-check input {
	margin: 0;
	accent-color: var(--stk-primary);
}

/* 팝업·공지 본문은 관리자가 넣는 HTML이라 이미지·표가 화면보다 넓을 수 있다.
   에디터가 넣는 width/height 속성을 무시하고 폭에 맞춰 줄인다. */
.stk-popup .modal-body img,
.stk-livewire .text-popup img,
.stk-event-content img {
	display: block;
	width: auto;
	max-width: 100%;
	height: auto !important;
	margin: 8px auto;
}
.stk-popup .modal-body table,
.stk-popup .modal-body iframe,
.stk-popup .modal-body video,
.stk-livewire .text-popup table,
.stk-livewire .text-popup iframe,
.stk-livewire .text-popup video,
.stk-event-content table,
.stk-event-content iframe,
.stk-event-content video {
	max-width: 100%;
}
.stk-event-content {
	word-break: break-word;
	overflow-wrap: anywhere;
}
.stk-popup .modal-body video {
	height: auto;
}

/* 관리자가 지정한 팝업 크기(width/height, px)를 그대로 쓴다.
   다만 화면을 넘기면 잘려 보이므로 폭과 높이를 화면 안으로만 가둔다.
   내용이 지정한 높이보다 길면 본문만 스크롤된다. */
.modal-dialog[id^="popup"] {
	max-width: calc(100vw - 24px) !important;
	max-height: 92vh !important;
}
/* 실제로 보이는 상자는 안쪽 .stk-popup 이라 바깥 높이를 물려받아야
   관리자가 넣은 높이가 화면에 나타난다. */
.modal-dialog[id^="popup"] .stk-popup {
	display: flex;
	flex-direction: column;
	height: 100%;
	max-height: 92vh;
}
.modal-dialog[id^="popup"] .stk-popup .modal-body {
	overflow: auto;
	-webkit-overflow-scrolling: touch;
}

/* 팝업 래퍼는 body 기준 absolute + px 좌표(left/width)라, 좁은 화면에서는
   문서 폭을 넘겨 페이지가 좌우로 흔들리고 내용이 잘린다.
   화면 안에 고정(fixed)해 문서 폭에 영향을 주지 않게 한다. */
@media (max-width: 991px) {
	/* 어떤 요소가 화면보다 넓어도 페이지가 좌우로 밀리지 않게 잠근다. */
	html,
	body.stk-body {
		max-width: 100%;
		overflow-x: hidden;
	}
	.modal-dialog[id^="popup"] {
		position: fixed !important;
		left: 50% !important;
		right: auto !important;
		top: 12px !important;
		transform: translateX(-50%);
		width: calc(100% - 20px) !important;
		max-width: calc(100% - 20px) !important;
		height: auto !important;
		max-height: 86vh !important;
	}
	.modal-dialog[id^="popup"] .stk-popup {
		display: flex;
		flex-direction: column;
		max-height: 86vh;
	}
	.modal-dialog[id^="popup"] .stk-popup .modal-body {
		overflow: auto;
		-webkit-overflow-scrolling: touch;
	}

	/* 공지 본문은 관리자가 넣은 HTML 이라 width:600px 같은 고정 폭이 섞여 있다.
	   화면 폭 안으로 접고, 넘치는 표는 팝업 안에서만 스크롤시킨다. */
	.stk-popup .modal-header {
		padding: 12px 14px;
		font-size: 14px;
	}
	.stk-popup .modal-body {
		padding: 12px;
		font-size: 13px;
		word-break: break-word;
		overflow-wrap: anywhere;
	}
	.stk-popup .modal-body * {
		max-width: 100% !important;
	}
	.stk-popup .modal-body img {
		height: auto !important;
	}
	.stk-popup .modal-body table {
		display: block;
		width: 100% !important;
		overflow-x: auto;
	}
	.stk-popup .modal-footer {
		padding: 10px 12px;
	}
}

/* =========================================================================
   인증 버튼 로딩 상태 — 텍스트 유지 + 색상 변화(로그인/회원가입)
   ========================================================================= */
.stk-auth-submit.is-loading {
	background: var(--stk-primary-hover) !important;
	opacity: 0.85;
	cursor: progress;
	position: relative;
	pointer-events: none;
}
.stk-auth-submit.is-loading::after {
	content: "";
	display: inline-block;
	width: 14px;
	height: 14px;
	margin-left: 8px;
	vertical-align: -2px;
	border: 2px solid rgba(255, 255, 255, 0.45);
	border-top-color: #fff;
	border-radius: 50%;
	animation: stk-btn-spin 0.7s linear infinite;
}
@keyframes stk-btn-spin {
	to { transform: rotate(360deg); }
}
