/* ═══════════════════════════════════════════════════════════════════════
   tdosa_tipster — Unified Dark Skin Stylesheet v2.0
   TDOSA SCORE 다크 테마 완전 자급 (basic/style.css 의존 없음)
   커버: Write Form / View / List / Comment 영역 모두 포함
═══════════════════════════════════════════════════════════════════════ */

/* ── 1. 색상 변수 ─────────────────────────────────────────────────── */
:root {
  --ts-bg:        #0B0E15;
  --ts-card:      #141920;
  --ts-card2:     #1C2333;
  --ts-border:    rgba(255,255,255,0.07);
  --ts-border2:   rgba(255,255,255,0.12);
  --ts-text:      #E5E7EB;
  --ts-text2:     #94A3B8;
  --ts-text3:     #64748B;
  --ts-text4:     #475569;
  --ts-accent:    #00E87A;
  --ts-accent-bg: rgba(0,232,122,0.1);
  --ts-accent-bd: rgba(0,232,122,0.3);
}

/* ─────────────────────────────────────────────────────────────────────
   2. 그누보드 게시판 영역 다크 강제 (basic CSS 잔재 원천 차단)
───────────────────────────────────────────────────────────────────── */
#bo_w, #bo_v, #bo_list,
.wrap_bo_w, .wrap_bo_v,
.bo_w_con, .bo_v_con,
#bo_v_con, .view-wrap {
  background: transparent !important;
  color: var(--ts-text) !important;
}

/* ── 게시물 제목 영역 ───────────────────────────────────────────── */
#bo_v_title {
  background: transparent !important;
  border-bottom: 1px solid var(--ts-border) !important;
  padding: 12px 0 14px !important;
  margin-bottom: 0 !important;
}
#bo_v_title .bo_v_tit {
  font-size: 18px !important;
  font-weight: 800 !important;
  color: var(--ts-text) !important;
}
#bo_v_title .bo_v_cate {
  display: inline-block;
  font-size: 11px;
  font-weight: 700;
  background: var(--ts-accent-bg);
  color: var(--ts-accent);
  border: 1px solid var(--ts-accent-bd);
  border-radius: 99px;
  padding: 2px 10px;
  margin-right: 8px;
  vertical-align: middle;
}

/* ── 게시물 정보 (프로필) ─────────────────────────────────────── */
#bo_v_info {
  background: transparent !important;
  border-bottom: 1px solid var(--ts-border) !important;
  padding: 12px 0 !important;
}
.profile_info {
  background: rgba(255,255,255,0.02) !important;
  border: 1px solid var(--ts-border) !important;
  border-radius: 10px !important;
  padding: 10px 14px !important;
  display: flex !important;
  align-items: center !important;
  gap: 12px !important;
}
.pf_img img { border-radius: 50% !important; }
.profile_info_ct strong {
  font-size: 13px !important;
  color: var(--ts-text) !important;
  font-weight: 600 !important;
}
.profile_info_ct a { color: #60A5FA !important; text-decoration: none !important; }
.profile_info_ct i { color: var(--ts-text3) !important; margin-right: 3px; }

/* ── 버튼 영역 ───────────────────────────────────────────────── */
#bo_v_top { padding: 8px 0 !important; border-bottom: 1px solid var(--ts-border) !important; }
.btn_bo_user { list-style: none !important; padding: 0 !important; margin: 0 !important; display: flex !important; gap: 6px !important; }
.btn_bo_user li { margin: 0 !important; }

.btn_b01, .btn_b02, .btn.btn_b01, .btn.btn_b02 {
  background: rgba(255,255,255,0.05) !important;
  border: 1px solid var(--ts-border2) !important;
  color: var(--ts-text2) !important;
  border-radius: 8px !important;
  padding: 7px 14px !important;
  font-size: 12px !important;
  font-weight: 600 !important;
  text-decoration: none !important;
  display: inline-flex !important;
  align-items: center !important;
  gap: 4px !important;
  transition: all .15s !important;
}
.btn_b01:hover, .btn_b02:hover {
  background: rgba(255,255,255,0.09) !important;
  color: var(--ts-text) !important;
  border-color: var(--ts-border2) !important;
}
/* 더보기 드롭다운 */
.btn_more_opt { cursor: pointer !important; }
.more_opt {
  background: var(--ts-card2) !important;
  border: 1px solid var(--ts-border2) !important;
  border-radius: 10px !important;
  box-shadow: 0 8px 24px rgba(0,0,0,.5) !important;
}
.more_opt li a {
  color: var(--ts-text2) !important;
  font-size: 13px !important;
  padding: 9px 16px !important;
  display: flex !important;
  align-items: center !important;
  gap: 8px !important;
  text-decoration: none !important;
}
.more_opt li a:hover { background: rgba(255,255,255,0.05) !important; color: var(--ts-text) !important; }
.more_opt li a .fa { color: var(--ts-text3) !important; }

/* ── 본문 내용 ──────────────────────────────────────────────── */
#bo_v_con, .view-wrap {
  line-height: 1.8 !important;
  font-size: 14px !important;
  color: var(--ts-text) !important;
  padding: 20px 0 !important;
  word-break: break-word !important;
}
#bo_v_con p, .view-wrap p { color: var(--ts-text) !important; }
#bo_v_con a, .view-wrap a { color: #60A5FA !important; }
#bo_v_con img { max-width: 100%; border-radius: 8px; }
#bo_v_con table { border-collapse: collapse; width: 100%; }
#bo_v_con table td, #bo_v_con table th {
  border: 1px solid var(--ts-border2) !important;
  padding: 8px 10px !important;
  color: var(--ts-text) !important;
  background: transparent !important;
}

