/**
 * team.css — 팀 페이지 전용 스타일
 */

/* ═══════════════════════════════════════
   공통 레이아웃
═══════════════════════════════════════ */
.tm-wrap     { max-width:1100px; margin:0 auto; padding:24px 16px 80px; }
.tm-back     { display:inline-flex; align-items:center; gap:6px; font-size:13px;
               color:var(--muted); text-decoration:none; margin-bottom:16px; }
.tm-back:hover { color:var(--blade); }

/* ═══════════════════════════════════════
   팀 상세 — 헤더
═══════════════════════════════════════ */
.tm-hero     { background:var(--surface); border:1px solid var(--line); border-radius:16px;
               padding:24px; margin-bottom:16px; display:flex; align-items:center; gap:16px; }
.tm-hero-logo { width:64px; height:64px; border-radius:14px; background:var(--bladeL);
                display:flex; align-items:center; justify-content:center;
                font-size:28px; flex-shrink:0; overflow:hidden; }
.tm-hero-logo img { width:100%; height:100%; object-fit:cover; }
.tm-hero-name { font-size:22px; font-weight:800; color:var(--text); }
.tm-hero-sub  { font-size:13px; color:var(--muted); margin-top:4px;
                display:flex; gap:12px; flex-wrap:wrap; align-items:center; }
.tm-type-badge { display:inline-block; padding:2px 10px; border-radius:20px; font-size:11px;
                 font-weight:700; background:var(--bladeL); color:var(--blade); }
