/* 대시보드·설정·로그인 공용 스타일 (v2 다크 테마 유지) */
*,
*::before,
*::after {
	box-sizing: border-box;
	margin: 0;
	padding: 0;
}

:root {
	--bg: #0a0a0a;
	--surface: #1a1a1a;
	--border: #2a2a2a;
	--text: #e0e0e0;
	--text-dim: #888;
	--accent: #4f8cff;
	--accent-hover: #3a7aef;
	--danger: #e54545;
	--danger-hover: #d03030;
	--ok: #3fb950;
}

/* .row·.card의 display:flex가 hidden 속성을 덮어쓰지 않게 */
[hidden] {
	display: none !important;
}

html {
	height: 100%;
}

body {
	min-height: 100%;
	font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
	background: var(--bg);
	color: var(--text);
	line-height: 1.5;
}

main {
	max-width: 720px;
	margin: 0 auto;
	padding: 24px 16px;
}

a {
	color: var(--accent);
}

button {
	cursor: pointer;
	border: none;
	border-radius: 6px;
	padding: 10px 20px;
	font-size: 14px;
	font-weight: 600;
	transition: background 0.15s;
}

button:disabled {
	opacity: 0.5;
	cursor: not-allowed;
}

input,
select,
textarea {
	background: var(--bg);
	color: var(--text);
	border: 1px solid var(--border);
	border-radius: 6px;
	padding: 8px 12px;
	font-size: 14px;
	font-family: inherit;
}

select:disabled,
input:disabled {
	opacity: 0.5;
	cursor: not-allowed;
}

header {
	display: flex;
	align-items: center;
	gap: 12px;
	margin-bottom: 24px;
	flex-wrap: wrap;
}

h1 {
	font-size: 20px;
	font-weight: 700;
}

.spacer {
	margin-left: auto;
}

.btn-primary {
	background: var(--accent);
	color: #fff;
}
.btn-primary:hover:not(:disabled) {
	background: var(--accent-hover);
}
.btn-danger {
	background: var(--danger);
	color: #fff;
}
.btn-danger:hover:not(:disabled) {
	background: var(--danger-hover);
}
.btn-ghost {
	background: var(--surface);
	color: var(--text-dim);
	border: 1px solid var(--border);
}
.btn-ghost:hover:not(:disabled) {
	background: var(--border);
}
.btn-small {
	font-size: 12px;
	padding: 4px 10px;
}

.card {
	background: var(--surface);
	border: 1px solid var(--border);
	border-radius: 8px;
	padding: 16px;
	margin-bottom: 16px;
	display: flex;
	flex-direction: column;
	gap: 12px;
}

.card h2 {
	font-size: 14px;
	font-weight: 600;
	display: flex;
	align-items: center;
	gap: 8px;
}

.field {
	display: flex;
	flex-direction: column;
	gap: 4px;
}

/* 세로 flex 안의 체크박스·색상 선택기가 가운데로 늘어나지 않게 */
.field > input[type='checkbox'],
.field > input[type='color'] {
	align-self: flex-start;
}

.field > label,
.label {
	font-size: 12px;
	font-weight: 600;
	color: var(--text-dim);
	text-transform: uppercase;
	letter-spacing: 0.5px;
}

.row {
	display: flex;
	align-items: center;
	gap: 10px;
	flex-wrap: wrap;
}

.muted {
	color: var(--text-dim);
	font-size: 13px;
}

.error {
	color: var(--danger);
	font-size: 13px;
}

.pill {
	font-size: 11px;
	padding: 2px 8px;
	border-radius: 999px;
	border: 1px solid var(--border);
	color: var(--text-dim);
}
.pill.ok {
	color: var(--ok);
	border-color: var(--ok);
}
.pill.warn {
	color: var(--danger);
	border-color: var(--danger);
}
