/* 대시보드 — 본 사이트 헤더와 함께 사용 */

/* === 본 사이트 헤더 그대로 사용 (커스터마이즈 없음) === */

/* dash-page-area: 본 사이트 #header(absolute, top:0, ~220px) 아래에 위치하도록 padding-top 으로 공간 확보 */
.dash-page-area { padding: 240px 0 80px; min-height: 60vh; background: #fafafa;
  font-family: 'Pretendard', 'Noto Sans KR', -apple-system, "Apple SD Gothic Neo", "Malgun Gothic", sans-serif;
  color: #222; line-height: 1.5; font-size: 16px; }
.dash-page-inner { max-width: 1400px; margin: 0 auto; padding: 0 2rem; }
/* 본문 안 일반 링크 — 단, .dash-btn 등 명시 클래스 가진 a 는 제외 */
.dash-page-area a:not([class*="dash-btn"]):not(.status-badge) { color: #06c; text-decoration: none; }
.dash-page-area a:not([class*="dash-btn"]):not(.status-badge):hover { text-decoration: underline; }
.dash-page-area h2 { font-size: 28px; margin: 0 0 20px; font-weight: 700; }
.dash-page-area h3 { font-size: 20px; margin: 28px 0 12px; font-weight: 700; }

/* (구) 자체 헤더 — 더이상 사용 안 함 */
.dash-header { background:#fff; border-bottom:1px solid #e5e5e5; }
.dash-header-inner { max-width:1100px; margin:0 auto; padding:14px 20px;
  display:flex; align-items:center; gap:24px; flex-wrap:wrap; }
.dash-brand { font-weight:700; font-size:18px; color:#222; }
.dash-nav { display:flex; gap:14px; flex:1; }
.dash-userbox { display:flex; gap:10px; font-size:14px; color:#666; }
.dash-main { max-width:1100px; margin:24px auto; padding:0 20px; }
.dash-footer { text-align:center; padding:24px; color:#999; font-size:12px; }

/* 폼 */
.dash-form label { display:block; margin-bottom:12px; }
.dash-form .row { display:flex; gap:12px; flex-wrap:wrap; }
.dash-form .row > label { flex:1 1 200px; }
.dash-form input[type=text], .dash-form input[type=email], .dash-form input[type=password],
.dash-form input[type=tel], .dash-form input[type=url], .dash-form select, .dash-form textarea {
  width:100%; padding:8px 10px; border:1px solid #ccc; border-radius:4px; font:inherit; }
.dash-form textarea { min-height:200px; resize:vertical; }
.dash-form .actions { display:flex; gap:8px; margin-top:16px; }
/* 버튼 — 본문 a 색 규칙에 덮어써지지 않도록 .dash-page-area 와 함께 묶고 !important 보강 */
.dash-page-area .dash-btn,
a.dash-btn { display:inline-block; padding:8px 16px; border:1px solid #ccc; border-radius:4px;
  background:#fff; color:#222 !important; cursor:pointer; font:inherit; text-decoration:none; line-height:1.4; }
.dash-page-area .dash-btn:hover,
a.dash-btn:hover { background:#f0f0f0; text-decoration:none; }
.dash-page-area .dash-btn-primary,
a.dash-btn-primary { background:#06c; color:#fff !important; border-color:#06c; }
.dash-page-area .dash-btn-primary:hover,
a.dash-btn-primary:hover { background:#05a; }
.dash-page-area .dash-btn-danger,
a.dash-btn-danger { background:#c33; color:#fff !important; border-color:#c33; }

/* 게시판 */
.dash-board-toolbar { display:flex; gap:8px; align-items:center; flex-wrap:wrap; margin-bottom:12px; }
.dash-board-toolbar form { display:flex; gap:6px; }
.dash-board-toolbar select, .dash-board-toolbar input { padding:6px 8px; border:1px solid #ccc; border-radius:4px; }

.dash-board-table { width:100%; border-collapse:collapse; background:#fff;
  border-top:2px solid #333; table-layout:fixed; }
.dash-board-table th, .dash-board-table td { padding:14px 10px; border-bottom:1px solid #eee;
  font-size:15px; text-align:left; vertical-align:middle; }
.dash-board-table th { background:#f5f5f5; font-weight:600; text-align:center; }
.dash-board-table .col-no    { width:70px;  text-align:center; }
.dash-board-table .col-stat  { width:90px;  text-align:center; }
.dash-board-table .col-date  { width:90px;  text-align:center; color:#777; }
.dash-board-table .col-name  { width:160px; text-align:center; }
.dash-board-table .col-views { width:60px;  text-align:center; color:#777; }
/* 제목 컬럼은 자동 — 나머지 폭을 모두 가져감 (대략 800px+) */
/* 제목 헤더와 본문 모두 왼쪽 정렬 — 빈 공간이 커 보이는 문제 해결 */
.dash-board-table thead th:nth-child(3),
.dash-board-table tbody td:nth-child(3) { text-align: left; padding-left: 14px; }
/* 작성자: 한 줄 강제 + 길면 ellipsis */
.dash-board-table td.col-name {
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
/* 제목 본문은 줄바꿈 가능하지만 보통 한 줄에 들어감 */
.dash-board-table tbody td:nth-child(3) {
  word-break: keep-all;     /* 한국어 단어 단위 줄바꿈 */
  overflow-wrap: break-word; /* 너무 긴 단어는 강제 줄바꿈 */
}
.dash-board-table .row-notice { background:#fffae6; }
.dash-board-table .row-reply  { background:#fbfbfb; }
.dash-board-table .reply-prefix { color:#aaa; margin-right:4px; }
.dash-board-table .secret { color:#999; }
.dash-board-table .has-files::after { content:" 📎"; color:#888; }

.status-badge { display:inline-block; padding:2px 8px; font-size:12px; border-radius:10px;
  background:#e9ecef; color:#444; }
.status-접수    { background:#fff3cd; color:#856404; }
.status-작업중  { background:#cce5ff; color:#004085; }
.status-작업완료 { background:#d4edda; color:#155724; }

.pagination { display:flex; gap:4px; justify-content:center; margin:20px 0; }
.pagination .page { padding:6px 10px; border:1px solid #ddd; border-radius:4px;
  background:#fff; color:#444; }
.pagination .page.active, .pagination strong.page { background:#06c; color:#fff; border-color:#06c; }

/* 글 보기 */
.dash-view-header { padding:14px 0; border-bottom:1px solid #e5e5e5; }
.dash-view-header h1 { font-size:20px; margin:0 0 8px; }
.dash-view-meta { color:#777; font-size:13px; display:flex; gap:14px; flex-wrap:wrap; }
.dash-view-content { padding:20px 0; min-height:200px; line-height:1.6; word-break:break-word; }
.dash-view-content p  { margin:0 0 0.4em; }
.dash-view-content br { line-height:1.4; }
.dash-view-content p:has(br:only-child) { min-height:0.6em; margin:0; }
.dash-view-content img { max-width:100%; height:auto; }
.dash-view-content table { border-collapse:collapse; max-width:100%; }
.dash-view-content table td, .dash-view-content table th { padding:4px 8px; border:1px solid #ddd; }
.dash-view-files { padding:14px 0; border-top:1px dashed #ddd; }
.dash-view-files li { margin-bottom:4px; }
.dash-view-actions { display:flex; gap:6px; padding:14px 0; border-top:1px solid #e5e5e5; flex-wrap:wrap; }

/* 알림/에러 */
.dash-alert { padding:10px 14px; border-radius:4px; margin-bottom:12px; }
.dash-alert-err  { background:#f8d7da; color:#721c24; border:1px solid #f5c6cb; }
.dash-alert-ok   { background:#d4edda; color:#155724; border:1px solid #c3e6cb; }
.dash-alert-info { background:#e2e3e5; color:#383d41; border:1px solid #d6d8db; }

/* 캡차 */
.dash-captcha { display:inline-flex; align-items:center; gap:8px;
  padding:8px 12px; background:#f5f5f5; border-radius:4px; font-weight:500; }
.dash-captcha input { width:80px; }
