/* cube — 리셋 · 기본 타이포 · 접근성 유틸리티 */

.cube, .cube * {
	box-sizing: border-box;
}
.cube {
	font-family: -apple-system, BlinkMacSystemFont, "Pretendard", "Malgun Gothic", "맑은 고딕", sans-serif;
	font-size: 15px;
	line-height: 1.5;
	-webkit-font-smoothing: antialiased;
}
.cube a {
	color: inherit;
	text-decoration: none;
}

/*
	회원 팝업 메뉴 트리거. 코어가 문서 전체에 위임 클릭 핸들러를 걸어두고
	class="member_<srl>" 을 정규식으로 잡아 member.getMemberMenu 를 띄운다
	(common/js/common.js:947-990, 매칭 대상은 a/div/span 뿐이고 srl은 양수만 허용).
	그래서 스킨은 마크업만 맞추면 되고 별도 JS가 필요 없다. 닉네임이 링크인지
	아닌지는 회원 글이냐 비회원 글이냐로 갈리므로, 시각적 구분은 여기 한 곳에서만 준다.
*/
.cube a[href="#popup_menu_area"] {
	cursor: pointer;
}
.cube a[href="#popup_menu_area"]:hover {
	text-decoration: underline;
}
.cube button {
	font: inherit;
	color: inherit;
	background: none;
	border: 0;
	cursor: pointer;
	padding: 0;
}
.cube input,
.cube select,
.cube textarea {
	font: inherit;
	color: inherit;
}
.cube ul, .cube ol {
	list-style: none;
	margin: 0;
	padding: 0;
}
.cube svg {
	display: block;
	width: 1em;
	height: 1em;
}
.cube img {
	max-width: 100%;
	display: block;
}

.cube .sr-only {
	position: absolute;
	width: 1px;
	height: 1px;
	padding: 0;
	margin: -1px;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	white-space: nowrap;
	border: 0;
}

.cube :focus-visible {
	outline: 2px solid var(--cube-focus);
	outline-offset: 2px;
	border-radius: 2px;
}

.cube [hidden] {
	display: none !important;
}

.cube .cube-btn {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	padding: 8px 16px;
	border-radius: 6px;
	border: 1px solid var(--cube-border-strong);
	background: var(--cube-bg);
	color: var(--cube-text);
	font-size: 14px;
	font-weight: 600;
	min-height: 44px;
	transition: background-color .15s ease;
}
.cube .cube-btn:not(.cube-btn-primary):hover {
	background: var(--cube-bg-hover);
}
.cube .cube-btn-primary {
	background: var(--cube-primary);
	border-color: var(--cube-primary);
	color: var(--cube-primary-contrast);
}
.cube .cube-btn-primary:hover {
	background: var(--cube-primary-hover);
	border-color: var(--cube-primary-hover);
}

.cube .cube-icon-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 44px;
	height: 44px;
	border-radius: 6px;
	color: var(--cube-text-muted);
}
.cube .cube-icon-btn:hover {
	background: var(--cube-bg-hover);
	color: var(--cube-text);
}
.cube .cube-icon-btn svg {
	width: 18px;
	height: 18px;
}