/* ── 첨부 파일 ───────────────────────────────────────────── */
#bo_v_file {
  background: rgba(255,255,255,0.02) !important;
  border: 1px solid var(--ts-border) !important;
  border-radius: 10px !important;
  padding: 12px 16px !important;
  margin: 12px 0 !important;
}
#bo_v_file a { color: #60A5FA !important; font-size: 13px !important; }

/* ── 하단 버튼 행 ─────────────────────────────────────────── */
#bo_v_btn {
  display: flex !important;
  gap: 8px !important;
  padding: 12px 0 !important;
  border-top: 1px solid var(--ts-border) !important;
  margin-top: 8px !important;
  background: transparent !important;
}

/* ─────────────────────────────────────────────────────────────────────
   3. 그누보드 페이지네이션 다크
───────────────────────────────────────────────────────────────────── */
.pg_wrap {
  display: flex !important;
  justify-content: center !important;
  align-items: center !important;
  gap: 4px !important;
  padding: 16px 0 !important;
  background: transparent !important;
}
.pg_wrap a, .pg_wrap strong, .pg_wrap span.pg_current {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  min-width: 32px !important;
  height: 32px !important;
  padding: 0 8px !important;
  border-radius: 8px !important;
  font-size: 12px !important;
  font-weight: 600 !important;
  text-decoration: none !important;
  border: 1px solid var(--ts-border) !important;
}
.pg_wrap a {
  background: rgba(255,255,255,0.04) !important;
  color: var(--ts-text2) !important;
}
.pg_wrap a:hover {
  background: rgba(255,255,255,0.09) !important;
  color: var(--ts-text) !important;
  border-color: var(--ts-border2) !important;
}
.pg_wrap strong, .pg_wrap span.pg_current {
  background: var(--ts-accent-bg) !important;
  color: var(--ts-accent) !important;
  border-color: var(--ts-accent-bd) !important;
}

/* ─────────────────────────────────────────────────────────────────────
   4. 그누보드 검색 폼 다크
───────────────────────────────────────────────────────────────────── */
#bo_search, .sch_wrap, form[name="fsearch"] {
  background: transparent !important;
  border: 1px solid var(--ts-border) !important;
  border-radius: 10px !important;
  padding: 10px 12px !important;
  margin-top: 12px !important;
}
#bo_search input[type="text"], #bo_search input[type="search"],
.sch_wrap input[type="text"] {
  background: var(--ts-bg) !important;
  border: 1px solid var(--ts-border2) !important;
  color: var(--ts-text) !important;
  border-radius: 8px !important;
  padding: 8px 12px !important;
  font-size: 13px !important;
}
#bo_search select, .sch_wrap select {
  background: var(--ts-bg) !important;
  border: 1px solid var(--ts-border2) !important;
  color: var(--ts-text) !important;
  border-radius: 8px !important;
  padding: 8px 12px !important;
}
#bo_search input[type="submit"], .sch_wrap input[type="submit"] {
  background: rgba(255,255,255,0.08) !important;
  border: 1px solid var(--ts-border2) !important;
  color: var(--ts-text2) !important;
  border-radius: 8px !important;
  padding: 8px 16px !important;
  cursor: pointer !important;
  font-size: 13px !important;
}