.tm-type-badge.opponent { background:#FEF3C7; color:#B45309; }

/* ═══════════════════════════════════════
   팀 상세 — 승인 대기 안내
═══════════════════════════════════════ */
.tm-notice-pending {
	background:rgba(245,158,11,0.1);
	border:1px solid rgba(245,158,11,0.35);
	border-radius:10px;
	padding:12px 16px;
	margin-bottom:14px;
	font-size:13px;
	color:#B45309;
	font-weight:600;
}

/* ═══════════════════════════════════════
   팀 상세 — 섹션 박스
═══════════════════════════════════════ */
.tm-section  { background:var(--surface); border:1px solid var(--line); border-radius:14px;
               margin-bottom:14px; overflow:hidden; }
.tm-sec-hd   { padding:14px 18px; font-size:13px; font-weight:700; color:var(--text);
               border-bottom:1px solid var(--line); display:flex; align-items:center;
               justify-content:space-between; gap:12px; }
.tm-sec-hd--roster { flex-wrap:wrap; }
.tm-sec-hd-left { font-size:14px; font-weight:700; color:var(--text); }

.tm-roster-filters { display:flex; gap:8px; flex-wrap:wrap; margin-left:auto; }
.tm-roster-filters select {
	min-width:110px;
	height:34px;
	padding:0 10px;
	border:1px solid var(--line);
	border-radius:8px;
	background:var(--surface);
	color:var(--text);
	font-size:12px;
}

.tm-roster   { display:grid; grid-template-columns:repeat(auto-fill, minmax(260px, 1fr));
               gap:12px; padding:16px; }

.tm-player-card {
	background:var(--surface);
	border:1px solid var(--line);
	border-radius:12px;
	padding:12px 14px;
	display:grid;
	grid-template-columns:56px 1fr;
	gap:12px;
	align-items:center;
	transition:.15s;
	min-height:82px;
}

.tm-player-avatar {
	width:56px;
	height:56px;
	border-radius:14px;
	background:var(--bladeL);
	display:flex;
	align-items:center;
	justify-content:center;
	font-size:20px;
	font-weight:700;
	color:var(--blade);
	flex-shrink:0;
	overflow:hidden;
	grid-row:1 / span 2;
}

.tm-player-avatar--lg img {
	width:100%;
	height:100%;
	object-fit:cover;
}
.tm-player-main {
	min-width:0;
	display:flex;
	flex-direction:column;
	gap:6px;
}

.tm-player-top {
	display:flex;
	justify-content:space-between;
	align-items:center;
}

.tm-player-left {
	display:flex;
	align-items:center;
	gap:6px;
	flex-wrap:wrap;
}

.tm-player-jersey {
	font-size:12px;
	color:var(--muted);
	font-weight:700;
}

.tm-player-name {
	font-size:14px;
	font-weight:800;
	color:var(--text);
}

.tm-player-sub {
	font-size:12px;
	color:var(--muted);
	display:flex;
	gap:6px;
}

.tm-edit-btn {
	width:28px;
	height:28px;
	border-radius:8px;
	border:1px solid var(--line);
	background:rgba(255,255,255,.03);
	color:var(--text);
	display:inline-flex;
	align-items:center;
	justify-content:center;
	cursor:pointer;
	flex-shrink:0;
	padding:0;
	transition:.15s;
}

.tm-edit-btn:hover {
	background:rgba(255,255,255,.08);
	border-color:var(--blade);
	color:var(--blade);
}

.tm-edit-icon { display:none; }

.tm-player-role  {
	font-size:11px;
	font-weight:700;
	padding:5px 7px;
	border-radius:10px;
	background:var(--bladeL);
	color:var(--blade);
	display:inline-flex;
	align-items:center;
	line-height:1.2;
	margin-left:auto;
}

.tm-player-role.coach   { background:#FEF3C7; color:#B45309; }
.tm-player-role.manager { background:#EDE9FE; color:#6D28D9; }
.tm-player-role.loan    { background:#FEE2E2; color:#B91C1C; }

@media (max-width: 900px) {
	.tm-roster-filters { width:100%; margin-left:0; }
	.tm-roster-filters select { flex:1 1 120px; min-width:0; }
}

/* ═══════════════════════════════════════
   포지션별 섹션
═══════════════════════════════════════ */
.tm-pos-section { margin-bottom:8px; }
.tm-pos-label   { padding:10px 16px 6px; font-size:13px; font-weight:700;
                  color:var(--muted); display:flex; align-items:center; gap:8px; }
.tm-pos-label .cnt { font-size:11px; font-weight:500; color:var(--dim); }
.tm-empty    { text-align:center; color:var(--muted); padding:32px; font-size:13px; }

/* ═══════════════════════════════════════
   팀 상세 — 가입신청 버튼 / 신청 목록
═══════════════════════════════════════ */
.tm-join-btn { display:block; width:100%; padding:13px; border-radius:10px;
               background:var(--blade); color:#fff; font-size:14px; font-weight:700;
               border:none; cursor:pointer; margin:16px 0 0; transition:.15s;
               text-align:center; text-decoration:none; }
.tm-join-btn:hover { opacity:.88; }
.tm-join-btn:disabled { background:var(--line); color:var(--muted); cursor:not-allowed; }

.tm-req-row  { display:flex; align-items:center; gap:12px; padding:12px 18px;
               border-bottom:1px solid var(--line); }
.tm-req-row:last-child { border-bottom:none; }
.tm-req-nick { font-size:13px; font-weight:600; flex:1; color:var(--text); }
.tm-req-msg  { font-size:12px; color:var(--muted); margin-top:2px; }
.tm-req-btns { display:flex; gap:6px; }
.tm-req-btn  { padding:6px 14px; border-radius:8px; font-size:12px; font-weight:600;
               border:none; cursor:pointer; transition:.15s; text-decoration:none;
               display:inline-flex; align-items:center; gap:4px; }
.tm-req-btn--ok  { background:#10B981; color:#fff; }
.tm-req-btn--no  { background:#EF4444; color:#fff; }
.tm-req-btn:hover { opacity:.85; }

/* ═══════════════════════════════════════
   모달 공통
═══════════════════════════════════════ */
.tm-modal-bg,
.tm-apply-modal-bg {
    display:none; position:fixed; inset:0;
    background:rgba(0,0,0,.6);
    z-index:900; align-items:center; justify-content:center;
    backdrop-filter:blur(2px);
}
.tm-modal-bg.show,
.tm-apply-modal-bg.show { display:flex; }

.tm-modal {
    background:#1e2635;
    border:1px solid rgba(255,255,255,.12);
    border-radius:16px; padding:28px;
    width:420px; max-width:calc(100vw - 32px);
    box-shadow:0 24px 48px rgba(0,0,0,.6);
    max-height:90vh; overflow-y:auto;
}
.tm-modal h3 {
    font-size:16px; font-weight:700; margin-bottom:20px; color:#f0f4ff;
    display:flex; align-items:center; gap:8px;
}
.tm-modal label {
    font-size:11px; font-weight:600; color:#8b9ab5;
    display:block; margin-bottom:5px;
    letter-spacing:.04em; text-transform:uppercase;
}
.tm-modal input,
.tm-modal select {
    width:100%; padding:10px 13px; border-radius:9px;
    border:1px solid rgba(255,255,255,.12);
    font-size:13px; background:#131b28; color:#e8eeff;
    margin-bottom:14px; transition:border-color .15s; box-sizing:border-box;
}
.tm-modal input:focus,
.tm-modal select:focus { outline:none; border-color:var(--blade); }
.tm-modal input::placeholder { color:#4a5a72; }
.tm-modal-row { display:grid; grid-template-columns:1fr 1fr; gap:12px; }
.tm-modal-btns { display:flex; gap:8px; margin-top:8px; }
.tm-modal-btns button {
    flex:1; padding:11px; border-radius:9px;
    font-size:13px; font-weight:700; border:none; cursor:pointer; transition:.15s;
}
.tm-modal-btns .ok     { background:var(--blade); color:#fff; }
.tm-modal-btns .ok:hover { opacity:.88; }
.tm-modal-btns .cancel { background:rgba(255,255,255,.08); color:#8b9ab5; }
.tm-modal-btns .cancel:hover { background:rgba(255,255,255,.13); }

/* ═══════════════════════════════════════
   팀 목록
═══════════════════════════════════════ */
.tm-list-hd { display:flex; align-items:center; justify-content:space-between;
              margin-bottom:16px; flex-wrap:wrap; gap:10px; }
.tm-list-title { font-size:20px; font-weight:800; color:var(--text); }
.tm-reg-btn { padding:9px 18px; border-radius:10px; background:var(--blade); color:#fff;
              font-size:13px; font-weight:700; text-decoration:none; transition:.15s; }
.tm-reg-btn:hover { opacity:.88; }
.tm-reg-btn--opp { background:transparent; border:1px solid #F59E0B; color:#F59E0B; }
.tm-reg-btn--opp:hover { background:#F59E0B; color:#fff; opacity:1; }

.tm-filters { display:flex; gap:8px; margin-bottom:16px; flex-wrap:wrap; }
.tm-filters input { flex:1; min-width:160px; padding:9px 14px; border-radius:10px;
                    border:1px solid var(--line); font-size:13px;
                    background:var(--surface); color:var(--text); }
.tm-filters input:focus { outline:none; border-color:var(--blade); }
.tm-filter-btn { padding:9px 14px; border-radius:10px; font-size:12px; font-weight:600;
                 border:1px solid var(--line); background:var(--surface);
                 color:var(--muted); cursor:pointer; transition:.15s; text-decoration:none; }
.tm-filter-btn.on { background:var(--blade); color:#fff; border-color:var(--blade); }
.tm-filter-btn:hover:not(.on) { background:var(--bladeL); color:var(--blade); }

.tm-grid  { display:grid; grid-template-columns:repeat(auto-fill, minmax(220px, 1fr)); gap:12px; }
.tm-card  { background:var(--surface); border:1px solid var(--line); border-radius:14px;
            padding:18px; text-decoration:none; transition:.15s; display:block; }
.tm-card:hover { border-color:var(--blade); transform:translateY(-2px); box-shadow:var(--shadow); }

.tm-card-logo   { width:48px; height:48px; border-radius:12px; background:var(--bladeL);
                  display:flex; align-items:center; justify-content:center;
                  font-size:24px; margin-bottom:10px; overflow:hidden; flex-shrink:0; }
.tm-card-logo img { width:100%; height:100%; object-fit:cover; }

.tm-card-name   { font-size:15px; font-weight:700; color:var(--text); }
.tm-card-sub    { font-size:12px; color:var(--muted); margin-top:4px; }
.tm-card-footer { display:flex; align-items:center; justify-content:space-between;
                  margin-top:12px; padding-top:10px; border-top:1px solid var(--line); }
.tm-card-cnt    { font-size:12px; color:var(--muted); }
.tm-card-badge  { font-size:10px; font-weight:700; padding:2px 8px; border-radius:20px;
                  background:var(--bladeL); color:var(--blade); }
.tm-card-badge.opponent { background:#FEF3C7; color:#B45309; }
.tm-card-badge.other    { background:#F1F5F9; color:#64748B; }
.tm-card-badge.my-team     { background: rgba(30,167,255,.12); color: var(--blade); }
.tm-card-badge.reference-team { background: #FEF3C7; color: #B45309; }

.tm-card-join {
	margin-top: 10px; padding: 7px 0; background: var(--blade); color: #fff;
	border-radius: 8px; font-size: 12px; font-weight: 700; text-align: center;
	cursor: pointer; display: flex; align-items: center; justify-content: center;
	gap: 5px; transition: opacity .15s;
}
.tm-card-join:hover { opacity: .85; }

/* 팀 허브 — 가입신청 배너 */
.team-hub-join-banner { margin: 0 0 16px; border-radius: 12px; overflow: hidden; }
.thj-cta, .thj-pending, .thj-rejected {
	display: flex; align-items: center; gap: 10px;
	padding: 14px 16px; font-size: 13px; flex-wrap: wrap;
}
.thj-cta { background: rgba(37,99,235,.07); border: 1px solid rgba(37,99,235,.18); color: var(--text); }
.thj-cta i { color: var(--blade); font-size: 16px; }
.thj-pending { background: rgba(245,158,11,.07); border: 1px solid rgba(245,158,11,.2); color: #92400E; }
.thj-pending i { color: #F59E0B; }
.thj-rejected { background: rgba(239,68,68,.07); border: 1px solid rgba(239,68,68,.18); color: #7F1D1D; }
.thj-rejected i { color: #EF4444; }
.thj-btn {
	margin-left: auto; padding: 7px 16px; background: var(--blade); color: #fff;
	border-radius: 8px; font-size: 12px; font-weight: 700;
	text-decoration: none; white-space: nowrap; transition: opacity .15s;
}
.thj-btn:hover { opacity: .85; }

/* ═══════════════════════════════════════
   팀 등록·수정 폼
═══════════════════════════════════════ */
.tm-form-wrap  { max-width:560px; margin:0 auto; padding:24px 16px 80px; }
.tm-form-card  { background:var(--surface); border:1px solid var(--line); border-radius:16px; padding:24px; }
.tm-form-title { font-size:18px; font-weight:800; color:var(--text); margin-bottom:6px; }
.tm-form-desc  { font-size:13px; color:var(--muted); margin-bottom:20px; }

/* ── 필드 공통 ── */
.tm-field { margin-bottom:18px; position:relative; }
.tm-field label {
	font-size:13px; font-weight:700; color:var(--text);
	display:block; margin-bottom:7px;
	padding-left:10px;
	border-left:3px solid var(--blade);
	line-height:1.3;
}
@media (max-width:640px) {
	.tm-field label { font-size:12px; }
}
.tm-field input,
.tm-field select,
.tm-field textarea {
	width:100%; padding:10px 14px; border-radius:10px;
	border:1px solid var(--line); font-size:12px;
	background:var(--surface); color:var(--text);
	box-sizing:border-box; font-family:inherit;
}
@media (max-width:640px) {
	.tm-field input,
	.tm-field select,
	.tm-field textarea { font-size:11px; }
}
.tm-field input:focus,
.tm-field select:focus,
.tm-field textarea:focus { outline:none; border-color:var(--blade); box-shadow:0 0 0 2px rgba(14,165,233,.12); }
.tm-field textarea { resize:vertical; min-height:100px; line-height:1.6; }
.tm-field-hint { font-size:11px; color:var(--muted); margin-top:5px; }
.tm-field-hint a { color:var(--blade); }

/* ── 로고 업로드 ── */
.tm-logo-wrap { display:flex; align-items:center; gap:14px; }
.tm-logo-preview img { width:64px; height:64px; border-radius:12px; object-fit:cover; border:1px solid var(--line); flex-shrink:0; }
.tm-logo-upload-btn {
	display:inline-flex; align-items:center; gap:6px;
	padding:9px 16px; border-radius:10px; font-size:12px; font-weight:600;
	border:1.5px dashed var(--blade); color:var(--blade);
	background:transparent; cursor:pointer; transition:.15s;
}
.tm-logo-upload-btn:hover { background:rgba(14,165,233,.07); }
.tm-logo-upload-btn input[type="file"] { display:none; }

/* ── 링크 행 ── */
.tm-link-row { display:flex; gap:6px; margin-bottom:6px; align-items:center; }
.tm-link-row select { flex-shrink:0; width:110px; }
.tm-link-row input  { flex:1; min-width:0; }
.tm-link-row .tm-link-del {
	flex-shrink:0; width:30px; height:30px;
	border:none; background:transparent; color:var(--muted);
	cursor:pointer; font-size:14px; border-radius:6px; transition:.12s;
}
.tm-link-row .tm-link-del:hover { background:rgba(239,68,68,.1); color:#EF4444; }
.tm-link-add-btn {
	display:inline-flex; align-items:center; gap:5px;
	margin-top:4px; font-size:12px; font-weight:600;
	color:var(--blade); background:transparent;
	border:1.5px dashed var(--blade); border-radius:8px;
	padding:6px 14px; cursor:pointer; transition:.15s;
}
.tm-link-add-btn:hover { background:rgba(14,165,233,.07); }

/* ── 팀 이미지 업로드 ── */
.tm-img-grid { display:flex; flex-wrap:wrap; gap:8px; margin-bottom:10px; }
.tm-img-thumb {
	position:relative; width:80px; height:80px;
	border-radius:10px; overflow:hidden;
	border:1px solid var(--line); flex-shrink:0;
}
.tm-img-thumb img { width:100%; height:100%; object-fit:cover; }
.tm-img-badge-main {
	position:absolute; top:3px; left:3px;
	font-size:9px; font-weight:700;
	background:var(--blade); color:#fff;
	padding:1px 5px; border-radius:4px;
}
.tm-img-btn-del {
	position:absolute; top:3px; right:3px;
	width:18px; height:18px; border-radius:50%;
	background:rgba(0,0,0,.55); border:none;
	color:#fff; font-size:10px; cursor:pointer;
	display:flex; align-items:center; justify-content:center;
}
.tm-img-btn-main {
	position:absolute; bottom:3px; left:50%; transform:translateX(-50%);
	font-size:9px; font-weight:700;
	background:rgba(0,0,0,.55); color:#fff;
	border:none; border-radius:4px; padding:2px 5px;
	cursor:pointer; white-space:nowrap;
}
.tm-img-dropzone {
	display:flex; flex-direction:column; align-items:center; justify-content:center;
	gap:8px; padding:24px 16px; border-radius:12px;
	border:2px dashed var(--line); cursor:pointer;
	transition:.15s; text-align:center;
}
.tm-img-dropzone:hover,
.tm-img-dropzone.drag-over { border-color:var(--blade); background:rgba(14,165,233,.05); }
.tm-img-dropzone i { font-size:28px; color:var(--blade); opacity:.7; }
.tm-img-dropzone-text { font-size:12px; font-weight:600; color:var(--muted); }
.tm-img-dropzone-hint { font-size:11px; color:var(--muted); opacity:.8; }
.tm-img-dropzone input[type="file"] { display:none; }

.tm-notice-info {
	background:rgba(52,180,255,0.08); border:1px solid rgba(52,180,255,0.25);
	border-radius:10px; padding:12px 16px; margin:16px 0; font-size:12px;
	color:var(--muted); line-height:1.6;
}
.tm-submit { width:100%; padding:14px; border-radius:12px; background:var(--blade); color:#fff;
             font-size:15px; font-weight:700; border:none; cursor:pointer; margin-top:8px; transition:.15s; }
.tm-submit:hover { opacity:.88; }

/* ═══════════════════════════════════════
   유사 팀명 검색 드롭다운
═══════════════════════════════════════ */
.tm-suggest-box {
	position:absolute; top:calc(100% + 2px); left:0; right:0;
	background:var(--surface); border:1px solid var(--blade);
	border-radius:10px; box-shadow:0 8px 24px rgba(0,0,0,.25); z-index:200; overflow:hidden;
}
.tm-suggest-title {
	padding:8px 14px; font-size:11px; font-weight:700; color:var(--blade);
	background:rgba(52,180,255,0.07); border-bottom:1px solid var(--line); letter-spacing:.04em;
}
.tm-suggest-item {
	display:flex; align-items:center; justify-content:space-between;
	padding:10px 14px; font-size:13px; color:var(--text);
	text-decoration:none; transition:.12s; border-bottom:1px solid var(--line);
}
.tm-suggest-item:last-child { border-bottom:none; }
.tm-suggest-item:hover { background:var(--bladeL); }
.tm-suggest-name { font-weight:600; }
.tm-suggest-badge {
	font-size:10px; font-weight:700; padding:2px 7px; border-radius:20px;
	background:var(--bladeL); color:var(--blade); flex-shrink:0; margin-left:8px;
}

/* ════════════════════════════════════════════════════
   팀 게시판 (board.php)
════════════════════════════════════════════════════ */
.tb-list-header { display:flex; align-items:center; justify-content:space-between; padding:14px 0 10px; }
.tb-total { font-size:13px; color:var(--muted); }
.tb-write-btn {
	display:inline-flex; align-items:center; gap:6px;
	padding:7px 14px; border-radius:8px; border:none; cursor:pointer;
	background:var(--blade); color:#fff; font-size:13px; font-weight:600; transition:.15s;
}
.tb-write-btn:hover { opacity:.85; }
.tb-list { border-top:1px solid var(--line); }
.tb-row { padding:13px 4px; border-bottom:1px solid var(--line); cursor:pointer; transition:.12s; }
.tb-row:hover { background:var(--bladeL); }
.tb-row--pin { background:rgba(52,180,255,.04); }
.tb-row-title { font-size:14px; font-weight:500; color:var(--text); margin-bottom:5px; display:flex; align-items:center; gap:5px; }
.tb-pin-icon { color:var(--blade); font-size:12px; flex-shrink:0; }
.tb-edited { font-size:11px; color:var(--muted); font-weight:400; font-style:normal; }
.tb-row-meta { display:flex; align-items:center; gap:10px; font-size:12px; color:var(--muted); }
.tb-empty { text-align:center; padding:60px 20px; color:var(--muted); }
.tb-empty i { font-size:36px; margin-bottom:12px; opacity:.4; }
.tb-empty p { font-size:13px; }
.tb-more-wrap { text-align:center; padding:16px 0; }
.tb-more-btn {
	padding:8px 28px; border-radius:8px; border:1px solid var(--line);
	background:transparent; color:var(--muted); font-size:13px; cursor:pointer; transition:.12s;
}
.tb-more-btn:hover { background:var(--bladeL); color:var(--blade); }
.tb-detail-header {
	display:flex; align-items:center; justify-content:space-between;
	padding:12px 0 10px; border-bottom:1px solid var(--line); margin-bottom:16px;
}
.tb-back-btn {
	display:inline-flex; align-items:center; gap:6px;
	border:none; background:transparent; color:var(--muted); font-size:13px; cursor:pointer; padding:4px 0;
}
.tb-back-btn:hover { color:var(--blade); }
.tb-detail-actions { display:flex; gap:8px; }
.tb-action-btn {
	padding:6px 12px; border-radius:7px; border:1px solid var(--line);
	font-size:12px; cursor:pointer; background:transparent;
	color:var(--muted); transition:.12s; display:inline-flex; align-items:center; gap:5px;
}
.tb-action-btn:hover { background:var(--bladeL); color:var(--blade); border-color:var(--blade); }
.tb-action-delete:hover { background:rgba(248,113,113,.08); color:var(--red,#f87171); border-color:var(--red,#f87171); }
.tb-dt-title { font-size:17px; font-weight:700; color:var(--text); margin-bottom:10px; line-height:1.5; }
.tb-dt-meta { display:flex; align-items:center; gap:10px; font-size:12px; color:var(--muted); margin-bottom:20px; padding-bottom:14px; border-bottom:1px solid var(--line); }
.tb-dt-body { font-size:14px; color:var(--text); line-height:1.9; min-height:80px; white-space:pre-wrap; word-break:break-word; }
.tb-comment-section { margin-top:32px; border-top:1px solid var(--line); padding-top:20px; }
.tb-cmt-title { font-size:13px; font-weight:700; color:var(--text); margin-bottom:14px; }
.tb-cmt-list { display:flex; flex-direction:column; gap:2px; margin-bottom:16px; }
.tb-cmt-item { padding:11px 4px; border-bottom:1px solid var(--line); }
.tb-cmt-meta { display:flex; align-items:center; gap:8px; font-size:12px; color:var(--muted); margin-bottom:5px; }
.tb-cmt-nick { font-weight:600; color:var(--text); }
.tb-cmt-del-btn { margin-left:auto; border:none; background:transparent; color:var(--muted); cursor:pointer; padding:2px 4px; font-size:12px; line-height:1; }
.tb-cmt-del-btn:hover { color:var(--red,#f87171); }
.tb-cmt-body { font-size:13px; color:var(--text); line-height:1.7; word-break:break-word; }
.tb-cmt-form { display:flex; align-items:flex-end; gap:8px; margin-top:12px; }
.tb-cmt-input {
	flex:1; border:1px solid var(--line); border-radius:8px;
	padding:9px 12px; font-size:13px; resize:none;
	background:var(--surface,var(--bg2,#111)); color:var(--text); font-family:inherit; transition:.12s;
}
.tb-cmt-input:focus { outline:none; border-color:var(--blade); }
.tb-cmt-submit {
	padding:9px 14px; border-radius:8px; border:none;
	background:var(--blade); color:#fff; cursor:pointer; font-size:14px; transition:.15s; flex-shrink:0;
}
.tb-cmt-submit:hover { opacity:.85; }
.tb-form-header {
	display:flex; align-items:center; gap:12px;
	padding:12px 0 14px; border-bottom:1px solid var(--line);
	margin-bottom:16px; font-size:15px; font-weight:700; color:var(--text);
}
.tb-pin-label { display:inline-flex; align-items:center; gap:6px; font-size:13px; color:var(--muted); cursor:pointer; margin-bottom:12px; }
.tb-pin-label i { color:var(--blade); }
.tb-form-title-input {
	display:block; width:100%; border:1px solid var(--line); border-radius:8px;
	padding:11px 14px; font-size:15px; font-weight:600;
	background:var(--surface,var(--bg2,#111)); color:var(--text); font-family:inherit; margin-bottom:10px; transition:.12s;
}
.tb-form-title-input:focus { outline:none; border-color:var(--blade); }
.tb-form-body {
	display:block; width:100%; border:1px solid var(--line); border-radius:8px;
	padding:12px 14px; font-size:14px; line-height:1.8; resize:vertical;
	background:var(--surface,var(--bg2,#111)); color:var(--text); font-family:inherit; min-height:200px; transition:.12s;
}
.tb-form-body:focus { outline:none; border-color:var(--blade); }
.tb-form-footer { display:flex; justify-content:flex-end; margin-top:12px; }
.tb-submit-btn {
	padding:9px 28px; border-radius:8px; border:none;
	background:var(--blade); color:#fff; font-size:14px; font-weight:600; cursor:pointer; transition:.15s;
}
.tb-submit-btn:hover { opacity:.85; }
.tb-submit-btn:disabled { opacity:.5; cursor:not-allowed; }

/* ════════════════════════════════════════════════════
   팀 파일 공유 (files.php)
════════════════════════════════════════════════════ */
.tf-list-header { display:flex; align-items:center; justify-content:space-between; padding:14px 0 10px; }
.tf-total { font-size:13px; color:var(--muted); }
.tf-upload-btn {
	display:inline-flex; align-items:center; gap:6px;
	padding:7px 14px; border-radius:8px; border:none; cursor:pointer;
	background:var(--blade); color:#fff; font-size:13px; font-weight:600; transition:.15s;
}
.tf-upload-btn:hover { opacity:.85; }
.tf-upload-form { background:var(--surface,var(--bg2,#111)); border:1px solid var(--line); border-radius:10px; margin-bottom:16px; overflow:hidden; }
.tf-upload-inner { padding:16px; display:flex; flex-direction:column; gap:10px; }
.tf-file-label {
	display:flex; align-items:center; gap:10px;
	padding:12px 14px; border:2px dashed var(--line); border-radius:8px;
	cursor:pointer; transition:.12s; font-size:13px; color:var(--muted);
}
.tf-file-label:hover { border-color:var(--blade); color:var(--blade); }
.tf-file-label i { font-size:16px; flex-shrink:0; }
.tf-desc-input { border:1px solid var(--line); border-radius:8px; padding:9px 12px; font-size:13px; background:transparent; color:var(--text); font-family:inherit; transition:.12s; }
.tf-desc-input:focus { outline:none; border-color:var(--blade); }
.tf-upload-actions { display:flex; justify-content:flex-end; gap:8px; }
.tf-cancel-btn { padding:7px 16px; border-radius:8px; border:1px solid var(--line); background:transparent; color:var(--muted); font-size:13px; cursor:pointer; }
.tf-cancel-btn:hover { background:var(--bladeL); color:var(--blade); }
.tf-submit-btn {
	display:inline-flex; align-items:center; gap:6px;
	padding:7px 16px; border-radius:8px; border:none;
	background:var(--blade); color:#fff; font-size:13px; font-weight:600; cursor:pointer; transition:.15s;
}
.tf-submit-btn:hover { opacity:.85; }
.tf-submit-btn:disabled { opacity:.5; cursor:not-allowed; }
.tf-allowed-note { font-size:11px; color:var(--dim,var(--muted)); }
.tf-list { border-top:1px solid var(--line); }
.tf-row { display:flex; align-items:center; gap:12px; padding:13px 4px; border-bottom:1px solid var(--line); transition:.12s; }
.tf-row:hover { background:var(--bladeL); }
.tf-row-icon { width:36px; height:36px; border-radius:8px; background:var(--surface,var(--bg2,#111)); border:1px solid var(--line); display:flex; align-items:center; justify-content:center; font-size:18px; flex-shrink:0; color:var(--blade); }
.tf-row-info { flex:1; min-width:0; }
.tf-row-name { font-size:14px; font-weight:500; color:var(--text); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; margin-bottom:3px; }
.tf-row-desc { font-size:12px; color:var(--muted); margin-bottom:3px; }
.tf-row-meta { display:flex; align-items:center; gap:10px; font-size:12px; color:var(--muted); }
.tf-row-actions { display:flex; align-items:center; gap:6px; flex-shrink:0; }
.tf-dl-btn { display:inline-flex; align-items:center; justify-content:center; width:32px; height:32px; border-radius:7px; background:var(--bladeL); color:var(--blade); text-decoration:none; font-size:14px; transition:.12s; }
.tf-dl-btn:hover { background:var(--blade); color:#fff; }
.tf-del-btn { display:inline-flex; align-items:center; justify-content:center; width:32px; height:32px; border-radius:7px; border:none; background:transparent; color:var(--muted); cursor:pointer; font-size:13px; transition:.12s; }
.tf-del-btn:hover { background:rgba(248,113,113,.1); color:var(--red,#f87171); }
.tf-empty { text-align:center; padding:60px 20px; color:var(--muted); }
.tf-empty i { font-size:36px; margin-bottom:12px; opacity:.4; }
.tf-empty p { font-size:13px; }
.tf-more-wrap { text-align:center; padding:16px 0; }
.tf-more-btn { padding:8px 28px; border-radius:8px; border:1px solid var(--line); background:transparent; color:var(--muted); font-size:13px; cursor:pointer; transition:.12s; }
.tf-more-btn:hover { background:var(--bladeL); color:var(--blade); }

/* ════════════════════════════════════════════════════
   팀 일정 FullCalendar (schedule.php)
════════════════════════════════════════════════════ */
.tm-cal-filter { display:flex; gap:6px; padding:12px 0 14px; }
.tm-cal-filter-btn { padding:5px 14px; border-radius:20px; border:1px solid var(--line); font-size:12px; font-weight:600; cursor:pointer; background:transparent; color:var(--muted); transition:.12s; }
.tm-cal-filter-btn:hover    { background:var(--bladeL); color:var(--blade); }
.tm-cal-filter-btn.is-active { background:var(--blade); color:#fff; border-color:var(--blade); }
#tmCalendar { font-size:13px; }
#tmCalendar .fc-toolbar-title { font-size:16px; font-weight:700; }
#tmCalendar .fc-button { background:var(--surface,var(--bg2,#111)) !important; border-color:var(--line) !important; color:var(--text) !important; font-size:12px !important; padding:4px 10px !important; }
#tmCalendar .fc-button:hover { background:var(--bladeL) !important; color:var(--blade) !important; }
#tmCalendar .fc-button-active,
#tmCalendar .fc-button.fc-button-primary:not(:disabled).fc-button-active { background:var(--blade) !important; border-color:var(--blade) !important; color:#fff !important; }
#tmCalendar .fc-col-header-cell { font-size:11px; }
#tmCalendar .fc-daygrid-day-number { font-size:12px; }
#tmCalendar .fc-event { border-radius:4px !important; border:none !important; font-size:11px; padding:1px 4px; }
.fc-ev-wrap { display:flex; align-items:center; gap:3px; overflow:hidden; white-space:nowrap; }
.fc-ev-title { flex:1; overflow:hidden; text-overflow:ellipsis; }
.fc-ev-score { font-size:10px; opacity:.85; flex-shrink:0; }
.fc-ev-badge { font-size:9px; font-weight:700; padding:1px 4px; border-radius:3px; flex-shrink:0; background:rgba(255,255,255,.25); }
.tm-cal-popover { position:absolute; z-index:1200; background:var(--bg2,#111); border:1px solid var(--line); border-radius:10px; box-shadow:0 8px 24px rgba(0,0,0,.4); width:260px; padding:0; overflow:hidden; }
.tm-cal-pop-inner { padding:14px; }
.tm-pop-header { display:flex; align-items:center; justify-content:space-between; margin-bottom:10px; }
.tm-pop-type { font-size:11px; color:var(--muted); font-weight:600; }
.tm-pop-close { border:none; background:transparent; color:var(--muted); cursor:pointer; padding:2px 4px; font-size:13px; line-height:1; }
.tm-pop-close:hover { color:var(--text); }
.tm-pop-vs { font-size:14px; font-weight:700; color:var(--text); margin-bottom:6px; line-height:1.4; }
.tm-pop-vs em { font-style:normal; color:var(--muted); font-size:12px; margin:0 4px; }
.tm-pop-score { font-size:13px; color:var(--text); margin-bottom:6px; padding:6px 10px; background:var(--surface,rgba(255,255,255,.04)); border-radius:6px; text-align:center; }
.tm-pop-score strong { font-size:16px; font-weight:800; }
.tm-pop-result { display:inline-block; font-size:12px; font-weight:700; padding:2px 10px; border-radius:12px; margin-bottom:8px; background:rgba(139,148,158,.15); color:var(--muted); }
.tm-pop-result--win, .tm-pop-result--ot_win, .tm-pop-result--so_win { background:rgba(63,185,80,.15); color:#3fb950; }
.tm-pop-result--loss, .tm-pop-result--ot_loss, .tm-pop-result--so_loss { background:rgba(248,81,73,.15); color:#f85149; }
.tm-pop-result--draw { background:rgba(139,148,158,.15); color:var(--muted); }
.tm-pop-meta { font-size:12px; color:var(--muted); margin-bottom:4px; display:flex; align-items:center; gap:6px; }
.tm-pop-link { display:block; margin-top:10px; padding:7px 0; border-top:1px solid var(--line); font-size:12px; color:var(--blade); text-decoration:none; text-align:center; }
.tm-pop-link:hover { text-decoration:underline; }
.tm-pop-no-post { display:block; margin-top:10px; padding:7px 0; border-top:1px solid var(--line); font-size:12px; color:var(--muted); text-align:center; }
.tm-cal-filters { display:flex; flex-direction:column; gap:8px; padding:12px 0 16px; }
.tm-cal-filter-row { display:flex; align-items:center; gap:10px; flex-wrap:wrap; }
.tm-filter-label { font-size:11px; font-weight:700; color:var(--muted); width:36px; flex-shrink:0; text-align:right; }
.tm-filter-group { display:flex; gap:5px; flex-wrap:wrap; }
.tm-filter-select { border:1px solid var(--line); border-radius:20px; padding:4px 12px; font-size:12px; font-weight:600; background:var(--surface,var(--bg2,#111)); color:var(--text); cursor:pointer; transition:.12s; appearance:none; -webkit-appearance:none; min-width:100px; }
.tm-filter-select:focus { outline:none; border-color:var(--blade); }

/* ════════════════════════════════════════════════════
   팀 허브 — 공통 레이아웃
════════════════════════════════════════════════════ */
.team-hub-wrap { max-width: 900px; margin: 0 auto; padding: 20px 16px 80px; }

.team-hub-back { display:inline-flex; align-items:center; gap:5px; font-size:13px; font-weight:600; color:var(--muted); text-decoration:none; margin-bottom:12px; transition:color .15s; }
.team-hub-back:hover { color:var(--blade); }

.team-hub-header { display:flex; align-items:center; gap:16px; background:var(--surface); border:1px solid var(--line); border-radius:16px; padding:20px 24px; margin-bottom:0; }
.team-hub-logo { width:64px; height:64px; border-radius:14px; overflow:hidden; flex-shrink:0; background:var(--bladeL); display:flex; align-items:center; justify-content:center; }
.team-hub-logo img { width:100%; height:100%; object-fit:cover; }
.team-hub-logo-placeholder { font-size:26px; font-weight:800; color:var(--blade); }
.team-hub-info { flex:1; min-width:0; display:flex; flex-direction:column; gap:4px; }
.team-hub-name-row { display:flex; align-items:center; gap:8px; }
.team-hub-name { font-size:20px; font-weight:800; color:var(--text); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; flex:1; min-width:0; }
.team-hub-meta { display:flex; flex-wrap:wrap; gap:6px; font-size:12px; color:var(--muted); align-items:center; }
.team-hub-meta span { display:inline-flex; align-items:center; gap:3px; }
.team-hub-sub { display:flex; flex-wrap:wrap; gap:6px; align-items:center; font-size:12px; }
.team-hub-rink { display:inline-flex; align-items:center; gap:4px; font-size:12px; color:var(--muted); }
.team-hub-type-badge { display:inline-block; padding:2px 10px; border-radius:20px; font-size:11px; font-weight:700; background:var(--bladeL); color:var(--blade); }
.team-hub-edit-btn { width:34px; height:34px; border-radius:10px; background:var(--bg); border:1px solid var(--line); display:flex; align-items:center; justify-content:center; color:var(--muted); text-decoration:none; flex-shrink:0; font-size:13px; transition:border-color .15s, color .15s; }
.team-hub-edit-btn:hover { border-color:var(--blade); color:var(--blade); }

/* ── 탭 네비게이션 ────────────────────────────────── */
.team-hub-tabs {
	display: grid;
	grid-template-columns: repeat(6, 1fr);
	gap: 8px;
	margin: 16px 0 0;
	border-bottom: none;
}
.team-hub-tab {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 6px;
	padding: 14px 4px;
	background: var(--surface);
	border: 1px solid var(--line);
	border-bottom: 2px solid transparent;
	border-radius: 14px;
	cursor: pointer;
	white-space: nowrap;
	transition: border-color .15s, transform .12s;
	user-select: none;
}
.team-hub-tab .tab-label {
	color: var(--muted);
	font-size: 12px;
	font-weight: 600;
}
.team-hub-tab .thb-tab-icon {
	width: 36px;
	height: 36px;
	border-radius: 10px;
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: 16px;
	transition: background .15s, color .15s;
}
/* 탭별 아이콘 컬러 */
.team-hub-tab.tab-home       .thb-tab-icon { background: #E8F0FD; color: #4A90D9; }
.team-hub-tab.tab-members    .thb-tab-icon { background: #E6F7EF; color: #27AE60; }
.team-hub-tab.tab-board      .thb-tab-icon { background: #FFF3E0; color: #F5A623; }
.team-hub-tab.tab-files      .thb-tab-icon { background: #F3E9FD; color: #9B59B6; }
.team-hub-tab.tab-schedule   .thb-tab-icon { background: #FDEAEA; color: #E74C3C; }
.team-hub-tab.tab-tournament .thb-tab-icon { background: #FEFAE0; color: #C8A800; }
/* 호버 */
.team-hub-tab:hover { border-color: #FF2D78; transform: translateY(-2px); }
.team-hub-tab:hover .tab-label { color: #FF2D78; }
.team-hub-tab:hover .thb-tab-icon { background: #FFE8F0; color: #FF2D78; }
/* 선택됨 */
.team-hub-tab.active { border-color: var(--line); border-bottom-color: #FF2D78; }
.team-hub-tab.active .tab-label { color: #FF2D78; }

/* ── 탭 콘텐츠 ────────────────────────────────────── */
.team-hub-content { padding-top: 20px; }

/* ── 공통 빈 상태 ─────────────────────────────────── */
.team-hub-empty { text-align:center; padding:48px 20px; color:var(--muted); }
.team-hub-empty i { font-size:36px; display:block; margin-bottom:12px; opacity:.4; }
.team-hub-empty p { font-size:13px; }

/* ── 모바일 탭 레이어 ────────────────────────────── */
.team-tab-overlay { display:none; position:fixed; inset:0; background:rgba(0,0,0,.45); z-index:1100; backdrop-filter:blur(2px); }
.team-tab-overlay.open { display:block; }
.team-tab-layer { display:none; position:fixed; bottom:0; left:0; right:0; background:var(--surface-strong,var(--surface)); border-radius:20px 20px 0 0; z-index:1101; padding:0 0 env(safe-area-inset-bottom,0px); transform:translateY(100%); transition:transform .3s cubic-bezier(.32,.72,0,1); box-shadow:0 -4px 32px rgba(0,0,0,.18); }
.team-tab-layer.open { display:block; transform:translateY(0); }
.ttl-header { display:flex; align-items:center; justify-content:space-between; padding:16px 20px 12px; border-bottom:1px solid var(--line); }
.ttl-title { font-size:14px; font-weight:700; color:var(--text); display:flex; align-items:center; gap:8px; }
.ttl-close { width:32px; height:32px; border-radius:50%; background:var(--bg); border:1px solid var(--line); color:var(--muted); font-size:14px; display:flex; align-items:center; justify-content:center; cursor:pointer; }
.ttl-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:8px; padding:16px 16px 20px; }
.ttl-item { display:flex; flex-direction:column; align-items:center; gap:6px; padding:14px 8px; border-radius:14px; text-decoration:none; color:var(--text); background:var(--bg); border:1px solid var(--line); transition:border-color .15s, transform .1s; position:relative; }
.ttl-item:hover { transform:translateY(-1px); }
.ttl-item--active { border-color:transparent; background:var(--surface); box-shadow:var(--shadow); }
.ttl-item--disabled { opacity:.38; }
.ttl-icon { width:42px; height:42px; border-radius:12px; display:flex; align-items:center; justify-content:center; font-size:18px; }
.ttl-label { font-size:11px; font-weight:600; color:var(--text); }
.ttl-lock { position:absolute; top:8px; right:8px; }
.ttl-active-dot { width:6px; height:6px; border-radius:50%; position:absolute; top:8px; right:8px; }
@media (min-width: 601px) { .team-tab-layer, .team-tab-overlay { display:none !important; } }

/* ── 팀 목록 검색바 ──────────────────────────────── */
.tm-search-bar { margin-bottom:16px; }
.tm-search-inner { display:flex; gap:8px; align-items:center; }
.tm-type-select { flex-shrink:0; padding:9px 12px; border-radius:10px; border:1px solid var(--line); background:var(--surface); color:var(--text); font-size:13px; font-weight:600; cursor:pointer; outline:none; transition:border-color .15s; min-width:90px; }
.tm-type-select:focus { border-color:var(--blade); }
.tm-search-input { flex:1; padding:9px 14px; border-radius:10px; border:1px solid var(--line); background:var(--surface); color:var(--text); font-size:13px; outline:none; transition:border-color .15s; min-width:0; }
.tm-search-input:focus { border-color:var(--blade); }
.tm-search-btn { flex-shrink:0; padding:9px 16px; border-radius:10px; background:var(--blade); color:#fff; border:none; font-size:13px; font-weight:700; cursor:pointer; display:flex; align-items:center; gap:6px; transition:opacity .15s; }
.tm-search-btn:hover { opacity:.85; }
@media (max-width: 480px) { .tm-search-inner { flex-wrap:wrap; } .tm-type-select, .tm-search-input, .tm-search-btn { width:100%; } .tm-search-btn { justify-content:center; } }

/* ── 홈 탭 슬라이더 ──────────────────────────────── */
.team-slider { position:relative; overflow:hidden; border-radius:14px; margin-bottom:16px; background:var(--surface); aspect-ratio:16/7; }
.team-slider-track { display:flex; transition:transform .35s ease; height:100%; }
.team-slide { min-width:100%; height:100%; flex-shrink:0; }
.team-slide img { width:100%; height:100%; object-fit:cover; }
.team-slide-btn { position:absolute; top:50%; transform:translateY(-50%); background:rgba(0,0,0,.35); border:none; color:#fff; width:32px; height:32px; border-radius:50%; cursor:pointer; font-size:12px; display:flex; align-items:center; justify-content:center; }
.team-slide-btn.prev { left:10px; }
.team-slide-btn.next { right:10px; }
.team-slide-dots { position:absolute; bottom:8px; left:50%; transform:translateX(-50%); display:flex; gap:5px; }
.team-slide-dot { width:6px; height:6px; border-radius:50%; background:rgba(255,255,255,.5); cursor:pointer; transition:background .2s; }
.team-slide-dot.active { background:#fff; }
.team-cover-img, .team-cover-logo-fallback { border-radius:14px; overflow:hidden; margin-bottom:16px; background:var(--surface); aspect-ratio:16/7; display:flex; align-items:center; justify-content:center; }
.team-cover-img img { width:100%; height:100%; object-fit:cover; }
.team-cover-logo-fallback img { max-height:80%; max-width:60%; object-fit:contain; }

/* ── 모집 배너 ──────────────────────────────────────── */
.team-recruit-banner { background:linear-gradient(135deg,var(--blade),var(--bladeL)); border-radius:14px; padding:14px 16px; margin-bottom:14px; color:#fff; }
.trb-inner { display:flex; align-items:center; gap:12px; }
.trb-inner > i { font-size:18px; flex-shrink:0; }
.trb-inner > div { flex:1; }
.trb-inner strong { font-size:14px; display:block; }
.trb-inner p { font-size:12px; margin:2px 0 0; opacity:.9; }
.trb-btn { background:#fff; color:var(--blade); font-weight:700; font-size:12px; padding:6px 14px; border-radius:20px; text-decoration:none; white-space:nowrap; flex-shrink:0; }

/* ── 공통 섹션 ──────────────────────────────────────── */
.team-hub-section { background:var(--surface); border:1px solid var(--line); border-radius:14px; padding:16px; margin-bottom:14px; }
.ths-title { display:flex; align-items:center; gap:6px; font-size:13px; font-weight:700; color:var(--text); margin-bottom:12px; }
.ths-title i { color:var(--blade); }
.ths-count { font-size:12px; color:var(--muted); font-weight:500; }
.ths-more { margin-left:auto; font-size:11px; color:var(--blade); text-decoration:none; font-weight:600; }
.team-desc-text { font-size:13px; color:var(--text); line-height:1.7; }
.team-info-dl { display:grid; grid-template-columns:auto 1fr; gap:6px 16px; font-size:13px; }
.team-info-dl dt { color:var(--muted); font-weight:500; white-space:nowrap; }
.team-info-dl dd { color:var(--text); }
.team-staff-row { display:flex; flex-wrap:wrap; gap:8px; }
.team-staff-chip { display:flex; align-items:center; gap:8px; background:var(--bg); border-radius:10px; padding:8px 12px 8px 8px; }
.team-staff-name { display:block; font-size:13px; font-weight:600; color:var(--text); }
.team-staff-role { display:block; font-size:11px; color:var(--muted); }
.team-contact-row { display:flex; align-items:center; gap:8px; font-size:13px; margin-bottom:8px; color:var(--text); }
.team-contact-row i { color:var(--blade); }
.team-contact-row a { color:var(--blade); }
.team-links-row { display:flex; flex-wrap:wrap; gap:8px; }
.team-link-btn { display:inline-flex; align-items:center; gap:6px; padding:6px 12px; background:var(--bg); border:1px solid var(--line); border-radius:20px; font-size:12px; color:var(--text); text-decoration:none; transition:border-color .15s, color .15s; }
.team-link-btn:hover { border-color:var(--blade); color:var(--blade); }

/* ── 선수단 미리보기 ──────────────────────────────── */
.ths-player-row { display:flex; gap:8px; flex-wrap:wrap; }
.ths-player-chip { display:flex; align-items:center; gap:6px; padding:5px 10px 5px 5px; background:var(--bg); border-radius:20px; font-size:12px; }
.ths-avatar { width:28px; height:28px; border-radius:50%; background:var(--bladeL); color:var(--blade); font-size:12px; font-weight:700; display:flex; align-items:center; justify-content:center; flex-shrink:0; overflow:hidden; }
.ths-avatar img { width:100%; height:100%; object-fit:cover; }
.ths-player-name { font-weight:600; color:var(--text); }
.ths-jersey { font-size:10px; color:var(--muted); }
.ths-player-more { display:flex; align-items:center; padding:5px 12px; background:var(--bg); border-radius:20px; font-size:12px; color:var(--blade); font-weight:700; text-decoration:none; }

/* ── 가입신청 배너 (view.php) ────────────────────── */
.team-hub-join-banner { margin:0 0 16px; border-radius:12px; overflow:hidden; }

/* ════════════════════════════════════════════════════
   멤버 탭 (members.php)
════════════════════════════════════════════════════ */
.tm-member-section { margin-bottom: 20px; }
.tm-member-section-title { font-size:12px; font-weight:700; color:var(--muted); text-transform:uppercase; letter-spacing:.06em; margin-bottom:10px; padding-bottom:6px; border-bottom:1px solid var(--line); }

.tm-member-total { font-size:13px; color:var(--muted); margin-bottom:14px; padding-bottom:10px; border-bottom:1px solid var(--line); }
.tm-member-total strong { color:var(--text); font-size:15px; }
.tm-member-total-sub { font-size:12px; color:var(--muted); margin-left:4px; }

.tm-pos-badge { display:inline-flex; align-items:center; padding:2px 8px; border-radius:10px; font-size:10px; font-weight:700; background:var(--bladeL); color:var(--blade); }
.tm-pos-badge.tm-pos-G { background:rgba(251,191,36,.15); color:var(--yellow,#fbbf24); }
.tm-pos-badge.tm-pos-D { background:rgba(52,180,255,.12); color:var(--blade); }
.tm-pos-badge.tm-pos-F { background:rgba(74,222,128,.12); color:var(--green,#4ade80); }
.tm-pos-cnt { font-size:11px; font-weight:500; color:var(--muted); margin-left:4px; }

.tm-loan-badge { display:inline-flex; padding:1px 7px; border-radius:10px; font-size:10px; font-weight:700; background:rgba(248,113,113,.1); color:var(--red,#f87171); border:1px solid rgba(248,113,113,.2); }

/* 로스터 행 (list 형식) */
.tm-roster-list { display:flex; flex-direction:column; gap:1px; border:1px solid var(--line); border-radius:12px; overflow:hidden; }
.tm-roster-row { display:flex; align-items:center; gap:12px; padding:10px 14px; background:var(--surface); border-bottom:1px solid var(--line); transition:background .12s; }
.tm-roster-row:last-child { border-bottom:none; }
.tm-roster-row:hover { background:var(--bladeL); }
.tm-roster-no { width:28px; text-align:center; font-size:13px; font-weight:700; color:var(--muted); flex-shrink:0; }
.tm-roster-avatar { flex-shrink:0; width:40px; height:40px; border-radius:10px; overflow:hidden; }
.tm-roster-avatar img { width:100%; height:100%; object-fit:cover; }
.tm-roster-avatar-ph { width:40px; height:40px; border-radius:10px; background:var(--bladeL); display:flex; align-items:center; justify-content:center; font-weight:700; font-size:15px; color:var(--blade); flex-shrink:0; }
.tm-roster-info { flex:1; min-width:0; display:flex; align-items:center; gap:6px; flex-wrap:wrap; }
.tm-roster-name { font-size:14px; font-weight:700; color:var(--text); }
.tm-roster-nick { font-size:12px; color:var(--muted); }
.tm-roster-birth { font-size:11px; color:var(--muted); }
.tm-roster-role { margin-left:auto; font-size:11px; font-weight:700; padding:2px 10px; border-radius:20px; background:var(--bladeL); color:var(--blade); flex-shrink:0; }
.tm-roster-pos { display:flex; gap:4px; flex-shrink:0; margin-left:auto; }

/* 로스터 카드 그리드 (2열) */
.tm-roster-grid { display:grid; grid-template-columns:1fr 1fr; gap:8px; }
.tm-roster-card { display:flex; align-items:center; gap:10px; padding:10px 12px; background:var(--surface); border:1px solid var(--line); border-radius:12px; transition:background .12s; }
.tm-roster-card:hover { background:var(--bladeL); }
.tm-roster-card--loan { background:rgba(248,113,113,.07); border-color:rgba(248,113,113,.25); }
.tm-roster-card--loan:hover { background:rgba(248,113,113,.13); }
.tm-rc-avatar { flex-shrink:0; width:38px; height:38px; border-radius:50%; overflow:hidden; }
.tm-rc-avatar img { width:100%; height:100%; object-fit:cover; }
.tm-rc-avatar-ph { width:38px; height:38px; border-radius:50%; background:var(--bladeL); display:flex; align-items:center; justify-content:center; font-weight:700; font-size:14px; color:var(--blade); }
.tm-rc-avatar-ph--loan { background:rgba(248,113,113,.15); color:var(--red,#f87171); }
.tm-rc-body { flex:1; min-width:0; display:flex; align-items:center; gap:5px; flex-wrap:nowrap; overflow:hidden; }
.tm-rc-no { font-size:11px; font-weight:700; color:var(--muted); flex-shrink:0; width:25px; text-align:left; }
.tm-rc-name { font-size:13px; font-weight:700; color:var(--text); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; flex-shrink:1; }
.tm-rc-meta { display:flex; align-items:center; gap:4px; flex-shrink:0; }
.tm-rc-birth { font-size:11px; color:var(--muted); white-space:nowrap; }
.tm-rc-role { font-size:11px; font-weight:600; padding:1px 8px; border-radius:10px; background:var(--bladeL); color:var(--blade); white-space:nowrap; flex-shrink:0; }

/* ── 대회 탭 ─────────────────────────────────────── */
.tm-badge { display:inline-flex; padding:2px 10px; border-radius:20px; font-size:11px; font-weight:700; }
.tm-badge-ongoing  { background:rgba(52,180,255,.12); color:var(--blade); }
.tm-badge-upcoming { background:rgba(74,222,128,.12); color:var(--green,#4ade80); }
.tm-badge-ended    { background:rgba(139,148,158,.1); color:var(--muted); }
.tm-badge-cancelled{ background:rgba(248,113,113,.1); color:var(--red,#f87171); }
.tm-tourn-info    { flex:1; min-width:0; }
.tm-tourn-badges  { display:flex; gap:5px; flex-wrap:wrap; margin-bottom:6px; }
.tm-tourn-dates   { font-size:12px; color:var(--muted); }
.tm-tourn-date-sep{ margin:0 4px; }
.tm-tourn-actions { display:flex; gap:6px; flex-shrink:0; }
.tm-tourn-btn { display:inline-flex; align-items:center; gap:5px; padding:6px 14px; border-radius:8px; font-size:12px; font-weight:600; background:var(--blade); color:#fff; text-decoration:none; border:none; cursor:pointer; transition:opacity .15s; }
.tm-tourn-btn:hover { opacity:.85; }
.tm-tourn-btn-sub { background:var(--surface); color:var(--muted); border:1px solid var(--line); }
.tm-tourn-btn-sub:hover { border-color:var(--blade); color:var(--blade); }

/* ── 모바일 ───────────────────────────────────────── */
@media (max-width: 600px) {
	.team-hub-header { padding:16px; gap:12px; }
	.team-hub-name { font-size:17px; }
	.team-hub-logo { width:52px; height:52px; }
	.team-hub-tab { padding:10px 2px; gap:4px; border-radius:10px; }
	.team-hub-tab .tab-label { font-size:10px; }
	.team-hub-tab .thb-tab-icon { width:30px; height:30px; font-size:13px; border-radius:8px; }
}
@media (max-width: 540px) {
	.tm-roster-grid { grid-template-columns:1fr 1fr; gap:6px; }
	.tm-roster-card { padding:7px 8px; gap:6px; }
	.tm-rc-avatar, .tm-rc-avatar-ph { width:28px; height:28px; font-size:11px; }
	.tm-rc-no { font-size:10px; }
	.tm-rc-name { font-size:11px; }
}
@media (max-width: 400px) {
	.tm-rc-body { gap:5px; }
	.tm-rc-birth { display:none; }
	.tm-rc-avatar-ph { display:none; }
	.team-hub-header { padding:12px 14px; gap:10px; }
	.team-hub-logo { width:44px; height:44px; }
	.team-hub-name { font-size:15px; }
	.team-hub-meta { font-size:11px; gap:5px; }
	.team-hub-sub { font-size:11px; gap:5px; }
	.team-hub-type-badge { font-size:10px; padding:1px 7px; white-space:nowrap; }
}
@media (max-width: 320px) {
	.tm-rc-birth { display:none; }
}