/* 指尖踏江湖 · 玩家端统一主题（与官网 zjtjh.bxclyl.cn 同款黑金）
   加载在各页面自带 <style> 之后，用于覆盖原来的紫色主题；后台管理/代理端不引用本文件。 */
:root {
  --bg: #07090e; --gold: #e9c67a; --gold-hi: #fff1c4; --gold-deep: #a8792c;
  --gold-line: rgba(233, 198, 122, .55); --gold-faint: rgba(233, 198, 122, .18);
  --text: #eadfc6; --muted: #a39881; --line: rgba(255, 255, 255, .08);
  --card: linear-gradient(180deg, rgba(27, 33, 50, .85), rgba(14, 18, 28, .95));
  --f-title: "STKaiti", "KaiTi", "Kaiti SC", "楷体", "BiauKai", serif;
  --f-body: "PingFang SC", "Microsoft YaHei", "Hiragino Sans GB", "Noto Sans SC", "Source Han Sans SC", sans-serif;
  --primary-color: var(--gold); --primary-dark: var(--gold-deep); --bg-dark: #0d1017; --bg-card: #141925;
  --text-light: var(--text); --text-muted: var(--muted);
  --bs-body-color: var(--text); --bs-link-color: var(--gold); --bs-link-hover-color: var(--gold-hi);
  --bs-primary: var(--gold); --bs-primary-rgb: 233, 198, 122; --bs-border-color: var(--line);
}
html { -webkit-text-size-adjust: 100%; }
body {
  color: var(--text) !important; font-family: var(--f-body) !important;
  background: radial-gradient(ellipse at 50% 0%, rgba(233, 198, 122, .10), transparent 55%), var(--bg) !important;
  position: relative;
}
body::before {
  content: ""; position: fixed; inset: 0; z-index: -1; pointer-events: none; opacity: .5;
  background: url("../img/bg.jpg") center top / cover no-repeat; filter: saturate(.8);
  -webkit-mask-image: linear-gradient(180deg, rgba(0,0,0,.9), transparent 70%); mask-image: linear-gradient(180deg, rgba(0,0,0,.9), transparent 70%);
}
a { color: var(--gold); } a:hover { color: var(--gold-hi); }
.text-muted, .text-white-50, .text-secondary, .form-text { color: var(--muted) !important; }
.text-primary, .text-info { color: var(--gold) !important; }
hr, .border-secondary { border-color: var(--gold-faint) !important; }