/* ─────────────────────────────────────────────────────────────────────
   5. 댓글 영역 다크
───────────────────────────────────────────────────────────────────── */
#bo_vc { background: transparent !important; }
#bo_vc h3 { color: var(--ts-text2) !important; font-size: 14px !important; margin-bottom: 12px !important; }

/* 댓글 목록 */
.wr_comment_wrap, #cmt_list { background: transparent !important; }
.wr_comment {
  background: rgba(255,255,255,0.02) !important;
  border: 1px solid var(--ts-border) !important;
  border-radius: 10px !important;
  margin-bottom: 8px !important;
  padding: 12px 16px !important;
}
.wr_comment:hover { background: rgba(255,255,255,0.04) !important; }
.wr_comment .name_wrap .name { color: var(--ts-text) !important; font-weight: 600 !important; }
.wr_comment .datetime { color: var(--ts-text3) !important; font-size: 11px !important; }
.wr_comment .comment_cont, .wr_comment .wr_content {
  color: var(--ts-text) !important;
  background: transparent !important;
  font-size: 14px !important;
  line-height: 1.7 !important;
}
.wr_comment .btn_b01 { font-size: 11px !important; padding: 4px 10px !important; }

/* 댓글 작성 폼 */
.bo_vc_w, #wr_form_comment {
  background: rgba(255,255,255,0.02) !important;
  border: 1px solid var(--ts-border) !important;
  border-radius: 12px !important;
  padding: 16px !important;
  margin-top: 16px !important;
}
.bo_vc_w input[type="text"], .bo_vc_w input[type="password"],
#wr_form_comment input[type="text"], #wr_form_comment input[type="password"] {
  background: var(--ts-bg) !important;
  border: 1px solid var(--ts-border2) !important;
  color: var(--ts-text) !important;
  border-radius: 8px !important;
  padding: 9px 12px !important;
  font-size: 13px !important;
  width: 100% !important;
  box-sizing: border-box !important;
}
.bo_vc_w textarea, #wr_form_comment textarea {
  background: var(--ts-bg) !important;
  border: 1px solid var(--ts-border2) !important;
  color: var(--ts-text) !important;
  border-radius: 8px !important;
  padding: 10px 12px !important;
  font-size: 13px !important;
  width: 100% !important;
  box-sizing: border-box !important;
  resize: vertical !important;
  min-height: 80px !important;
}
.bo_vc_w label { color: var(--ts-text3) !important; font-size: 11px !important; }

/* ─────────────────────────────────────────────────────────────────────
   6. Write Form — AI픽 전용 글쓰기
───────────────────────────────────────────────────────────────────── */

/* ── 전체 래퍼 ────────────────────────────────────────────────────── */
.ts-write-wrap {
  font-family: 'Pretendard', -apple-system, BlinkMacSystemFont, sans-serif;
  max-width: 760px;
  margin: 0 auto;
  padding: 24px 16px 48px;
  color: var(--ts-text);
}

