:root{--ink:#233d3c;--muted:#72817d;--line:#e2e8e4;--green:#397e78;--bg:#f6f8f5}*{box-sizing:border-box}body{margin:0;font:14px/1.6 'Microsoft YaHei',sans-serif;color:var(--ink);background:var(--bg)}button,input,select,textarea{font:inherit;color:inherit}button,a{cursor:pointer}a{color:var(--green);text-decoration:none}button{background:white;border:1px solid var(--line);border-radius:6px;padding:8px 13px}button:hover{background:#edf4f0}button:disabled{opacity:.45;cursor:not-allowed}button.primary{background:var(--green);color:#fff;border-color:var(--green)}button.danger{color:#ae5147}button.link{padding:2px 5px;color:var(--green);border:0;background:transparent}input,select,textarea{border:1px solid #cfdad4;border-radius:5px;background:white;padding:9px 10px;max-width:100%}input:focus,select:focus,textarea:focus{outline:2px solid #8dbab3;outline-offset:1px}button:focus-visible,a:focus-visible{outline:2px solid var(--green);outline-offset:3px}aside{width:212px;position:fixed;inset:0 auto 0 0;background:#fff;border-right:1px solid var(--line);padding:28px 18px;display:flex;flex-direction:column}.brand{display:flex;gap:11px;align-items:center;color:var(--ink);font-weight:700;font-size:19px;margin:0 10px 35px}.brand b{background:var(--green);color:white;border-radius:8px;padding:2px 9px;font-size:25px}.brand small{font-weight:400;font-size:11px;display:block;color:var(--muted);letter-spacing:2px}nav button{display:block;width:100%;text-align:left;margin:5px 0;padding:11px 15px;border:0;color:#6b7d76;background:transparent}nav button.active{background:#e9f2ed;color:var(--green);font-weight:700}.aside-foot{margin-top:auto;font-size:11px;color:var(--muted);line-height:2.2;padding:18px 10px 0;border-top:1px solid var(--line)}main{margin-left:212px;padding:0 32px;max-width:1900px}header{min-height:74px;display:flex;justify-content:space-between;gap:15px;align-items:center;border-bottom:1px solid var(--line);font-size:12px;color:var(--muted)}h1{font-size:26px;letter-spacing:-.5px;margin:0 0 5px}h2{font-size:17px;margin:0}h3{font-size:14px;margin:0 0 16px}p{margin:8px 0;color:var(--muted)}.heading{display:flex;justify-content:space-between;align-items:center;gap:15px;margin:30px 0 24px}.heading p{font-size:12px}.badge{display:inline-block;font-size:11px;background:#edf3ee;color:#51766a;border-radius:4px;padding:3px 8px;white-space:nowrap}.badge.warn{background:#faf0de;color:#9b793f}.stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-bottom:20px}.stat,.panel{background:white;border:1px solid var(--line);border-radius:8px}.stat{padding:20px}.stat span{font-size:12px;color:var(--muted)}.stat strong{display:block;font:600 28px/1.5 'Segoe UI',sans-serif;margin:10px 0 2px;letter-spacing:-.5px}.stat small{font-size:11px;color:var(--muted)}.panel{margin-bottom:18px;padding:20px}.panel-head,.actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.panel-head{justify-content:space-between;margin-bottom:17px}.filters{display:flex;align-items:flex-end;flex-wrap:wrap;gap:12px;margin-bottom:18px}.filters label{font-size:11px;color:var(--muted);display:flex;flex-direction:column;gap:5px}.filters input{width:190px}.filters input[type=date]{width:150px}.table-wrap{overflow:auto}table{border-collapse:collapse;width:100%;white-space:nowrap;font-size:12px}th{text-align:left;font-weight:400;background:#f6f8f5;color:var(--muted);padding:12px}td{border-bottom:1px solid #edf0ed;padding:15px 12px;font-variant-numeric:tabular-nums}tbody tr:hover{background:#fafcf9}tbody tr:last-child td{border-bottom:0}.num{text-align:right;font-family:'Segoe UI',sans-serif}.empty{text-align:center;padding:45px;color:var(--muted)}.note{font-size:12px;color:var(--muted);background:#f1f5f0;padding:12px 14px;border-radius:5px;margin:14px 0}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:15px}.field{display:flex;flex-direction:column;gap:7px;font-size:12px}.field.full{grid-column:1/-1}.field textarea{min-height:80px}.form-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:22px}.detail-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:18px}.detail-grid div{padding:12px;background:var(--bg)}.detail-grid span{display:block;color:var(--muted);font-size:11px}.error{color:#ad4d42;font-size:12px;min-height:20px;margin-top:10px}.subtle{font-size:11px;color:var(--muted);display:block}footer{padding:18px 0 28px;color:var(--muted);font-size:11px}dialog{border:1px solid var(--line);border-radius:10px;width:min(1000px,94vw);max-height:88vh;padding:24px;color:var(--ink)}dialog::backdrop{background:#16322a66}.dialog-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.dialog-top button{font-size:21px;border:0;padding:0 8px}#toast{position:fixed;bottom:25px;left:50%;transform:translateX(-50%);background:#233d3c;color:white;padding:12px 22px;border-radius:7px;z-index:10}.summary{padding-top:14px;font-size:12px;color:var(--muted)}@media(max-width:1100px){main{padding:0 20px}.stats{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:700px){aside{position:static;width:auto;padding:15px;border-right:0;border-bottom:1px solid var(--line)}.brand{margin:0 0 12px;font-size:17px}.brand small{display:none}nav{display:flex;overflow:auto;gap:5px}nav button{width:auto;flex-shrink:0;margin:0;padding:8px 12px}.aside-foot{display:none}main{margin:0;padding:0 14px}header{min-height:65px;flex-wrap:wrap;padding:10px 0;gap:5px}.heading{margin:23px 0 18px;align-items:flex-start;flex-wrap:wrap}h1{font-size:23px}.stats{gap:9px}.stat{padding:14px}.stat strong{font-size:23px}.panel{padding:14px}.form-grid,.detail-grid{grid-template-columns:1fr}.filters label{flex:1;min-width:125px}.filters input,.filters input[type=date],.filters select{width:100%}.field.full{grid-column:auto}dialog{padding:16px}.heading p{line-height:1.8}}

.overview-stats .stats{grid-template-columns:repeat(3,minmax(0,1fr))}.income-chart-meta{display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap;font-size:12px;color:var(--muted);margin-bottom:20px}.income-legend{display:flex;gap:20px}.income-legend span{display:flex;align-items:center;gap:7px}.income-legend i{display:inline-block;width:18px;height:3px;border-radius:2px}.platform-line{background:#397e78}.merchant-line{background:#c09245}.income-chart-scroll{overflow-x:auto}.income-chart{display:block;width:100%;min-width:580px}.income-grid{stroke:#e5ece7;stroke-dasharray:4 5}.income-axis{fill:#72817d;font-size:12px}.income-area{fill:#397e7812}.income-platform,.income-merchant{fill:none;stroke-width:2.5;stroke-linejoin:round;stroke-linecap:round}.income-platform{stroke:#397e78}.income-merchant{stroke:#c09245;stroke-dasharray:7 4}.platform-dot{fill:#397e78;stroke:white;stroke-width:2}.merchant-dot{fill:#c09245;stroke:white;stroke-width:2}.income-point{cursor:pointer}.income-point:hover circle,.income-point:focus circle{r:6;stroke-width:2.5}.income-point:focus{outline:none}.income-detail{padding:14px 16px;background:#f1f6f2;color:#397e78;border-radius:6px;font-size:13px;font-variant-numeric:tabular-nums}.income-empty{min-height:280px;display:grid;place-items:center}@media(max-width:700px){.overview-stats .stats{grid-template-columns:1fr}.income-chart-meta{font-size:11px}.income-detail{font-size:12px;line-height:1.9}.income-chart-scroll{margin:0 -4px}.income-legend{gap:16px}}

.income-switch{display:flex;gap:4px;padding:4px;background:#f1f5f0;border-radius:8px}.income-switch button{border:0;background:transparent;padding:7px 18px;font-size:12px}.income-switch button.active{background:#397e78;color:#fff}.merchant-bar{fill:#c09245}.platform-bar{fill:#397e78}.income-point:hover .merchant-bar,.income-point:focus .merchant-bar{fill:#a57932}.income-point:hover .platform-bar,.income-point:focus .platform-bar{fill:#245c57}.income-point:focus .income-hit{fill:#397e780b;stroke:#397e78;stroke-width:1}.income-legend i{height:10px;width:10px;border-radius:2px}

.merchant-node{display:flex;align-items:center;gap:8px;padding-left:calc(var(--level)*22px)}.merchant-node small{display:block;font-size:11px;color:var(--muted);font-weight:400}.merchant-expander,.merchant-leaf{width:28px;flex-shrink:0;text-align:center;padding:3px}.merchant-expander{color:var(--green);font-size:16px}.merchant-leaf{color:var(--muted)}.platform-login{text-align:center;max-width:460px;margin:16px auto 28px}.wechat-mark{display:grid;place-items:center;width:56px;height:56px;margin:0 auto 20px;border-radius:16px;background:#07b75b;color:#fff;font-size:26px}.login-placeholder{margin:24px auto;padding:40px 20px;border:1px dashed #cfdad4;border-radius:8px;background:var(--bg);color:var(--muted)}

.platform-recharge-row{display:grid;grid-template-columns:1fr 1fr auto;gap:12px;align-items:end;margin:12px 0}.recharge-settings h3{margin-bottom:8px}@media(max-width:600px){.platform-recharge-row{grid-template-columns:1fr 1fr}.platform-recharge-row>button{grid-column:2;justify-self:end}}

.source-stats .stats{grid-template-columns:repeat(2,minmax(0,1fr))}.recharge-bar{fill:#397e78}.site-bar{fill:#6983b5}.recharge-line{background:#397e78}.site-line{background:#6983b5}.income-point:hover .recharge-bar,.income-point:focus .recharge-bar{fill:#245c57}.income-point:hover .site-bar,.income-point:focus .site-bar{fill:#476493}@media(max-width:700px){.source-stats .stats{grid-template-columns:1fr}}

/* ===== 运营管理（合并 /admin/ 后台）通用样式 ===== */
.nav-group-title{padding:16px 15px 6px;font-size:11px;letter-spacing:1px;color:var(--muted);border-top:1px solid var(--line);margin-top:10px}.nav-group-title:first-child{border-top:0;margin-top:0;padding-top:0}
.badge.ok{background:#e6f4ea;color:#2f6b3d}.badge.info{background:#eaf0fa;color:#4d68a0}.badge.danger{background:#fbeceb;color:#a3493c}.badge.muted{background:#f1f3f2;color:#7a8480}
.ops-trend{display:flex;align-items:flex-end;gap:10px;min-height:130px;padding:12px 4px 0}.ops-trend-item{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;gap:5px;min-width:34px;height:130px}.ops-trend-bar{width:100%;max-width:46px;background:var(--green);border-radius:4px 4px 0 0;min-height:4px;transition:height .2s}.ops-trend-item small{font-size:11px;color:var(--muted);white-space:nowrap}.ops-trend-item em{font-style:normal;font-size:11px;color:var(--ink)}
.ops-code{font-family:'SFMono-Regular',Consolas,'Liberation Mono',monospace;font-size:12px;background:#f1f5f0;border-radius:4px;padding:2px 7px;white-space:nowrap}
.table-wrap td .badge+.badge{margin-left:4px}.table-wrap td small.subtle{display:block;margin-top:3px}
@media(max-width:700px){.ops-trend{gap:6px}.ops-trend-item{min-width:24px}.ops-trend-item small{font-size:10px}}

/* ===== 管理后台侧边栏：整体可滚动，避免菜单过长显示不全（2026-10-28） ===== */
/* 菜单项较多（商业/支付/合作商 + 运营管理）；以 aside 作为唯一滚动容器，
   保证短屏/笔记本小高度下也能看到全部菜单，而不是被固定高度裁掉。 */
aside{
  overflow-y:auto;
  overflow-x:hidden;
  overscroll-behavior:contain;
  scrollbar-width:thin;
  scrollbar-color:#c9d6d0 transparent;
}
aside::-webkit-scrollbar{width:6px}
aside::-webkit-scrollbar-track{background:transparent}
aside::-webkit-scrollbar-thumb{background:#c9d6d0;border-radius:3px}
aside::-webkit-scrollbar-thumb:hover{background:#aebfb8}
.brand{flex:0 0 auto}
nav{
  flex:0 0 auto;
  min-height:auto;
  overflow:visible;
  padding-right:0;
}
.aside-foot{
  flex:0 0 auto;
  margin-top:18px;
  padding-top:10px;
}
@media(max-height:720px){
  .brand{margin-bottom:18px}
  .aside-foot{font-size:10px;line-height:1.9}
}
@media(max-width:700px){
  aside{overflow:visible;max-height:none}
  nav{display:flex;overflow-x:auto;overflow-y:hidden;padding-right:0}
  nav .nav-group-title{display:none}
  .aside-foot{display:none}
}

/* ===== 用户退款申请审核面板 ===== */
.pay-reason{white-space:normal;max-width:240px;display:inline-block;line-height:1.5;text-align:left}
.pay-refund-note{display:block;margin-top:3px;color:var(--muted);font-size:11px;white-space:normal;max-width:220px}