/* 品牌 */
.zj-brand { display: inline-flex; align-items: center; gap: 10px; font-family: var(--f-title); font-weight: 700; letter-spacing: 3px; color: #f1e2c0 !important; text-decoration: none; -webkit-text-fill-color: initial !important; background: none !important; }
.zj-brand::before { content: ""; width: 11px; height: 11px; transform: rotate(45deg); flex: none; background: linear-gradient(135deg, var(--gold-hi), var(--gold-deep)); }
.zj-brand:hover { color: var(--gold-hi) !important; }
.zj-title-img { display: block; width: min(260px, 80%); height: auto; margin: 0 auto 6px; filter: drop-shadow(0 6px 14px rgba(0,0,0,.7)); }
.zj-slogan-img { display: block; width: min(280px, 86%); height: auto; margin: 0 auto 14px; filter: drop-shadow(0 3px 8px rgba(0,0,0,.7)); }

/* 卡片 */
.login-card, .card-box, .card-recharge, .card, .stat-card, .character-card, .modal-content, .offcanvas, .user-sidebar {
  background: var(--card) !important; border: 1px solid var(--gold-faint) !important; color: var(--text) !important;
  backdrop-filter: none;
}
.login-card, .card-box, .card-recharge { position: relative; border-radius: 18px !important; box-shadow: 0 30px 80px rgba(0, 0, 0, .65), 0 0 40px rgba(233, 180, 90, .10); overflow: hidden; }
.login-card::before, .card-box::before, .card-recharge::before, .card::before { content: ""; position: absolute; inset: 0 0 auto 0; height: 2px; background: linear-gradient(90deg, transparent, var(--gold), transparent); opacity: .8; pointer-events: none; }
.card { position: relative; border-radius: 14px !important; overflow: hidden; }
.card-header { background: rgba(233, 198, 122, .06) !important; border-bottom: 1px solid var(--gold-faint) !important; color: #f1e2c0 !important; font-family: var(--f-title); letter-spacing: 2px; font-weight: 700; }
.card-body, .card .table td, .card .table th, .stat-label, .character-info h5, .character-info p { color: var(--text) !important; }
.stat-card:hover, .character-card:hover { border-color: rgba(233, 198, 122, .45) !important; transform: translateY(-2px); }
.stat-value { color: var(--gold-hi) !important; font-family: var(--f-title); }
.stat-icon, .empty-state i { color: var(--gold) !important; }
.level-badge, .badge.bg-primary, .badge.bg-info { background: linear-gradient(180deg, #fbe7ab, #d9a94f) !important; color: #2b1906 !important; }

/* 标题 */
.login-header h1, .card-box h1, .card-recharge h2, .user-welcome h2, .modal-title, .offcanvas-title {
  font-family: var(--f-title) !important; font-weight: 700 !important; letter-spacing: 4px;
  background: linear-gradient(180deg, var(--gold-hi) 0%, #f2d189 40%, #d4a24a 70%, #9c6b25 100%) !important;
  -webkit-background-clip: text !important; background-clip: text !important; -webkit-text-fill-color: transparent !important; color: transparent !important;
}
.login-header p, .card-box .subtitle, .welcome-subtitle { color: var(--muted) !important; letter-spacing: 1px; }

/* 顶栏 / 侧栏 */
.navbar { background: rgba(9, 11, 17, .96) !important; border-bottom: 1px solid var(--gold-faint) !important; box-shadow: 0 6px 20px rgba(0, 0, 0, .45); backdrop-filter: none; }
.navbar-brand { font-family: var(--f-title); font-weight: 700; letter-spacing: 3px; color: #f1e2c0 !important; background: none !important; -webkit-text-fill-color: initial !important; }
.nav-link { color: #d8cbb0 !important; }
.nav-link:hover, .nav-link.active { color: var(--gold-hi) !important; }
.navbar .nav-link.active { border-bottom: 2px solid var(--gold); }
.user-sidebar { background: rgba(9, 11, 17, .96) !important; border-right: 1px solid var(--gold-faint) !important; border-top: 0 !important; border-bottom: 0 !important; border-left: 0 !important; border-radius: 0 !important; }
.user-sidebar .brand, .offcanvas .brand { font-family: var(--f-title); font-weight: 700; letter-spacing: 3px; color: #f1e2c0 !important; background: none !important; -webkit-text-fill-color: initial !important; padding: 0 1.25rem .75rem; }
.user-sidebar .nav-link, .offcanvas .nav-link { color: #d8cbb0 !important; }
.user-sidebar .nav-link:hover, .offcanvas .nav-link:hover { background: rgba(233, 198, 122, .08) !important; color: var(--gold-hi) !important; }
.user-sidebar .nav-link.active, .offcanvas .nav-link.active { background: linear-gradient(90deg, rgba(233, 198, 122, .18), rgba(233, 198, 122, .04)) !important; color: var(--gold-hi) !important; border-left: 3px solid var(--gold); }
.btn-dark.border { background: rgba(9, 11, 17, .9) !important; border-color: var(--gold-faint) !important; color: var(--gold) !important; }

/* 表单 */
.form-label { color: #d8cbb0 !important; font-weight: 600; letter-spacing: 1px; }
.form-control, .form-select, .input-group-text {
  color: var(--text) !important; background: rgba(0, 0, 0, .35) !important; border: 1px solid var(--line) !important; border-radius: 9px !important; box-shadow: none !important;
}
.input-group > .form-control, .input-group > .input-group-text, .input-group > .btn { border-radius: 9px; }
.input-group > :not(:first-child) { border-top-left-radius: 0 !important; border-bottom-left-radius: 0 !important; }
.input-group > :not(:last-child) { border-top-right-radius: 0 !important; border-bottom-right-radius: 0 !important; }
.input-group-text { color: var(--gold-deep) !important; }
.input-group .form-control { border-left: 1px solid var(--line) !important; }
.form-control:focus, .form-select:focus { background: rgba(0, 0, 0, .5) !important; border-color: var(--gold-line) !important; box-shadow: 0 0 0 3px rgba(233, 198, 122, .15) !important; }
.form-control::placeholder { color: #6f6a5e !important; }
.form-control[readonly] { opacity: .75; }
.form-select { background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23e9c67a' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e") !important; background-repeat: no-repeat !important; background-position: right 12px center !important; background-size: 14px 10px !important; }
.form-select option { background: #12161f; color: var(--text); }
.form-check-input:checked { background-color: var(--gold) !important; border-color: var(--gold) !important; }

/* 按钮 */
.btn-primary, .btn-success, .btn-info {
  position: relative; overflow: hidden; color: #2b1906 !important; font-weight: 700 !important; letter-spacing: 2px;
  background: linear-gradient(180deg, #fbe7ab 0%, #e6bb62 55%, #c18a36 100%) !important;
  border: 1px solid #ffe6a3 !important; border-radius: 9px !important;
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, .6), 0 6px 20px rgba(233, 170, 70, .3) !important;
  transition: transform .15s, filter .2s;
}
.btn-primary::after { content: ""; position: absolute; top: 0; bottom: 0; left: -70%; width: 45%; pointer-events: none; background: linear-gradient(100deg, transparent, rgba(255, 255, 255, .6), transparent); transform: skewX(-20deg); animation: zj-shine 3.8s ease-in-out 1s infinite; }
@keyframes zj-shine { 0% { left: -70%; } 40%, 100% { left: 130%; } }
.btn-primary:hover, .btn-success:hover, .btn-info:hover { transform: translateY(-1px); filter: brightness(1.06); box-shadow: inset 0 1px 0 rgba(255, 255, 255, .6), 0 8px 26px rgba(233, 170, 70, .4) !important; }
.btn-primary:disabled, .btn-primary.disabled { opacity: .7; transform: none; }
.btn-primary .spinner-border { color: #2b1906; }
.btn-outline-light, .btn-outline-info, .btn-outline-primary, .btn-outline-secondary, .btn-secondary {
  color: var(--gold) !important; background: rgba(0, 0, 0, .3) !important; border: 1px solid var(--gold-line) !important; border-radius: 9px !important;
}
.btn-outline-light:hover, .btn-outline-info:hover, .btn-outline-primary:hover, .btn-outline-secondary:hover, .btn-secondary:hover, .amount-btn.active {
  color: #2b1906 !important; background: linear-gradient(180deg, #fbe7ab, #d9a94f) !important; border-color: #ffe6a3 !important;
}
.btn-outline-danger { color: #ff9a8b !important; border-color: rgba(214, 58, 44, .5) !important; }
.btn-close-white { filter: invert(1) grayscale(100%) brightness(200%) sepia(.6); }

/* 提示 / 表格 / 分页 */
.alert { border-radius: 9px !important; }
.alert-danger { color: #ff9a8b !important; background: rgba(214, 58, 44, .14) !important; border: 1px solid rgba(214, 58, 44, .4) !important; }
.alert-success { color: #7fd8a0 !important; background: rgba(40, 160, 90, .14) !important; border: 1px solid rgba(40, 160, 90, .4) !important; }
.alert-info, .alert-warning { color: var(--gold-hi) !important; background: rgba(233, 198, 122, .08) !important; border: 1px solid var(--gold-faint) !important; }
.table { --bs-table-bg: transparent; --bs-table-color: var(--text); color: var(--text) !important; }
.table thead th { color: var(--gold) !important; border-bottom: 1px solid var(--gold-faint) !important; font-weight: 600; letter-spacing: 1px; background: rgba(233, 198, 122, .05) !important; }
.table tbody td { border-color: var(--line) !important; color: var(--text) !important; }
.table-hover tbody tr:hover td { background: rgba(233, 198, 122, .05) !important; }
.page-link { background: rgba(0, 0, 0, .3) !important; border-color: var(--line) !important; color: var(--gold) !important; }
.page-item.active .page-link { background: linear-gradient(180deg, #fbe7ab, #d9a94f) !important; color: #2b1906 !important; border-color: #ffe6a3 !important; }
.page-item.disabled .page-link { color: var(--muted) !important; }
.modal-content { border-radius: 16px !important; box-shadow: 0 30px 80px rgba(0, 0, 0, .7); }
.modal-header, .modal-footer { border-color: var(--gold-faint) !important; }
.bg-dark { background: #0d1017 !important; }
#captcha-img { border: 1px solid var(--gold-faint); background: #fff; }

/* 用户中心补充 */
.stat-value { background: linear-gradient(180deg, var(--gold-hi) 0%, #f2d189 40%, #d4a24a 70%, #9c6b25 100%) !important; -webkit-background-clip: text !important; background-clip: text !important; -webkit-text-fill-color: transparent !important; }
.user-main > div[style*="99,102,241"] { background: rgba(233, 198, 122, .08) !important; border: 1px solid var(--gold-faint) !important; color: var(--text); }
.user-sidebar .brand, .offcanvas .brand, .zj-brand, .navbar-brand { text-decoration: none !important; }
.user-main h2, .user-main h1 { font-family: var(--f-title); letter-spacing: 3px; color: #f1e2c0; }
.user-main .btn-primary, .user-main .btn-outline-light { font-family: var(--f-body); }

/* ===== 管理端 / 代理端 ===== */
.navbar-brand { color: #f1e2c0 !important; }
.navbar .dropdown-menu, .dropdown-menu-dark { background: #12161f !important; border: 1px solid var(--gold-faint) !important; }
.dropdown-item { color: var(--text) !important; } .dropdown-item:hover { background: rgba(233, 198, 122, .1) !important; color: var(--gold-hi) !important; }
.dropdown-divider { border-color: var(--gold-faint) !important; }
.navbar-toggler { border-color: var(--gold-faint) !important; color: var(--gold) !important; }
.offcanvas-md.sidebar, .offcanvas.sidebar { background: rgba(9, 11, 17, .96) !important; border-right: 1px solid var(--gold-faint) !important; border-radius: 0 !important; border-top: 0 !important; border-bottom: 0 !important; border-left: 0 !important; }
.offcanvas-header { border-bottom: 1px solid var(--gold-faint) !important; }
.sidebar .nav-link { color: #d8cbb0 !important; background: transparent; }
.sidebar .nav-link:hover { background: rgba(233, 198, 122, .08) !important; color: var(--gold-hi) !important; }
.sidebar .nav-link.active { background: linear-gradient(90deg, rgba(233, 198, 122, .18), rgba(233, 198, 122, .04)) !important; color: var(--gold-hi) !important; border-left: 3px solid var(--gold); }
.sidebar .nav-link .badge.bg-danger { background: #c2412f !important; }
main h1, main h2, main h3, main h4, main h5, main h6, .card-title { color: #f1e2c0 !important; }
main h1, main h2, main h3 { font-family: var(--f-title); letter-spacing: 3px; }
.stat-value.primary { color: var(--gold-hi) !important; }
.stat-value.info { color: #8cc8ff !important; } .stat-value.success { color: #7fd8a0 !important; } .stat-value.warning { color: #ffc46b !important; }
.stat-value.primary, .stat-value.info, .stat-value.success, .stat-value.warning { background: none !important; -webkit-text-fill-color: initial !important; }
.quick-action { background: rgba(233, 198, 122, .05) !important; border: 1px solid var(--line); color: var(--text) !important; }
.quick-action:hover { background: rgba(233, 198, 122, .12) !important; border-color: var(--gold-line); color: var(--gold-hi) !important; }
.quick-action i { color: var(--gold); }
.tool-card:hover { border-color: rgba(233, 198, 122, .45) !important; }
.nav-pills .nav-link { color: #d8cbb0 !important; } .nav-pills .nav-link:hover { color: var(--gold-hi) !important; background: rgba(233, 198, 122, .08) !important; }
.nav-pills .nav-link.active, #ngmTabs .nav-link.active { background: linear-gradient(180deg, #fbe7ab, #d9a94f) !important; color: #2b1906 !important; border-color: transparent !important; }
.nav-tabs, .nav-tabs-dark { border-bottom-color: var(--gold-faint) !important; }
.nav-tabs .nav-link, .nav-tabs-dark .nav-link, #ngmTabs .nav-link { color: #d8cbb0 !important; border-color: transparent !important; }
.nav-tabs .nav-link.active, .nav-tabs-dark .nav-link.active { color: var(--gold-hi) !important; background: rgba(233, 198, 122, .1) !important; border-color: var(--gold-faint) var(--gold-faint) transparent !important; }
.result-box { background: rgba(0, 0, 0, .35) !important; border: 1px solid var(--line); }
.result-box.success { border-left: 4px solid #3fae6a !important; } .result-box.error { border-left: 4px solid #d63a2c !important; }
.badge-success, .badge.bg-success { background: #2f8f57 !important; } .badge-danger, .badge.bg-danger, .badge-rejected { background: #c2412f !important; }
.badge-pending, .badge.bg-warning { background: #b8862d !important; color: #fff !important; } .badge-approved { background: #2f8f57 !important; } .badge-fixed { background: var(--gold-deep) !important; }
.badge.bg-secondary { background: #3a3f4d !important; }
.btn-danger { background: linear-gradient(180deg, #d9584a, #a63426) !important; border-color: #e8756a !important; color: #fff !important; border-radius: 9px !important; }
.btn-warning { background: linear-gradient(180deg, #f0c060, #c48a2a) !important; border-color: #ffd98a !important; color: #2b1906 !important; border-radius: 9px !important; }
.btn-approve { background: linear-gradient(180deg, #4fbf7d, #2f8f57) !important; border-color: #6fd39a !important; color: #fff !important; }
.btn-reject { background: linear-gradient(180deg, #d9584a, #a63426) !important; border-color: #e8756a !important; color: #fff !important; }
.modal-dark .modal-content, .modal-content.bg-dark { background: var(--card) !important; }
.modal-dark .form-select, .modal-dark .form-control, .ngm-op .form-control, #ngmZone, #ngmActor, .ngm-target, .ngm-target-acct, .dashboard-filter .form-select, .dashboard-filter .form-control, .bug-chart-filter .form-control, .bug-chart-filter .form-select, #manualRechargeModal .form-control { background: rgba(0, 0, 0, .35) !important; border-color: var(--line) !important; color: var(--text) !important; }
.ngm-op, .ngm-dsec, .ngm-kv-row { border-color: var(--line) !important; }
.ngm-dsec-h { color: var(--gold); } .ngm-kv-row:hover { background: rgba(233, 198, 122, .05) !important; }
.table-dark { --bs-table-bg: transparent !important; --bs-table-color: var(--text); --bs-table-border-color: var(--line); color: var(--text) !important; }
.table-dark thead th { color: var(--gold) !important; }
.table-striped > tbody > tr:nth-of-type(odd) > * { --bs-table-accent-bg: rgba(233, 198, 122, .03); color: var(--text); }
.upload-area { border: 2px dashed var(--gold-line) !important; background: rgba(233, 198, 122, .04) !important; }
.upload-area:hover, .upload-area.dragover { background: rgba(233, 198, 122, .1) !important; }
.swal2-popup { background: #12161f !important; color: var(--text) !important; border: 1px solid var(--gold-faint); }
.swal2-title, .swal2-html-container { color: var(--text) !important; }
.swal2-confirm { background: linear-gradient(180deg, #fbe7ab, #d9a94f) !important; color: #2b1906 !important; }
.login-header .badge { background: rgba(233, 198, 122, .12) !important; color: var(--gold) !important; border: 1px solid var(--gold-line); font-weight: 500; letter-spacing: 1px; }
.login-header .zj-title-img { width: min(220px, 70%); margin-bottom: 10px; }
.login-header h1 { font-size: 1.6rem !important; }
.accordion-item, .accordion-button { background: rgba(0, 0, 0, .25) !important; color: var(--text) !important; border-color: var(--line) !important; }
.accordion-button:not(.collapsed) { color: var(--gold-hi) !important; background: rgba(233, 198, 122, .08) !important; }
.list-group-item { background: transparent !important; color: var(--text) !important; border-color: var(--line) !important; }
.progress { background: rgba(0, 0, 0, .35); } .progress-bar { background: linear-gradient(90deg, #d9a94f, #fbe7ab); color: #2b1906; }
.form-control::-webkit-calendar-picker-indicator { filter: invert(.75) sepia(.5); }
