/**
 * FluxBoard 다크 테마 오버라이드
 *
 * FluxBoard 플러그인은 흰 배경 기준(--fs-* 토큰)으로 만들어져 있어서
 * DonateBit 의 다크 톤 위에 그대로 얹으면 게시판 영역만 하얗게 뜬다.
 *
 * 1) 플러그인의 디자인 토큰을 테마 팔레트로 다시 매핑한다 (대부분 여기서 해결).
 * 2) 토큰을 안 쓰고 색을 직접 박아둔 몇 군데만 아래에서 개별 보정한다.
 *
 * 플러그인 파일은 건드리지 않으므로 플러그인 업데이트에 안전하다.
 * 로드: inc/bootstrap.php — fluxboard-main.css 뒤에 붙는다.
 */

/* ===================================================================
   1. 디자인 토큰 재매핑
   =================================================================== */
:root {
	--fs-primary:        var(--c-indigo);
	--fs-primary-light:  #818CF8;
	--fs-primary-hover:  #4F46E5;
	--fs-primary-bg:     rgba(99, 102, 241, .12);
	--fs-primary-border: var(--border-accent);

	--fs-accent:  var(--c-red);
	--fs-success: var(--c-emerald);
	--fs-warning: var(--c-amber);

	--fs-text:       var(--text-primary);
	--fs-text-sub:   var(--text-secondary);
	--fs-text-muted: #64748B;

	--fs-bg:       var(--bg-surface);
	--fs-bg-light: var(--bg-elevated);
	--fs-bg-hover: var(--bg-glass-hover);

	--fs-border:      var(--border);
	--fs-border-dark: var(--border-hover);

	--fs-radius:    var(--radius-md);
	--fs-radius-sm: var(--radius-sm);

	--fs-font: var(--font-base);

	--fs-shadow:    var(--shadow-sm);
	--fs-shadow-sm: none;
}

/* ===================================================================
   2. 폼 컨트롤 — 브라우저 기본 흰 배경이 그대로 보이는 요소들
   =================================================================== */
.fluxboard-board input[type="text"],
.fluxboard-board input[type="search"],
.fluxboard-board input[type="password"],
.fluxboard-board input[type="email"],
.fluxboard-board input[type="url"],
.fluxboard-board input[type="date"],
.fluxboard-board input[type="number"],
.fluxboard-board select,
.fluxboard-board textarea,
.fluxboard-board-write input[type="text"],
.fluxboard-board-write input[type="password"],
.fluxboard-board-write input[type="url"],
.fluxboard-board-write select,
.fluxboard-board-write textarea,
.fluxboard-deny-card__input,
.fluxboard-search-form input,
.fluxboard-search-form select {
	background: var(--bg-elevated);
	border: 1px solid var(--border);
	color: var(--text-primary);
	border-radius: var(--radius-md);
}

.fluxboard-board input::placeholder,
.fluxboard-board textarea::placeholder,
.fluxboard-board-write input::placeholder,
.fluxboard-board-write textarea::placeholder,
.fluxboard-deny-card__input::placeholder {
	color: var(--text-muted);
}

.fluxboard-board input:focus,
.fluxboard-board select:focus,
.fluxboard-board textarea:focus,
.fluxboard-board-write input:focus,
.fluxboard-board-write select:focus,
.fluxboard-board-write textarea:focus,
.fluxboard-deny-card__input:focus {
	border-color: var(--border-accent);
	box-shadow: 0 0 0 3px rgba(99, 102, 241, .15);
	outline: none;
}

/* select 화살표가 밝은 배경 기준이라 어두운 판에서 안 보인다 */
.fluxboard-board select,
.fluxboard-board-write select {
	background-image: linear-gradient(45deg, transparent 50%, var(--text-secondary) 50%),
	                  linear-gradient(135deg, var(--text-secondary) 50%, transparent 50%);
	background-position: calc(100% - 18px) calc(50% + 1px), calc(100% - 13px) calc(50% + 1px);
	background-size: 5px 5px, 5px 5px;
	background-repeat: no-repeat;
	-webkit-appearance: none;
	appearance: none;
	padding-right: var(--sp-8);
}
.fluxboard-board select option,
.fluxboard-board-write select option {
	background: var(--bg-elevated);
	color: var(--text-primary);
}

/* ===================================================================
   3. 목록 상단 툴바 / 필터 패널
   =================================================================== */
.fluxboard-board__toolbar,
.fluxboard-board__bottom-bar {
	border-color: var(--border);
}

.fluxboard-board__total {
	color: var(--text-secondary);
}
.fluxboard-board__total strong {
	color: var(--text-primary);
}

.fluxboard-board__filter-toggle,
.fluxboard-board__filter-reset,
.fluxboard-board__filter-quick-btn {
	background: var(--bg-glass);
	border: 1px solid var(--border);
	color: var(--text-secondary);
	border-radius: var(--radius-md);
	transition: background var(--transition), color var(--transition), border-color var(--transition);
}
.fluxboard-board__filter-toggle:hover,
.fluxboard-board__filter-reset:hover,
.fluxboard-board__filter-quick-btn:hover {
	background: var(--bg-glass-hover);
	border-color: var(--border-hover);
	color: var(--text-primary);
}

.fluxboard-board__filter-panel {
	background: var(--bg-surface);
	border: 1px solid var(--border);
	border-radius: var(--radius-lg);
}
.fluxboard-board__filter-label,
.fluxboard-board__filter-sep {
	color: var(--text-secondary);
}

