/* Operations workspace: scoped so player and mall surfaces stay independent. */
.xj-admin { margin:0; font-size:14px; line-height:1.65; }
.xj-admin *, .xj-admin *::before, .xj-admin *::after { box-sizing:border-box; }
.xj-admin a { color:var(--xj-jade); text-underline-offset:3px; }
.xj-admin button, .xj-admin input, .xj-admin select, .xj-admin textarea { font:inherit; }
.xj-admin button, .xj-admin .xj-button { min-height:44px; padding:9px 16px; border:1px solid var(--xj-line); border-radius:8px; background:#fffdf7; color:var(--xj-ink); cursor:pointer; text-decoration:none; display:inline-flex; align-items:center; justify-content:center; gap:6px; line-height:1.4; }
.xj-admin button:hover, .xj-admin .xj-button:hover { border-color:var(--xj-gold); background:#f3eee1; }
.xj-admin button:disabled { opacity:.55; cursor:wait; }
.xj-admin button.primary, .xj-admin button.xj-primary, .xj-admin .xj-button-primary { background:var(--xj-jade); border-color:var(--xj-jade); color:#fffdf7; }
.xj-admin button.xj-danger { background:#fff4f0; border-color:#d6a299; color:#923a31; }
.xj-admin button.xj-financial { background:#f7efd9; border-color:var(--xj-gold); color:#6e501b; }
.xj-admin button.xj-danger:hover { background:#f7e0db; }
.xj-admin :focus-visible { outline:3px solid var(--xj-gold); outline-offset:3px; }
.xj-admin .muted { color:#6b776f; }
.xj-admin .error, .xj-admin .danger-text { color:#a33f36; }
.xj-admin .ok-text { color:var(--xj-jade); }
.xj-admin h1, .xj-admin h2, .xj-admin h3 { color:var(--xj-ink); line-height:1.35; }
.xj-admin h1 { margin:0 0 24px; font-size:28px; font-weight:600; font-family:"Songti SC","STSong",serif; }
.xj-admin h2 { font-size:19px; }
.xj-admin h3 { font-size:16px; }
.xj-sidebar { width:240px; position:fixed; inset:0 auto 0 0; z-index:40; background:#203e35; color:#e6e4d6; display:flex; flex-direction:column; border-right:1px solid #a88a5155; }
.xj-admin .xj-admin-brand { display:flex; align-items:center; gap:12px; padding:28px 20px 23px; color:#fff9e8; text-decoration:none; font-family:"Songti SC","STSong",serif; font-size:22px; letter-spacing:2px; }
.xj-admin-brand small { display:block; font:10px/2 system-ui,sans-serif; color:#b9c6b6; letter-spacing:2px; margin-top:3px; }
.xj-brand-seal { border:1px solid #c4a970; border-radius:7px; width:43px; height:43px; display:grid; place-items:center; color:#e0c48a; font-size:26px; flex-shrink:0; }
.xj-side-nav { padding:0 14px 24px; overflow-y:auto; overscroll-behavior:contain; flex:1; }
.xj-nav-group { margin-top:17px; }
.xj-nav-label { margin:0 12px 6px; color:#9eb1a3; font-size:11px; letter-spacing:2px; }
.xj-admin .xj-nav-link { position:relative; display:flex; align-items:center; min-height:44px; padding:10px 14px; color:#dfebe1; text-decoration:none; border-radius:7px; margin:3px 0; font-size:14px; }
.xj-admin .xj-nav-link:hover { background:#ffffff10; }
.xj-admin .xj-nav-link.active { background:#f5f1e8; color:#234d40; font-weight:700; box-shadow:0 3px 12px #071f1a25; }
.xj-admin .xj-nav-link.active::before { content:""; position:absolute; left:0; top:12px; bottom:12px; width:3px; border-radius:3px; background:var(--xj-gold); }
.xj-sidebar-foot { border-top:1px solid #ffffff12; padding:14px 24px; font-size:11px; color:#a0b4a4; }
.xj-admin-workspace { margin-left:240px; min-width:0; }
.xj-topbar { min-height:78px; padding:16px 36px; display:flex; justify-content:space-between; align-items:center; gap:16px; border-bottom:1px solid var(--xj-line); background:#fffcf5e8; }
.xj-topbar-heading, .xj-account-menu { display:flex; align-items:center; gap:16px; min-width:0; }
.xj-breadcrumb { color:#738077; font-size:12px; }
.xj-breadcrumb > span { padding:0 12px; color:#b6b5a7; }
.xj-breadcrumb strong { color:var(--xj-ink); font-weight:500; }
.xj-account-name { font-size:13px; max-width:160px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.xj-admin main { max-width:1700px; padding:32px 36px 48px; min-height:calc(100vh - 146px); min-width:0; }
.xj-admin main > * { max-width:100%; }
.xj-admin-footer { font-size:11px; color:#758077; border-top:1px solid var(--xj-line); padding:20px 36px; }
.xj-admin-footer span { margin:0 8px; color:var(--xj-gold); }
.xj-admin .xj-menu-toggle, .xj-admin .xj-drawer-close { display:none; }
.xj-drawer-backdrop[hidden] { display:none; }
.xj-skip-link { position:fixed; z-index:100; top:12px; left:260px; transform:translateY(-150%); padding:12px; border-radius:6px; background:#fff; }
.xj-skip-link:focus { transform:none; }
.xj-admin .xj-panel, .xj-admin .admin-card, .xj-admin .analytics-panel, .xj-admin .filter-card { border:1px solid var(--xj-line); border-radius:12px; background:#fffdf7; box-shadow:0 4px 18px #31483c04; padding:22px; margin-bottom:22px; }
.xj-admin .filter-card { margin:20px 0; position:relative; }
.xj-admin .filter-card::before { content:"筛选条件"; display:block; font-size:12px; font-weight:600; letter-spacing:1px; color:#778176; margin-bottom:14px; }
.xj-admin .filter-grid, .xj-admin .admin-grid, .xj-admin .xj-field-grid { display:flex; flex-wrap:wrap; align-items:flex-end; gap:16px; }
.xj-admin .filter-field, .xj-admin .admin-field, .xj-admin .xj-field { display:flex; flex-direction:column; gap:6px; flex:1 1 160px; min-width:0; }
.xj-admin .filter-field label, .xj-admin .admin-field label, .xj-admin .xj-field label { font-size:12px; color:#5d6d62; display:block; }
.xj-admin input:not([type=checkbox]):not([type=radio]):not([type=hidden]), .xj-admin select, .xj-admin textarea { min-height:44px; max-width:100%; border:1px solid #d4d8cb; border-radius:8px; padding:10px 12px; color:var(--xj-ink); background:#fffef9; }
.xj-admin input::placeholder, .xj-admin textarea::placeholder { color:#8a9389; }
.xj-admin input[type=checkbox], .xj-admin input[type=radio] { accent-color:var(--xj-jade); width:18px; height:18px; }
.xj-admin .filter-field input, .xj-admin .filter-field select, .xj-admin .admin-field input, .xj-admin .admin-field select { width:100%; min-width:0; }
.xj-admin .filter-actions, .xj-admin .admin-actions { display:flex; flex-wrap:wrap; align-items:center; gap:10px; }
.xj-admin .filter-actions a { min-height:44px; padding:10px 12px; display:inline-flex; align-items:center; text-decoration:none; color:#657569; }
.xj-admin .xj-table-scroll { max-width:100%; width:100%; overflow-x:auto; border:1px solid var(--xj-line); border-radius:12px; background:#fffdf7; margin:16px 0; scrollbar-width:thin; overscroll-behavior-x:contain; }
.xj-admin .xj-table-scroll:focus-visible { outline-offset:2px; }
.xj-admin table { width:100%; border-collapse:collapse; background:#fffdf7; margin:0; border-radius:0; }
.xj-admin th, .xj-admin td { padding:15px 16px; border-bottom:1px solid #e8e6dc; font-size:13px; text-align:left; vertical-align:middle; }
.xj-admin th { background:#f0f1e8; color:#5b6a5e; font-size:12px; font-weight:600; white-space:nowrap; }
.xj-admin td { min-width:90px; }
.xj-admin tbody tr:last-child td { border-bottom:0; }
.xj-admin tbody tr:hover td { background-color:#eef2e95c; }
.xj-admin td[colspan] { text-align:center; color:#7c877b; padding:40px 20px; }
.xj-admin td form { margin:0; }
.xj-admin td button { white-space:nowrap; padding:8px 12px; font-size:12px; }
.xj-admin .pager { margin:22px 0 0; display:flex; flex-wrap:wrap; justify-content:space-between; align-items:center; gap:16px; }
.xj-admin .pager-summary { color:#758074; font-size:12px; }
.xj-admin .pager-links { display:flex; flex-wrap:wrap; gap:6px; }
.xj-admin .pager-link { min-height:44px; min-width:44px; padding:10px 13px; border:1px solid var(--xj-line); background:#fffdf7; border-radius:8px; color:var(--xj-jade); text-decoration:none; text-align:center; }
.xj-admin .pager-link.active { background:var(--xj-jade); border-color:var(--xj-jade); color:white; }
.xj-admin .pager-link.disabled { color:#979c92; background:#eeeee5; }
.xj-admin details summary { color:var(--xj-jade); cursor:pointer; min-height:44px; padding:10px 0; }
.xj-admin details[open] { padding-bottom:12px; }
.xj-admin code, .xj-admin pre { overflow-wrap:anywhere; white-space:pre-wrap; }
.xj-admin .code-pill { background:#edf0df; color:#49633e; border:1px solid #dce2cd; padding:4px 9px; border-radius:6px; }
.xj-admin .xj-stats-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:18px; margin-bottom:28px; }
.xj-admin .xj-stat-card { border:1px solid var(--xj-line); border-radius:12px; padding:23px; background:#fffdf7; min-width:0; border-top:3px solid #bdab7b; }
.xj-admin .xj-stat-value { font:600 clamp(22px,2.4vw,32px)/1.3 system-ui,sans-serif; color:var(--xj-jade); overflow-wrap:anywhere; font-variant-numeric:tabular-nums; }
.xj-admin .xj-stat-label { margin-top:12px; font-size:12px; color:#788073; }
.xj-admin .xj-stat-card:first-child { background:var(--xj-jade); border-color:var(--xj-jade); }
.xj-admin .xj-stat-card:first-child .xj-stat-value { color:#fff9e9; }
.xj-admin .xj-stat-card:first-child .xj-stat-label { color:#d5dfcf; }
.xj-page-intro { display:flex; justify-content:space-between; align-items:flex-end; gap:20px; margin-bottom:26px; }
.xj-page-intro h1 { margin-bottom:8px; }
.xj-page-intro p { margin:0; }
.xj-eyebrow { color:var(--xj-gold); letter-spacing:3px; font-size:11px; margin-bottom:10px; }
.xj-admin .xj-quick-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:14px; }
.xj-admin .xj-quick-link { padding:20px; border:1px solid var(--xj-line); border-radius:10px; color:var(--xj-ink); text-decoration:none; background:#fffdf7; transition:background .15s; }
.xj-admin .xj-quick-link:hover { background:#eaf0e5; border-color:#a8b79f; }
.xj-quick-link strong { display:block; font-size:15px; margin-bottom:5px; }
.xj-quick-link span { color:#7a8276; font-size:12px; }
.xj-admin .xj-responsive-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(min(100%,280px),1fr)); gap:18px; }
.xj-admin [id$="-modal"] { z-index:60; }
.xj-admin .xj-modal { padding:24px; }
.xj-admin .xj-modal > div { border:1px solid var(--xj-line); }
.xj-admin .xj-modal-stats { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:10px; margin:14px 0; }
.xj-admin .xj-setup-steps { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:24px; }
.xj-admin .xj-setup-steps code { display:block; padding:16px; margin-top:12px; background:#edf0e5; border:1px dashed #a9b49b; border-radius:8px; letter-spacing:1px; }
.xj-admin.xj-auth { display:grid; grid-template-columns:minmax(0,1fr) minmax(340px,480px); align-items:center; gap:8vw; padding:8vh 9vw; min-height:100vh; background-color:var(--xj-paper); }
.xj-auth-story { max-width:560px; }
.xj-auth-story .xj-brand-seal { width:60px; height:60px; font-size:35px; background:#285c4f0c; margin-bottom:30px; color:var(--xj-jade); }
.xj-admin .xj-auth-story h2 { font:500 clamp(32px,4vw,56px)/1.4 "Songti SC","STSong",serif; letter-spacing:5px; margin:0 0 20px; }
.xj-auth-story p { max-width:350px; color:#718071; line-height:2; }
.xj-admin.xj-auth .card { width:100%; max-width:480px; border:1px solid var(--xj-line); border-radius:16px; box-shadow:0 20px 70px #234d4010; background:#fffdf5f5; padding:40px; }
.xj-admin.xj-auth h1 { font-size:25px; margin-bottom:10px; }
.xj-admin.xj-auth label { display:block; font-size:13px; color:#5e6d62; margin:22px 0 8px; }
.xj-admin.xj-auth input { width:100%; }
.xj-admin.xj-auth button { width:100%; margin-top:26px; background:var(--xj-jade); border-color:var(--xj-jade); color:#fff; }
.xj-auth-caption { font-size:12px; color:#808779; margin:0 0 24px; }
.xj-auth-footer { font-size:11px; text-align:center; color:#879080; margin:22px 0 0; }
@media(min-width:1600px) { .xj-admin .xj-stats-grid { grid-template-columns:repeat(4,minmax(0,1fr)); } }
@media(max-width:1200px) { .xj-admin .xj-stats-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } .xj-admin main { padding:28px 24px; } .xj-topbar { padding:16px 24px; } }
@media(max-width:900px) {
    .xj-sidebar { transform:translateX(-100%); transition:transform .2s ease; width:260px; max-width:86vw; }
    .xj-nav-open .xj-sidebar { transform:translateX(0); }
    .xj-admin-workspace { margin-left:0; }
    .xj-admin .xj-menu-toggle { display:inline-flex; }
    .xj-admin .xj-drawer-close { display:flex; margin:0 20px 8px; border-color:#ffffff30; background:#ffffff08; color:#f5f1e8; }
    .xj-admin .xj-drawer-backdrop { position:fixed; inset:0; border:0; border-radius:0; z-index:39; padding:0; background:#0d241bb3; }
    .xj-nav-open { overflow:hidden; }
    .xj-skip-link { left:16px; }
    .xj-admin.xj-auth { padding:40px 6vw; gap:32px; grid-template-columns:1fr minmax(300px,420px); }
    .xj-auth-story p { display:none; }
}
@media(max-width:640px) {
    .xj-topbar { min-height:70px; padding:12px 16px; gap:8px; }
    .xj-topbar-heading, .xj-account-menu { gap:8px; }
    .xj-breadcrumb { display:none; }
    .xj-account-name { max-width:105px; }
    .xj-admin main { padding:24px 16px 32px; }
    .xj-admin h1 { font-size:24px; margin-bottom:20px; }
    .xj-admin .xj-panel, .xj-admin .filter-card, .xj-admin .admin-card, .xj-admin .analytics-panel { padding:16px; border-radius:10px; }
    .xj-admin .filter-field, .xj-admin .admin-field, .xj-admin .xj-field { flex-basis:100%; }
    .xj-admin .filter-actions { width:100%; }
    .xj-admin .filter-actions button { flex:1; }
    .xj-admin .xj-stats-grid { gap:10px; }
    .xj-admin .xj-stat-card { padding:18px 14px; }
    .xj-admin .xj-stat-value { font-size:23px; }
    .xj-admin .xj-quick-grid { grid-template-columns:1fr; gap:10px; }
    .xj-admin .xj-quick-link { padding:16px; }
    .xj-page-intro { display:block; }
    .xj-admin .xj-modal { padding:12px; }
    .xj-admin .xj-modal-stats, .xj-admin .xj-setup-steps { grid-template-columns:1fr; }
    .xj-admin .pager-links { max-width:100%; gap:5px; }
    .xj-admin .pager-link { padding:10px; }
    .xj-admin .xj-field-row { display:flex; flex-wrap:wrap; gap:10px; }
    .xj-admin .xj-field-row > input { flex:1 1 100%; width:100%; }
    .xj-admin-footer { padding:18px 16px; }
    .xj-admin.xj-auth { display:flex; flex-direction:column; justify-content:center; padding:30px 16px; gap:24px; }
    .xj-auth-story { width:100%; text-align:center; }
    .xj-auth-story .xj-brand-seal { width:45px; height:45px; margin:0 auto 12px; font-size:27px; }
    .xj-admin .xj-auth-story h2 { font-size:24px; letter-spacing:3px; margin:0; }
    .xj-admin.xj-auth .card { padding:28px 23px; }
}
@media(prefers-reduced-motion:reduce) { .xj-admin *, .xj-admin *::before, .xj-admin *::after { transition:none; animation:none; scroll-behavior:auto; } }
.xj-admin .admin-field[style*="grid-column"] { flex-basis:100%; }
.xj-admin .xj-invite-link { min-width:0; overflow-wrap:anywhere; }
.xj-admin .xj-field-grid .xj-field input { width:100%; }
.xj-admin .xj-auth-story .xj-eyebrow { margin-bottom:12px; }
.xj-admin .xj-modal .filter-card::before { content:none; }
.xj-admin .xj-modal .xj-table-scroll { margin:0; border:0; border-radius:0; }
.xj-admin td a { min-height:44px; display:inline-flex; align-items:center; }
.xj-admin .analytics-heatmap-wrap .heat-date, .xj-admin .analytics-heatmap-wrap .heat-total { background:#fffdf7; }
.xj-admin .analytics-heatmap-wrap thead .heat-date, .xj-admin .analytics-heatmap-wrap thead .heat-total { background:#f0f1e8; }

.xj-admin.xj-auth { background-image:url("/theme/landscape.svg"); background-size:cover; background-position:center bottom; }
.xj-auth-story::after { content:""; display:block; width:100%; height:160px; margin-top:28px; border-radius:80% 20% 0 0; background:url("/theme/landscape.svg") center 68% / cover no-repeat; opacity:.72; }
@media(max-width:640px) { .xj-auth-story::after { display:none; } }