/* ── AI픽 패널 ────────────────────────────────────────────────────── */
.ts-ai-panel {
  background: var(--ts-card);
  border: 1.5px solid var(--ts-accent-bd);
  border-radius: 18px;
  padding: 22px 24px 20px;
  margin-bottom: 24px;
}
.ts-ai-panel__header {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 20px;
  flex-wrap: wrap;
}
.ts-ai-panel__badge {
  font-size: 11px;
  font-weight: 900;
  letter-spacing: 1px;
  background: var(--ts-accent-bg);
  color: var(--ts-accent);
  border: 1px solid var(--ts-accent-bd);
  padding: 3px 10px;
  border-radius: 999px;
}
.ts-ai-panel__sport { font-size: 13px; font-weight: 700; color: #F1F5F9; }
.ts-ai-panel__sub   { font-size: 11px; color: var(--ts-text4); margin-left: auto; }
.ts-ai-panel__notice {
  font-size: 13px;
  color: var(--ts-text3);
  background: rgba(255,255,255,0.03);
  border: 1px dashed var(--ts-border);
  border-radius: 10px;
  padding: 14px 16px;
  margin-bottom: 16px;
}

/* ── 필드 그룹 ────────────────────────────────────────────────────── */
.ts-field-group { margin-bottom: 18px; }
.ts-label {
  display: block;
  font-size: 11px;
  font-weight: 900;
  letter-spacing: 1.5px;
  text-transform: uppercase;
  color: var(--ts-text3);
  margin-bottom: 8px;
}
.ts-label-sub { font-size:10px; font-weight:400; text-transform:none; letter-spacing:0; color:var(--ts-text4); }

/* ── Select ──────────────────────────────────────────────────────── */
.ts-select {
  width: 100%;
  background: var(--ts-bg);
  color: var(--ts-text);
  border: 1.5px solid var(--ts-border2);
  border-radius: 10px;
  padding: 10px 14px;
  font-size: 13px;
  font-family: inherit;
  cursor: pointer;
  outline: none;
  -webkit-appearance: none;
  appearance: none;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%2364748B' stroke-width='2.5'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 14px center;
}
.ts-select:focus { border-color: var(--ts-accent-bd); }
.ts-select option, .ts-select optgroup { background: var(--ts-card2); color: var(--ts-text); }

/* ── 경기 미리보기 박스 ──────────────────────────────────────────── */
#ts-match-preview {
  background: rgba(0,0,0,0.25);
  border: 1px solid var(--ts-border);
  border-radius: 12px;
  padding: 14px 16px;
  margin-top: 10px;
}
.ts-preview__teams {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 12px;
  margin-bottom: 8px;
}
.ts-preview__team      { font-size:16px; font-weight:900; color:#F1F5F9; flex:1; }
.ts-preview__team.home { text-align:right; }
.ts-preview__team.away { text-align:left; }
.ts-preview__vs        { font-size:10px; font-weight:900; color:#334155; letter-spacing:2px; text-transform:uppercase; flex-shrink:0; }
.ts-preview__meta      { text-align:center; font-size:11px; color:var(--ts-text4); margin-bottom:10px; }
.ts-preview__league::after { content:' · '; }
.ts-preview__league:empty::after { content:''; }
.ts-preview__odds      { display:flex; gap:8px; }
.ts-odds-box           { flex:1; text-align:center; background:rgba(255,255,255,0.04); border:1px solid var(--ts-border); border-radius:8px; padding:8px 6px; }
.ts-odds-val           { display:block; font-size:15px; font-weight:900; font-family:'Fira Code','Consolas',monospace; color:#F1F5F9; }
.ts-odds-lbl           { display:block; font-size:10px; color:var(--ts-text4); margin-top:2px; }

/* ── 예상 결과 버튼 ──────────────────────────────────────────────── */
.ts-side-btns { display:flex; gap:8px; }
.ts-side-btn {
  flex:1; padding:11px 8px; font-size:13px; font-weight:700; font-family:inherit;
  border-radius:10px; border:1.5px solid var(--ts-border2);
  background:rgba(255,255,255,0.04); color:var(--ts-text3);
  cursor:pointer; transition:all .18s ease;
  -webkit-tap-highlight-color:transparent;
}
.ts-side-btn:hover  { background:var(--ts-accent-bg); border-color:var(--ts-accent-bd); color:#CBD5E1; }
.ts-side-btn.active { background:rgba(0,232,122,0.15); border-color:var(--ts-accent); color:var(--ts-accent); font-weight:900; }
.ts-side-btn--hidden { display:none !important; }

/* ── 별점 ────────────────────────────────────────────────────────── */
.ts-stars { display:flex; align-items:center; gap:4px; }
.ts-star {
  font-size:24px; line-height:1; background:none; border:none; cursor:pointer;
  color:#1E293B; padding:0 2px; transition:color .12s, transform .1s;
  -webkit-tap-highlight-color:transparent;
}
.ts-star.on, .ts-star.hover { color:#F59E0B; }
.ts-star:hover { transform:scale(1.15); }
.ts-stars-label { font-size:11px; color:var(--ts-text4); margin-left:8px; font-weight:700; }

/* ── 라이브 픽 미리보기 ──────────────────────────────────────────── */
.ts-pick-preview {
  display:flex; align-items:center; gap:8px;
  background:rgba(245,158,11,0.07); border:1px solid rgba(245,158,11,0.2);
  border-radius:10px; padding:10px 14px; margin-top:4px;
  font-size:13px; font-weight:700;
}
.ts-pick-preview__robot  { font-size:15px; }
#ts-pick-preview-text    { color:#FBBF24; }
.ts-pick-preview__stars  { margin-left:auto; font-size:14px; color:#F59E0B; letter-spacing:1px; }

/* ── Input / Textarea ──────────────────────────────────────────────── */
.ts-input {
  width:100%; background:var(--ts-bg); color:var(--ts-text);
  border:1.5px solid var(--ts-border2); border-radius:10px;
  padding:11px 14px; font-size:14px; font-family:inherit;
  outline:none; box-sizing:border-box;
}
.ts-input:focus { border-color:var(--ts-accent-bd); }
.ts-input::placeholder { color:#334155; }

/* ── 버튼 행 ──────────────────────────────────────────────────────── */
.ts-btn-row { display:flex; gap:10px; justify-content:flex-end; margin-top:28px; }
.ts-btn {
  padding:12px 24px; border-radius:12px; font-size:14px; font-weight:900;
  font-family:inherit; cursor:pointer; border:none; text-decoration:none;
  display:inline-flex; align-items:center; gap:6px; transition:opacity .15s;
}
.ts-btn:hover       { opacity:.85; }
.ts-btn:disabled    { opacity:.5; cursor:not-allowed; }
.ts-btn--cancel     { background:rgba(255,255,255,0.06); color:var(--ts-text3); border:1.5px solid var(--ts-border) !important; }
.ts-btn--submit     { background:var(--ts-accent); color:var(--ts-bg); }
.ts-btn--sm         { padding:8px 16px; font-size:12px; border-radius:8px; }

/* ── 파일 필드 ─────────────────────────────────────────────────── */
.ts-file-field input[type="file"] { color:var(--ts-text2); font-size:13px; }

/* ── 체크박스 옵션 ──────────────────────────────────────────────── */
.ts-write-wrap .bo_v_option {
  display:flex; gap:16px; list-style:none; padding:0; margin:0 0 16px 0;
}
.ts-write-wrap .bo_v_option li label { font-size:13px; color:var(--ts-text2); cursor:pointer; }
.ts-write-wrap .bo_v_option input[type="checkbox"] { accent-color:var(--ts-accent); }

/* ── 에디터 영역 ─────────────────────────────────────────────────── */
.ts-write-wrap .wr_content textarea {
  background:var(--ts-bg) !important; color:var(--ts-text) !important;
  border:1.5px solid var(--ts-border2) !important; border-radius:10px !important;
  padding:12px 14px !important; font-family:inherit !important;
  font-size:14px !important; min-height:200px !important;
  width:100% !important; box-sizing:border-box !important;
  resize:vertical !important; outline:none !important;
}
.ts-write-wrap .wr_content textarea:focus { border-color:var(--ts-accent-bd) !important; }

/* ─────────────────────────────────────────────────────────────────────
   7. View Skin — 경기 정보 박스 + 뷰 래퍼
───────────────────────────────────────────────────────────────────── */
.ts-view-wrap {
  font-family:'Pretendard',-apple-system,BlinkMacSystemFont,sans-serif;
  max-width:760px;
  margin:0 auto;
  padding:16px;
  color:var(--ts-text);
}

/* 게임 박스 */
.ts-view-game-box {
  background:var(--ts-card);
  border:1.5px solid rgba(59,130,246,0.3);
  border-radius:18px;
  padding:20px;
  margin-bottom:20px;
}
.ts-vgb__header {
  display:flex; align-items:center; gap:8px; margin-bottom:14px; flex-wrap:wrap;
}
.ts-vgb__sport-badge {
  font-size:11px; font-weight:900; padding:2px 9px; border-radius:999px; border:1px solid;
}
.ts-vgb__league    { font-size:12px; color:var(--ts-text3); }
.ts-vgb__time      { font-size:11px; color:var(--ts-text4); margin-left:auto; }
.ts-vgb__status-badge          { font-size:10px; font-weight:900; padding:2px 8px; border-radius:999px; }
.ts-vgb__status-badge.done     { background:rgba(100,116,139,0.2); color:var(--ts-text3); }
.ts-vgb__status-badge.upcoming { background:rgba(0,232,122,0.12); color:var(--ts-accent); }

.ts-vgb__teams {
  display:flex; align-items:center; justify-content:center; gap:12px; margin-bottom:14px;
}
.ts-vgb__team      { flex:1; font-size:18px; font-weight:900; color:#F1F5F9; }
.ts-vgb__team.home { text-align:right; }
.ts-vgb__team.away { text-align:left; }
.ts-vgb__center    { text-align:center; flex-shrink:0; }
.ts-vgb__score     { font-size:24px; font-weight:900; color:#34D399; letter-spacing:4px; }
.ts-vgb__score-lbl { font-size:10px; color:#34D399; opacity:.6; }
.ts-vgb__vs        { font-size:11px; font-weight:900; color:#334155; letter-spacing:2px; }

.ts-vgb__odds       { display:flex; gap:8px; margin-bottom:14px; }
.ts-vgb__odd-box    { flex:1; text-align:center; background:rgba(255,255,255,0.04); border:1px solid var(--ts-border); border-radius:8px; padding:8px 6px; }
.ts-vgb__odd-box.picked { background:var(--ts-accent-bg); border-color:rgba(0,232,122,0.4); }
.ts-vgb__odd-box .val   { display:block; font-size:15px; font-weight:900; font-family:'Fira Code',monospace; color:#F1F5F9; }
.ts-vgb__odd-box.picked .val { color:var(--ts-accent); }
.ts-vgb__odd-box .lbl   { display:block; font-size:10px; color:var(--ts-text4); margin-top:2px; }

.ts-vgb__pick-row {
  display:flex; align-items:center; gap:8px;
  background:rgba(245,158,11,0.07); border:1px solid rgba(245,158,11,0.2);
  border-radius:10px; padding:9px 14px; font-size:13px;
}
.ts-vgb__pick-row--hit  { background:rgba(52,211,153,0.07); border-color:rgba(52,211,153,0.25); }
.ts-vgb__pick-row--miss { background:rgba(248,113,113,0.07); border-color:rgba(248,113,113,0.25); }
.ts-vgb__pick-robot  { font-size:15px; }
.ts-vgb__pick-label  { color:#CBD5E1; }
.ts-vgb__pick-label strong { color:#FBBF24; }
.ts-vgb__pick-row--hit  .ts-vgb__pick-label strong { color:#34D399; }
.ts-vgb__pick-row--miss .ts-vgb__pick-label strong { color:#F87171; }
.ts-vgb__pick-stars  { color:#F59E0B; letter-spacing:1px; }
.ts-vgb__result      { margin-left:auto; font-size:12px; font-weight:900; }
.ts-vgb__result.hit  { color:#34D399; }
.ts-vgb__result.miss { color:#F87171; }

/* ─────────────────────────────────────────────────────────────────────
   8. List Skin — 커스텀 다크 게시물 목록
───────────────────────────────────────────────────────────────────── */
.ts-list-wrap {
  font-family:'Pretendard',-apple-system,BlinkMacSystemFont,sans-serif;
  max-width:860px;
  margin:0 auto;
  padding:16px;
  color:var(--ts-text);
}

.ts-list-header {
  display:flex;
  align-items:center;
  justify-content:space-between;
  margin-bottom:16px;
  padding-bottom:12px;
  border-bottom:1px solid var(--ts-border);
}
.ts-list-header__title {
  font-size:15px;
  font-weight:800;
  color:var(--ts-text);
}
.ts-list-header__count {
  font-size:12px;
  color:var(--ts-text3);
}

/* ── 목록 행 ──────────────────────────────────────────────────────── */
.ts-list-posts { display:flex; flex-direction:column; gap:2px; }

.ts-list-row {
  display:flex;
  align-items:center;
  gap:12px;
  padding:12px 16px;
  border-radius:10px;
  border:1px solid transparent;
  text-decoration:none;
  color:inherit;
  transition:all .15s;
  cursor:pointer;
}
.ts-list-row:hover {
  background:rgba(255,255,255,0.03);
  border-color:var(--ts-border);
  text-decoration:none;
  color:inherit;
}
.ts-list-row--notice { border-left:3px solid var(--ts-accent); background:rgba(0,232,122,0.03); }
.ts-list-row--notice:hover { background:rgba(0,232,122,0.05); }

/* 번호 */
.ts-list-row__num {
  flex-shrink:0;
  min-width:40px;
  text-align:center;
  font-size:12px;
  color:var(--ts-text4);
  font-weight:600;
}
.ts-notice-badge {
  display:inline-block;
  font-size:10px;
  font-weight:800;
  background:var(--ts-accent-bg);
  color:var(--ts-accent);
  border:1px solid var(--ts-accent-bd);
  border-radius:4px;
  padding:2px 6px;
}

/* 본문 영역 */
.ts-list-row__body {
  flex:1;
  min-width:0;
  display:flex;
  align-items:center;
  gap:8px;
  flex-wrap:wrap;
}
.ts-list-row__subject {
  font-size:13px;
  font-weight:600;
  color:var(--ts-text);
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
  max-width:100%;
}
.ts-list-cmtcnt {
  font-size:11px;
  font-weight:700;
  color:#60A5FA;
  margin-left:2px;
}

/* AI픽 배지 */
.ts-list-pick {
  flex-shrink:0;
  display:inline-flex;
  align-items:center;
  gap:3px;
  font-size:11px;
  font-weight:700;
  padding:2px 9px;
  border-radius:99px;
  border:1px solid;
  white-space:nowrap;
}
.ts-list-pick--home { background:rgba(0,232,122,0.1); color:var(--ts-accent); border-color:var(--ts-accent-bd); }
.ts-list-pick--draw { background:rgba(245,158,11,0.1); color:#FBBF24; border-color:rgba(245,158,11,0.3); }
.ts-list-pick--away { background:rgba(96,165,250,0.1); color:#60A5FA; border-color:rgba(96,165,250,0.3); }

/* 메타 영역 */
.ts-list-row__meta {
  flex-shrink:0;
  display:flex;
  align-items:center;
  gap:12px;
}
.ts-list-row__author { font-size:12px; color:var(--ts-text3); font-weight:600; }
.ts-list-row__date   { font-size:11px; color:var(--ts-text4); }
.ts-list-row__hit    { font-size:11px; color:var(--ts-text4); }
.ts-list-row__hit::before { content:'👁 '; font-style:normal; }

/* 빈 상태 */
.ts-list-empty {
  text-align:center;
  padding:48px 0;
  color:var(--ts-text3);
  font-size:14px;
}
.ts-list-empty > div { font-size:36px; margin-bottom:12px; }
.ts-list-empty a { color:var(--ts-accent); text-decoration:none; margin-top:8px; display:inline-block; font-size:13px; }

/* 쓰기 버튼 */
.ts-list-write-btn {
  display:flex;
  justify-content:flex-end;
  margin-top:12px;
  padding-top:12px;
  border-top:1px solid var(--ts-border);
}

/* 모바일 */
@media (max-width: 600px) {
  .ts-list-row { padding:10px 12px; gap:8px; }
  .ts-list-row__num { display:none; }
  .ts-list-row__meta { flex-direction:column; align-items:flex-end; gap:2px; }
  .ts-list-row__meta .ts-list-row__hit { display:none; }
  .ts-list-row__subject { font-size:13px; max-width:calc(100vw - 160px); }
  .ts-list-row__body { flex-wrap:nowrap; overflow:hidden; }
}