.fluxboard-board__filter-submit {
	background: var(--grad-primary);
	border: 0;
	color: #fff;
	border-radius: var(--radius-md);
}
.fluxboard-board__filter-submit:hover {
	filter: brightness(1.1);
}

/* ===================================================================
   4. 브레드크럼
   =================================================================== */
.fluxboard-breadcrumb__list {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: var(--sp-2);
}
.fluxboard-breadcrumb__item {
	margin: 0;
}
.fluxboard-breadcrumb__link {
	color: var(--text-secondary);
	text-decoration: none;
}
.fluxboard-breadcrumb__link:hover {
	color: var(--text-primary);
}
.fluxboard-breadcrumb__separator,
.fluxboard-breadcrumb__current {
	color: var(--text-muted);
}

/* ===================================================================
   5. 목록 본문 / 빈 상태
   =================================================================== */
.fluxboard-board__list,
.fluxboard-board__table {
	background: transparent;
}
.fluxboard-board__table th {
	background: var(--bg-glass);
	color: var(--text-secondary);
	border-color: var(--border);
}
.fluxboard-board__table td {
	border-color: var(--border);
	color: var(--text-secondary);
}
.fluxboard-board__table tr:hover td {
	background: var(--bg-glass);
}

.fluxboard-board__empty,
.fluxboard-board__empty-wrap {
	color: var(--text-muted);
	background: transparent;
}
.fluxboard-board__empty-wrap {
	padding: var(--sp-16) var(--sp-6);
	text-align: center;
}

/* ===================================================================
   6. 페이지네이션
   =================================================================== */
.fluxboard-pagination__link,
.fluxboard-pagination__item {
	background: var(--bg-glass);
	border: 1px solid var(--border);
	color: var(--text-secondary);
	border-radius: var(--radius-md);
}
.fluxboard-pagination__link:hover,
.fluxboard-pagination__item:hover {
	background: var(--bg-glass-hover);
	color: var(--text-primary);
}
.fluxboard-pagination__link--current,
.fluxboard-pagination__item--current {
	background: var(--grad-primary);
	border-color: transparent;
	color: #fff;
}

/* ===================================================================
   7. 접근 거부 / 비밀글 카드
   — 흰 카드 + 그라디언트 제목이라 다크 배경에서 글자가 안 보였다
   =================================================================== */
.fluxboard-deny-card__inner {
	background: var(--bg-surface);
	border: 1px solid var(--border);
	border-radius: var(--radius-xl);
	box-shadow: var(--shadow-card);
}
.fluxboard-deny-card__icon-wrap {
	color: var(--c-indigo);
}
.fluxboard-deny-card__title {
	color: var(--text-primary);
	background: none;
	-webkit-background-clip: border-box;
	background-clip: border-box;
	-webkit-text-fill-color: currentColor;
}
.fluxboard-deny-card__board-name {
	color: var(--text-secondary);
}
.fluxboard-deny-card__desc,
.fluxboard-deny-card__roles-label {
	color: var(--text-muted);
}
.fluxboard-deny-card__role-tag {
	background: var(--bg-glass);
	border: 1px solid var(--border);
	color: var(--text-secondary);
}
.fluxboard-deny-card__error {
	background: rgba(239, 68, 68, .1);
	border: 1px solid rgba(239, 68, 68, .3);
	color: #FCA5A5;
}

.fluxboard-deny-card__btn,
.fluxboard-deny-card__submit {
	border-radius: var(--radius-md);
	text-decoration: none;
	font-weight: 600;
	transition: background var(--transition), border-color var(--transition), color var(--transition);
}
.fluxboard-deny-card__btn {
	background: var(--bg-glass);
	border: 1px solid var(--border);
	color: var(--text-secondary);
}
.fluxboard-deny-card__btn:hover {
	background: var(--bg-glass-hover);
	border-color: var(--border-hover);
	color: var(--text-primary);
}
.fluxboard-deny-card__btn--primary,
.fluxboard-deny-card__submit {
	background: var(--grad-primary);
	border: 0;
	color: #fff;
}
.fluxboard-deny-card__btn--primary:hover,
.fluxboard-deny-card__submit:hover {
	filter: brightness(1.1);
	color: #fff;
}

/* ===================================================================
   8. 글쓰기 / 상세 화면
   =================================================================== */
.fluxboard-board-write,
.fluxboard-board-view {
	color: var(--text-secondary);
}
.fluxboard-board-write__label,
.fluxboard-board-view__title {
	color: var(--text-primary);
}
.fluxboard-board-write__help,
.fluxboard-board-view__meta {
	color: var(--text-muted);
}
.fluxboard-board-write__field,
.fluxboard-board-view__content {
	border-color: var(--border);
}

/* 에디터(iframe) 는 자체 문서라 다크로 못 바꾼다 — 흰 판이 그대로 보이므로
   테두리만 맞춰 어색함을 줄인다 */
.fluxboard-board-write .wp-editor-container,
.fluxboard-board-write iframe {
	border-radius: var(--radius-md);
	border-color: var(--border);
}

/* ===================================================================
   9. 토스트 / 모달
   =================================================================== */
.fluxboard-toast {
	background: var(--bg-elevated);
	border: 1px solid var(--border);
	color: var(--text-primary);
	box-shadow: var(--shadow-card);
}
.fluxboard-modal__content,
.fluxboard-modal__inner {
	background: var(--bg-surface);
	border: 1px solid var(--border);
	color: var(--text-primary);
}
