:root{
  --ink:#1b231e;
  --cinnabar:#c43c2a;
  --gold:#e0b24a;
  --paper:#f0e2c0;
  --jade:#5d8f7c;
  --dim:#9aa094;
  --wood:#3a2e22;
}
*{margin:0;padding:0;box-sizing:border-box;-webkit-tap-highlight-color:transparent;}
html,body{height:100%;}
body{
  background:#10150f;
  font-family:"Kaiti SC","STKaiti","KaiTi","SimSun",serif;
  color:var(--paper);
  display:flex;flex-direction:column;
  overflow:hidden;user-select:none;
}
/* ============ 顶栏 ============ */
#topbar{
  height:54px;flex:none;
  display:flex;align-items:center;gap:18px;
  padding:0 16px;
  background:linear-gradient(180deg,#231b12,#181209);
  border-bottom:1px solid #4a3a22;
  font-size:19px;
}
.logo{
  font-size:24px;letter-spacing:5px;color:var(--gold);
  text-shadow:0 0 14px rgba(224,178,74,.4);
  padding-right:14px;border-right:1px solid #4a3a22;
}
.stat{white-space:nowrap;}
.stat b{color:var(--gold);font-weight:normal;}
#waveInfo b{color:#ff6a50;}
.spacer{flex:1;}
.tbtn{
  font-family:inherit;font-size:18px;
  background:#3a3027;color:var(--paper);
  border:1px solid #5a4c38;border-radius:4px;
  padding:4px 14px;cursor:pointer;
}
.tbtn:hover{background:#4a3e30;border-color:var(--gold);}
.tbtn.primary{background:var(--cinnabar);border-color:#e0654f;color:#fff4e0;}
.tbtn.primary:hover{background:#d8503c;}
/* ============ 主画面 ============ */
#stage{
  flex:1;min-height:0;
  display:flex;align-items:center;justify-content:center;
  background:radial-gradient(ellipse at 50% 40%, #1a221b 0%, #0e120d 75%);
}
#cwrap{
  position:relative;
  height:100%;max-height:100%;
  aspect-ratio:1280/760;
  max-width:100%;
}
canvas{
  width:100%;height:100%;display:block;
  cursor:crosshair;
}
/* ============ 底部符袋 ============ */
#bottombar{
  flex:none;height:150px;
  background:linear-gradient(180deg,#2c2218,#1d1610);
  border-top:2px solid #4a3a22;
  display:flex;align-items:center;gap:24px;
  padding:0 26px;
}
.bbTitle{
  font-size:22px;letter-spacing:6px;color:var(--gold);
  writing-mode:horizontal-tb;line-height:1.4;width:230px;
}
.bbSub{display:block;font-size:13.5px;letter-spacing:0;color:var(--dim);margin-top:4px;}
#hand{display:flex;gap:14px;align-items:center;height:100%;}
.card{
  width:98px;height:124px;
  background:linear-gradient(170deg,#f5e7c2,#d9c08a);
  border:2px solid #8a6a32;border-radius:7px;
  color:#43321a;
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;
  cursor:pointer;position:relative;text-align:center;
  box-shadow:0 4px 14px rgba(0,0,0,.5);
  transition:transform .12s;
}
.card:hover{transform:translateY(-7px) scale(1.04);}
.card.lv2{border-color:#c43c2a;box-shadow:0 4px 16px rgba(196,60,42,.45);}
.card.lv3{border-color:#7a3cc4;background:linear-gradient(170deg,#f8ecd0,#e0c890);box-shadow:0 4px 20px rgba(160,90,230,.55);}
.card .ic{font-size:33px;line-height:1;}
.card .nm{font-size:16.5px;letter-spacing:1px;}
.card .ds{font-size:11.5px;color:#6b5536;padding:0 4px;line-height:1.3;}
.card .lvb{
  position:absolute;top:-10px;right:-10px;
  background:var(--cinnabar);color:#fff;
  font-size:12px;border-radius:50%;
  width:26px;height:26px;display:flex;align-items:center;justify-content:center;
  border:1px solid #ffd0a0;
}
.card.lv3 .lvb{background:#7a3cc4;}
.handEmpty{font-size:16px;color:#5d5648;letter-spacing:2px;}
/* ============ 建造/升级弹窗 ============ */
#popup{
  position:absolute;display:none;z-index:20;min-width:200px;
  background:rgba(24,28,23,.97);
  border:1px solid #5a4c38;border-radius:8px;
  padding:9px;min-width:168px;
  box-shadow:0 8px 30px rgba(0,0,0,.7);
}
#popup .ptitle{font-size:18px;color:var(--gold);margin-bottom:6px;text-align:center;letter-spacing:1px;}
#popup .pinfo{font-size:13.5px;color:var(--dim);text-align:center;line-height:1.5;}
.pbtn{
  display:flex;justify-content:space-between;align-items:center;gap:10px;
  width:100%;font-family:inherit;font-size:16.5px;
  background:#33302a;color:var(--paper);
  border:1px solid #4a4234;border-radius:5px;
  padding:6px 10px;margin-top:5px;cursor:pointer;text-align:left;
}
.pbtn:hover{border-color:var(--gold);background:#403a30;}
.pbtn:disabled{opacity:.38;cursor:default;}
.pbtn .cost{color:var(--gold);font-size:14px;white-space:nowrap;}
.pbtn .sub{display:block;font-size:12px;color:var(--dim);}
/* ============ 全屏弹层 ============ */
#modal{
  position:absolute;inset:0;z-index:30;display:none;
  background:rgba(8,10,8,.84);
  align-items:center;justify-content:center;
}
#modal .box{
  max-width:88%;max-height:92%;overflow:auto;
  background:linear-gradient(180deg,#262e26,#1c221c);
  border:1px solid #5a4c38;border-radius:14px;
  padding:30px 40px;text-align:center;
  box-shadow:0 0 90px rgba(0,0,0,.85);
}
#modal h1{
  font-size:46px;font-weight:normal;letter-spacing:10px;
  color:var(--gold);margin-bottom:8px;
  text-shadow:0 0 28px rgba(224,178,74,.4);
}
#modal h2{font-size:27px;font-weight:normal;letter-spacing:5px;color:var(--gold);margin-bottom:8px;}
#modal p{font-size:17.5px;color:#cfc6ad;line-height:1.8;margin-bottom:8px;}
#modal .sub{font-size:15px;color:var(--dim);}
#modal .big{font-size:21px;color:var(--paper);}
#modal .big b{color:#ff6a50;font-size:30px;padding:0 5px;}
.perkRow{display:flex;gap:16px;justify-content:center;margin:16px 0 8px;flex-wrap:wrap;}
.perk{
  width:186px;min-height:176px;
  background:linear-gradient(170deg,#f5e7c2,#dcc28c);
  color:#43321a;border:2px solid #8a6a32;border-radius:10px;
  padding:13px 10px;cursor:pointer;
  display:flex;flex-direction:column;align-items:center;gap:7px;
  transition:transform .12s, box-shadow .12s;
}
.perk:hover{transform:translateY(-6px);box-shadow:0 10px 28px rgba(224,178,74,.3);}
.perk .ic{font-size:37px;}
.perk .nm{font-size:18.5px;letter-spacing:1px;color:#7a2a18;}
.perk .ds{font-size:13.5px;line-height:1.45;color:#5d4a2c;}
.perk .lv{font-size:12.5px;color:#8a6a32;}
.perk.goldPick{background:linear-gradient(170deg,#33302a,#26231e);border-color:#5a4c38;color:var(--paper);}
.perk.goldPick .nm{color:var(--gold);}
.perk.goldPick .ds{color:var(--dim);}
.perk.goldPick:hover{box-shadow:0 10px 28px rgba(224,178,74,.2);border-color:var(--gold);}
.startBtn{
  font-family:inherit;font-size:22px;letter-spacing:7px;
  background:var(--cinnabar);color:#fff4e0;
  border:1px solid #e0654f;border-radius:8px;
  padding:11px 48px;margin:16px 8px 0;cursor:pointer;
  box-shadow:0 4px 22px rgba(196,60,42,.4);
}
.startBtn:hover{background:#d8503c;transform:translateY(-2px);}
.startBtn.alt{background:#3a3027;border-color:#5a4c38;box-shadow:none;}
.startBtn.alt:hover{border-color:var(--gold);}
.howto{
  text-align:left;font-size:17px;color:#cfc6ad;line-height:2.1;
  margin:12px auto 0;max-width:520px;
}
.howto em{font-style:normal;color:var(--gold);}

/* 金币突出显示 */
.goldStat{
  background:linear-gradient(180deg,#3a2f1a,#2a2112);
  border:1px solid #8a6a32;border-radius:6px;
  padding:3px 16px;font-size:20px;
}
.goldStat b{font-size:27px;color:#ffd75e;text-shadow:0 0 12px rgba(255,215,94,.5);}
.goldStat i{font-style:normal;font-size:15px;color:#b89a5a;margin-left:2px;}
/* 波次进度条 */
#progWrap b{color:#ff8a6a;font-size:23px;}
#progBar{
  display:inline-block;vertical-align:middle;
  width:150px;height:13px;margin-left:8px;
  background:#1c1812;border:1px solid #5a4c38;border-radius:6px;
  overflow:hidden;
}
#progFill{
  display:block;height:100%;
  background:linear-gradient(90deg,#c43c2a,#ff8a5a);
  transition:width .25s;
}
/* 天赋重抽按钮 */
.rerollBtn{
  font-family:inherit;font-size:17px;letter-spacing:2px;
  background:#3a3027;color:#e0b24a;
  border:1px solid #8a6a32;border-radius:6px;
  padding:7px 22px;margin-top:10px;cursor:pointer;
}
.rerollBtn:hover{background:#4a3e30;}
.rerollBtn:disabled{opacity:.35;cursor:default;}

/* 全军升级按钮 */
.tbtn.gold{background:#4a3a1a;border-color:#8a6a32;color:#ffd75e;}
.tbtn.gold:hover{background:#5d4a22;border-color:#e0b24a;}
/* 左侧BUFF总览 */
#stage{position:relative;}
#buffPanel{
  position:absolute;left:14px;top:18px;z-index:10;
  display:flex;flex-direction:column;gap:6px;
  pointer-events:none;max-width:215px;
}
.buffRow{
  display:flex;align-items:center;gap:8px;
  background:rgba(18,22,17,.78);
  border:1px solid #4a3f2e;border-radius:7px;
  padding:4px 10px;font-size:15px;color:#e8dcc0;
  text-shadow:0 1px 2px rgba(0,0,0,.8);
}
.buffRow .bic{font-size:18px;}
.buffRow .blv{margin-left:auto;color:#ffd75e;font-size:14px;padding-left:6px;}
.buffRow.temp{border-color:#c43c2a;color:#ffb88a;}
.buffTitle{
  font-size:13px;letter-spacing:3px;color:#9aa094;
  padding-left:4px;
}

/* 一键升级下拉菜单 */
#upMenu{
  position:fixed;display:none;z-index:50;
  background:rgba(24,28,23,.97);
  border:1px solid #8a6a32;border-radius:8px;
  padding:8px;min-width:240px;
  box-shadow:0 10px 34px rgba(0,0,0,.75);
}
#upMenu .umTitle{font-size:14px;color:#9aa094;text-align:center;letter-spacing:2px;margin-bottom:4px;}
.umBtn{
  display:flex;justify-content:space-between;align-items:center;gap:12px;
  width:100%;font-family:inherit;font-size:16px;
  background:#33302a;color:#f0e2c0;
  border:1px solid #4a4234;border-radius:5px;
  padding:7px 12px;margin-top:5px;cursor:pointer;text-align:left;
}
.umBtn:hover{border-color:#e0b24a;background:#403a30;}
.umBtn.all{background:#4a3a1a;color:#ffd75e;border-color:#8a6a32;}
.umBtn.all:hover{border-color:#e0b24a;}
.umBtn .umCost{font-size:13px;color:#e0b24a;white-space:nowrap;}
/* ============ 参数管理系统 ============ */
#adminPanel{
  position:fixed;inset:0;z-index:80;display:none;
  background:rgba(8,10,8,.88);
  align-items:center;justify-content:center;
}
.adBox{
  width:min(1080px,94vw);height:min(86vh,820px);
  background:linear-gradient(180deg,#262e26,#1c221c);
  border:1px solid #8a6a32;border-radius:14px;
  display:flex;flex-direction:column;
  box-shadow:0 0 90px rgba(0,0,0,.85);
  position:relative;
}
.adHead{
  flex:none;display:flex;align-items:center;gap:16px;
  padding:14px 22px;border-bottom:1px solid #4a3f2e;
}
.adTitle{font-size:22px;letter-spacing:4px;color:var(--gold);}
.adNote{font-size:13px;color:var(--dim);flex:1;}
.adClose{
  font-family:inherit;font-size:18px;
  background:#3a3027;color:var(--paper);
  border:1px solid #5a4c38;border-radius:6px;
  width:38px;height:38px;cursor:pointer;
}
.adClose:hover{border-color:#e0654f;color:#ff8a6a;}
.adBody{flex:1;overflow-y:auto;padding:14px 22px;}
.adGroup{margin-bottom:18px;}
.adGroupTitle{
  font-size:18px;color:var(--gold);letter-spacing:2px;
  border-bottom:1px dashed #4a3f2e;padding-bottom:5px;margin-bottom:10px;
}
.adGrid{
  display:grid;grid-template-columns:repeat(auto-fill,minmax(310px,1fr));
  gap:8px 18px;
}
.adField{
  display:flex;align-items:center;justify-content:space-between;gap:10px;
  font-size:14.5px;color:#cfc6ad;
}
.adField input{
  width:96px;font-family:inherit;font-size:15px;text-align:right;
  background:#181d18;color:#ffd75e;
  border:1px solid #4a4234;border-radius:5px;
  padding:4px 8px;
}
.adField input:focus{outline:none;border-color:var(--gold);}
.adArr .adArrIn{display:flex;gap:5px;}
.adArr input{width:64px;}
.adFoot{
  flex:none;display:flex;justify-content:center;gap:10px;
  padding:12px 22px 18px;border-top:1px solid #4a3f2e;
}
.adFoot .startBtn{margin-top:0;font-size:17px;padding:9px 30px;letter-spacing:3px;}
#adToast{
  position:absolute;left:50%;bottom:86px;transform:translateX(-50%);
  background:rgba(20,26,20,.95);color:#ffd75e;
  border:1px solid #8a6a32;border-radius:8px;
  padding:9px 24px;font-size:15px;white-space:nowrap;
  transition:opacity .4s;pointer-events:none;
  box-shadow:0 6px 24px rgba(0,0,0,.6);
}
