@charset "utf-8";

/* ==========================================================================
   GLTV 레이아웃 (I안: 경기 찾기 + 바로 시청 + 커뮤니티)
   - 색은 color.css 의 변수만 사용합니다.
   ========================================================================== */

/* ---------- 공용 부품 ---------- */
.gl-in {width:1200px;margin:0 auto}
.gl-logo {display:inline-block;font-size:22px;font-weight:900;letter-spacing:-.5px;color:var(--chrome-text);white-space:nowrap;line-height:1}
.gl-logo em {font-style:normal;color:var(--highlight)}
.gl-logo:hover {color:var(--chrome-text);text-decoration:none}

.gl-btn {display:inline-block;height:32px;padding:0 14px;border:0;border-radius:6px;background:var(--primary);color:var(--on-accent);font-size:13px;font-weight:700;line-height:32px;white-space:nowrap;cursor:pointer}
.gl-btn:hover {background:var(--primary-hover);color:var(--on-accent);text-decoration:none}

.gl-live {display:inline-block;height:18px;padding:0 6px 0 14px;border-radius:3px;background:var(--live) ;color:#fff;font-size:10px;font-weight:800;font-style:normal;line-height:18px;letter-spacing:.3px;position:relative}
.gl-live:before {content:"";position:absolute;left:6px;top:7px;width:5px;height:5px;border-radius:50%;background:#fff}

.gl-card {border:1px solid var(--border);border-radius:10px;background:var(--surface);overflow:hidden}
.gl-card-hd {display:flex;justify-content:space-between;align-items:center;margin:0;padding:13px 16px;border-bottom:1px solid var(--border-soft);font-size:14px;line-height:1.4;color:var(--text-strong)}
.gl-card-hd a {color:var(--text-strong)}
.gl-card-hd .gl-more {font-size:12px;font-weight:400;color:var(--text-faint)}
.gl-card-hd .gl-more:hover {color:var(--primary-text)}

.gl-posts {margin:0;padding:0;list-style:none}
.gl-posts li {display:flex;align-items:center;gap:8px;padding:10px 16px;border-bottom:1px solid var(--border-soft);font-size:13px;line-height:1.5}
.gl-posts li:last-child {border-bottom:0}
.gl-posts .fa-lock {color:var(--text-faint)}
.gl-post-t {flex:1;min-width:0;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;color:var(--text)}
.gl-post-t:hover {color:var(--primary-text)}
.gl-post-c {flex:none;color:var(--primary-text);font-size:12px;font-weight:700}
.gl-post-d {flex:none;color:var(--text-faint);font-size:12px}
.gl-new {flex:none;width:15px;height:15px;border-radius:3px;background:var(--primary);color:var(--on-accent);font-size:10px;font-weight:700;line-height:15px;text-align:center}
.gl-rank li > b {flex:none;width:16px;color:var(--primary-text);font-weight:800;text-align:center}
.gl-posts .gl-empty, .gl-empty {display:block;padding:36px 16px;color:var(--text-faint);font-size:13px;text-align:center}
.gl-write {display:flex;gap:8px;padding:12px 16px;border-top:1px solid var(--border-soft)}
.gl-write-in {flex:1;height:32px;padding:0 10px;border:1px solid var(--border);border-radius:6px;background:var(--surface-2);color:var(--text-faint);font-size:12px;line-height:30px}
.gl-write-in:hover {border-color:var(--primary);color:var(--text-muted);text-decoration:none}

/* 팀 표시 */
.gl-team {display:flex;align-items:center;gap:8px;min-width:0;color:var(--text-strong);font-size:13px;font-weight:600;line-height:24px}
.gl-team > span {overflow:hidden;white-space:nowrap;text-overflow:ellipsis}
.gl-crest {flex:none;width:20px;height:20px;border-radius:50%;color:#fff;font-size:10px;font-weight:700;font-style:normal;line-height:20px;text-align:center}

/* ---------- 플레이어 + 경기 목록 ---------- */

.gl-chips {flex:none;display:flex;gap:5px;padding:0 14px 10px;border-bottom:1px solid var(--border-soft);overflow-x:auto}
.gl-chips button {flex:none;height:26px;padding:0 11px;border:1px solid var(--border);border-radius:13px;background:var(--surface);color:var(--text-muted);font-size:12px;cursor:pointer}
.gl-chips button.is-on {border-color:var(--primary);background:var(--primary);color:var(--on-accent);font-weight:700}

/* ---------- PC 헤더 ---------- */
#gl_hd {min-width:1200px;background:var(--chrome-bg)}
#gl_hd #hd_h1 {position:absolute;font-size:0;line-height:0;overflow:hidden}
.gl-hd-top .gl-in {display:flex;align-items:center;gap:28px;height:64px}
.gl-search {display:flex;width:380px;height:36px;border-radius:18px;background:var(--chrome-field);overflow:hidden}
.gl-search input[type="text"] {flex:1;min-width:0;height:36px;padding:0 0 0 16px;border:0;background:transparent;color:var(--chrome-text);font-size:13px;outline:0}
.gl-search input[type="text"]::placeholder {color:var(--chrome-text-muted)}
.gl-search button {width:44px;height:36px;border:0;background:transparent;color:var(--chrome-text-muted);font-size:14px;cursor:pointer}
.gl-search button:hover {color:var(--chrome-text)}
.gl-user {display:flex;align-items:center;gap:16px;margin:0 0 0 auto;padding:0;list-style:none;font-size:13px}
.gl-user a {color:var(--chrome-text-muted)}
.gl-user a:hover {color:var(--chrome-text);text-decoration:none}

.gl-nav {background:var(--surface);border-bottom:1px solid var(--border)}
.gl-nav .gl-in {display:flex;align-items:stretch;justify-content:space-between}
.gl-nav ul {margin:0;padding:0;list-style:none}
.gl-nav-main {display:flex}
.gl-nav-main > li {position:relative}
.gl-nav-main > li > a {display:block;padding:0 16px;border-bottom:3px solid transparent;color:var(--text-muted);font-size:14px;font-weight:700;line-height:45px}
.gl-nav-main > li > a:hover {color:var(--text-strong);text-decoration:none}
.gl-nav-main > li.is-on > a {border-color:var(--primary);color:var(--primary-text)}
.gl-nav-sub {display:none;position:absolute;top:100%;left:0;z-index:100;min-width:160px;padding:6px 0 !important;border:1px solid var(--border);border-radius:0 0 8px 8px;background:var(--surface);box-shadow:var(--shadow)}
.gl-nav-main > li:hover .gl-nav-sub, .gl-nav-main > li:focus-within .gl-nav-sub {display:block}
.gl-nav-sub a {display:block;padding:8px 16px;color:var(--text);font-size:13px;white-space:nowrap}
.gl-nav-sub a:hover {background:var(--tint);color:var(--primary-text);text-decoration:none}
.gl-nav-util {display:flex;align-items:center;gap:16px;font-size:12px}
.gl-nav-util a {color:var(--text-muted)}
.gl-nav-util a:hover {color:var(--text-strong)}
.gl-nav-util b {color:var(--primary-text)}

/* ---------- PC 메인 ---------- */
.gl-home #container {float:none;width:1200px;margin:18px auto 30px}

/* ---------- 모바일 ---------- */
#hd #logo .gl-logo {font-size:19px;line-height:40px}
.gl-mo .gl-chips {border-bottom:1px solid var(--border)}

#gl_tabbar {position:fixed;right:0;bottom:0;left:0;z-index:95;display:grid;grid-template-columns:repeat(4,1fr);height:56px;border-top:1px solid var(--border);background:var(--surface);padding-bottom:env(safe-area-inset-bottom)}
#gl_tabbar a {display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;color:var(--text-faint);font-size:10px;font-weight:700}
#gl_tabbar a i {font-size:18px}
#gl_tabbar a.is-on {color:var(--primary-text)}
#gl_tabbar ~ #top_btn, #ft #top_btn {bottom:68px}

/* ==========================================================================
   부드러운 형태 : 둥근 모서리, 옅은 그림자, 넉넉한 여백
   - 모서리 크기는 아래 세 변수로 한 번에 조절합니다.
   ========================================================================== */
:root {--r-lg:20px; --r-md:14px; --r-sm:10px}
:root, :root[data-theme="light"] {--soft-shadow:0 2px 14px rgba(15,23,34,.06); --card-line:transparent}
:root[data-theme="dark"] {--soft-shadow:0 2px 14px rgba(0,0,0,.35); --card-line:rgba(255,255,255,.06)}

body, input, button, select, textarea {font-family:Pretendard, -apple-system, BlinkMacSystemFont, "Apple SD Gothic Neo", "Malgun Gothic", sans-serif;letter-spacing:-.01em}

/* 카드 : 선 대신 그림자 */
.gl-card {border:1px solid var(--card-line);border-radius:var(--r-lg);box-shadow:var(--soft-shadow)}
.gl-card-hd {padding:18px 20px 12px;border-bottom:0;font-size:15px}
.gl-posts {padding:0 8px 8px}
.gl-posts li {padding:9px 12px;border-bottom:0;border-radius:var(--r-sm)}
.gl-posts li:hover {background:var(--surface-2)}
.gl-posts li.gl-empty:hover {background:none}
.gl-write {margin:0 8px 8px;padding:8px;border-top:0;border-radius:var(--r-md);background:var(--surface-2)}
.gl-write-in {height:34px;border:0;border-radius:17px;background:var(--surface);padding:0 14px;line-height:34px}
.gl-btn {height:34px;padding:0 16px;border-radius:17px;line-height:34px}
.gl-new {border-radius:50%}
.gl-live {height:20px;border-radius:10px;padding:0 8px 0 16px;line-height:20px}
.gl-live:before {left:7px;top:7px;width:6px;height:6px}

/* 플레이어, 경기 목록 */
.gl-chips {gap:6px;padding:0 18px 12px;border-bottom:0}
.gl-chips button {height:30px;padding:0 14px;border:0;border-radius:15px;background:var(--surface-3)}
.gl-crest {width:22px;height:22px;line-height:22px}

/* 헤더, 메뉴 */
.gl-hd-top .gl-in {height:68px}
.gl-search {height:40px;border-radius:20px}
.gl-search input[type="text"] {height:40px;padding-left:18px}
.gl-search button {height:40px}
.gl-nav {border-bottom:0;box-shadow:var(--soft-shadow);position:relative;z-index:30}
.gl-nav .gl-in {align-items:center;height:56px}
.gl-nav-main {gap:4px}
.gl-nav-main > li > a {padding:0 16px;border-bottom:0;border-radius:18px;line-height:36px}
.gl-nav-main > li > a:hover {background:var(--surface-2)}
.gl-nav-main > li.is-on > a {background:var(--primary-soft);color:var(--primary-text)}
.gl-nav-sub {top:calc(100% + 4px);border:1px solid var(--card-line);border-radius:var(--r-md);box-shadow:0 8px 24px rgba(0,0,0,.18);padding:6px !important}
.gl-nav-sub a {border-radius:var(--r-sm)}

/* 메인 여백 */
.gl-home #container {margin:22px auto 36px}

/* 기존 그누보드 요소도 같은 결로 */
body .ol {border:1px solid var(--card-line);border-radius:var(--r-lg);box-shadow:var(--soft-shadow);background:var(--surface);overflow:hidden}
body #ol_id, body #ol_pw {border-radius:var(--r-sm)}
body #ol_submit {border-radius:var(--r-sm)}
body #ol_svc a {border-radius:var(--r-sm)}
body .btn_submit, body .btn_cancel, body .btn_close, body .btn_frmline, body a.btn_b02, body .btn_b02, body a.btn_b03, body .btn_b03, body .btn_admin, body a.btn, body .btn {border-radius:var(--r-sm)}
body .frm_input, body .tbl_frm01 textarea, body .form_01 textarea, body .wr_content textarea, body select {border-radius:var(--r-sm)}
body .pg_page, body .pg_current {border-radius:50%;border-color:transparent;min-width:32px;height:32px;line-height:30px}
body #bo_list .tbl_head01, body #bo_gall #gall_ul, body #bo_v, body .tbl_head01.tbl_wrap {border-radius:var(--r-md)}
body #bo_list .tbl_wrap table {border-radius:var(--r-md);overflow:hidden;box-shadow:var(--soft-shadow)}
body .btn_bo_user li .btn, body .btn_bo_user li button {border-radius:50%}
#top_btn {border:0 !important;border-radius:50%;box-shadow:var(--soft-shadow);background:var(--surface)}
#container_title {font-size:18px}

/* 모바일 */
.gl-mo .gl-chips {border-bottom:0}
#gl_tabbar {border-top:0;border-radius:20px 20px 0 0;box-shadow:0 -4px 20px rgba(0,0,0,.12)}

/* ==========================================================================
   게시판 (목록, 글 보기) : 카드 안쪽 여백과 둥근 형태
   ========================================================================== */
#container_wr #container_title {margin-bottom:14px}

/* 글 보기 */
#container_wr #bo_v {padding:30px 34px 26px;border:1px solid var(--card-line);border-radius:var(--r-lg);box-shadow:var(--soft-shadow)}
#container_wr #bo_v_title .bo_v_tit {margin:0;font-size:24px;line-height:1.4;color:var(--text-strong)}
#container_wr #bo_v_title .bo_v_cate {margin-bottom:8px;border-radius:12px;line-height:24px}
#container_wr #bo_v_info .profile_info {margin:18px 0 16px}
#container_wr #bo_v_info .profile_info .pf_img img {width:44px;height:44px}
#container_wr #bo_v_con {margin:24px 0 36px;font-size:15px;line-height:1.8;color:var(--text)}
#container_wr #bo_v_share {margin-top:20px}
#container_wr #bo_v_sns li {width:auto;margin-right:6px}
#container_wr #bo_v_sns li a {height:34px;padding:0 16px;border-radius:17px;line-height:34px;font-size:12px}
#container_wr #bo_v_sns li img {height:14px;width:auto}
#container_wr .bo_v_nb li {border:0;border-radius:var(--r-sm);padding:12px 14px}
#container_wr .bo_v_nb li:last-child {border:0}
#container_wr #bo_v_file li, #container_wr #bo_v_link li {border-radius:var(--r-md)}
#container_wr .cmt_btn {margin-top:10px;background:transparent}
#container_wr .cmt_btn span.cmt_more {background:none;width:auto;height:auto;margin-top:0;color:var(--text-faint);font:normal 14px/1 FontAwesome}
#container_wr .cmt_btn span.cmt_more:before {content:"\f107"}
#container_wr .cmt_btn_op span.cmt_more:before {content:"\f106"}
#container_wr #bo_vc_empty {padding:50px 0 !important}
#container_wr .bo_vc_w textarea, #container_wr #wr_content {border-radius:var(--r-md)}

/* 목록 */
#container_wr #bo_list .tbl_wrap table {border-top:0;border-bottom:0}
#container_wr #bo_list .tbl_head01 thead th {padding:14px 0;height:auto;color:var(--text-muted);font-size:12px;background:var(--surface-2);border-bottom:0}
#container_wr #bo_list .tbl_head01 td {height:54px;border-top:0;font-size:13px}
#container_wr #bo_list .tbl_head01 tbody tr:last-child td {border-bottom:0}
#container_wr #bo_list .tbl_head01 th:first-child, #container_wr #bo_list .tbl_head01 td:first-child {padding-left:22px}
#container_wr #bo_list .tbl_head01 th:last-child, #container_wr #bo_list .tbl_head01 td:last-child {padding-right:22px}
#container_wr #bo_list tbody tr, #container_wr #bo_list tbody tr:hover {border-left:0}
#container_wr #bo_list .td_subject {text-align:left}
#container_wr .bo_current {display:inline-block;padding:1px 8px;border-radius:10px;background:var(--primary-soft);color:var(--primary-text);font-size:11px;font-weight:700}
#container_wr #bo_list .bo_tit .new_icon {border-radius:50%;background:var(--primary);color:var(--on-accent)}
#container_wr #bo_btn_top {margin:4px 0 12px}
#container_wr .bo_current {white-space:nowrap}
#container_wr #bo_list .td_num2 {width:76px}
#container_wr .btn_bo_user li {background:transparent}
#container_wr .btn_bo_user li .btn_b01 {border-radius:50%;background:var(--surface);box-shadow:var(--soft-shadow)}

/* ==========================================================================
   나머지 화면 : 입력창, 검색 영역, 글쓰기, 회원, 검색결과, 갤러리, FAQ
   ========================================================================== */
body .frm_input {padding-left:14px;padding-right:14px}
body select {padding-left:10px}

/* 검색 영역 (새글, 전체검색, FAQ) */
#container_wr #new_sch, #container_wr #sch_res_detail, #container_wr #faq_sch {margin-bottom:18px;padding:26px;border:1px solid var(--card-line);border-radius:var(--r-lg);background:var(--surface);box-shadow:var(--soft-shadow)}
#container_wr #new_sch select, #container_wr #sch_res_detail select, #container_wr #new_sch .frm_input, #container_wr #sch_res_detail .frm_input, #container_wr #faq_sch .frm_input {height:44px;border-radius:22px;background:var(--surface-2);border-color:transparent}
#container_wr #new_sch .btn_submit, #container_wr #sch_res_detail .btn_submit, #container_wr #faq_sch .btn_submit {height:44px;border-radius:22px;background:var(--primary)}
#container_wr .switch_field label {border-color:var(--border-soft)}
#container_wr .switch_field label:first-of-type {border-radius:16px 0 0 16px}
#container_wr .switch_field label:last-of-type {border-radius:0 16px 16px 0}

/* 분류 칩 */
#container_wr #bo_cate a, #container_wr #sch_res_board a {border:0;background:var(--surface);box-shadow:var(--soft-shadow);color:var(--text-muted)}
#container_wr #bo_cate #bo_cate_on, #container_wr #sch_res_board .sch_on {border:0;background:var(--primary);box-shadow:none;color:var(--on-accent)}

/* 표 (새글 등) */
#container_wr .tbl_head01.tbl_wrap table {border-top:0;border-bottom:0;border-radius:var(--r-md);overflow:hidden;box-shadow:var(--soft-shadow)}
#container_wr .tbl_head01 thead th {padding:14px 0;height:auto;border-bottom:0;background:var(--surface-2);color:var(--text-muted);font-size:12px}
#container_wr .tbl_head01 td {border-top:0}
#container_wr .tbl_head01 tbody tr:last-child td {border-bottom:0}
#container_wr .tbl_head01 th:first-child, #container_wr .tbl_head01 td:first-child {padding-left:18px}
#container_wr .tbl_head01 th:last-child, #container_wr .tbl_head01 td:last-child {padding-right:18px}
#container_wr #fnewlist .td_group a, #container_wr #fnewlist .td_board a {padding:3px 10px;border-radius:12px;background:var(--surface-3);color:var(--text-muted)}
#container_wr .empty_table, #container_wr .empty_list {color:var(--text-faint)}

/* 검색 결과 */
#container_wr #sch_res_ov {height:auto;padding:16px 22px;border:0;border-radius:var(--r-md);line-height:1.6}
#container_wr #sch_res_ov li {border-right-color:var(--border)}
#container_wr .sch_res_list ul {border-top:0}
#container_wr .sch_res_list li {margin-bottom:10px;border:1px solid var(--card-line);border-radius:var(--r-md);box-shadow:var(--soft-shadow);overflow:hidden}
#container_wr .sch_word {padding:0 4px;border-radius:4px;background:var(--primary-soft);color:var(--primary-text)}

/* 글쓰기 */
#container_wr #bo_w {padding:28px 32px;border:1px solid var(--card-line);border-radius:var(--r-lg);background:var(--surface);box-shadow:var(--soft-shadow)}
#container_wr #bo_w .frm_input, #container_wr #bo_w textarea, #container_wr #bo_w select, #container_wr #bo_w .bo_w_flie .file_wr {border-color:var(--border-soft);background:var(--surface-2)}
#container_wr #bo_w .frm_input:focus, #container_wr #bo_w textarea:focus {border-color:var(--primary);background:var(--surface);outline:0}
#container_wr #bo_w textarea {border-radius:var(--r-md);padding:14px}
#container_wr #bo_w .bo_w_link .frm_input {padding-left:50px}
#container_wr #bo_w .bo_w_flie .file_wr {border-radius:var(--r-sm)}
#container_wr #bo_w .bo_w_link label, #container_wr #bo_w .bo_w_flie .lb_icon {background:transparent}
#container_wr #bo_w .btn_confirm {margin-top:20px}
#container_wr #bo_w .btn_submit, #container_wr #bo_w .btn_cancel {height:42px;padding:0 24px;border-radius:21px;line-height:42px;font-size:14px}
#container_wr #bo_w .btn_cancel {background:var(--surface-3);color:var(--text)}
body #captcha #captcha_img {border-color:var(--border);border-radius:var(--r-sm)}
body #captcha #captcha_key {border-radius:var(--r-sm)}
body #captcha #captcha_mp3, body #captcha #captcha_reload {border-radius:var(--r-sm);overflow:hidden}

/* 회원 : 로그인, 가입 */
body .mbskin .mbskin_box {border:1px solid var(--card-line);border-radius:var(--r-lg);box-shadow:var(--soft-shadow);overflow:hidden}
body #mb_login {margin-top:80px}
body #mb_login #login_fs .btn_submit {border-radius:var(--r-sm)}
body #login_password_lost {border:0;border-radius:12px;background:var(--surface-3);padding:2px 10px}
body #fregister p {height:auto;padding:14px 20px;border-radius:var(--r-md);background:var(--primary-soft);color:var(--primary-text);line-height:1.5}
body #fregister p:before {display:none}
body #fregister section, body #fregister_chkall, body .register_form_inner, body #reg_result {border:1px solid var(--card-line);border-radius:var(--r-lg);box-shadow:var(--soft-shadow);overflow:hidden;background:var(--surface)}
body #fregister h2, body #register_form h2 {border-bottom-color:var(--border-soft)}
body .fregister_terms table th, body .fregister_terms table td {border-color:var(--border-soft)}
body #fregister .btn_confirm .btn_close, body #fregister .btn_confirm .btn_submit, body #fregisterform .btn_confirm .btn_close, body #fregisterform .btn_confirm .btn_submit {border-radius:var(--r-md)}

/* 갤러리, FAQ, 접속자, 내용 */
#container_wr #bo_gall .gall_box {border:1px solid var(--card-line);border-radius:var(--r-md);background:var(--surface);box-shadow:var(--soft-shadow);overflow:hidden}
#container_wr #bo_gall .gall_text_href {padding:0 12px}
#container_wr #bo_gall li.empty_list, #container_wr #faq_wrap .empty_list, #container_wr .faq_admin + .empty_list {border-radius:var(--r-lg);background:var(--surface);box-shadow:var(--soft-shadow)}
#container_wr #faq_wrap ol {border-radius:var(--r-md);overflow:hidden;box-shadow:var(--soft-shadow)}
#container_wr #faq_wrap li, #container_wr #faq_wrap li:first-child {border-color:var(--border-soft)}
#container_wr #current_connect ul {padding:6px 22px;border-radius:var(--r-lg);background:var(--surface);box-shadow:var(--soft-shadow)}
#container_wr #current_connect li, #container_wr #current_connect li:first-child {border-color:var(--border-soft)}
#container_wr #current_connect li:first-child {border-top:0}
#container_wr #current_connect li:last-child {border-bottom:0}
#container_wr #ctt {margin:0;padding:30px 34px;border:1px solid var(--card-line);border-radius:var(--r-lg);box-shadow:var(--soft-shadow);font-size:14px;line-height:1.8}

/* 푸터 공지 새글 표시 */
#ft .notice li .new_icon {border-radius:50%;background:var(--primary);color:var(--on-accent)}
#container_wr #sch_res_ov h2 {color:var(--text-strong)}
#container_wr #sch_res_ov h2 strong {color:var(--primary-text)}
#container_wr .switch_field label {box-shadow:none;background:var(--surface-3);color:var(--text-muted)}
#container_wr .switch_field input:checked + label {background:var(--primary);color:var(--on-accent)}

/* ==========================================================================
   모바일 하위 화면 (PC는 폭 1200px 고정이라 이 조건에 걸리지 않습니다)
   ========================================================================== */
@media (max-width:767px) {
    body #visit {margin:14px 12px;border:1px solid var(--card-line);border-radius:var(--r-lg);background:var(--surface);box-shadow:var(--soft-shadow);overflow:hidden}
    body #container_title {box-shadow:none}

    /* 게시판 목록, 글 보기 */
    body #bo_list ul {margin:10px 12px 0;border-radius:var(--r-lg);overflow:hidden;box-shadow:var(--soft-shadow)}
    body #bo_list li {border-color:var(--border-soft)}
    body #bo_list_total {margin:12px;border-radius:var(--r-md);background:transparent}
    body #bo_sch {margin:0 12px 14px;border:0;border-radius:22px;background:var(--surface);box-shadow:var(--soft-shadow);overflow:hidden}
    body #bo_sch select {height:44px;border-right-color:var(--border-soft);background:transparent}
    body #bo_sch .sch_input, body #bo_sch .sch_btn {height:44px}
    body #bo_v {margin:10px 12px;padding:22px 18px 4px;border-radius:var(--r-lg);box-shadow:var(--soft-shadow)}
    body #bo_vc {margin:0 12px 12px;border-radius:var(--r-lg);background:var(--surface);box-shadow:var(--soft-shadow)}
    body #bo_vc article .comment_inner {border-bottom-color:var(--border-soft);border-radius:var(--r-md);background:var(--surface-2)}
    body .bo_vc_w textarea {border-radius:var(--r-md)}

    /* 글쓰기 */
    body #bo_w {margin:10px 12px;padding:16px;border-radius:var(--r-lg);background:var(--surface);box-shadow:var(--soft-shadow)}
    body #bo_w .frm_input, body #bo_w textarea, body #bo_w select {border-color:var(--border-soft);background:var(--surface-2)}
    body #bo_w textarea {border-radius:var(--r-md)}
    body #bo_w .bo_w_flie .file_wr, body #bo_w .file_wr {border-color:var(--border-soft);border-radius:var(--r-sm);background:var(--surface-2)}
    body #bo_w .btn_submit, body #bo_w .btn_cancel {border-radius:22px}

    /* 회원 */
    body #fregister section, body #fregister_chkall, body .register_form_inner, body #reg_result {margin-right:12px;margin-left:12px}
    body #fregister p {margin:12px}
    body #fregister .btn_confirm, body #fregisterform .btn_confirm {padding:0 12px}
    body #fregister .btn_confirm .btn_submit {border-radius:22px}
    body #fregister textarea {border-radius:var(--r-sm)}

    /* 검색, 새글 */
    body #new_sch, body #sch_res_detail, body #faq_sch {margin:10px 12px;padding:16px;border-radius:var(--r-lg);background:var(--surface);box-shadow:var(--soft-shadow)}
    body #new_sch .btn_submit, body #sch_res_detail .btn_submit, body #faq_sch .btn_submit {border-radius:22px;background:var(--primary)}
}
@media (max-width:767px) {
    body #bo_v {width:auto !important;box-sizing:border-box;overflow:hidden} /* 스킨이 인라인으로 width:100% 를 넣음 */
    body #bo_v #bo_vc {margin:0 0 14px;box-shadow:none;background:var(--surface-2)}
    body #bo_v #bo_vc article .comment_inner {background:var(--surface)}
}

/* ==========================================================================
   스포츠 정보 (/sports/) : 경기일정, 외부 제공 화면
   ========================================================================== */
.gl-sp {display:grid;gap:16px}
.gl-sp-nav {display:flex;flex-wrap:wrap;gap:6px;margin:0;padding:0;list-style:none}
.gl-sp-nav a {display:block;height:36px;padding:0 16px;border-radius:18px;background:var(--surface);box-shadow:var(--soft-shadow);color:var(--text-muted);font-size:13px;font-weight:700;line-height:36px}
.gl-sp-nav a:hover {color:var(--text-strong);text-decoration:none}
.gl-sp-nav a.is-on {background:var(--primary);color:var(--on-accent);box-shadow:none}
.gl-sp .gl-chips {padding:0;overflow:visible;flex-wrap:wrap}
.gl-sp .gl-chips a {height:30px;padding:0 14px;border-radius:15px;background:var(--surface-3);color:var(--text-muted);font-size:12px;line-height:30px}
.gl-sp .gl-chips a:hover {text-decoration:none}
.gl-sp .gl-chips a.is-on {background:var(--primary);color:var(--on-accent);font-weight:700}

.gl-sch-hd {display:grid;gap:16px;padding:22px 24px}
.gl-sch-title h3 {margin:0;font-size:20px;color:var(--text-strong)}
.gl-sch-title h3 b {color:var(--primary-text)}
.gl-sch-title h3 span {margin-left:8px;font-size:13px;font-weight:400;color:var(--text-muted)}
.gl-sch-title p {margin:4px 0 0;font-size:12px;color:var(--text-faint)}
.gl-days {display:grid;grid-template-columns:repeat(7,1fr);gap:8px;margin:0;padding:0;list-style:none}
.gl-days a {display:block;padding:8px 0;border-radius:var(--r-md);background:var(--surface-2);color:var(--text-muted);font-size:12px;text-align:center}
.gl-days a:hover {background:var(--surface-3);text-decoration:none}
.gl-days a b {display:block;font-size:16px;color:var(--text-strong)}
.gl-days a.is-on {background:var(--primary);color:var(--on-accent)}
.gl-days a.is-on b {color:var(--on-accent)}

.gl-lg[hidden] {display:none}
.gl-lg .gl-card-hd {font-size:14px}
.gl-lg-sport {display:inline-block;margin-right:8px;padding:2px 9px;border-radius:10px;background:var(--surface-3);color:var(--text-muted);font-size:11px;font-style:normal;font-weight:600;vertical-align:1px}
.gl-games {margin:0;padding:0 8px 8px;list-style:none}
.gl-games li {border-radius:var(--r-md)}
.gl-games li > a {display:grid;grid-template-columns:70px 1fr 84px 1fr 170px;align-items:center;gap:12px;padding:10px 14px;color:inherit}
.gl-games li > a:hover {text-decoration:none}
.gl-games li:hover {background:var(--surface-2)}
.gl-games li.is-live {background:var(--primary-soft)}
.gl-g-time {text-align:center;line-height:1.3}
.gl-g-time b {display:block;font-size:14px;color:var(--text-strong)}
.gl-g-time small {display:block;font-size:11px;color:var(--text-faint)}
.gl-end {display:inline-block;padding:1px 8px;border-radius:9px;background:var(--surface-3);color:var(--text-muted);font-size:11px;font-style:normal;font-weight:600}
.gl-g-home .gl-team {flex-direction:row-reverse}
.gl-g-home .gl-team, .gl-g-away .gl-team {font-size:14px}
.gl-g-score {color:var(--text-strong);font-size:17px;font-weight:800;text-align:center;white-space:nowrap}
.gl-g-score.is-vs {color:var(--text-faint);font-size:12px;font-weight:600}
.gl-games li.is-finished .gl-team {color:var(--text)}
.gl-g-place {overflow:hidden;color:var(--text-faint);font-size:12px;text-align:right;white-space:nowrap;text-overflow:ellipsis}

.gl-embed-hd {display:grid;gap:12px;padding:18px 22px}
.gl-embed-hd p {margin:0;font-size:13px;color:var(--text-muted)}
.gl-embed iframe {display:block;width:100%;height:1500px;border:0;background:#fff}

/* 스포츠 정보 페이지는 본문을 넓게 (우측 로그인 박스 없음) */
.gl-wide #container {float:none;width:1200px}

@media (max-width:767px) {
    .gl-sp {padding:10px 12px;gap:12px}
    .gl-sp-nav {flex-wrap:nowrap;overflow-x:auto;margin:0 -12px;padding:2px 12px}
    .gl-sp-nav li {flex:none}
    .gl-sch-hd {padding:18px 16px}
    .gl-sch-title h3 {font-size:17px}
    .gl-days {gap:4px}
    .gl-games {padding:0 4px 6px}
    .gl-games li > a {grid-template-columns:50px 1fr 54px 1fr;gap:6px;padding:10px 8px}
    .gl-g-place {display:none}
    .gl-g-home .gl-team, .gl-g-away .gl-team {font-size:13px;gap:6px}
    .gl-g-score {font-size:14px}
    .gl-embed iframe {height:1100px}
}

/* 리그 순위 */
.gl-rk table {width:100%;border-collapse:collapse;font-size:13px}
.gl-rk th {padding:12px 6px;background:var(--surface-2);color:var(--text-muted);font-size:12px;font-weight:600;text-align:center}
.gl-rk td {padding:9px 6px;border-top:1px solid var(--border-soft);color:var(--text);text-align:center}
.gl-rk tbody tr:hover td {background:var(--surface-2)}
.gl-rk th:first-child, .gl-rk td:first-child {width:64px;padding-left:16px}
.gl-rk .gl-rk-team {text-align:left}
.gl-rk td strong {color:var(--text-strong)}
.gl-rk-no {display:inline-block;width:24px;height:24px;border-radius:50%;color:var(--text-muted);line-height:24px}
.gl-rk-no.is-top {background:var(--primary-soft);color:var(--primary-text)}
.gl-rk .gl-rk-form {width:150px;padding-right:16px;white-space:nowrap}
.gl-rk-form i {display:inline-block;width:20px;height:20px;margin-left:3px;border-radius:50%;color:#fff;font-size:10px;font-style:normal;font-weight:700;line-height:20px}
.gl-rk-form i.is-w {background:#1f9d62}
.gl-rk-form i.is-l {background:var(--live)}
.gl-rk-form i.is-d {background:var(--neutral-strong)}
@media (max-width:767px) {
    .gl-rk table {font-size:12px}
    .gl-rk th:first-child, .gl-rk td:first-child {width:36px;padding-left:8px}
    .gl-rk .gl-rk-form {display:none}
    .gl-rk th, .gl-rk td {padding-right:4px;padding-left:4px}
}

/* ==========================================================================
   경기 상세, 승부 예측, 응원 댓글, 선수 순위, 하이라이트, 편성, 내 팀
   ========================================================================== */
.gl-btn.is-ghost {background:var(--surface-3);color:var(--text)}
.gl-btn.is-ghost:hover {background:var(--tint-strong);color:var(--text-strong)}
.gl-pad {padding:4px 20px 20px}
.gl-note {margin:12px 2px 0;font-size:12px;color:var(--text-muted)}
.gl-note a, .gl-embed-hd p a, .gl-empty a {color:var(--primary-text);font-weight:700}
.gl-cnt {color:var(--primary-text)}

/* 내 팀 */
.gl-fav {margin-left:2px;padding:2px 4px;border:0;background:none;color:var(--border);font-size:14px;cursor:pointer}
.gl-fav:hover {color:var(--text-faint)}
.gl-fav.is-on {color:#f5b301}
.gl-team.is-fav > span:after {content:"\f005";margin-left:5px;color:#f5b301;font:normal 11px/1 FontAwesome}
.gl-team.is-fav .gl-fav + span:after, .gl-team:has(.gl-fav) > span:after {content:none}
.gl-favbox .gl-card-hd .fa {color:#f5b301}

/* 경기 상세 */
.gl-gd {padding:26px 28px}
.gl-gd-meta {margin:0;color:var(--text-muted);font-size:13px;text-align:center}
.gl-gd-score {display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:20px;margin:22px 0}
.gl-gd-team {text-align:center}
.gl-gd-team .gl-team {display:inline-flex;flex-direction:column;gap:10px;font-size:20px;line-height:1.3}
.gl-gd-team .gl-crest {width:64px;height:64px;font-size:24px;line-height:64px}
.gl-gd-team .gl-fav {position:absolute;margin:-6px 0 0 76px;font-size:18px}
.gl-gd-team .gl-team {position:relative}
.gl-gd-team small {display:block;margin-top:4px;color:var(--text-faint);font-size:12px}
.gl-gd-mid {min-width:180px;text-align:center}
.gl-gd-mid b {display:block;margin:6px 0;color:var(--text-strong);font-size:46px;font-weight:800;line-height:1.1;white-space:nowrap}
.gl-gd-mid b.is-vs {color:var(--text-faint);font-size:26px}
.gl-gd-mid span {color:var(--text-muted);font-size:13px}
.gl-gd-info {display:flex;flex-wrap:wrap;justify-content:center;gap:10px;margin:0}
.gl-gd-info div {padding:10px 18px;border-radius:var(--r-md);background:var(--surface-2);text-align:center}
.gl-gd-info dt {color:var(--text-faint);font-size:11px}
.gl-gd-info dd {margin:2px 0 0;color:var(--text-strong);font-size:13px;font-weight:600}
.gl-gd-info dd i {color:var(--text-faint);font-style:normal;font-weight:400}
.gl-gd-links {display:flex;flex-wrap:wrap;justify-content:center;gap:8px;margin-top:20px}

/* 승부 예측 */
.gl-stat4 {display:grid;grid-template-columns:repeat(4,1fr);gap:8px;padding:0 16px 12px}
.gl-stat4 div {padding:10px 0;border-radius:var(--r-sm);background:var(--surface-2);color:var(--text-muted);font-size:11px;text-align:center}
.gl-stat4 b {display:block;color:var(--text-strong);font-size:16px}

/* 응원 댓글 */
.gl-cheer-form {display:flex;gap:8px;padding:8px;border-radius:var(--r-md);background:var(--surface-2)}
.gl-cheer-form select {flex:none;width:130px;height:40px;border:0;border-radius:20px;background:var(--surface)}
.gl-cheer-form input[type="text"] {flex:1;min-width:0;height:40px;padding:0 16px;border:0;border-radius:20px;background:var(--surface);font-size:13px;outline:0}
.gl-cheer-form .gl-btn {height:40px;border-radius:20px;line-height:40px}
.gl-cheers {margin:14px 0 0;padding:0;list-style:none}
.gl-cheers li {padding:12px 14px;border-left:3px solid var(--border);border-radius:0 var(--r-sm) var(--r-sm) 0;background:var(--surface-2)}
.gl-cheers li + li {margin-top:8px}
.gl-cheers li.is-home {border-left-color:var(--primary)}
.gl-cheers li.is-away {border-left-color:var(--accent)}
.gl-cheers li.gl-empty {border:0;background:none}
.gl-cheer-hd {display:flex;align-items:center;gap:8px;font-size:12px}
.gl-cheer-hd b {color:var(--text-strong);font-size:13px}
.gl-cheer-hd em {padding:1px 8px;border-radius:9px;background:var(--surface-3);color:var(--text-muted);font-size:11px;font-style:normal}
.gl-cheer-hd span {margin-left:auto;color:var(--text-faint)}
.gl-cheer-hd button {border:0;background:none;color:var(--text-faint);font-size:12px;cursor:pointer}
.gl-cheers p {margin:6px 0 0;color:var(--text);font-size:14px;line-height:1.6;word-break:break-all}

/* 선수 순위 */
.gl-chips-sub a {background:transparent !important;border:1px solid var(--border)}
.gl-chips-sub a.is-on {border-color:var(--text-strong);color:var(--text-strong) !important}
.gl-rk-val {color:var(--primary-text) !important;font-size:15px}

/* 하이라이트 */
.gl-sp .gl-chips button {flex:none}
.gl-hl {display:grid;grid-template-columns:repeat(4,1fr);gap:18px 14px;margin:0;padding:0;list-style:none}
.gl-hl li[hidden] {display:none}
.gl-hl-item {display:block;width:100%;padding:0;border:0;background:none;text-align:left;cursor:pointer}
.gl-hl-thumb {position:relative;display:block;aspect-ratio:16/9;border-radius:var(--r-md);background:var(--surface-3);overflow:hidden;box-shadow:var(--soft-shadow)}
.gl-hl-thumb img {width:100%;height:100%;object-fit:cover;transition:transform .2s}
.gl-hl-item:hover .gl-hl-thumb img {transform:scale(1.04)}
.gl-hl-thumb i {position:absolute;top:50%;left:50%;width:44px;height:44px;margin:-22px 0 0 -22px;border-radius:50%;background:rgba(0,0,0,.55)}
.gl-hl-thumb i:after {content:"";position:absolute;top:13px;left:17px;border:9px solid transparent;border-right:0;border-left:14px solid #fff}
.gl-hl-item b {display:-webkit-box;margin-top:8px;overflow:hidden;color:var(--text-strong);font-size:13px;line-height:1.45;-webkit-line-clamp:2;-webkit-box-orient:vertical}
.gl-hl-item small {display:block;margin-top:3px;color:var(--text-faint);font-size:12px}
.gl-modal {position:fixed;top:0;right:0;bottom:0;left:0;z-index:1000;display:flex;align-items:center;justify-content:center;padding:20px;background:rgba(0,0,0,.75)}
.gl-modal[hidden] {display:none}
.gl-modal-box {width:100%;max-width:960px;border-radius:var(--r-lg);background:var(--surface);overflow:hidden}
.gl-modal-hd {display:flex;align-items:center;gap:12px;padding:14px 18px}
.gl-modal-hd b {flex:1;overflow:hidden;color:var(--text-strong);font-size:14px;white-space:nowrap;text-overflow:ellipsis}
.gl-modal-hd button {width:32px;height:32px;border:0;border-radius:50%;background:var(--surface-3);color:var(--text);cursor:pointer}
.gl-modal-video {aspect-ratio:16/9;background:#000}
.gl-modal-video iframe {width:100%;height:100%;border:0}

/* 시간대별 편성 */
.gl-tv {display:grid;grid-template-columns:90px 1fr;align-items:start}
.gl-tv-hour {padding:18px 0 0 22px}
.gl-tv-hour b {display:block;color:var(--text-strong);font-size:18px}
.gl-tv-hour em {display:inline-block;margin-top:4px;padding:1px 8px;border-radius:9px;background:var(--primary);color:var(--on-accent);font-size:11px;font-style:normal;font-weight:700}
.gl-tv.is-now {box-shadow:0 0 0 2px var(--primary)}
.gl-tv-list {margin:0;padding:8px;list-style:none}
.gl-tv-list a {display:grid;grid-template-columns:54px 190px 1fr auto 64px;align-items:center;gap:12px;padding:9px 12px;border-radius:var(--r-sm);color:var(--text);font-size:13px}
.gl-tv-list a:hover {background:var(--surface-2);text-decoration:none}
.gl-tv-time {color:var(--text-strong);font-weight:700}
.gl-tv-lg {overflow:hidden;color:var(--text-muted);font-size:12px;white-space:nowrap;text-overflow:ellipsis}
.gl-tv-match {color:var(--text-strong);font-weight:600}
.gl-tv-match i {margin:0 6px;color:var(--text-faint);font-style:normal;font-weight:400}
.gl-tv-ch {color:var(--accent);font-size:12px;font-weight:600}
.gl-tv-st {text-align:right}

@media (max-width:767px) {
    .gl-pad {padding:2px 14px 16px}
    .gl-gd {padding:20px 14px}
    .gl-gd-score {gap:8px}
    .gl-gd-team .gl-team {font-size:15px}
    .gl-gd-team .gl-crest {width:48px;height:48px;font-size:18px;line-height:48px}
    .gl-gd-team .gl-fav {margin-left:58px}
    .gl-gd-mid {min-width:0}
    .gl-gd-mid b {font-size:30px}
    .gl-cheer-form {flex-wrap:wrap}
    .gl-cheer-form select {width:100%}
    .gl-hl {grid-template-columns:repeat(2,1fr);gap:14px 10px}
    .gl-tv {grid-template-columns:1fr}
    .gl-tv-hour {display:flex;align-items:center;gap:8px;padding:14px 16px 0}
    .gl-tv-hour em {margin:0}
    .gl-tv-list a {grid-template-columns:44px 1fr 54px;gap:8px}
    .gl-tv-lg, .gl-tv-ch {display:none}
}

/* 예측 마감 */

/* ==========================================================================
   이용가이드 (/guide.php)
   ========================================================================== */
html {scroll-behavior:smooth}
.gl-guide-hero {padding:28px 28px 24px}
.gl-guide-hero h3 {margin:0;font-size:24px;color:var(--text-strong)}
.gl-guide-hero > p {margin:6px 0 18px;color:var(--text-muted);font-size:14px}
.gl-guide-hero .gl-sp-nav a {background:var(--surface-3);box-shadow:none}
.gl-guide-hero .gl-sp-nav a:hover {background:var(--primary);color:var(--on-accent)}
.gl-guide-sec {padding:26px 28px;scroll-margin-top:16px}
.gl-guide-sec > h3 {display:flex;align-items:center;gap:10px;margin:0 0 16px;font-size:19px;color:var(--text-strong)}
.gl-guide-sec > h3 em {flex:none;width:30px;height:30px;border-radius:50%;background:var(--primary);color:var(--on-accent);font-size:14px;font-style:normal;font-weight:800;line-height:30px;text-align:center}
.gl-guide a {color:var(--primary-text);font-weight:600}
.gl-guide strong {color:var(--text-strong)}
.gl-lead {margin:0 0 14px;color:var(--text);font-size:14px;line-height:1.7}
.gl-steps {margin:0;padding:0;list-style:none;counter-reset:step}
.gl-steps li {position:relative;display:grid;grid-template-columns:150px 1fr;gap:14px;padding:13px 16px 13px 46px;border-radius:var(--r-md);font-size:14px;line-height:1.7;counter-increment:step}
.gl-steps li:nth-child(odd) {background:var(--surface-2)}
.gl-steps li:before {content:counter(step);position:absolute;top:15px;left:16px;width:20px;height:20px;border-radius:50%;background:var(--surface-3);color:var(--text-muted);font-size:11px;font-weight:700;line-height:20px;text-align:center}
.gl-steps li > b {color:var(--text-strong)}
.gl-steps li > span {color:var(--text)}
.gl-steps .gl-live {vertical-align:1px}
.gl-star {color:#f5b301}
.gl-tip {margin:16px 0 0;padding:12px 16px;border-radius:var(--r-md);background:var(--tint);color:var(--text);font-size:13px;line-height:1.7}
.gl-tip:before {content:"\f0eb";margin-right:8px;color:var(--accent);font:normal 14px/1 FontAwesome}
.gl-rules {margin:14px 0 0;padding:14px 16px 14px 34px;border-radius:var(--r-md);background:var(--primary-soft);color:var(--text);font-size:13px;line-height:1.9}
.gl-guide-grid {display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-bottom:14px}
.gl-guide-item {display:block;padding:14px 16px;border-radius:var(--r-md);background:var(--surface-2);font-weight:400 !important}
.gl-guide-item:hover {background:var(--tint);text-decoration:none}
.gl-guide-item b {display:block;margin-bottom:3px;color:var(--text-strong);font-size:14px}
.gl-guide-item b:after {content:"\f105";margin-left:6px;color:var(--text-faint);font:normal 13px/1 FontAwesome}
.gl-guide-item span {color:var(--text-muted);font-size:13px;line-height:1.6}
.gl-guide-tbl {width:100%;border-collapse:collapse;font-size:14px}
.gl-guide-tbl th {padding:11px 16px;background:var(--surface-2);color:var(--text-muted);font-size:12px;font-weight:600;text-align:left}
.gl-guide-tbl td {padding:12px 16px;border-top:1px solid var(--border-soft);color:var(--text)}
.gl-guide-tbl td b {color:var(--primary-text)}
.gl-faq details {border-radius:var(--r-md);background:var(--surface-2)}
.gl-faq details + details {margin-top:8px}
.gl-faq summary {position:relative;padding:14px 44px 14px 18px;color:var(--text-strong);font-size:14px;font-weight:600;cursor:pointer;list-style:none}
.gl-faq summary::-webkit-details-marker {display:none}
.gl-faq summary:after {content:"\f107";position:absolute;top:15px;right:18px;color:var(--text-faint);font:normal 16px/1 FontAwesome}
.gl-faq details[open] summary:after {content:"\f106"}
.gl-faq details p {margin:0;padding:0 18px 16px;color:var(--text);font-size:14px;line-height:1.75}
.gl-nav-util a b {color:var(--text-strong)}
@media (max-width:767px) {
    .gl-guide-hero, .gl-guide-sec {padding:20px 16px}
    .gl-guide-hero h3 {font-size:19px}
    .gl-guide-hero .gl-sp-nav {flex-wrap:wrap;overflow:visible;margin:0;padding:0}
    .gl-guide-sec > h3 {font-size:17px}
    .gl-steps li {grid-template-columns:1fr;gap:2px;padding:12px 14px 12px 42px}
    .gl-steps li:before {left:13px}
    .gl-guide-grid {grid-template-columns:1fr}
    .gl-guide-tbl th, .gl-guide-tbl td {padding:10px}
}

.gl-rules li {list-style:disc}

/* AI 분석 글 */
.gl-ai-post {font-size:15px;line-height:1.85}
.gl-ai-note {margin:0 0 22px;padding:12px 16px;border-radius:var(--r-md);background:var(--tint);color:var(--text-muted);font-size:13px;line-height:1.7}
.gl-ai-note:before {content:"\f0d0";margin-right:8px;color:var(--accent);font:normal 14px/1 FontAwesome}
.gl-ai-post h3 {margin:30px 0 10px;padding-left:12px;border-left:4px solid var(--primary);color:var(--text-strong);font-size:18px;line-height:1.4}
.gl-ai-post h4 {margin:22px 0 8px;color:var(--text-strong);font-size:15px}
.gl-ai-post p {margin:0 0 12px}
.gl-ai-post ul {margin:0 0 14px;padding-left:22px}
.gl-ai-post li {list-style:disc;margin-bottom:4px}
.gl-ai-post strong {color:var(--text-strong)}
.gl-ai-src {font-size:13px}
.gl-ai-src a {color:var(--text-muted) !important;text-decoration:underline}
.gl-ai-link {margin-top:24px !important}
.gl-ai-link a {display:inline-block;height:40px;padding:0 20px;border-radius:20px;background:var(--primary);color:var(--on-accent) !important;font-size:14px;font-weight:700;line-height:40px;text-decoration:none !important}

/* 404 안내 */
.gl-404 {padding:70px 24px;text-align:center}
.gl-404 b {display:block;color:var(--primary-text);font-size:64px;font-weight:900;line-height:1}
.gl-404 h3 {margin:14px 0 6px;color:var(--text-strong);font-size:22px}
.gl-404 p {margin:0 0 6px;color:var(--text-muted);font-size:14px}

/* ==========================================================================
   중계 채널 관리 (/sports/admin.php)
   ========================================================================== */
.gl-adm-tools {display:flex;flex-wrap:wrap;gap:10px;align-items:center;justify-content:space-between}
.gl-adm-tools input[type="search"] {width:240px;height:34px;padding:0 14px;border:0;border-radius:17px;background:var(--surface-2);font-size:13px;outline:0}
.gl-adm-help {padding:0}
.gl-adm-help summary {padding:14px 20px;color:var(--text-strong);font-size:13px;font-weight:700;cursor:pointer}
.gl-adm-help ul {margin:0;padding:0 20px 16px 38px;color:var(--text);font-size:13px;line-height:1.9}
.gl-adm-help li {list-style:disc}
.gl-adm-help code {padding:1px 6px;border-radius:4px;background:var(--surface-3);font-size:12px}
.gl-adm-game[hidden] {display:none}
.gl-adm-hd {display:flex;align-items:center;gap:14px;padding:14px 20px 10px}
.gl-adm-time {flex:none;width:52px;text-align:center}
.gl-adm-time b {color:var(--text-strong);font-size:14px}
.gl-adm-vs {color:var(--text-strong);font-size:15px}
.gl-adm-vs i {margin:0 6px;color:var(--text-faint);font-size:13px;font-style:normal}
.gl-adm-lg {color:var(--text-muted);font-size:12px}
.gl-adm-cnt {margin-left:auto;padding:2px 10px;border-radius:11px;background:var(--surface-3);color:var(--text-faint);font-size:11px;font-weight:700}
.gl-adm-cnt.is-on {background:var(--primary);color:var(--on-accent)}
.gl-adm-link {color:var(--text-faint);font-size:12px;text-decoration:underline}
.gl-adm-body {padding:0 20px 14px}
.gl-ch-row {display:flex;align-items:center;gap:6px;padding:5px 0}
.gl-ch-row.is-off input[type="text"], .gl-ch-row.is-off input[type="url"] {opacity:.5}
.gl-ch-row input[type="text"], .gl-ch-row input[type="url"], .gl-ch-row input[type="number"], .gl-ch-row select {height:34px;padding:0 10px;border:1px solid var(--border-soft);border-radius:var(--r-sm);background:var(--surface-2);color:var(--text-strong);font-size:13px;outline:0}
.gl-ch-row input:focus, .gl-ch-row select:focus {border-color:var(--primary);background:var(--surface)}
.gl-in-order {flex:none;width:54px !important;text-align:center}
.gl-plus {display:inline-block;height:34px;color:var(--text-faint);font-size:18px;line-height:32px}
.gl-in-preset {flex:none;width:118px}
.gl-in-name {flex:none;width:150px}
.gl-in-url {flex:1;min-width:0}
.gl-in-use {flex:none;color:var(--text-muted);font-size:12px;white-space:nowrap}
.gl-ch-row .gl-btn {flex:none;padding:0 12px}
.gl-ch-row.is-new {margin-top:4px;padding-top:9px;border-top:1px dashed var(--border-soft)}
.gl-adm-game .gl-ch-row.is-new:first-child, #gl_presets .gl-ch-row.is-new:first-child {margin-top:0;padding-top:5px;border-top:0}
.gl-modal-video video {width:100%;height:100%;background:#000}
@media (max-width:767px) {
    .gl-adm-hd {flex-wrap:wrap;gap:6px 10px;padding:14px 14px 8px}
    .gl-adm-body {padding:0 14px 12px}
    .gl-ch-row {flex-wrap:wrap}
    .gl-in-url {flex-basis:100%;order:5}
    .gl-in-name {flex:1;width:auto}
    .gl-adm-tools input[type="search"] {width:100%}
}

/* ==========================================================================
   활동 등급 배지, 출석체크, 등급 안내
   ========================================================================== */
.gl-grade {display:inline-block;margin-right:5px;padding:0 7px;border-radius:9px;background:var(--g, var(--text-faint));color:#fff;font-size:10px;font-weight:700;font-style:normal;line-height:18px;white-space:nowrap;vertical-align:1px}
.gl-grade.is-admin {background:var(--inverse);color:var(--highlight)}

.gl-att-top {display:grid;grid-template-columns:1fr 420px;gap:16px}
.gl-att-bottom {display:grid;grid-template-columns:1fr 340px;gap:16px;align-items:start}
.gl-att-me {padding:26px 28px}
.gl-att-state {display:block;color:var(--text-strong);font-size:20px}
.gl-att-state.is-done {color:#1f9d62}
.gl-att-me > p {margin:8px 0 0;color:var(--text-muted);font-size:14px}
.gl-att-form {display:flex;gap:8px;margin-top:14px;padding:8px;border-radius:var(--r-md);background:var(--surface-2)}
.gl-att-form input {flex:1;min-width:0;height:44px;padding:0 16px;border:0;border-radius:22px;background:var(--surface);font-size:14px;outline:0}
.gl-att-form .gl-btn {height:44px;padding:0 22px;border-radius:22px;font-size:14px;line-height:44px}
.gl-att-me .gl-stat4 {padding:0;margin-top:18px}
.gl-att-rule {margin:16px 0 0;padding-left:18px;color:var(--text-muted);font-size:13px;line-height:1.9}
.gl-att-rule li {list-style:disc}
.gl-att-cal ol {display:grid;grid-template-columns:repeat(7,1fr);gap:6px;margin:0;padding:4px 18px 20px;list-style:none}
.gl-att-cal li {aspect-ratio:1;border-radius:50%;color:var(--text);font-size:13px;line-height:1;display:flex;align-items:center;justify-content:center}
.gl-att-cal li.is-head {aspect-ratio:auto;height:26px;color:var(--text-faint);font-size:11px}
.gl-att-cal li.is-future {color:var(--text-faint)}
.gl-att-cal li.is-on {background:var(--primary);color:var(--on-accent);font-weight:700}
.gl-att-cal li.is-today {box-shadow:0 0 0 2px var(--text-strong)}
.gl-att-list {margin:0;padding:0 8px 8px;list-style:none}
.gl-att-list li {display:grid;grid-template-columns:30px auto 1fr auto;align-items:center;gap:10px;padding:10px 12px;border-radius:var(--r-sm);font-size:13px}
.gl-att-list li:nth-child(odd) {background:var(--surface-2)}
.gl-att-no {width:24px;height:24px;border-radius:50%;color:var(--text-muted);line-height:24px;text-align:center}
.gl-att-no.is-top {background:var(--primary-soft);color:var(--primary-text)}
.gl-att-who strong {color:var(--text-strong)}
.gl-att-memo {min-width:0;overflow:hidden;color:var(--text);white-space:nowrap;text-overflow:ellipsis}
.gl-att-meta {color:var(--text-faint);font-size:12px;white-space:nowrap}
.gl-att-list li.gl-empty {display:block;background:none}

.gl-grd-me {padding:26px 28px}
.gl-grd-now {margin:0;color:var(--text);font-size:17px}
.gl-grd-now strong, .gl-grd-now b {color:var(--text-strong)}
.gl-grd-now .gl-grade {font-size:12px;line-height:22px;padding:0 10px;border-radius:11px;vertical-align:2px}
.gl-grd-bar {height:10px;margin:16px 0 10px;border-radius:5px;background:var(--surface-3);overflow:hidden}
.gl-grd-bar span {display:block;height:100%;border-radius:5px}
.gl-grd-sub {margin:0;color:var(--text-muted);font-size:13px}
.gl-grd-sub a {color:var(--primary-text);font-weight:700}
.gl-grd-cols {display:grid;grid-template-columns:1fr 380px;gap:16px;align-items:start}
.gl-grd-list {margin:0;padding:0 8px 4px;list-style:none}
.gl-grd-list li {display:flex;align-items:center;gap:12px;padding:12px 14px;border-radius:var(--r-sm);font-size:14px}
.gl-grd-list li:nth-child(odd) {background:var(--surface-2)}
.gl-grd-list li.is-mine {box-shadow:inset 0 0 0 2px var(--primary)}
.gl-grd-list .gl-grade {min-width:58px;font-size:12px;line-height:24px;border-radius:12px;text-align:center;margin:0}
.gl-grd-no {width:20px;color:var(--text-faint);font-weight:700;text-align:center}
.gl-grd-exp {color:var(--text)}
.gl-grd-list em {margin-left:auto;color:var(--primary-text);font-size:12px;font-style:normal;font-weight:700}

/* 로그인 후 회원 상자 */
.gl-ol-extra {display:grid;gap:8px;padding:0 20px 14px}
.gl-ol-att {display:block;height:38px;border-radius:var(--r-sm);background:var(--primary);color:var(--on-accent) !important;font-size:13px;font-weight:700;line-height:38px;text-align:center}
.gl-ol-att.is-done {background:var(--surface-3);color:var(--text-muted) !important}
.gl-ol-grade {position:relative;display:block;padding:8px 12px 12px;border-radius:var(--r-sm);background:var(--surface-2);color:var(--text-muted) !important;font-size:12px;overflow:hidden}
.gl-ol-grade b {color:var(--text-strong)}
.gl-ol-grade i {position:absolute;left:0;bottom:0;height:4px}
.gl-ol-att:hover, .gl-ol-grade:hover {text-decoration:none}

@media (max-width:767px) {
    .gl-att-top, .gl-att-bottom, .gl-grd-cols {grid-template-columns:1fr;gap:12px}
    .gl-att-me, .gl-grd-me {padding:20px 16px}
    .gl-att-state {font-size:17px}
    .gl-att-form {flex-direction:column}
    .gl-att-list li {grid-template-columns:26px 1fr auto;row-gap:2px}
    .gl-att-memo {grid-column:2 / -1}
    .gl-att-cal ol {padding:4px 12px 16px}
}

/* ==========================================================================
   로그인 영역(aside)이 있는 일반 화면 : 본문 폭 930px 에 맞춘 배치
   (메인과 관리 화면처럼 넓게 쓰는 화면은 .gl-home / .gl-wide 로 구분된다)
   ========================================================================== */
#wrapper:not(.gl-home):not(.gl-wide) .gl-games li > a {grid-template-columns:64px 1fr 76px 1fr 120px;gap:10px}
#wrapper:not(.gl-home):not(.gl-wide) .gl-tv-list a {grid-template-columns:50px 150px 1fr auto 60px;gap:10px}
#wrapper:not(.gl-home):not(.gl-wide) .gl-hl {grid-template-columns:repeat(3,1fr)}
#wrapper:not(.gl-home):not(.gl-wide) .gl-att-top {grid-template-columns:1fr 340px}
#wrapper:not(.gl-home):not(.gl-wide) .gl-att-bottom {grid-template-columns:1fr 280px}
#wrapper:not(.gl-home):not(.gl-wide) .gl-att-form {flex-wrap:wrap}
#wrapper:not(.gl-home):not(.gl-wide) .gl-att-form input {flex-basis:100%}
#wrapper:not(.gl-home):not(.gl-wide) .gl-att-form .gl-btn {flex:1}
#wrapper:not(.gl-home):not(.gl-wide) .gl-grd-cols {grid-template-columns:1fr 300px}
#wrapper:not(.gl-home):not(.gl-wide) .gl-guide-grid {grid-template-columns:repeat(2,1fr)}
#wrapper:not(.gl-home):not(.gl-wide) .gl-steps li {grid-template-columns:130px 1fr}
#wrapper:not(.gl-home):not(.gl-wide) .gl-gd-mid {min-width:150px}
#wrapper:not(.gl-home):not(.gl-wide) .gl-rk .gl-rk-form {width:132px;padding-right:12px}
@media (max-width:767px) {
    #wrapper .gl-games li > a {grid-template-columns:50px 1fr 54px 1fr !important;gap:6px !important}
    #wrapper .gl-tv-list a {grid-template-columns:44px 1fr 54px !important}
    #wrapper .gl-hl {grid-template-columns:repeat(2,1fr) !important}
    #wrapper .gl-att-top, #wrapper .gl-att-bottom, #wrapper .gl-grd-cols, #wrapper .gl-guide-grid {grid-template-columns:1fr !important}
    #wrapper .gl-steps li {grid-template-columns:1fr !important}
}

/* ==========================================================================
   전체 화면 폭 (PC)
   - 넓은 화면에서는 1600px(2026-11-01 운영자 지시, 전에는 1400px), 그보다 좁은 화면(노트북 등)에서는 화면에 맞춰 줄어들고 1200px 아래로는 줄지 않는다.
   - 폭을 바꾸려면 --site-max 한 값만 고치면 된다. 모바일 화면은 별도 틀이라 영향이 없다.
   ========================================================================== */
:root {
    --site-max: 1600px;
    --site-w: clamp(1200px, calc(100vw - 48px), var(--site-max));
    --aside-w: 300px;                                             /* 왼쪽 로그인·배너 영역 (2026-11-01, 전에는 280px) */
    --stage-side: 380px;                                          /* 메인 : 경기 목록 패널 폭 */
    --stage-h: calc((var(--site-w) - var(--stage-side) - 20px) * 9 / 16); /* 메인 : 플레이어 높이(16:9) */
}
#gl_hd, #gl_hd ~ #wrapper, #gl_hd ~ #ft {min-width:1200px}   /* PC 화면에만 (모바일 화면에는 #gl_hd 가 없다) */
#gl_hd .gl-in, #gl_hd ~ * .gl-in, #gl_hd ~ #wrapper #container_wr, #gl_hd ~ #ft #ft_wr, #gl_hd ~ #ft #ft_copy {width:var(--site-w);max-width:none}
#gl_hd ~ #wrapper #container {width:calc(var(--site-w) - var(--aside-w) - 30px)}
#gl_hd ~ #wrapper #aside {width:var(--aside-w)}
#gl_hd ~ #wrapper.gl-home #container, #gl_hd ~ #wrapper.gl-wide #container {width:var(--site-w)}
#gl_hd ~ #ft #ft_wr {display:block;margin:0 auto}

/* 메인 : 넓어진 폭에 맞춘 플레이어와 패널 */

/* 넓은 화면에서 여유가 생긴 곳 */
@media (min-width:1380px) {
    #wrapper:not(.gl-home):not(.gl-wide) .gl-hl {grid-template-columns:repeat(4,1fr)}
    #wrapper:not(.gl-home):not(.gl-wide) .gl-guide-grid {grid-template-columns:repeat(3,1fr)}
    #wrapper:not(.gl-home):not(.gl-wide) .gl-games li > a {grid-template-columns:70px 1fr 84px 1fr 160px;gap:12px}
    #wrapper:not(.gl-home):not(.gl-wide) .gl-att-top {grid-template-columns:1fr 400px}
    #wrapper:not(.gl-home):not(.gl-wide) .gl-att-bottom {grid-template-columns:1fr 320px}
    #wrapper:not(.gl-home):not(.gl-wide) .gl-grd-cols {grid-template-columns:1fr 340px}
    #wrapper.gl-home .gl-hl, #wrapper.gl-wide .gl-hl {grid-template-columns:repeat(5,1fr)}
}

/* ==========================================================================
   메인(PC) 개편 : 진행 중 띠, 경기 카드, 목록·응원 톡 패널, 바로가기, AI 분석, 하이라이트, 3단
   ========================================================================== */

/* 진행 중 띠 */

/* 경기 카드 */

/* 오른쪽 패널 */

/* 바로가기 */

/* 구역 제목 */
.gl-sec {display:flex;align-items:baseline;gap:10px;margin:34px 0 14px}
.gl-sec h2 {margin:0;color:var(--text-strong);font-size:20px;letter-spacing:-.5px}
.gl-sec span {color:var(--text-faint);font-size:13px}
.gl-sec a {margin-left:auto;color:var(--text-muted);font-size:13px;font-weight:600}

/* AI 분석 */
.gl-ai-lg {display:inline-flex;align-items:center;gap:6px;color:var(--accent);font-size:12px;font-weight:700}
.gl-ai-lg i {width:6px;height:6px;border-radius:50%;background:currentColor}
.gl-ai-meta {display:block;margin-top:12px;color:var(--text-faint);font-size:12px}

/* 하이라이트 */
.gl-hlrow {display:grid;grid-template-columns:repeat(5,1fr);gap:14px}
.gl-hlrow a:hover {text-decoration:none}
.gl-hlrow a:hover .gl-hl-thumb img {transform:scale(1.04)}
.gl-hlrow b {display:-webkit-box;margin-top:9px;overflow:hidden;color:var(--text-strong);font-size:13px;line-height:1.45;-webkit-line-clamp:2;-webkit-box-orient:vertical}
.gl-hlrow small {color:var(--text-faint);font-size:12px}

/* 3단 */
.gl-cols3 {display:grid;grid-template-columns:1fr 1fr 1fr;gap:16px;align-items:start}
.gl-c3-hd {display:flex;justify-content:space-between;align-items:center;margin:0;padding:18px 20px 10px;color:var(--text-strong);font-size:15px}
.gl-c3-hd a {color:var(--text-faint);font-size:12px;font-weight:500}
.gl-segs {display:flex;gap:4px;padding:0 16px 8px}
.gl-segs button {height:28px;padding:0 12px;border:0;border-radius:14px;background:transparent;color:var(--text-muted);font-size:12px;cursor:pointer}
.gl-segs button.is-on {background:var(--surface-3);color:var(--text-strong);font-weight:700}
.gl-rk {margin:0;padding:0 8px 10px;list-style:none}
.gl-rk[hidden], .gl-cols3 .gl-posts[hidden] {display:none}
.gl-rk li {display:grid;grid-template-columns:26px 1fr 40px 40px;align-items:center;gap:8px;padding:8px 12px;border-radius:12px;font-size:13px}
.gl-rk li:nth-child(even) {background:var(--surface-2)}
.gl-rk li.gl-rk-hd {padding:2px 12px 4px;color:var(--text-faint);font-size:11px}
.gl-rk li > span, .gl-rk li > b {text-align:center;color:var(--text-muted);font-size:12px}
.gl-rk li.gl-rk-hd > span:nth-child(2) {text-align:left}
.gl-rk li > b {color:var(--text-strong);font-size:13px}
.gl-rk .gl-rk-n {font-size:13px;font-weight:800}
.gl-rk li:nth-child(-n+4) .gl-rk-n {color:var(--primary-text)}
.gl-rk .gl-team {color:var(--text-strong);font-weight:600}
.gl-rk li.gl-empty {display:block}
.gl-pks {display:grid;gap:12px;padding:0 16px 16px}
.gl-pks a {display:block;padding:12px 14px;border-radius:14px;background:var(--surface-2)}
.gl-pks a:hover {background:var(--surface-3);text-decoration:none}
.gl-cols3 .gl-posts .gl-grade {flex:none;margin:0}

/* ==========================================================================
   메인(모바일) 개편 : PC 메인과 같은 구성을 한 줄로 쌓는다
   ========================================================================== */

/* 재생 중에는 예전처럼 화면 위에 붙는 16:9 플레이어 */

.gl-mo .gl-sec {margin:26px 14px 10px}
.gl-mo .gl-sec h2 {font-size:17px}
.gl-mo .gl-sec span {display:none}
.gl-mo .gl-hlrow {display:flex;gap:10px;padding:0 12px 4px;overflow-x:auto;scrollbar-width:none}
.gl-mo .gl-hlrow::-webkit-scrollbar {display:none}
.gl-mo .gl-hlrow a {flex:none;width:62%}
.gl-mo .gl-cols3 {grid-template-columns:1fr;gap:12px;margin:0 12px 16px}

/* 모바일 메뉴 : 앱 화면처럼 아이콘 4열 */
#gl_apps {padding:6px 10px 90px}
#gl_apps h3 {margin:16px 8px 8px;color:var(--text-faint);font-size:12px;font-weight:700}
.gl-apps {display:grid;grid-template-columns:repeat(4,1fr);gap:14px 4px;margin:0;padding:16px 6px;border-radius:var(--r-lg);background:var(--surface);list-style:none}
.gl-apps a {display:flex;flex-direction:column;align-items:center;gap:7px;color:var(--text-strong);text-decoration:none}
.gl-app-ic {position:relative;display:grid;place-items:center;width:52px;height:52px;border-radius:17px;color:#fff;font-size:22px;box-shadow:0 3px 8px rgba(0,0,0,.18)}
.gl-app-ic em {position:absolute;top:-5px;right:-7px;min-width:18px;height:18px;padding:0 5px;border-radius:9px;background:var(--live);color:#fff;font-size:10px;font-style:normal;font-weight:800;line-height:18px;text-align:center}
.gl-apps b {max-width:100%;overflow:hidden;font-size:11px;font-weight:600;line-height:1.3;text-align:center;white-space:nowrap;text-overflow:ellipsis}
.gl-apps a:active .gl-app-ic {transform:scale(.94)}
.gl-apps-note {margin:8px;color:var(--text-muted);font-size:12px}

/* 이용가이드 : 링크가 아닌 설명 칸에는 화살표를 붙이지 않는다 */
div.gl-guide-item b:after {content:none}
div.gl-guide-item:hover {background:var(--surface-2)}

/* ==========================================================================
   메인 (스포츠 중계 · 검색 노출 중심, 2026-10 개편) + 라이브 채널 페이지 + 새 대메뉴
   ========================================================================== */
.gl-nav-main > li.has-sub > a:after {content:"";display:inline-block;width:5px;height:5px;margin:0 0 3px 6px;border-right:2px solid currentColor;border-bottom:2px solid currentColor;transform:rotate(45deg);opacity:.5}

/* 머리 구역 */
.gl-top {display:grid;grid-template-columns:1fr auto;gap:30px;align-items:end;margin-top:6px;padding:30px 34px;border-radius:24px;background:linear-gradient(135deg,var(--tint),var(--surface) 70%);box-shadow:var(--soft-shadow)}
.gl-date {display:inline-flex;align-items:center;gap:8px;padding:4px 12px;border-radius:14px;background:var(--surface);box-shadow:var(--soft-shadow);color:var(--text-strong);font-size:13px;font-weight:700}
.gl-date i {width:8px;height:8px;border-radius:50%;background:var(--live)}
.gl-top h1 {margin:14px 0 10px;color:var(--text-strong);font-size:34px;line-height:1.25;letter-spacing:-1px}
.gl-top h1 em {color:var(--primary-text);font-style:normal}
.gl-lead {max-width:760px;margin:0;color:var(--text-muted);font-size:15px;line-height:1.7}
.gl-sports {display:flex;flex-wrap:wrap;gap:8px;margin-top:20px}
.gl-sports a {display:inline-flex;align-items:center;gap:6px;height:38px;padding:0 16px;border-radius:19px;background:var(--surface);box-shadow:var(--soft-shadow);color:var(--text-strong);font-size:14px;font-weight:700}
.gl-sports a:hover {text-decoration:none;color:var(--primary-text)}
.gl-sports a.is-on {background:var(--text-strong);color:var(--surface)}
.gl-sports a small {color:var(--text-faint);font-size:12px;font-weight:600}
.gl-sports a.is-on small {color:inherit;opacity:.7}
.gl-stat {display:flex;gap:10px}
.gl-stat > div {min-width:118px;padding:14px 18px;border-radius:16px;background:var(--surface);box-shadow:var(--soft-shadow)}
.gl-stat small {display:block;color:var(--text-muted);font-size:12px}
.gl-stat b {color:var(--text-strong);font-size:28px;font-weight:900;letter-spacing:-1px;font-variant-numeric:tabular-nums}
.gl-stat b em {margin-left:2px;color:var(--text-faint);font-size:14px;font-style:normal;font-weight:700}
.gl-stat .is-hot b {color:var(--live)}

/* 라이브 채널 버튼 (메인, 라이브 채널 페이지) */
.gl-chs {display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-top:22px}
.gl-chb {position:relative;display:flex;align-items:center;gap:14px;padding:18px 20px;border-radius:20px;background:linear-gradient(135deg,var(--c1),var(--c2));color:#fff;box-shadow:0 8px 24px rgba(0,0,0,.18);overflow:hidden;transition:transform .15s}
.gl-chb:after {content:"";position:absolute;right:-30px;top:-30px;width:130px;height:130px;border-radius:50%;background:rgba(255,255,255,.08)}
.gl-chb:hover {transform:translateY(-2px);color:#fff;text-decoration:none}
.gl-chb-lt {flex:none;display:grid;place-items:center;width:52px;height:52px;border-radius:16px;background:rgba(255,255,255,.16);font-size:26px;font-weight:900}
.gl-chb-tx {position:relative;z-index:1;flex:1;min-width:0}
.gl-chb-tx small {display:flex;align-items:center;gap:6px;color:rgba(255,255,255,.8);font-size:12px;font-weight:700}
.gl-chb-tx small:before {content:"";width:7px;height:7px;border-radius:50%;background:#fff;animation:gl-blink 1.4s infinite}
.gl-chb-tx b {display:block;margin-top:2px;font-size:19px;font-weight:900;letter-spacing:-.5px;white-space:nowrap}
.gl-chb-go {position:relative;z-index:1;display:inline-flex;align-items:center;gap:6px;height:36px;padding:0 14px;border-radius:18px;background:#fff;color:#111;font-size:13px;font-weight:800;white-space:nowrap}
.gl-chb-go svg, .gl-nc-go svg {width:12px;height:12px;fill:currentColor}
@keyframes gl-blink {50% {opacity:.3}}

/* 지금 중계 중인 경기 */
.gl-onlive {display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.gl-nc {position:relative;padding:18px 20px}
.gl-nc:before {content:"";position:absolute;left:0;top:0;bottom:0;width:4px;background:var(--live)}
.gl-nc.is-soon:before {background:var(--accent)}
.gl-nc-hd {display:flex;align-items:center;gap:8px;min-width:0;color:var(--text-muted);font-size:12px;white-space:nowrap}
.gl-nc-hd b {color:var(--text-strong);font-size:13px}
.gl-nc-hd span {overflow:hidden;text-overflow:ellipsis}
.gl-nc-hd i {margin-left:auto;color:var(--live);font-size:13px;font-style:normal;font-weight:800}
.gl-nc.is-soon .gl-nc-hd i {color:var(--accent)}
.gl-nc-soon {padding:0 8px;border-radius:10px;background:var(--accent);color:#fff;font-size:10px;font-style:normal;font-weight:800;line-height:20px}
.gl-nc-vs {display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:12px;margin:16px 0}
.gl-nc-vs .gl-team {font-size:16px;font-weight:800}
.gl-nc-vs .gl-team:last-child {flex-direction:row-reverse;text-align:right}
.gl-nc-vs .gl-crest {width:38px;height:38px;font-size:15px;line-height:38px}
.gl-nc-sc {color:var(--text-strong);font-size:30px;font-weight:900;letter-spacing:-1px;font-variant-numeric:tabular-nums}
.gl-nc-ft {display:flex;align-items:center;gap:8px}
.gl-nc-bar {flex:1;height:4px;border-radius:2px;background:var(--surface-3);overflow:hidden}
.gl-nc-bar i {display:block;height:100%;background:var(--live)}
.gl-nc-info {display:inline-flex;align-items:center;height:34px;padding:0 12px;border-radius:17px;background:var(--surface-3);color:var(--text-strong);font-size:12px;font-weight:700}
.gl-nc-go {display:inline-flex;align-items:center;gap:6px;height:34px;padding:0 14px;border-radius:17px;background:var(--primary);color:#fff;font-size:13px;font-weight:800}
.gl-nc-info:hover, .gl-nc-go:hover {text-decoration:none}
.gl-nc-go:hover {color:#fff;background:var(--primary-hover)}
.gl-onlive-note {margin:10px 4px 0;color:var(--text-faint);font-size:12px}

/* 오늘 일정 + 오른쪽 단 */
.gl-two {display:grid;grid-template-columns:1fr 340px;gap:20px;align-items:start}
.gl-aside {position:sticky;top:16px;display:grid;gap:16px;margin-top:62px}
.gl-tsch {padding:6px 10px 14px}
.gl-tsch-lg h3 {display:flex;align-items:center;gap:8px;margin:0;padding:14px 12px 8px;color:var(--text-strong);font-size:14px}
.gl-tsch-lg h3 small {color:var(--text-faint);font-size:12px;font-weight:500}
.gl-tsch-lg h3 a {margin-left:auto;color:var(--text-muted);font-size:12px;font-weight:600}
.gl-gm {display:grid;grid-template-columns:62px 1fr 70px 1fr 110px;align-items:center;gap:10px;padding:9px 12px;border-radius:12px;color:var(--text);font-size:14px}
.gl-gm:hover {background:var(--surface-2);text-decoration:none}
.gl-gm-tm {color:var(--text-muted);font-weight:800;font-variant-numeric:tabular-nums}
.gl-gm-h .gl-team {flex-direction:row-reverse;text-align:right}
.gl-gm .gl-team {font-size:14px;font-weight:700}
.gl-gm-sc {color:var(--text-strong);font-weight:900;text-align:center;font-variant-numeric:tabular-nums}
.gl-gm-sc.is-vs {color:var(--text-faint);font-size:12px;font-weight:700}
.gl-gm-st {display:flex;justify-content:flex-end;align-items:center;gap:6px;color:var(--text-faint);font-size:12px}
.gl-gm-st small {font-size:12px}
.gl-gm.is-live {background:var(--primary-soft)}
.gl-gm.is-live .gl-gm-st small {color:var(--live);font-weight:700}
.gl-gm.is-end .gl-gm-tm, .gl-gm.is-end .gl-team {color:var(--text-faint)}
.gl-tsch-more {display:block;margin:12px 10px 0;height:44px;border-radius:22px;background:var(--surface-3);color:var(--text-strong);font-weight:800;line-height:44px;text-align:center}
.gl-tsch-more:hover {text-decoration:none;background:var(--tint-strong)}
.gl-aside .gl-c3-hd {margin:0}
.gl-hub {display:grid;grid-template-columns:1fr 1fr;gap:6px;padding:0 12px 14px}
.gl-hub a {padding:7px 10px;border-radius:12px;background:var(--surface-2)}
.gl-hub a:hover {background:var(--surface-3);text-decoration:none}
.gl-hub .gl-team {font-size:13px}
.gl-att-go {display:flex;align-items:center;margin:0 16px 16px;padding:12px 14px;border-radius:14px;background:var(--primary-soft);color:var(--primary-text);font-size:13px;font-weight:700}
.gl-att-go em {margin-left:auto;padding:3px 10px;border-radius:11px;background:var(--primary);color:#fff;font-size:12px;font-style:normal}
.gl-att-go:hover {text-decoration:none;color:var(--primary-text)}

/* 리그별 */
.gl-lgs {display:grid;grid-template-columns:repeat(4,1fr);gap:14px}
.gl-lc {padding:18px}
.gl-lc-tt {display:flex;align-items:center;gap:10px}
.gl-lc-tt i {display:grid;place-items:center;flex:none;width:38px;height:38px;border-radius:11px;color:#fff;font-size:12px;font-style:normal;font-weight:900}
.gl-lc-tt h3 {margin:0;color:var(--text-strong);font-size:15px}
.gl-lc-tt h3 small {display:block;color:var(--text-faint);font-size:12px;font-weight:500}
.gl-lc-nx {display:block;margin:14px 0 12px;padding:10px 12px;border-radius:12px;background:var(--surface-2);color:var(--text-strong);font-size:13px;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.gl-lc-nx small {display:block;color:var(--text-muted);font-size:11px;font-weight:600}
.gl-lc-nx.is-none {color:var(--text-faint);font-weight:500}
a.gl-lc-nx:hover {background:var(--surface-3);text-decoration:none}
.gl-lc-lk {display:flex;gap:12px;font-size:12px;font-weight:700}
.gl-lc-lk a {color:var(--text-muted)}
.gl-lc-lk a:first-child {color:var(--primary-text)}

/* 빅매치 프리뷰 */
.gl-ai3 {display:grid;grid-template-columns:1.3fr 1fr 1fr;gap:16px}
.gl-ai3 > a {display:block;padding:22px}
.gl-ai3 > a:hover {text-decoration:none;transform:translateY(-1px)}
.gl-ai3 h3 {margin:10px 0 8px;color:var(--text-strong);font-size:17px;line-height:1.4}
.gl-ai3 > a:first-child h3 {font-size:21px}
.gl-ai3 p {display:-webkit-box;margin:0;overflow:hidden;color:var(--text-muted);font-size:13px;line-height:1.7;-webkit-line-clamp:3;-webkit-box-orient:vertical}
.gl-hlrow h3 {display:-webkit-box;margin:9px 0 0;overflow:hidden;color:var(--text-strong);font-size:13px;line-height:1.45;-webkit-line-clamp:2;-webkit-box-orient:vertical}

/* 자주 묻는 질문 + 소개 */
.gl-qa {display:grid;grid-template-columns:1fr 1fr;gap:16px;align-items:start}
.gl-qa-list {padding:6px 22px}
.gl-qa-list details {padding:14px 0;border-bottom:1px solid var(--border-soft)}
.gl-qa-list details:last-child {border-bottom:0}
.gl-qa-list summary {display:flex;align-items:center;gap:10px;list-style:none;cursor:pointer}
.gl-qa-list summary::-webkit-details-marker {display:none}
.gl-qa-list summary:before {content:"Q";display:grid;place-items:center;flex:none;width:24px;height:24px;border-radius:8px;background:var(--primary-soft);color:var(--primary-text);font-size:12px;font-weight:900}
.gl-qa-list summary h3 {margin:0;color:var(--text-strong);font-size:15px}
.gl-qa-list p {margin:8px 0 0 34px;color:var(--text-muted);font-size:14px;line-height:1.75}
.gl-about {padding:24px 26px}
.gl-about h2 {margin:0 0 10px;color:var(--text-strong);font-size:18px}
.gl-about p {margin:0;color:var(--text-muted);font-size:14px;line-height:1.85}
.gl-about p + p {margin-top:10px}
.gl-about b {color:var(--text-strong)}
.gl-kw {display:flex;flex-wrap:wrap;gap:6px;margin-top:16px}
.gl-kw a {padding:0 12px;border-radius:14px;background:var(--surface-2);color:var(--text-muted);font-size:12px;font-weight:600;line-height:28px}
.gl-kw a:hover {background:var(--surface-3);text-decoration:none}

/* 라이브 채널 페이지 */
.gl-live-page .gl-chs {margin-top:6px}
.gl-chs.is-tabs .gl-chb {opacity:.55}
.gl-chs.is-tabs .gl-chb.is-on {opacity:1;outline:3px solid var(--text-strong);outline-offset:3px}
.gl-live-box {margin-top:20px;border-radius:20px;overflow:hidden;background:#0b0f16;box-shadow:var(--soft-shadow)}
.gl-live-box iframe {display:block;width:100%;height:2500px;border:0}
.gl-live-note {margin:14px 4px 0;color:var(--text-faint);font-size:13px}

/* 모바일 */
.gl-mo .gl-top {grid-template-columns:1fr;gap:16px;margin:10px 12px 0;padding:22px 18px;border-radius:20px}
.gl-mo .gl-top h1 {font-size:24px}
.gl-mo .gl-lead {font-size:13px}
.gl-mo .gl-sports {flex-wrap:nowrap;margin:16px -18px 0;padding:0 18px 4px;overflow-x:auto;scrollbar-width:none}
.gl-mo .gl-sports a {flex:none;height:34px;padding:0 13px;font-size:13px}
.gl-mo .gl-stat > div {flex:1;min-width:0;padding:10px 12px}
.gl-mo .gl-stat b {font-size:22px}
.gl-mo .gl-chs {grid-template-columns:1fr 1fr;gap:10px;margin:12px 12px 0}
.gl-mo .gl-chb {gap:10px;padding:14px}
.gl-mo .gl-chb-lt {width:40px;height:40px;border-radius:12px;font-size:20px}
.gl-mo .gl-chb-tx b {font-size:15px}
.gl-mo .gl-chb-go {display:none}
.gl-mo .gl-sec {margin:26px 14px 10px}
.gl-mo .gl-sec h2 {font-size:17px}
.gl-mo .gl-sec span {display:none}
.gl-mo .gl-onlive, .gl-mo .gl-lgs, .gl-mo .gl-ai3, .gl-mo .gl-qa {grid-template-columns:1fr;gap:10px;margin:0 12px}
.gl-mo .gl-onlive-note {margin:8px 16px 0}
.gl-mo .gl-nc {padding:16px}
.gl-mo .gl-nc-vs .gl-team {font-size:14px}
.gl-mo .gl-nc-vs .gl-crest {width:30px;height:30px;line-height:30px;font-size:12px}
.gl-mo .gl-nc-sc {font-size:24px}
.gl-mo .gl-two {grid-template-columns:1fr;gap:0}
.gl-mo .gl-tsch {margin:0 12px;padding:4px 4px 12px}
.gl-mo .gl-gm {grid-template-columns:44px 1fr 46px 1fr;gap:6px;padding:9px 6px;font-size:13px}
.gl-mo .gl-gm .gl-team {font-size:13px;gap:5px}
.gl-mo .gl-gm .gl-crest:not(.has-logo) {display:none}
.gl-mo .gl-gm-st {display:none}
.gl-mo .gl-gm.is-live .gl-gm-tm {color:var(--live)}
.gl-mo .gl-aside {position:static;margin:12px 12px 0;gap:10px}
.gl-mo .gl-lgs {grid-template-columns:1fr 1fr}
.gl-mo .gl-lc {padding:14px}
.gl-mo .gl-lc-tt i {width:32px;height:32px;font-size:10px}
.gl-mo .gl-lc-tt h3 {font-size:14px}
.gl-mo .gl-lc-tt h3 small {display:none}
.gl-mo .gl-lc-lk a:nth-child(n+3) {display:none}
.gl-mo .gl-ai3 > a {padding:18px}
.gl-mo .gl-ai3 > a:first-child h3 {font-size:18px}
.gl-mo .gl-qa-list {padding:4px 16px}
.gl-mo .gl-qa-list summary h3 {font-size:14px}
.gl-mo .gl-qa-list p {margin-left:0;font-size:13px}
.gl-mo .gl-about {padding:20px 18px}
.gl-mo .gl-cols3 {grid-template-columns:1fr;gap:12px;margin:0 12px 16px}
#wrapper:not(.gl-mo) .gl-live-page .gl-chs {margin-top:0}
.gl-chb-tx b {overflow:hidden;text-overflow:ellipsis}
@media (max-width:1500px) {
    .gl-chb-go {width:36px;padding:0;justify-content:center}
    .gl-chb-go span {display:none}
}
.gl-mo .gl-tsch-lg h3 {white-space:nowrap}
.gl-mo .gl-tsch-lg h3 small {display:none}
.gl-mo .gl-tsch-lg h3 a {font-size:0}
.gl-mo .gl-tsch-lg h3 a:after {content:"일정 ›";font-size:12px}

/* 일반 화면 : 로그인 영역(aside)을 왼쪽, 본문을 오른쪽으로 */
#gl_hd ~ #wrapper:not(.gl-home):not(.gl-wide) #container {float:right}
#gl_hd ~ #wrapper:not(.gl-home):not(.gl-wide) #aside {float:left;margin:20px 30px 20px 0}

/* 이용가이드 : 묶음 소제목 */
.gl-guide-sub {margin:18px 0 10px;color:var(--text-strong);font-size:14px}
.gl-guide-sub:first-of-type {margin-top:6px}
#wrapper:not(.gl-mo) .gl-guide-grid.is-4 {grid-template-columns:repeat(4,1fr) !important}
@media (max-width:1100px) {#wrapper .gl-guide-grid.is-4 {grid-template-columns:1fr 1fr !important}}

/* 메인 2단 : 왼쪽 로그인·채팅·바로가기 / 오른쪽 라이브 채널·지금 중계 중·오늘 일정 */
.gl-two {grid-template-columns:var(--aside-w) minmax(0, 1fr)}   /* 왼쪽 폭은 일반 화면과 같은 --aside-w (2026-11-01, 전에는 320px) */
.gl-two-main {min-width:0}
.gl-aside {position:static;margin-top:22px}
.gl-aside-login .ol {margin:0}
.gl-chat-on {display:inline-flex;align-items:center;gap:5px;color:var(--live);font-size:11px;font-weight:800}
.gl-chat-on i {width:7px;height:7px;border-radius:50%;background:var(--live);animation:gl-blink 1.4s infinite}
.gl-chat-box {height:500px;margin:0 12px 12px;border-radius:var(--r-md);background:var(--surface-2);overflow:hidden}
.gl-chat-box > iframe, .gl-chat-box > v-chat {display:block;width:100%;height:100% !important}
.gl-chat-ready {display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;height:100%;padding:24px;text-align:center;color:var(--text-muted);font-size:13px;line-height:1.6}
.gl-chat-ready .fa {font-size:34px;color:var(--text-faint)}
.gl-chat-ready b {color:var(--text-strong);font-size:15px}
.gl-two-main .gl-onlive {grid-template-columns:repeat(auto-fill, minmax(300px, 1fr))}
.gl-two-main .gl-chb-go {width:36px;padding:0;justify-content:center}
.gl-two-main .gl-chb-go span {display:none}
.gl-two-main .gl-chb {padding:16px}
.gl-two-main .gl-chb-lt {width:46px;height:46px;font-size:22px}
.gl-two-main .gl-chb-tx b {font-size:17px}
/* 모바일 : 채널·중계·일정을 먼저, 그 아래 채팅과 바로가기 (로그인은 아래 탭에 있음) */
.gl-mo .gl-two {display:flex;flex-direction:column}
.gl-mo .gl-two-main {order:1}
.gl-mo .gl-aside {order:2;margin:12px 12px 0}
.gl-mo .gl-aside-login {display:none}
.gl-mo .gl-chat-box {height:420px}
.gl-mo .gl-two-main .gl-onlive {grid-template-columns:1fr}
/* 2단 안의 채널 버튼 : 카드 전체가 눌리므로 재생 단추는 빼고 이름이 다 보이게 */
.gl-two-main .gl-chb-go {display:none}
.gl-two-main .gl-chb {gap:12px;padding:16px 18px}
.gl-two-main .gl-chb-lt {width:42px;height:42px;border-radius:13px;font-size:21px}
.gl-mo .gl-two-main .gl-chb {gap:10px;padding:14px 12px}
.gl-mo .gl-two-main .gl-chb-lt {width:36px;height:36px;font-size:18px}
.gl-mo .gl-two-main .gl-chb-tx b {font-size:14px;letter-spacing:-.6px}
/* 채널 버튼 중 게시판으로 가는 버튼(C·D) : 깜빡이는 점 대신 화살표 */
.gl-chb-tx small.is-link:before {content:"›";width:auto;height:auto;border-radius:0;background:none;animation:none;font-size:13px;line-height:1}

/* ==========================================================================
   메인 머리 구역 반짝임 : 종목 버튼과 숫자 상자 위로 빛줄기가 천천히 지나가고 테두리가 은은하게 빛난다
   (마우스를 올리면 더 밝게). 움직임을 줄이도록 설정한 기기에서는 끈다.
   ========================================================================== */
:root, :root[data-theme="light"] {--gl-shine:rgba(255,255,255,.95); --gl-shine-tint:rgba(57,73,171,.16); --gl-glow:rgba(196,43,18,.28)}
:root[data-theme="dark"] {--gl-shine:rgba(255,255,255,.38); --gl-shine-tint:rgba(255,255,255,.14); --gl-glow:rgba(240,57,43,.35)}
.gl-sports a, .gl-stat > div {position:relative;overflow:hidden;isolation:isolate}
.gl-sports a:before, .gl-stat > div:before {content:"";position:absolute;top:-100%;left:0;z-index:-1;width:55%;height:300%;
    background:linear-gradient(110deg, transparent 0%, var(--gl-shine-tint) 35%, var(--gl-shine) 50%, var(--gl-shine-tint) 65%, transparent 100%);
    transform:translateX(-160%) rotate(18deg);pointer-events:none;animation:gl-shine 5s ease-in-out infinite}
.gl-sports a {animation:gl-glow 5s ease-in-out infinite}
.gl-stat > div {animation:gl-glow 5s ease-in-out infinite}
/* 버튼마다 조금씩 늦게 지나가서 물결처럼 보이게 */
.gl-sports a:nth-child(2), .gl-sports a:nth-child(2):before {animation-delay:.35s}
.gl-sports a:nth-child(3), .gl-sports a:nth-child(3):before {animation-delay:.7s}
.gl-sports a:nth-child(4), .gl-sports a:nth-child(4):before {animation-delay:1.05s}
.gl-sports a:nth-child(5), .gl-sports a:nth-child(5):before {animation-delay:1.4s}
.gl-stat > div:nth-child(1), .gl-stat > div:nth-child(1):before {animation-delay:1.6s}
.gl-stat > div:nth-child(2), .gl-stat > div:nth-child(2):before {animation-delay:1.95s}
.gl-stat > div:nth-child(3), .gl-stat > div:nth-child(3):before {animation-delay:2.3s}
.gl-sports a:hover, .gl-stat > div:hover {transform:translateY(-2px);box-shadow:0 0 0 1px var(--gl-glow), 0 0 18px var(--gl-glow);transition:transform .15s}
.gl-sports a:hover:before, .gl-stat > div:hover:before {animation-duration:1.4s}
@keyframes gl-shine {
    0%   {transform:translateX(-160%) rotate(18deg);opacity:0}
    6%   {opacity:1}
    32%  {transform:translateX(260%) rotate(18deg);opacity:.9}
    33%, 100% {transform:translateX(260%) rotate(18deg);opacity:0}
}
@keyframes gl-glow {
    0%, 100% {box-shadow:var(--soft-shadow)}
    20%      {box-shadow:0 0 0 1px var(--gl-glow), 0 0 16px var(--gl-glow)}
    45%      {box-shadow:var(--soft-shadow)}
}
@media (prefers-reduced-motion: reduce) {
    .gl-sports a, .gl-stat > div, .gl-sports a:before, .gl-stat > div:before {animation:none}
}

/* ==========================================================================
   완성도 보강 (2026-10) : 반짝임·빛·움직임을 사이트 전체에 절제해서 더한다
   - 빛줄기(gl-shine)는 메인 머리 구역과 같은 5초 주기. 요소마다 시작을 늦춰 한꺼번에 번쩍이지 않게 한다.
   - 버튼(input 포함)은 배경 그라데이션을 움직이는 방식(gl-sweep)이라 글자를 가리지 않는다.
   ========================================================================== */
:root {--gl-ease:cubic-bezier(.2,.7,.2,1)}
@keyframes gl-sweep {0%, 62% {background-position:120% 0} 100% {background-position:-60% 0}}
@keyframes gl-ring {0% {box-shadow:0 0 0 0 rgba(240,57,43,.55)} 70%, 100% {box-shadow:0 0 0 7px rgba(240,57,43,0)}}
@keyframes gl-flow {0% {background-position:0 0} 100% {background-position:40px 0}}
@keyframes gl-float {0%, 100% {transform:translateY(0)} 50% {transform:translateY(-6px)}}
@keyframes gl-drop {from {opacity:0;transform:translateY(-6px)} to {opacity:1;transform:none}}
@keyframes gl-text-shine {0%, 55% {background-position:100% 0} 100% {background-position:-100% 0}}
@keyframes gl-orb {0%, 100% {transform:translate(0, 0) scale(1)} 50% {transform:translate(-40px, 18px) scale(1.12)}}
@keyframes gl-breathe {0%, 100% {background-color:var(--primary-soft)} 50% {background-color:color-mix(in srgb, var(--primary-soft) 55%, var(--surface))}}

/* 1. 머리 구역 : 뒤쪽에 은은하게 움직이는 빛, 제목의 "스포츠 중계"에 빛이 흐르는 글자 */
.gl-top {position:relative;overflow:hidden;isolation:isolate}
.gl-top:before {content:"";position:absolute;right:-120px;top:-160px;z-index:-1;width:520px;height:520px;border-radius:50%;
    background:radial-gradient(circle, color-mix(in srgb, var(--primary) 22%, transparent) 0%, transparent 65%);animation:gl-orb 14s ease-in-out infinite;pointer-events:none}
.gl-top:after {content:"";position:absolute;left:30%;bottom:-200px;z-index:-1;width:460px;height:460px;border-radius:50%;
    background:radial-gradient(circle, color-mix(in srgb, var(--accent) 16%, transparent) 0%, transparent 65%);animation:gl-orb 18s ease-in-out infinite reverse;pointer-events:none}
.gl-top h1 em {background:linear-gradient(100deg, var(--primary-text) 0%, var(--primary-text) 40%, #ffb199 50%, var(--primary-text) 60%, var(--primary-text) 100%);background-size:200% 100%;
    -webkit-background-clip:text;background-clip:text;color:transparent;animation:gl-text-shine 6s ease-in-out infinite}
:root[data-theme="light"] .gl-top h1 em, :root:not([data-theme]) .gl-top h1 em {background-image:linear-gradient(100deg, var(--primary-text) 0%, var(--primary-text) 40%, #ff8a66 50%, var(--primary-text) 60%, var(--primary-text) 100%)}

/* 2. 라이브 채널 버튼 : 빛줄기가 차례로 지나가고, 글자 칸은 빛줄기보다 위에 */
.gl-chb {isolation:isolate}
.gl-chb:before {content:"";position:absolute;top:-100%;left:0;z-index:0;width:45%;height:300%;
    background:linear-gradient(110deg, transparent 0%, rgba(255,255,255,.10) 35%, rgba(255,255,255,.32) 50%, rgba(255,255,255,.10) 65%, transparent 100%);
    transform:translateX(-160%) rotate(18deg);pointer-events:none;animation:gl-shine 5s ease-in-out infinite;animation-delay:2.7s}
.gl-chb:nth-child(2):before {animation-delay:3.05s}
.gl-chb:nth-child(3):before {animation-delay:3.4s}
.gl-chb:nth-child(4):before {animation-delay:3.75s}
.gl-chb-lt {position:relative;z-index:1;box-shadow:inset 0 0 0 1px rgba(255,255,255,.18)}
.gl-chb:hover {box-shadow:0 14px 34px rgba(0,0,0,.28), 0 0 0 1px rgba(255,255,255,.12) inset}
.gl-chb:hover .gl-chb-lt {background:rgba(255,255,255,.26)}

/* 3. LIVE 표시 : 숨 쉬듯 퍼지는 고리 (사이트 전체) */
.gl-live {animation:gl-ring 2s ease-out infinite}

/* 4. 지금 중계 중 카드 : 떠오르는 움직임, 진행 막대에 흐르는 빛, 중계 보기 버튼 반짝임 */
.gl-nc {transition:transform .25s var(--gl-ease), box-shadow .25s}
.gl-nc:hover {transform:translateY(-4px);box-shadow:0 16px 36px rgba(0,0,0,.18), 0 0 0 1px color-mix(in srgb, var(--live) 35%, transparent)}
.gl-nc.is-soon:hover {box-shadow:0 16px 36px rgba(0,0,0,.18), 0 0 0 1px color-mix(in srgb, var(--accent) 40%, transparent)}
.gl-nc:not(.is-soon):before {box-shadow:0 0 12px var(--live)}
.gl-nc-bar i {background:var(--live) repeating-linear-gradient(-45deg, rgba(255,255,255,.28) 0 6px, transparent 6px 12px);animation:gl-flow 1.2s linear infinite}
.gl-nc-go, .gl-att-go em, body #ol_submit {background-image:linear-gradient(110deg, transparent 35%, rgba(255,255,255,.38) 50%, transparent 65%);background-size:250% 100%;background-repeat:no-repeat;animation:gl-sweep 5s ease-in-out infinite}
.gl-nc-go {box-shadow:0 6px 16px color-mix(in srgb, var(--primary) 35%, transparent)}
.gl-onlive .gl-nc:nth-child(2) .gl-nc-go {animation-delay:.4s}
.gl-onlive .gl-nc:nth-child(3) .gl-nc-go {animation-delay:.8s}
.gl-onlive .gl-nc:nth-child(n+4) .gl-nc-go {animation-delay:1.2s}
.gl-nc-go:hover {box-shadow:0 8px 22px color-mix(in srgb, var(--primary) 55%, transparent)}

/* 5. 오늘 일정 : 진행 중인 줄은 왼쪽 빨간 선과 은은하게 숨 쉬는 바탕, 줄에 마우스를 올리면 살짝 밀려난다 */
.gl-gm {position:relative;transition:background-color .2s, padding-left .2s}
.gl-gm:hover {padding-left:16px}
.gl-gm.is-live {box-shadow:inset 3px 0 0 var(--live);animation:gl-breathe 3s ease-in-out infinite}

/* 6. 구역 제목 : 앞에 작은 색 막대, "전체 보기" 링크는 알약 모양 */
.gl-sec h2 {display:flex;align-items:center;gap:10px}
.gl-sec h2:before {content:"";flex:none;width:5px;height:20px;border-radius:3px;background:linear-gradient(180deg, var(--primary), var(--accent))}
.gl-sec > a {padding:5px 12px;border-radius:14px;background:var(--surface);box-shadow:var(--soft-shadow);transition:color .2s, transform .2s}
.gl-sec > a:hover {color:var(--primary-text);transform:translateX(2px);text-decoration:none}
.gl-mo .gl-sec h2:before {height:16px}

/* 7. 눌리는 카드들 : 마우스를 올리면 떠오르고 테두리에 빛 */
.gl-lc, .gl-ai3 > a, .gl-hub a, .gl-cols3 > .gl-card, .gl-qa-list, .gl-about {transition:transform .25s var(--gl-ease), box-shadow .25s, background-color .2s}
.gl-lc:hover, .gl-ai3 > a:hover {transform:translateY(-4px);box-shadow:0 16px 36px rgba(0,0,0,.16), 0 0 0 1px color-mix(in srgb, var(--primary) 30%, transparent)}
.gl-hub a:hover {transform:translateY(-1px)}
.gl-lc-tt i {box-shadow:0 6px 14px rgba(0,0,0,.22), inset 0 0 0 1px rgba(255,255,255,.18);transition:transform .25s var(--gl-ease)}
.gl-lc:hover .gl-lc-tt i {transform:rotate(-6deg) scale(1.06)}
/* 빅매치 첫 카드 : 옅은 색면과 AI 표시 */
.gl-ai3 > a:first-child {background:linear-gradient(160deg, var(--tint), var(--surface) 62%)}
.gl-ai-lg i {box-shadow:0 0 0 3px color-mix(in srgb, var(--accent) 25%, transparent)}

/* 8. 하이라이트 : 아래쪽 그늘, 재생 단추가 커지며 빨갛게 */
.gl-hl-thumb:after {content:"";position:absolute;inset:auto 0 0 0;height:45%;background:linear-gradient(transparent, rgba(0,0,0,.45));pointer-events:none}
.gl-hl-thumb i {z-index:1;transition:transform .25s var(--gl-ease), background-color .25s}
.gl-hlrow a:hover .gl-hl-thumb i, .gl-hl-item:hover .gl-hl-thumb i {transform:scale(1.15);background:var(--live)}
.gl-hlrow a:hover h3 {color:var(--primary-text)}

/* 9. 왼쪽 단 : 출석 버튼 반짝임, 채팅 준비 아이콘 둥실 */
.gl-att-go {transition:transform .2s, box-shadow .2s}
.gl-att-go:hover {transform:translateY(-1px);box-shadow:0 8px 20px color-mix(in srgb, var(--primary) 25%, transparent)}
.gl-att-go em {animation-delay:1s}
.gl-chat-ready .fa {animation:gl-float 3.2s ease-in-out infinite}

/* 10. 메뉴 : 하위 메뉴가 부드럽게 내려오고, 선택된 메뉴 아래 작은 점 */
.gl-nav-main > li:hover .gl-nav-sub, .gl-nav-main > li:focus-within .gl-nav-sub {animation:gl-drop .18s ease-out}
.gl-nav-main > li > a {position:relative;transition:color .2s, background-color .2s}
.gl-nav-main > li.is-on > a:before {content:"";position:absolute;left:50%;bottom:-6px;width:5px;height:5px;margin-left:-2.5px;border-radius:50%;background:var(--primary);box-shadow:0 0 8px var(--primary)}

/* 11. 기본 버튼 : 마우스를 올리면 은은한 빛 */
.gl-btn {transition:background-color .2s, box-shadow .2s, transform .15s}
.gl-btn:not(.is-ghost):hover {box-shadow:0 6px 18px color-mix(in srgb, var(--primary) 40%, transparent);transform:translateY(-1px)}

/* 12. 휴대폰 아래 탭 : 선택된 칸 위에 작은 막대 */
#gl_tabbar a {position:relative}
#gl_tabbar a.is-on:before {content:"";position:absolute;top:0;left:50%;width:22px;height:3px;margin-left:-11px;border-radius:0 0 3px 3px;background:var(--primary)}

/* 13. 화면을 내리면 구역이 아래에서 부드럽게 올라온다 (스크립트가 켤 때만) */
.gl-reveal {opacity:0;transform:translateY(18px);transition:opacity .6s var(--gl-ease), transform .6s var(--gl-ease)}
.gl-reveal.is-in {opacity:1;transform:none}

@media (prefers-reduced-motion: reduce) {
    .gl-top:before, .gl-top:after, .gl-top h1 em, .gl-chb:before, .gl-live, .gl-nc-bar i, .gl-nc-go, .gl-att-go em, body #ol_submit,
    .gl-gm.is-live, .gl-chat-ready .fa, .gl-nav-main > li .gl-nav-sub {animation:none !important}
    .gl-reveal {opacity:1;transform:none;transition:none}
}

/* ==========================================================================
   모바일 다듬기 (2026-10)
   ========================================================================== */
@media (max-width:767px) {
    /* 방문자 집계 상자 : 모바일에선 화면만 길어져서 숨긴다 */
    body #visit {display:none}

    /* 라이브 채널 화면 : 버튼 2열, 좌우 여백 */
    .gl-live-page {padding:4px 12px 0}
    .gl-live-page .gl-chs {grid-template-columns:1fr 1fr;gap:10px;margin:0}
    .gl-live-page .gl-chb {gap:10px;padding:13px 12px;border-radius:16px}
    .gl-live-page .gl-chb-lt {width:36px;height:36px;border-radius:11px;font-size:18px}
    .gl-live-page .gl-chb-tx b {font-size:14px;letter-spacing:-.6px}
    .gl-live-page .gl-chb-tx small {font-size:11px}
    .gl-chs.is-tabs .gl-chb {opacity:.6}
    .gl-chs.is-tabs .gl-chb.is-on {opacity:1;outline:2px solid var(--text-strong);outline-offset:2px}
    .gl-live-box {margin-top:14px;border-radius:16px}
    .gl-live-note {margin:12px 2px 0;font-size:12px}

    /* 리그 순위표 : 머리글이 세로로 쪼개지지 않게 */
    .gl-card.gl-rk th {padding:10px 3px;font-size:11px;white-space:nowrap}
    .gl-card.gl-rk td {padding:9px 3px;font-size:12px}
    .gl-card.gl-rk th:first-child, .gl-card.gl-rk td:first-child {width:40px;padding-left:8px}
    .gl-card.gl-rk .gl-fav {display:none}
    .gl-card.gl-rk .gl-rk-team .gl-team {font-size:12px}

    /* 경기일정 : 긴 팀 이름이 칸 밖으로 넘치지 않게 */
    .gl-games li > a > span {min-width:0}
    .gl-games .gl-team > span {overflow:hidden;white-space:nowrap;text-overflow:ellipsis}

    /* 눌렀을 때 살짝 들어가는 반응 (손가락으로 누르는 화면) */
    .gl-chb:active, .gl-nc:active, .gl-lc:active, .gl-ai3 > a:active, .gl-hub a:active, .gl-sports a:active, .gl-att-go:active, .gl-gm:active {transform:scale(.98);transition:transform .08s}
}

/* 메인(모바일) */
.gl-mo .gl-lead {display:-webkit-box;overflow:hidden;-webkit-line-clamp:3;-webkit-box-orient:vertical}
.gl-mo .gl-top {padding:20px 16px}
.gl-mo .gl-top h1 {margin:12px 0 8px;font-size:23px;line-height:1.3}
.gl-mo .gl-top:before {width:320px;height:320px;right:-120px;top:-120px}
.gl-mo .gl-top:after {display:none}
.gl-mo .gl-stat {gap:8px}
.gl-mo .gl-stat > div {padding:10px 11px;border-radius:14px}
.gl-mo .gl-stat small {font-size:11px}
/* 오늘 일정 : 리그마다 5경기까지만 (나머지는 "일정 ›" 으로) */
.gl-mo .gl-tsch-lg .gl-gm:nth-of-type(n+6) {display:none}
.gl-mo .gl-gm:hover {padding-left:6px}
.gl-mo .gl-gm.is-live {padding-left:10px}
/* 채팅 : 아직 연결 전이면 낮게 */
.gl-mo .gl-chat-box:has(.gl-chat-ready) {height:190px}
.gl-mo .gl-chat-ready {gap:6px;padding:16px}
.gl-mo .gl-chat-ready .fa {font-size:26px}
/* 리그 바로가기 : 두 줄 격자 대신 옆으로 넘기는 한 줄 */
.gl-mo .gl-hub {display:flex;grid-template-columns:none;gap:8px;padding:0 14px 14px;overflow-x:auto;scrollbar-width:none}
.gl-mo .gl-hub::-webkit-scrollbar {display:none}
.gl-mo .gl-hub a {flex:none;padding:7px 12px;border-radius:18px}
/* 리그 카드 : 다음 경기는 두 줄까지 보여 준다 */
.gl-mo .gl-lc-nx {white-space:normal;line-height:1.4;min-height:58px;word-break:keep-all}
/* 빅매치 프리뷰 : 요약은 두 줄 */
.gl-mo .gl-ai3 p {-webkit-line-clamp:2}
.gl-mo .gl-ai3 h3 {font-size:16px}
.gl-mo .gl-ai3 > a:first-child h3 {font-size:18px}
/* 하이라이트 : 다음 영상이 살짝 보이게 */
.gl-mo .gl-hlrow a {width:68%}
.gl-mo .gl-hlrow h3 {font-size:13px}
/* 구역 사이 간격 정리 */
.gl-mo .gl-sec {margin:28px 14px 12px}
.gl-mo .gl-aside .gl-card + .gl-card {margin-top:0}

/* 모바일 : 한글 낱말이 줄 끝에서 쪼개지지 않게 (예: "경 / 기") */
@media (max-width:767px) {
    body {word-break:keep-all;overflow-wrap:anywhere}
}
/* PC 2단 안의 중계 카드 : 팀 이름이 잘리지 않게 점수·문장 크기를 맞춘다 */
.gl-two-main .gl-nc-vs {gap:8px}
.gl-two-main .gl-nc-vs .gl-team {font-size:15px;gap:6px}
.gl-two-main .gl-nc-vs .gl-crest {width:32px;height:32px;font-size:13px;line-height:32px}
.gl-two-main .gl-nc-sc {font-size:26px}

/* ==========================================================================
   팀 로고 : 이니셜 원 대신 로고. 로고는 원 안에 꽉 차게 두되 둥근 배경은 없앤다.
   다크 모드에서는 어두운 로고가 바탕에 묻히지 않게 옅은 빛 테두리를 준다.
   ========================================================================== */
.gl-crest.has-logo {position:relative;background:transparent !important;color:transparent;border-radius:0;overflow:visible}
.gl-crest.has-logo img {position:absolute;inset:0;width:100%;height:100%;object-fit:contain}
:root[data-theme="dark"] .gl-crest.has-logo img {filter:drop-shadow(0 0 1px rgba(255,255,255,.45)) drop-shadow(0 1px 2px rgba(0,0,0,.4))}
:root[data-theme="light"] .gl-crest.has-logo img, :root:not([data-theme]) .gl-crest.has-logo img {filter:drop-shadow(0 1px 2px rgba(15,23,34,.18))}

/* 크기 : 화면마다 글자 크기에 맞춰 이니셜 원보다 조금 크게 */
.gl-team .gl-crest.has-logo {width:24px;height:24px}                                 /* 기본 (목록·순위) */
.gl-games .gl-crest.has-logo, .gl-gm .gl-crest.has-logo {width:26px;height:26px}      /* 경기일정, 메인 오늘 일정 */
.gl-rk li .gl-crest.has-logo {width:22px;height:22px}                                 /* 메인 순위 */
.gl-nc-vs .gl-crest.has-logo {width:42px;height:42px}                                 /* 지금 중계 중 카드 */
.gl-two-main .gl-nc-vs .gl-crest.has-logo {width:36px;height:36px}
.gl-gd-team .gl-crest.has-logo {width:76px;height:76px}                               /* 경기 상세 */
@media (max-width:767px) {
    .gl-gd-team .gl-crest.has-logo {width:58px;height:58px}
    .gl-games .gl-crest.has-logo {width:22px;height:22px}
}
.gl-mo .gl-nc-vs .gl-crest.has-logo {width:34px;height:34px}
/* 메인 모바일 일정 : 이니셜 원은 숨기고, 로고만 작게 */
.gl-mo .gl-gm .gl-crest.has-logo {display:block;width:18px;height:18px}

/* 일반 화면 왼쪽 단 : 로그인 아래 채팅·출석체크·인기글 (메인 왼쪽 단과 같은 모양) */
#aside > .gl-card {margin-top:16px}
#aside .gl-c3-hd {margin:0}
#aside .gl-chat-box {height:460px}
#aside .gl-chat-box:has(.gl-chat-ready) {height:220px}

/* ==========================================================================
   리그 로고 : 밝은 화면엔 default, 어두운 화면엔 dark 이미지를 보인다
   ========================================================================== */
.gl-lglogo {position:relative;display:inline-block;flex:none;width:22px;height:22px;vertical-align:middle;font-style:normal}
.gl-lglogo img {position:absolute;inset:0;width:100%;height:100%;object-fit:contain}
.gl-lglogo .is-dark, :root[data-theme="dark"] .gl-lglogo .is-default {display:none}
:root[data-theme="dark"] .gl-lglogo .is-dark {display:block}
.gl-lglogo:empty {display:none}

/* 리그 버튼(순위·선수 순위) */
.gl-sp .gl-chips a.gl-chip-lg {display:inline-flex;align-items:center;gap:6px;padding-left:8px}
.gl-chip-lg .gl-lglogo {width:20px;height:20px}
.gl-chip-lg.is-on .gl-lglogo .is-default {display:none}
.gl-chip-lg.is-on .gl-lglogo .is-dark {display:block}   /* 빨간 버튼 위에서는 흰 로고 */

/* 메인 왼쪽 리그 바로가기 */
.gl-hub a {display:flex;align-items:center;gap:8px;color:var(--text-strong);font-size:13px;font-weight:700}
.gl-hub .gl-lglogo {width:22px;height:22px}

/* 오늘 일정·경기일정 리그 제목 */
.gl-tsch-lg h3 .gl-lglogo {width:22px;height:22px}
.gl-lg .gl-card-hd > span:first-child {display:inline-flex;align-items:center;gap:8px}
.gl-lg .gl-card-hd .gl-lglogo {width:24px;height:24px}
.gl-lg .gl-card-hd .gl-lg-sport {margin:0}

/* 메인 리그 카드 : 색 상자 위에 흰 로고. 로고를 못 불러오면 약칭 글자가 보인다 */
.gl-lc-tt .gl-lc-logo {position:relative;overflow:hidden}
.gl-lc-logo .gl-lglogo {position:absolute;inset:6px;width:auto;height:auto}
.gl-lc-logo .gl-lglogo img {background:inherit}
.gl-lc-logo:has(.gl-lglogo img) {color:transparent}
.gl-lc-logo .gl-lglogo .is-default {display:none}
.gl-lc-logo .gl-lglogo .is-dark {display:block}
.gl-mo .gl-lc-logo .gl-lglogo {inset:5px}

/* 배너 (관리자 > 굿라이브 관리 > 배너 관리). PC : 왼쪽 열 폭 × 높이 100px, 모바일 : 화면 폭 × 같은 비율 */
.gl-bnr {display:grid;gap:10px}
.gl-bnr a, .gl-bnr span {display:block;overflow:hidden;border-radius:12px;background:var(--border-soft)}
.gl-bnr img {display:block;width:100%;object-fit:cover}
.gl-bnr.is-pc img {height:100px}
.gl-bnr.is-mo {margin:16px 0 0}
.gl-bnr.is-mo img {height:auto;aspect-ratio:var(--bnr-ratio, 32 / 10)}
#aside .gl-bnr {margin-top:16px}


/* 대메뉴 하위 메뉴 : 4px 틈을 메우고, 마우스가 벗어나도 0.3초 뒤에 닫는다 (2026-10-29) */
.gl-nav-sub {display:block;visibility:hidden;opacity:0;pointer-events:none;transition:opacity .12s ease, visibility 0s linear .3s}
.gl-nav-sub::before {content:"";position:absolute;left:0;right:0;top:-14px;height:14px}
.gl-nav-main > li:hover .gl-nav-sub, .gl-nav-main > li:focus-within .gl-nav-sub {visibility:visible;opacity:1;pointer-events:auto;transition:opacity .12s ease, visibility 0s linear 0s}

/* 실시간 채팅 : vchat 이 켜져 있으면 우리 제목줄을 숨기고 위젯이 카드를 꽉 채운다 (테두리·모서리 한 겹, 제목은 vchat 머리줄) 2026-10-30
   꺼져 있을 때("준비 중")는 지금처럼 제목줄과 안쪽 칸을 보인다. 카드 바깥 1px 테두리는 왼쪽 열 다른 상자와 맞추려고 남긴다 */
.gl-card.gl-chat:has(v-chat) {overflow:hidden}
.gl-card.gl-chat:has(v-chat) > .gl-c3-hd {display:none}
.gl-card.gl-chat:has(v-chat) > .gl-chat-box {margin:0;border-radius:0;background:transparent}

/* 메인 : 스포츠 중계 채널 (중계 업체 iframe). 화면이 오기 전·오지 않을 때는 뒤에 깔린 "준비 중" 안내가 보인다 2026-10-30 */
.gl-feed-box {position:relative;min-height:320px;padding:0;background:var(--surface)}
.gl-feed-box iframe {position:relative;z-index:1;display:block;width:100%;border:0;background:transparent}
.gl-feed-ready {position:absolute;top:0;left:0;right:0;z-index:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;height:320px;padding:24px;text-align:center;color:var(--text-muted);font-size:13px;line-height:1.6}
.gl-feed-ready .fa {font-size:34px;color:var(--text-faint)}
.gl-feed-ready b {color:var(--text-strong);font-size:15px}
.gl-feed-box.is-sized .gl-feed-ready {display:none}
.gl-mo .gl-feed-box {margin:0 14px;min-height:280px}
.gl-mo .gl-feed-ready {height:280px}

/* 라이브 채널(live.php) : 메인과 같은 2단 (왼쪽 사이드 + 중계 화면). 휴대폰은 .gl-mo 로 감싸 메인과 같은 1단(중계 먼저, 채팅 아래) 2026-10-30 */
.gl-live-page.gl-two .gl-chs {margin-top:22px}
.gl-live-page.gl-two .gl-feed .gl-sec {margin-top:22px}
.gl-mo .gl-live-page.gl-two .gl-chs {margin:12px 12px 0}
.gl-mo .gl-live-page.gl-two .gl-feed .gl-sec {margin:18px 14px 10px}

/* 하이라이트 쪽 나눔 · 크게 보기 · 종목 점 (2026-10-30 스포인사이드 모양) — 한 쪽 20개라 PC 는 4칸(5줄), 휴대폰은 2칸(10줄) */
#wrapper .gl-hl.is-page {grid-template-columns:repeat(4,1fr)}
@media (max-width:767px) { #wrapper .gl-hl.is-page {grid-template-columns:repeat(2,1fr) !important} }
.gl-hl-item small .gl-lg-sport {margin-right:5px;padding:1px 7px;font-size:11px}
.gl-lg-sport.is-etc {background:var(--surface-3);color:var(--text-muted)}
.gl-sp-dot {display:inline-block;width:7px;height:7px;margin-right:6px;border-radius:50%;background:var(--text-faint);vertical-align:1px}
.gl-sp-dot.is-soccer {background:#1f9d62} .gl-sp-dot.is-baseball {background:#c42b12} .gl-sp-dot.is-basketball {background:#e07b1b}
.gl-sp-dot.is-volleyball {background:#3949ab} .gl-sp-dot.is-hockey {background:#1c7c8c}
.gl-hl-now {padding:14px}
.gl-hl-now .gl-modal-video {border-radius:var(--r-md);overflow:hidden}
.gl-hl-now-meta {padding:14px 4px 2px}
.gl-hl-now-meta h2 {margin:0 0 6px;color:var(--text-strong);font-size:18px;font-weight:800}
.gl-hl-now-meta p {margin:0 0 12px;color:var(--text-muted);font-size:13px}
.gl-pager {display:flex;justify-content:center;flex-wrap:wrap;gap:6px;margin:22px 0 6px}
.gl-pager a {min-width:36px;height:36px;padding:0 12px;border-radius:18px;background:var(--surface);box-shadow:var(--soft-shadow);color:var(--text-muted);font-size:13px;font-weight:700;line-height:36px;text-align:center}
.gl-pager a:hover {color:var(--text-strong);text-decoration:none}
.gl-pager a.is-on {background:var(--primary);color:var(--on-accent);box-shadow:none}
.gl-sp-dot.is-esports {background:#7a4bc4}   /* 하이라이트 e스포츠 탭 (2026-10-30) */

/* 하단 탭 "채팅" 으로 메인의 채팅 칸에 내려올 때 위쪽 여유 (2026-11-01) */
.gl-mo #gl_chat {scroll-margin-top:12px}

/* 배너 : 올린 그림의 원래 비율 그대로 보여 준다 (2026-11-01. 전에는 PC 높이 100px·모바일 32:10 칸에 맞춰 위아래·좌우가 잘림) */
.gl-bnr img, .gl-bnr.is-pc img, .gl-bnr.is-mo img {height:auto;aspect-ratio:auto;object-fit:fill}
/* 모바일 메인·라이브 : 본문 칸을 화면 폭에 맞춘다 (.gl-two 의 align-items:start 때문에 배너가 그림 폭 340px 로 줄어 왼쪽에 붙었다) */
.gl-mo .gl-two {align-items:stretch}
.gl-mo .gl-two-main > .gl-bnr.is-mo {margin:12px 12px 0}
.gl-mo .gl-live-page .gl-bnr.is-mo {margin:12px 12px 0}   /* 라이브 : 채널 버튼과 같은 여백 */

/* 중계 업체 화면 : 높이를 보내오기 전(오류 포함)에는 감추고 안내를 보인다 (2026-11-01) */
.gl-feed-box.is-wait:not(.is-sized) iframe {position:absolute;top:0;left:0;height:100% !important;opacity:0;pointer-events:none}
.gl-feed-late, .gl-feed-go {display:none}
.gl-feed-box.is-wait .gl-feed-go {display:flex;gap:8px;margin-top:6px}
.gl-feed-go a {padding:7px 14px;border-radius:999px;background:var(--surface-2);color:var(--text-strong);font-size:13px;font-weight:700}
.gl-feed-go a:hover {text-decoration:none;background:var(--border-soft)}
.gl-feed-box.is-late .gl-feed-msg {display:none}
.gl-feed-box.is-late .gl-feed-late {display:block}

/* 중계 업체 화면 높이 상한 (메인, 2026-11-01) : 업체가 알려 준 높이로 iframe 은 다 펴고, 바깥 칸만 --feed-max 까지 두어 칸 안에서 스크롤 */
.gl-feed-box.is-capped.is-sized {max-height:var(--feed-max);overflow-y:auto;-webkit-overflow-scrolling:touch}
