:root { 
  --bg:#f4f6f9; --card:#ffffff; --text:#1f2937; --muted:#9ca3af; 
  --line:#e5e7eb; --primary:#2563eb; --primary-bg:#eff6ff;
  --mleague:#ef4444; --mleague-bg:#fff1f2;  
  --ok:#10b981; --err:#ef4444; --warn:#f59e0b;
  --radius:12px;
}

* { box-sizing:border-box; -webkit-tap-highlight-color:transparent; }
body { margin:0; background:var(--bg); color:var(--text); font-family:-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif; }
.wrap { max-width:500px; margin:0 auto; padding:10px 10px 120px; }


/* CUTE_THEME_V1_START */
/* 年轻可爱一点：浅色渐变背景 + 卡片装饰 */
body{
  background: linear-gradient(180deg, #fff7ed 0%, #fdf2f8 38%, #eff6ff 72%, #f0fdf4 100%);
  background-attachment: fixed;
}
.wrap{ padding:12px 12px 130px; }

.headerCard, .sectionCard, .input-card, .round-card, .matchCard{
  position:relative;
  overflow:hidden;
}

/* 卡片柔光装饰 */
.headerCard::before, .sectionCard::before{
  content:"";
  position:absolute;
  inset:-60px -40px auto auto;
  width:180px;
  height:180px;
  border-radius:50%;
  background: radial-gradient(circle at 30% 30%, rgba(56,189,248,.22), transparent 60%),
              radial-gradient(circle at 70% 70%, rgba(244,114,182,.22), transparent 62%);
  transform: rotate(12deg);
  pointer-events:none;
}
.headerCard > *, .sectionCard > *{ position:relative; z-index:1; }

.actionBtn{
  box-shadow: 0 6px 16px rgba(0,0,0,0.05);
  transition: transform .12s ease, box-shadow .12s ease;
}
.actionBtn:active{ transform: scale(0.98); box-shadow: 0 4px 10px rgba(0,0,0,0.05); }

.actionBtn.primary{
  background: linear-gradient(180deg, #eff6ff, #ffffff);
}

/* 安装弹窗：两枚大按钮 */
.installBox{ display:flex; flex-direction:column; gap:12px; }
.installBig{
  display:flex; align-items:center; gap:12px;
  padding:12px 14px;
  border-radius:16px;
  border:1px solid var(--line);
  background:#fff;
  text-decoration:none;
  cursor:pointer;
}
.installBig:active{ transform: scale(0.99); }
.installBig.primary{
  border-color:#bfdbfe;
  background: linear-gradient(180deg, #eff6ff, #ffffff);
}
.installBig.alt{
  border-color:#bbf7d0;
  background: linear-gradient(180deg, #f0fdf4, #ffffff);
}
.installIcon{
  width:44px; height:44px;
  display:flex; align-items:center; justify-content:center;
  border-radius:14px;
  background:#f8fafc;
  border:1px solid #eef2f7;
  font-size:20px;
  flex-shrink:0;
}
.installText{ flex:1; min-width:0; }
.installTitle{ font-weight:900; font-size:14px; color:#0f172a; }
.installDesc{ margin-top:2px; font-size:12px; color:#64748b; font-weight:600; line-height:1.3; }

.installMoreBtn{
  width:100%;
  height:38px;
  border-radius:14px;
  border:1px dashed #cbd5e1;
  background:rgba(255,255,255,.7);
  color:#334155;
  font-weight:800;
  cursor:pointer;
}
.installMore{
  background:#f8fafc;
  border:1px solid #e5e7eb;
  border-radius:14px;
  padding:12px;
  font-size:12px;
  color:#475569;
  line-height:1.55;
}
.installMore b{ color:#0f172a; }

/* CUTE_THEME_V1_END */


/* 登录框布局修复：增加间距 */
.auth-box { display:flex; flex-direction:column; gap:16px; margin-bottom:20px; }
.modalFooter { display:flex; gap:12px; margin-top:10px; }

/* 公式提示颜色 */
.formula-box { font-size:11px; background:#f1f5f9; padding:10px; border-radius:6px; color:#666; text-align:center; font-weight:600; margin-top:10px; border:1px solid #e2e8f0; }
.formula-box span.simple { color: var(--primary); font-weight:800; }
.formula-box span.mleague { color: var(--mleague); font-weight:800; }

/* 基础组件 */
.headerCard { background:var(--card); border-radius:var(--radius); padding:12px; margin-bottom:12px; box-shadow:0 1px 3px rgba(0,0,0,0.05); display:flex; flex-direction:column; gap:10px; }
.headerTop { display:flex; justify-content:space-between; align-items:center; }
.brandBox { display:flex; align-items:center; gap:10px; flex:1; min-width:0; }
.brandLogo { width:34px; height:34px; border-radius:8px; }
.brandTitle h1 { margin:0; font-size:16px; font-weight:800; color:#111; }
.headerRight { display:flex; flex-direction:column; gap:5px; width:70px; flex-shrink:0; }
.miniBtn { width:100%; height:24px; border:1px solid var(--line); background:#fff; border-radius:6px; font-size:10px; font-weight:600; color:#666; display:flex; align-items:center; justify-content:center; cursor:pointer; }
.miniBtn.install { background:var(--primary-bg); color:var(--primary); border-color:#bfdbfe; font-weight:700; }
.sloganBox { background:#f9fafb; border-radius:8px; padding:8px 10px; display:grid; grid-template-columns:1fr 1fr; gap:10px; align-items:center; border:1px solid #f3f4f6; }
.sloganText { font-size:11px; color:#666; font-weight:500; line-height:1.3; overflow:hidden; text-overflow:ellipsis; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; }
.statusText { font-size:11px; font-weight:600; color:var(--err); text-align:right; }
.statusText.ok { color:var(--ok); }
.headerActions { display:grid; grid-template-columns:1fr 1fr; gap:12px; margin-top:4px; }
.actionBtn { width:100%; height:40px; border:1px solid var(--line); background:#fff; border-radius:10px; font-size:13px; font-weight:700; cursor:pointer; display:flex; align-items:center; justify-content:center; }
.actionBtn.primary { background:var(--primary-bg); border-color:#dbeafe; color:var(--primary); }
.sectionCard { background:var(--card); border-radius:var(--radius); padding:12px; margin-top:12px; box-shadow:0 1px 3px rgba(0,0,0,0.05); }
.sectionHead { display:flex; justify-content:space-between; align-items:center; margin-bottom:10px; }
.sectionTitle { margin:0; font-size:15px; font-weight:800; color:#111; }
.matchList { display:flex; flex-direction:column; gap:10px; }
.matchCard { background:#fff; border:1px solid var(--line); border-radius:10px; padding:12px; }
.mcTop { display:flex; justify-content:space-between; align-items:flex-start; margin-bottom:8px; }
.mcTitle { font-size:13px; font-weight:700; margin:0; color:#333; }
.mcMeta { font-size:11px; color:#999; margin-top:2px; font-family:monospace; }
.btnInline { white-space:nowrap; font-size:11px; padding:3px 12px; border:1px solid var(--line); background:#fff; border-radius:14px; cursor:pointer; color:#555; }
.mcPlayers { display:grid; grid-template-columns:1fr 1fr; gap:6px; }
.playerPill { background:#f9fafb; border:1px solid #f3f4f6; border-radius:6px; padding:6px 10px; display:flex; justify-content:space-between; font-size:12px; align-items:center; }
.pos { color:var(--ok); font-weight:700; } .neg { color:var(--err); font-weight:700; }
.info-row { display:flex; justify-content:space-between; align-items:center; font-size:12px; color:#555; }
.mod-btn { color:var(--primary); border:none; background:none; padding:0; font-weight:700; cursor:pointer; text-decoration:underline; font-size:11px; }
.total-pt-box { background:#f8fafc; border:1px solid #e5e7eb; border-radius:10px; padding:10px; margin-bottom:16px; }
.pt-header { display:flex; justify-content:space-between; align-items:center; margin-bottom:8px; }
.share-btn { font-size:11px; background:#fff; border:1px solid #d1d5db; border-radius:6px; padding:4px 8px; cursor:pointer; display:flex; align-items:center; gap:4px; font-weight:600; color:#374151; }
.input-card { background:#fff; border:1px solid var(--line); border-radius:12px; padding:12px; margin-bottom:12px; box-shadow:0 2px 8px rgba(0,0,0,0.03); }
.check-bar { display:flex; justify-content:space-between; align-items:center; margin-bottom:12px; }
.check-val { font-size:12px; font-weight:700; font-family:monospace; }
.check-val.ok { color:var(--ok); } .check-val.bad { color:var(--err); }
.score-grid { display:grid; grid-template-columns:1fr 1fr; gap:12px; margin-bottom:16px; }
.input-group { display:flex; flex-direction:column; gap:4px; }
.input-label { font-size:12px; font-weight:700; color:#4b5563; margin-left:2px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.score-input { width:100%; height:40px; padding:0 10px; border:1px solid #d1d5db; border-radius:8px; font-size:16px; font-family:monospace; outline:none; color:#1d4ed8; font-weight:700; transition:all 0.2s; }
.score-input::placeholder { color:#d1d5db; font-weight:400; }
.score-input:focus { border-color:var(--primary); background:#f0f9ff; }
.round-card { background:#fff; border:1px solid #eee; border-radius:10px; overflow:hidden; margin-bottom:10px; }
.round-head { background:#f9fafb; padding:8px 12px; display:flex; justify-content:space-between; align-items:center; font-size:11px; color:#666; border-bottom:1px solid #eee; }
.round-head .roundLabel{flex:1;text-align:left;}
.round-head .ops{margin-left:auto;}
.round-table { width:100%; border-collapse:collapse; }
.round-table td { padding:8px 12px; font-size:13px; border-bottom:1px solid #f9f9f9; }
.round-table tr:last-child td { border-bottom:none; }
.cell-pt { font-family:monospace; font-weight:700; text-align:right; }
.rank-badge { display:inline-flex; align-items:center; justify-content:center; width:20px; height:20px; border-radius:50%; font-size:11px; font-weight:800; margin-right:8px; box-shadow:0 1px 2px rgba(0,0,0,0.1); }
.r1 { background:#fef08a; color:#854d0e; border:1px solid #fde047; }
.r2 { background:#bae6fd; color:#1e40af; border:1px solid #93c5fd; }
.r3 { background:#bbf7d0; color:#166534; border:1px solid #86efac; }
.r4 { background:#f3f4f6; color:#4b5563; border:1px solid #e5e7eb; }
.modalMask { position:fixed; inset:0; background:rgba(0,0,0,0.6); display:none; align-items:center; justify-content:center; z-index:10000000; backdrop-filter:blur(3px); }
.modalMask.show { display:flex; }
.mmModal { width:100%; max-width:400px; background:#fff; border-radius:16px; padding:20px; max-height:90vh; overflow-y:auto; box-shadow:0 20px 60px rgba(0,0,0,0.25); }
.modalHead { display:flex; justify-content:space-between; align-items:center; margin-bottom:16px; border-bottom:1px solid #f1f5f9; padding-bottom:12px; }
.modalTitle { font-size:16px; font-weight:800; color:#111; }
.modalClose { font-size:22px; color:#ccc; background:none; border:none; cursor:pointer; }
.modal-section { background:#f8fafc; border:1px solid #e5e7eb; border-radius:10px; padding:12px; margin-bottom:12px; }
.modal-label { font-size:12px; font-weight:700; color:#64748b; margin-bottom:8px; display:block; }
.formGrid { display:grid; grid-template-columns:1fr 1fr; gap:10px; }
.form-input { width:100%; height:40px; padding:0 10px; border:1px solid #d1d5db; border-radius:8px; font-size:14px; outline:none; background:#fff; }
.form-input:focus { border-color:var(--primary); }
.mode-box { background:#f8fafc; border:1px solid #e5e7eb; border-radius:10px; padding:12px; margin-bottom:16px; }
.mode-block { margin-bottom:12px; padding-bottom:12px; border-bottom:1px dashed #e2e8f0; }
.mode-block:last-child { margin-bottom:0; padding-bottom:0; border-bottom:none; }
.mode-line { display:grid; grid-template-columns: auto 1fr; gap:12px; align-items:center; }
.mode-left { display:flex; align-items:center; gap:6px; font-size:13px; font-weight:700; color:#666; cursor:pointer; white-space:nowrap; }
.mode-left input { margin:0; width:16px; height:16px; accent-color:currentColor; }
.mode-right { display:flex; align-items:center; }
.uma-select { width:100%; height:32px; padding:0 8px; border:1px solid #d1d5db; border-radius:6px; font-size:12px; outline:none; background:#fff; }
.mode-block.active .mode-left { color:var(--primary); }
.mode-block.active.mleague .mode-left { color:var(--mleague); }
.mode-block:not(.active) .mode-right { opacity:0.4; pointer-events:none; }
.custom-area { margin-top:8px; display:flex; gap:6px; }
.uma-input { flex:1; height:34px; padding:0 8px; font-size:12px; border:1px solid #d1d5db; border-radius:6px; outline:none; }
.add-btn { height:34px; padding:0 12px; font-size:11px; font-weight:700; background:#e5e7eb; color:#555; border:none; border-radius:6px; cursor:pointer; white-space:nowrap; }
.add-btn.valid { background:var(--ok); color:#fff; }
.check-msg { font-size:11px; font-weight:600; min-height:16px; margin-top:4px; }
.check-msg.hint { color:var(--warn); }
.check-msg.ok { color:var(--ok); }
.check-msg.err { color:var(--err); }
.okBtn { width:100%; height:44px; background:var(--primary); color:#fff; border:none; border-radius:10px; font-size:15px; font-weight:700; cursor:pointer; }
#shareTarget { position:fixed; top:-9999px; left:-9999px; width:360px; background:#fff; padding:20px; border-radius:12px; display:flex; flex-direction:column; gap:10px; }
.share-row { display:flex; justify-content:space-between; align-items:center; padding:8px 0; border-bottom:1px solid #eee; }
.share-name { font-weight:700; color:#333; font-size:14px; }
.share-val { font-weight:700; font-size:16px; font-family:monospace; }
.hidden { display:none !important; }
#toast { position:fixed; top:10%; left:50%; transform:translateX(-50%); z-index:10000050; display:block; pointer-events:none; }

.toastBubble{ background:rgba(0,0,0,0.85); color:#fff; padding:8px 16px; border-radius:20px; font-size:13px; display:inline-block; opacity:0; transform:translateY(-6px); transition:all .25s; }
.toastBubble.show{ opacity:1; transform:translateY(0); }
.toastBubble.hide{ opacity:0; transform:translateY(-6px); }
.toastBubble.err{ background:rgba(239,68,68,0.9); }
.toastBubble.wsToast .toastTime{ color:var(--warn); }
.toastBubble.wsToast .toastWho{ color:var(--ok); }

.fabBar { position:fixed; bottom:0; left:0; right:0; background:rgba(255,255,255,0.95); border-top:1px solid #e5e7eb; padding:10px 14px; z-index:900; }
.fabBtn { width:100%; height:42px; background:var(--primary); color:#fff; font-size:14px; font-weight:700; border:none; border-radius:10px; }

/* BATTLE_CENTER_BEAUTIFY_START */
/* 战绩中心 UI 美化：汇总卡片 / 搜索筛选 / 列表卡片 */

.statsGrid{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:10px;
  margin-top:10px;
}
@media (max-width:420px){
  .statsGrid{ grid-template-columns:repeat(2,1fr); }
}

.statCard{
  position:relative;
  overflow:hidden;
  background:linear-gradient(180deg,#ffffff,#f9fafb);
  border:1px solid var(--line);
  border-radius:12px;
  padding:10px 10px 12px;
  box-shadow:0 1px 2px rgba(0,0,0,0.04);
}
.statCard::before{
  content:"";
  position:absolute;
  top:-24px;
  right:-24px;
  width:64px;
  height:64px;
  border-radius:50%;
  background:var(--primary-bg);
  opacity:.55;
}

.statLabel{
  font-size:11px;
  color:#64748b;
  font-weight:800;
  letter-spacing:.2px;
}
.statVal{
  margin-top:6px;
  font-size:18px;
  font-weight:900;
  font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;
  color:#0f172a;
}
.statVal.good{ color:var(--ok); }

/* 搜索/筛选条 */
.search-box{
  display:flex;
  gap:8px;
  align-items:center;
  flex-wrap:wrap;
  margin:8px 0 12px;
}
.search-input{
  flex:1;
  min-width:180px;
  height:40px;
  padding:0 12px;
  border:1px solid var(--line);
  border-radius:12px;
  font-size:13px;
  background:#fff;
  outline:none;
  box-shadow:0 1px 1px rgba(0,0,0,0.03);
}
.search-input:focus{
  border-color:var(--primary);
  box-shadow:0 0 0 3px rgba(37,99,235,0.12);
}

.filter-btn{
  height:40px;
  padding:0 14px;
  border-radius:12px;
  border:1px solid var(--line);
  background:#fff;
  font-size:12px;
  font-weight:900;
  color:#475569;
  cursor:pointer;
  transition:all .12s ease;
}
.filter-btn.active{
  background:var(--primary-bg);
  border-color:#bfdbfe;
  color:var(--primary);
}
.filter-btn:active{
  transform:scale(0.98);
}

/* 历史对局卡片：更像 App 卡片 */
.matchCard{
  transition:transform .12s ease, box-shadow .12s ease, border-color .12s ease;
}
.matchCard:hover{
  transform:translateY(-1px);
  box-shadow:0 10px 24px rgba(0,0,0,0.06);
  border-color:#dbeafe;
}

.btnInline{
  transition:background .12s ease, border-color .12s ease, transform .12s ease;
}
.btnInline:active{
  transform:scale(0.98);
}

.playerPill{
  gap:10px;
}
.playerName{
  font-weight:900;
  color:#0f172a;
  max-width:62%;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.playerVal{
  font-weight:900;
  font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;
}

/* BATTLE_CENTER_BEAUTIFY_END */



/* EDIT_ROUND_UI_START */
/* 半庄录入：修改弹窗 + 修改按钮 UI 精修（v2：一人一行 + 右上角实时校验） */

.round-card .round-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
}

.round-card .ops{
  display:flex;
  align-items:center;
  gap:8px;
}

.round-card .ops .btnInline{
  height:34px;
  padding:0 14px;
  min-width:56px;
  border-radius:12px;
  border:1px solid var(--line);
  background:#fff;
  font-size:13px;
  font-weight:900;
  color:#334155;
  box-shadow:0 1px 1px rgba(0,0,0,0.03);
  transition:transform .12s ease, box-shadow .12s ease, border-color .12s ease;
}

.round-card .ops .btnInline:hover{
  border-color:#dbeafe;
  box-shadow:0 8px 18px rgba(0,0,0,0.06);
}

.round-card .ops .btnInline:active{
  transform:scale(0.98);
}

.editModal{
  width:min(92vw, 520px);
}

/* modalHead 右侧：校验 + 关闭 */
.editHeadRight{
  display:flex;
  align-items:center;
  gap:10px;
}
.editHeadRight .check-val{
  padding:6px 10px;
  border-radius:999px;
  line-height:1;
  min-width:110px;
  text-align:center;
}

.editTip{
  margin-top:6px;
  margin-bottom:10px;
  color:#64748b;
  font-size:12px;
  font-weight:700;
}

/* ✅ 一人一行输入框 */
.editGrid{
  display:flex;
  flex-direction:column;
  gap:12px;
  margin-top:8px;
}

.editCell{
  background:linear-gradient(180deg,#ffffff,#f8fafc);
  border:1px solid var(--line);
  border-radius:14px;
  padding:12px;
  box-shadow:0 1px 2px rgba(0,0,0,0.04);
  display:flex;
  flex-direction:column;
  align-items:stretch;
  gap:6px;
}

.editName{
  font-size:13px;
  font-weight:900;
  color:#0f172a;
  line-height:1.35;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
  max-width:100%;
  text-align:left;
}

.editFieldLabel{
  font-size:11px;
  font-weight:700;
  color:#94a3b8;
  line-height:1;
  text-align:left;
}

.editInput{
  width:100%;
  height:44px;
  border-radius:12px;
  font-size:16px;
  font-weight:950;
  text-align:right;
  font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;
}

#editSaveBtn{
  height:44px;
  border-radius:16px;
  font-weight:950;
}
/* EDIT_ROUND_UI_END */


/* RANK_ICON_UNIFY_START */
/* 全站统一排名徽标 🥇🥈🥉💀 */
.rankIcon{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:18px;
  min-width:18px;
  margin-right:6px;
  font-size:14px;
  line-height:1;
}
.rankIcon.small{
  width:20px;
  min-width:20px;
  font-size:15px;
  margin-right:8px;
}

/* 历史对局卡片：名字带徽标更稳 */
.playerName{
  display:flex;
  align-items:center;
  gap:0;
  min-width:0;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.playerName .rankIcon{ flex-shrink:0; }

/* 你之前编辑弹窗里加的 🀄 前缀会导致徽标不一致：关掉它 */
.editName::before{
  content:"";
  display:none;
}
/* RANK_ICON_UNIFY_END */



/* MATCH_UI_TIDY_V7_6_2_START */
/* ✅ 半庄录入界面规整化：统一字号/按钮/卡片 */
.input-card, .round-card, .total-pt-box{
  border-radius:18px !important;
}
.check-bar{
  font-size:13px !important;
  font-weight:900 !important;
}
.check-val{
  font-size:12px !important;
  font-weight:900 !important;
}
.score-input{
  height:44px !important;
  border-radius:14px !important;
  font-size:15px !important;
  font-weight:900 !important;
}
.input-group label{
  font-size:12px !important;
  font-weight:900 !important;
  color:#475569 !important;
}
.actionBtn{
  height:44px !important;
  border-radius:16px !important;
  font-size:14px !important;
  font-weight:900 !important;
}
/* “确认并添加”不要黑：更年轻的纯色块 */
.actionBtn.primary{
  background:#0ea5e9 !important;
  color:#fff !important;
  border:none !important;
}
.actionBtn.danger{
  background:#ef4444 !important;
  color:#fff !important;
  border:none !important;
}
.actionBtn.ghost{
  background:#fff !important;
  border:1px solid rgba(15,23,42,.12) !important;
}

/* 半庄记录：四行展示更清晰 */
.round-card table{
  width:100% !important;
  border-collapse:collapse !important;
  font-size:13px !important;
}
.round-card td{
  padding:8px 6px !important;
  border-bottom:1px solid rgba(15,23,42,.08) !important;
}
.round-card tr:last-child td{ border-bottom:none !important; }
/* MATCH_UI_TIDY_V7_6_2_END */




/* FLAT_THEME_PRO_V1_START */
/* ✅ 扁平/几何/纯色块：去掉渐变背景与装饰，统一卡片/按钮/字体层级 */

:root{
  --bgFlat:#f6f7fb;
  --cardFlat:#ffffff;
  --ink:#0f172a;
  --muted2:#64748b;
  --line2:rgba(15,23,42,.10);

  --cBlue:#2563eb;
  --cTeal:#0ea5e9;
  --cViolet:#8b5cf6;
  --cRose:#ec4899;
  --cAmber:#f59e0b;
  --cGreen:#16a34a;
}

/* 全局背景：纯色，不要渐变 */
body{
  background: var(--bgFlat) !important;
  color: var(--ink) !important;
}

/* 禁用可爱主题里的渐变装饰 */
.headerCard::before,
.headerCard::after,
.sectionCard::before,
.sectionCard::after{
  display:none !important;
  content:none !important;
}

/* 页面容器 */
.wrap{ padding:12px 12px 130px !important; }

/* 卡片统一：纯白 + 边框 + 轻阴影 */
.headerCard, .sectionCard, .input-card, .round-card, .matchCard, .total-pt-box{
  background: var(--cardFlat) !important;
  border: 1px solid var(--line2) !important;
  border-radius: 18px !important;
  box-shadow: 0 10px 26px rgba(15,23,42,.06) !important;
  overflow: hidden !important;
}

/* 卡片标题栏：彩色小方块 + 标题统一字号 */
.sectionHead, .round-head{
  display:flex !important;
  align-items:center !important;
  justify-content:space-between !important;
  gap:10px !important;
  padding:12px 14px !important;
  border-bottom:1px solid rgba(15,23,42,.08) !important;
  background:#fff !important;
  position:relative !important;
}
.sectionHead::before, .round-head::before{
  content:"" !important;
  width:10px !important;
  height:10px !important;
  border-radius:3px !important;
  background: var(--cBlue) !important;
  flex:0 0 auto !important;
  margin-right:8px !important;
}
.sectionTitle, .round-title, .headerTitle, .cardTitle{
  font-size:14px !important;
  font-weight:950 !important;
  color: var(--ink) !important;
  letter-spacing:.2px !important;
}
.subText, .hintText, .muted, .desc{
  color: var(--muted2) !important;
  font-size:12px !important;
  font-weight:700 !important;
}

/* 顶部小按钮：纯色块（不要黑色） */
.miniBtn{
  height:34px !important;
  padding:0 12px !important;
  border-radius:14px !important;
  font-size:12px !important;
  font-weight:950 !important;
  border:1px solid rgba(15,23,42,.10) !important;
  background:#fff !important;
  color: var(--ink) !important;
}
.miniBtn.install{
  background: #e0f2fe !important;
  border-color: rgba(14,165,233,.25) !important;
  color:#075985 !important;
}
.miniBtn.lang{
  background:#ede9fe !important;
  border-color: rgba(139,92,246,.25) !important;
  color:#4c1d95 !important;
}

/* 主按钮统一：高度/圆角/纯色 */
.actionBtn{
  height:44px !important;
  border-radius:16px !important;
  font-size:14px !important;
  font-weight:950 !important;
  border:1px solid rgba(15,23,42,.10) !important;
  box-shadow: 0 10px 22px rgba(15,23,42,.07) !important;
}
.actionBtn.primary{
  background: var(--cBlue) !important;
  color:#fff !important;
  border-color: rgba(37,99,235,.35) !important;
}
.actionBtn.ok{
  background: var(--cGreen) !important;
  color:#fff !important;
  border-color: rgba(22,163,74,.35) !important;
}
.actionBtn.danger{
  background: var(--cRose) !important;
  color:#fff !important;
  border-color: rgba(236,72,153,.35) !important;
}

/* 半庄录入：输入框统一 */
.score-input{
  height:44px !important;
  border-radius:14px !important;
  font-size:15px !important;
  font-weight:950 !important;
  border:1px solid rgba(15,23,42,.10) !important;
  background:#fff !important;
}
.input-label{
  font-size:12px !important;
  font-weight:950 !important;
  color: var(--muted2) !important;
}

/* 半庄记录表格更清晰 */
.round-card table{
  width:100% !important;
  border-collapse:collapse !important;
  font-size:13px !important;
}
.round-card td{
  padding:9px 8px !important;
  border-bottom:1px solid rgba(15,23,42,.08) !important;
}
.round-card tr:last-child td{ border-bottom:none !important; }
.round-card td:nth-child(2)::before{
  content:"得点 ";
  font-size:11px;
  color:#94a3b8;
  margin-right:2px;
}
.round-card td:nth-child(3)::before{
  content:"PT ";
  font-size:11px;
  color:#94a3b8;
  margin-right:2px;
}

/* 规则/副标题用彩色 */
.ruleBadge.simple{ color:#1d4ed8 !important; font-weight:900 !important; }
.ruleBadge.mleague{ color:#be185d !important; font-weight:900 !important; }

/* 弹窗：纯色简约 */
.mmModal{
  border-radius:18px !important;
  border:1px solid rgba(15,23,42,.12) !important;
  box-shadow:0 22px 60px rgba(15,23,42,.20) !important;
}
/* FLAT_THEME_PRO_V1_END */

/* UI_POLISH_V7_6_5_START */

/* ✅ 彻底干掉“渐变背景块/装饰层” */
body, .wrap, .appBg, .bg, .bgWrap{
  background-image:none !important;
}
body::before, body::after,
.wrap::before, .wrap::after,
.bg::before, .bg::after,
.bgDecor, .bgBlob, .bgGradient,
[class*="gradient"], [class*="blob"], [class*="glow"]{
  content:none !important;
  background:none !important;
  filter:none !important;
}

/* ✅ 平面纯色底（带一点彩，不灰不黑） */
:root{
  --bg:#f6f7ff;
  --card:#ffffff;
  --text:#0f172a;
  --muted:#64748b;

  --blue:#3b82f6;
  --green:#10b981;
  --violet:#8b5cf6;
  --amber:#f59e0b;
  --rose:#ec4899;

  --bd:rgba(15,23,42,.10);
  --shadow:0 12px 28px rgba(15,23,42,.06);
  --shadow2:0 18px 46px rgba(15,23,42,.10);
}

html,body{
  background:var(--bg) !important;
  color:var(--text) !important;
  font-family: system-ui,-apple-system,Segoe UI,Roboto,"Noto Sans JP","Hiragino Sans",sans-serif !important;
}

/* ✅ 卡片统一：平面+轻阴影（高级） */
.headerCard,.sectionCard,.input-card,.round-card,.matchCard,.statCard,.cardBlock{
  background:var(--card) !important;
  border:1px solid var(--bd) !important;
  border-radius:18px !important;
  box-shadow:var(--shadow) !important;
}

/* ✅ 标题层级统一 */
h1,h2,h3,.sectionTitle,.cardTitle{
  font-weight:950 !important;
  letter-spacing:.2px !important;
}
.small,.muted,.desc,.subTitle,.hint,.cardHint{
  color:var(--muted) !important;
  font-weight:800 !important;
}

/* ✅ 多彩纯色块按钮（不再全蓝） */
button,.actionBtn,.btnMain,.okBtn{
  border-radius:16px !important;
  border:1px solid rgba(15,23,42,.08) !important;
  font-weight:950 !important;
  transition: transform .14s ease, box-shadow .14s ease, filter .14s ease !important;
}
button:hover,.actionBtn:hover{ box-shadow:var(--shadow2) !important; transform:translateY(-1px); }
button:active,.actionBtn:active{ transform:scale(.985); }

.actionBtn.primary,#enterBtn,#loginBtn{
  background:var(--blue) !important;
  color:#fff !important;
}
#addBtn,.confirmBtn,.btnTeal{
  background:var(--green) !important;
  color:#fff !important;
}
.mod-btn,.editBtn,.btnViolet{
  background:var(--violet) !important;
  color:#fff !important;
}
.del-btn,.deleteBtn,.btnRose,.dangerBtn{
  background:var(--rose) !important;
  color:#fff !important;
}

/* 顶部小按钮（语言/安装）用淡彩色块 */
#langBtn,#installBtn,.btnInline{
  background:rgba(245,158,11,.16) !important;
  color:#92400e !important;
  border:1px solid rgba(245,158,11,.35) !important;
  border-radius:14px !important;
}

/* ✅ 输入框统一 */
input,select,textarea,.scoreInput,.form-input{
  height:44px !important;
  border-radius:14px !important;
  border:1px solid rgba(15,23,42,.10) !important;
  font-weight:900 !important;
  background:#fff !important;
}

/* ✅ 半庄录入：卡片、字体、按钮统一 */
.matchWrap,.matchPage{
  font-size:14px !important;
}
.matchWrap .cardTitle,.matchPage .cardTitle{ font-size:14px !important; }
.matchWrap .btnMain,.matchPage .btnMain{ height:46px !important; font-size:14px !important; }

/* “当前规则”标题风格 = “累计PT” */
.rule-current-title{
  font-size:14px !important;
  font-weight:950 !important;
}

/* “修改规则”不是下划线链接，而是小按钮（和修改半庄按钮一致） */
.rule-edit-btn{
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  height:32px !important;
  padding:0 12px !important;
  border-radius:14px !important;
  background:var(--violet) !important;
  color:#fff !important;
  font-weight:950 !important;
  text-decoration:none !important;
  border:1px solid rgba(139,92,246,.35) !important;
}

/* 简易直算法 / 马点 → 彩色标签 */
.rule-tag{
  display:inline-flex;
  align-items:center;
  padding:4px 10px;
  border-radius:999px;
  font-size:12px;
  font-weight:950;
  gap:6px;
}
.rule-tag.algo{ background:rgba(59,130,246,.16); color:#1d4ed8; }
.rule-tag.ma{ background:rgba(16,185,129,.16); color:#047857; }

/* 半庄记录：清晰、四行完整展示 */
.round-card table{ width:100%; border-collapse:collapse; font-size:13px; }
.round-card td{ padding:8px 6px; border-bottom:1px solid rgba(15,23,42,.08); }
.round-card tr:last-child td{ border-bottom:none; }
.round-card td:nth-child(2)::before{ content:"得点 "; font-size:11px; opacity:.7; color:var(--amber); margin-right:4px; }
.round-card td:nth-child(3)::before{ content:"PT "; font-size:11px; opacity:.7; color:var(--violet); margin-right:4px; }

/* ✅ 用水印确认“样式已生效” */
body::after{
  content:"UI v7.6.5";
  position:fixed;
  right:10px;
  bottom:10px;
  font-size:11px;
  font-weight:950;
  padding:6px 10px;
  border-radius:999px;
  background:rgba(15,23,42,.08);
  color:#0f172a;
  z-index:9999;
  pointer-events:none;
}
/* UI_POLISH_V7_6_5_END */

/* CLEAN_INSTALL_PATCH_20260124 */
/* 顶部按钮：日本語+安装 黑底白字 + 间隙（双保险 gap+margin） */
.headerRight.homeActions{
  display:flex !important;
  flex-direction:row !important;
  align-items:center !important;
  justify-content:flex-end !important;
  gap:12px !important;
}
.headerRight.homeActions #installBtn{ margin-left:12px !important; }

#langBtn,#installBtn{
  background:#111 !important;
  color:#fff !important;
  border:none !important;
  height:32px !important;
  padding:0 12px !important;
  border-radius:14px !important;
  font-weight:950 !important;
  white-space:nowrap !important;
}

/* 安装弹窗：默认不显示，不挡任何按钮 */
.majInstallMask{
  position:fixed; inset:0;
  display:none;
  align-items:center; justify-content:center;
  background:rgba(0,0,0,.45);
  z-index:9999;
  padding:18px;
}
.majInstallMask.show{ display:flex; }
.majInstallCard{
  width:min(520px, 92vw);
  background:#fff;
  border-radius:18px;
  box-shadow:0 16px 40px rgba(0,0,0,.25);
  overflow:hidden;
}
.majInstallHead{
  display:flex; align-items:center; justify-content:space-between;
  padding:12px 14px;
  border-bottom:1px solid #e5e7eb;
}
.majInstallClose{
  width:34px;height:34px;border:none;border-radius:12px;
  background:#111;color:#fff;font-size:18px;font-weight:950;
}
.majInstallBody{ padding:14px; }

/* MAJ_TOP_BUTTONS_REBUILD */
.majTopBtns{
  display:flex;
  flex-direction:row;
  gap:14px;
  align-items:center;
}
.majTopBtn{
  background:#111;
  color:#fff;
  border:none;
  height:32px;
  padding:0 14px;
  border-radius:14px;
  font-weight:900;
  font-size:13px;
  cursor:pointer;
}

/* PLAYER_PLACEHOLDER_HIGHLIGHT_START */
/* ① 开始对局：占位符更浅 + 输入值高亮（绿色） */
#mp0, #mp1, #mp2, #mp3{
  color: var(--ok);
  font-weight: 800;
}
#mp0::placeholder, #mp1::placeholder, #mp2::placeholder, #mp3::placeholder{
  color:#e5e7eb;  /* 更浅更发白 */
  font-weight:700;
}

/* ② 算法选择：简易=蓝色，M-League=红色 + 淡粉背景 */
#blockSimple{
  background: var(--primary-bg);
  border:1px solid #bfdbfe;
  border-radius:10px;
  padding:10px;
  margin-bottom:10px;
  border-bottom:none !important;
}
#blockMLeague{
  background: var(--mleague-bg);
  border:1px solid #fecdd3;
  border-radius:10px;
  padding:10px;
  margin-bottom:10px;
  border-bottom:none !important;
}

#blockSimple .mode-left{ color: var(--primary) !important; }
#blockMLeague .mode-left{ color: var(--mleague) !important; }

/* 让 radio 的强调色跟随文字颜色（更明显） */
#blockSimple .mode-left input{ accent-color: var(--primary); }
#blockMLeague .mode-left input{ accent-color: var(--mleague); }
/* PLAYER_PLACEHOLDER_HIGHLIGHT_END */


/* MODE_UI_PATCH_START */
/* A) 模式选择：去掉任何“胶囊填充”，文字固定蓝/红 */
#blockSimple .mode-left span{
  background:transparent !important;
  padding:0 !important;
  border-radius:0 !important;
  color:var(--primary) !important;   /* 深蓝 */
  font-weight:950 !important;
}
#blockMLeague .mode-left span{
  background:transparent !important;
  padding:0 !important;
  border-radius:0 !important;
  color:var(--mleague) !important;   /* 红色 */
  font-weight:950 !important;
}
/* 万一 span 仍被加了 rule-tag，也强制干掉胶囊 */
#blockSimple .mode-left .rule-tag,
#blockMLeague .mode-left .rule-tag{
  background:transparent !important;
  padding:0 !important;
  border-radius:0 !important;
  display:inline !important;
}

/* B) 自定义马点：占位符变浅灰 + “确认添加/追加”按钮更明亮，并对齐输入框 */
.custom-area{ align-items:center; }
.uma-input::placeholder{
  color:#e5e7eb !important;
  font-weight:700;
}
.add-btn{
  height:34px !important;
  padding:0 14px !important;
  background:var(--ok) !important;   /* 直接变亮（绿色） */
  color:#fff !important;
  font-weight:900 !important;
  border:1px solid rgba(16,185,129,.35) !important;
}
.add-btn:active{ transform:scale(.98); }
/* MODE_UI_PATCH_END */


/* UI_TONE_PATCH_20260125_START */
/* 1) 首页右上“语言/安装”按钮：统一蓝底白字（避免绿/黑太刺眼） */
.topbtns button,
.topbtns a,
#topButtons button,
#topButtons a,
.top-buttons button,
.top-buttons a{
  background: var(--primary) !important;
  color: #fff !important;
  border: 1px solid rgba(37,99,235,.35) !important;
  box-shadow: none !important;
}

/* 2) 开始对局弹窗：进入对局按钮蓝底白字（兼容多种写法） */
#startModal button.primary,
#startModal .btn-primary,
#startModal .btn-enter,
#startModal #btnEnter,
#startModal #enterBtn,
#startModal #btnJoin{
  background: var(--primary) !important;
  color: #fff !important;
  border: 1px solid rgba(37,99,235,.35) !important;
  font-weight: 900 !important;
}

/* 3) 录入半庄：当前规则标题字号/字重对齐“累计PT” */
.rule-title,
.rule-head-title,
#ruleTitle,
.current-rule-title{
  font-size: 16px !important;   /* 你站里“累计PT”通常就是这个级别 */
  font-weight: 900 !important;
  line-height: 1.2 !important;
}

/* 4) 当前规则容器里的“修改”按钮：跟半庄记录里的修改按钮一致 + 垂直居中 */
.current-rule .edit-btn,
.current-rule .btn-edit,
.rule-box .edit-btn,
.rule-box .btn-edit{
  height: 34px !important;
  padding: 0 14px !important;
  background: var(--primary) !important;
  color: #fff !important;
  border: 1px solid rgba(37,99,235,.35) !important;
  border-radius: 12px !important;
  font-weight: 900 !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
}

/* 当前规则头部容器垂直居中（避免按钮飘上飘下） */
.current-rule,
.rule-box,
.rule-head,
.current-rule-head{
  align-items: center !important;
}
/* UI_TONE_PATCH_20260125_END */



/* RULE_EDIT_ALIGN_FIX_START */
/* 规则区“修改”按钮强制垂直居中 */
.rule-current-wrap,
.current-rule,
.rule-box,
.rule-head {
  display:flex !important;
  align-items:center !important;
  justify-content:space-between !important;
  gap:10px !important;
}
.rule-current-wrap .btnInline,
.current-rule .btnInline,
.rule-box .btnInline {
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  height:34px !important;
  line-height:34px !important;
  padding:0 14px !important;
}
/* RULE_EDIT_ALIGN_FIX_END */


/* ENTERBTN_BLUE_PATCH_START */
/* “进入对局”按钮统一蓝底白字（避免绿色元素过多） */
#enterBtn, #btnEnter, #enterMatchBtn {
  background: #2563eb !important;
  color: #ffffff !important;
  border: 1.5px solid rgba(37,99,235,.45) !important;
  font-weight: 900 !important;
}
/* ENTERBTN_BLUE_PATCH_END */


/* --- MAJAPP_PLUSMINUS_NO_STUCK_BEGIN (pm2_20260211) ---
   iOS 数字键盘无负号：为分数输入框添加 ± 切换按钮
   设计要求：可点动画（可复位）、不下沉、不粘住、不受全局 button:hover 影响
*/
.majPmWrap{ position:relative; display:block; width:100%; }
.majPmInput{ padding-right:52px !important; }
.majPmBtn{
  position:absolute;
  right:8px;
  top:50%;
  transform:translateY(-50%);
  width:34px;
  height:24px;
  border-radius:10px;
  background:rgba(15,23,42,0.08);
  color:#334155;
  display:flex;
  align-items:center;
  justify-content:center;
  font-weight:900;
  font-size:14px;
  line-height:1;
  user-select:none;
  -webkit-user-select:none;
  -webkit-tap-highlight-color:transparent;
  touch-action:manipulation;
  cursor:pointer;
}
.majPmBtn:hover,
.majPmBtn:active,
.majPmBtn:focus,
.majPmBtn:focus-visible{
  transform:translateY(-50%);
  outline:none;
  box-shadow:none;
}
.majPmBtn .majPmGlyph{ display:block; transform:translateZ(0); }
.majPmBtn.tapping .majPmGlyph{ animation:majPmTap 160ms ease-out; }
@keyframes majPmTap {
  0%{ transform:scale(1); }
  40%{ transform:scale(0.88); }
  100%{ transform:scale(1); }
}
/* --- MAJAPP_PLUSMINUS_NO_STUCK_END --- */


/* pager */
.pager{padding:10px 6px;}
.pagerRow{display:flex;flex-wrap:wrap;gap:8px;align-items:center;justify-content:center;}
.pagerDots{opacity:.6;font-size:12px;padding:0 4px;}
.pagerInfo{opacity:.75;font-size:12px;}

/* MAJAPP_PAGER_DISABLED: hide pager permanently */
.pager{ display:none !important; }


/* MATCH_ACTION_MINI_UI_START */
.miniActionBar{display:flex;align-items:center;justify-content:flex-end;gap:8px;flex-wrap:wrap}
.miniActionBtn{height:28px;padding:0 10px;border-radius:999px;border:1px solid #69b84f;background:#79c85c;color:#fff;font-size:12px;font-weight:800;line-height:1;box-shadow:0 6px 14px rgba(121,200,92,.18);cursor:pointer;transition:transform .12s ease,border-color .12s ease,background .12s ease,color .12s ease,box-shadow .12s ease}
.miniActionBtn:hover{border-color:#58a73e;background:#6fbe52;color:#fff;box-shadow:0 8px 18px rgba(121,200,92,.24)}
.miniActionBtn:active{transform:scale(.98)}
.miniActionBtn.danger{border-color:#ef86a8;background:#f59fba;color:#fff;box-shadow:0 6px 14px rgba(245,159,186,.2)}
.miniActionBtn.danger:hover{border-color:#e46d97;background:#ee8eac;color:#fff;box-shadow:0 8px 18px rgba(245,159,186,.26)}
.topRuleActions{margin-left:auto}
.roundLabel{font-size:12px;font-weight:900;color:#334155}
.round-card .ops{display:flex;align-items:center;gap:6px}
.round-card .ops .miniActionBtn{height:26px;padding:0 9px;font-size:11px}
/* MATCH_ACTION_MINI_UI_END */


/* MATCH_CONFIRM_UI_START */
.confirmModal{width:min(92vw,360px);padding:18px 18px 16px;border-radius:18px;text-align:center;}
.confirmIcon{width:52px;height:52px;margin:2px auto 10px;border-radius:999px;background:linear-gradient(180deg,#fff1f2,#ffe4e6);border:1px solid #fecdd3;color:#be123c;display:flex;align-items:center;justify-content:center;font-size:24px;font-weight:900;}
.confirmTitle{font-size:17px;font-weight:900;color:#0f172a;line-height:1.2;margin-bottom:8px;}
.confirmText{font-size:13px;line-height:1.65;color:#64748b;margin-bottom:14px;white-space:pre-wrap;}
.confirmActions{display:grid;grid-template-columns:1fr 1fr;gap:10px;}
.confirmBtn{height:40px;border:none;border-radius:12px;font-size:14px;font-weight:900;cursor:pointer;}
.confirmBtn.ghost{background:#f8fafc;color:#475569;border:1px solid #e2e8f0;}
.confirmBtn.ok{background:#79c85c;color:#fff;box-shadow:0 6px 16px rgba(121,200,92,.22);}
.confirmBtn.danger{background:#f59fba;color:#fff;box-shadow:0 6px 16px rgba(245,159,186,.22);}
#confirmMask .mmModal{overflow:hidden;}
/* MATCH_CONFIRM_UI_END */


/* TOP_RULE_ACTION_COLOR_FIX_20260309 */
.current-rule .topRuleActions .miniActionBtn,
.rule-current-wrap .topRuleActions .miniActionBtn,
.rule-box .topRuleActions .miniActionBtn{
  border-color:#69b84f !important;
  background:#79c85c !important;
  color:#fff !important;
  box-shadow:0 6px 14px rgba(121,200,92,.18) !important;
}
.current-rule .topRuleActions .miniActionBtn:hover,
.rule-current-wrap .topRuleActions .miniActionBtn:hover,
.rule-box .topRuleActions .miniActionBtn:hover{
  border-color:#58a73e !important;
  background:#6fbe52 !important;
  color:#fff !important;
  box-shadow:0 8px 18px rgba(121,200,92,.24) !important;
}
.current-rule .topRuleActions .miniActionBtn.danger,
.rule-current-wrap .topRuleActions .miniActionBtn.danger,
.rule-box .topRuleActions .miniActionBtn.danger{
  border-color:#ef86a8 !important;
  background:#f59fba !important;
  color:#fff !important;
  box-shadow:0 6px 14px rgba(245,159,186,.20) !important;
}
.current-rule .topRuleActions .miniActionBtn.danger:hover,
.rule-current-wrap .topRuleActions .miniActionBtn.danger:hover,
.rule-box .topRuleActions .miniActionBtn.danger:hover{
  border-color:#e46d97 !important;
  background:#ee8eac !important;
  color:#fff !important;
  box-shadow:0 8px 18px rgba(245,159,186,.26) !important;
}


/* ALIGN_FIX_20260309_TOPRULE_AND_EDITMODAL */

/* 1) 当前规则卡片右侧按钮：精确命中，不再被别的全局 button 样式干扰 */
#matchView > .headerCard .info-row .topRuleActions{
  margin-left:auto !important;
  display:flex !important;
  align-items:center !important;
  justify-content:flex-end !important;
  gap:8px !important;
  flex-wrap:wrap !important;
}

#matchView > .headerCard .info-row .topRuleActions .miniActionBtn{
  height:30px !important;
  padding:0 12px !important;
  border-radius:999px !important;
  border:1px solid #69b84f !important;
  background:#79c85c !important;
  color:#fff !important;
  font-size:12px !important;
  font-weight:900 !important;
  line-height:1 !important;
  box-shadow:0 8px 18px rgba(121,200,92,.22) !important;
}
#matchView > .headerCard .info-row .topRuleActions .miniActionBtn:hover{
  border-color:#58a73e !important;
  background:#6fbe52 !important;
  color:#fff !important;
  box-shadow:0 10px 22px rgba(121,200,92,.28) !important;
}
#matchView > .headerCard .info-row .topRuleActions .miniActionBtn.danger{
  border-color:#ef86a8 !important;
  background:#f59fba !important;
  color:#fff !important;
  box-shadow:0 8px 18px rgba(245,159,186,.24) !important;
}
#matchView > .headerCard .info-row .topRuleActions .miniActionBtn.danger:hover{
  border-color:#e46d97 !important;
  background:#ee8eac !important;
  color:#fff !important;
  box-shadow:0 10px 22px rgba(245,159,186,.30) !important;
}

/* 2) 修改半庄弹窗：更有层次，名字绿色，得点深蓝 */
#editMask .editModal{
  background:linear-gradient(180deg,#ffffff 0%, #f8fbff 100%) !important;
  border:1px solid rgba(59,130,246,.10) !important;
  box-shadow:0 24px 64px rgba(15,23,42,.24) !important;
}

#editMask .editHead{
  border-bottom:1px solid #e5eefb !important;
}
#editMask #editModalTitle{
  color:#166534 !important;
  font-weight:950 !important;
}
#editMask #editModalDesc{
  color:#64748b !important;
  font-weight:700 !important;
}

#editMask .editGrid{
  gap:12px !important;
}

#editMask .editCell{
  background:linear-gradient(180deg,#f7fff8 0%, #ffffff 100%) !important;
  border:1px solid #d8f0de !important;
  border-radius:16px !important;
  padding:12px !important;
  box-shadow:0 6px 18px rgba(22,163,74,.06) !important;
}

#editMask .editCell:hover{
  border-color:#b7e4c1 !important;
  box-shadow:0 8px 22px rgba(22,163,74,.09) !important;
}

#editMask .editName{
  color:#16a34a !important;
  font-size:13px !important;
  font-weight:950 !important;
  line-height:1.35 !important;
  text-align:left !important;
}

#editMask .editFieldLabel{
  color:#22a06b !important;
  font-size:11px !important;
  font-weight:800 !important;
  text-align:left !important;
  letter-spacing:.2px !important;
}

#editMask .editInput{
  color:#1d4ed8 !important;
  background:#eff6ff !important;
  border:1px solid #bfdbfe !important;
  border-radius:12px !important;
  font-size:16px !important;
  font-weight:950 !important;
  text-align:right !important;
  box-shadow:inset 0 1px 2px rgba(30,64,175,.04) !important;
}
#editMask .editInput::placeholder{
  color:#93c5fd !important;
  font-weight:700 !important;
}
#editMask .editInput:focus{
  background:#dbeafe !important;
  border-color:#60a5fa !important;
  box-shadow:0 0 0 3px rgba(59,130,246,.14) !important;
}

#editMask #editHint{
  background:#eefbf3 !important;
  color:#15803d !important;
  border:1px solid #bbf7d0 !important;
}
#editMask #editHint.bad{
  background:#eff6ff !important;
  color:#1d4ed8 !important;
  border:1px solid #bfdbfe !important;
}
#editMask #editSaveBtn{
  background:#79c85c !important;
  color:#fff !important;
  border:1px solid #69b84f !important;
  box-shadow:0 10px 24px rgba(121,200,92,.24) !important;
}
#editMask #editSaveBtn:hover{
  background:#6fbe52 !important;
  color:#fff !important;
}

/* 3) 半庄标题继续确保左对齐 */
.round-head .roundLabel{
  flex:1 !important;
  text-align:left !important;
}
/* ALIGN_FIX_20260309_TOPRULE_AND_EDITMODAL_END */


/* SCORE_HINT_MARK_FIX_20260309 */
.check-val.withMark{
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  gap:6px !important;
  font-weight:900 !important;
}
.check-val.withMark .mark{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:16px;
  min-width:16px;
  font-size:13px;
  line-height:1;
  font-weight:950;
}
.check-val.withMark .txt{
  line-height:1;
}
.check-val.ok.withMark .mark{
  color:var(--ok) !important;
}
.check-val.bad.withMark .mark{
  color:var(--err) !important;
}
/* SCORE_HINT_MARK_FIX_20260309_END */


/* SCORE_HINT_PINK_GREEN_20260309 */
.check-val{
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  min-width:118px !important;
  padding:7px 12px !important;
  border-radius:999px !important;
  line-height:1 !important;
  font-size:12px !important;
  font-weight:900 !important;
  font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace !important;
  border:1px solid transparent !important;
  transition:background .18s ease,border-color .18s ease,color .18s ease,box-shadow .18s ease !important;
}

.check-val.ok{
  color:#15803d !important;
  background:#ecfdf3 !important;
  border-color:#bbf7d0 !important;
  box-shadow:0 4px 12px rgba(34,197,94,.08) !important;
}

.check-val.bad{
  color:#be123c !important;
  background:#fff1f2 !important;
  border-color:#fbcfe8 !important;
  box-shadow:0 4px 12px rgba(244,114,182,.10) !important;
}

/* 录入一局半庄右上角 */
.check-bar .check-val{
  min-width:122px !important;
}

/* 修改半庄弹窗右上角 */
.editHeadRight .check-val{
  min-width:122px !important;
  text-align:center !important;
}
/* SCORE_HINT_PINK_GREEN_20260309_END */


/* SCORE_HINT_UNIFY_EDIT_ADD_20260309 */

/* 录入一局半庄：保持统一胶囊样式 */
.check-bar .check-val{
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  min-width:118px !important;
  padding:7px 12px !important;
  border-radius:999px !important;
  line-height:1 !important;
  font-size:12px !important;
  font-weight:900 !important;
  font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace !important;
  border:1px solid transparent !important;
  transition:background .18s ease,border-color .18s ease,color .18s ease,box-shadow .18s ease !important;
}
.check-bar .check-val.ok{
  color:#15803d !important;
  background:#ecfdf3 !important;
  border-color:#bbf7d0 !important;
  box-shadow:0 4px 12px rgba(34,197,94,.08) !important;
}
.check-bar .check-val.bad{
  color:#be123c !important;
  background:#fff1f2 !important;
  border-color:#fbcfe8 !important;
  box-shadow:0 4px 12px rgba(244,114,182,.10) !important;
}

/* 修改半庄弹窗：强制与录入一局半庄完全统一 */
#editMask .editHeadRight .check-val{
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  min-width:118px !important;
  padding:7px 12px !important;
  border-radius:999px !important;
  line-height:1 !important;
  text-align:center !important;
  font-size:12px !important;
  font-weight:900 !important;
  font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace !important;
  border:1px solid transparent !important;
  transition:background .18s ease,border-color .18s ease,color .18s ease,box-shadow .18s ease !important;
}
#editMask .editHeadRight .check-val.ok{
  color:#15803d !important;
  background:#ecfdf3 !important;
  border-color:#bbf7d0 !important;
  box-shadow:0 4px 12px rgba(34,197,94,.08) !important;
}
#editMask .editHeadRight .check-val.bad{
  color:#be123c !important;
  background:#fff1f2 !important;
  border-color:#fbcfe8 !important;
  box-shadow:0 4px 12px rgba(244,114,182,.10) !important;
}

/* 防止旧样式把错误态重新刷成蓝色 */
#editMask .editHeadRight #editHint.bad{
  color:#be123c !important;
  background:#fff1f2 !important;
  border-color:#fbcfe8 !important;
}
#editMask .editHeadRight #editHint.ok{
  color:#15803d !important;
  background:#ecfdf3 !important;
  border-color:#bbf7d0 !important;
}

/* SCORE_HINT_UNIFY_EDIT_ADD_20260309_END */


/* slogan_topbar_20260309g */
.sloganBox {
  padding:0 0 10px 0 !important;
  display:flex !important;
  flex-direction:column !important;
  gap:8px !important;
  align-items:stretch !important;
  justify-content:center !important;
  overflow:hidden !important;
  text-align:center !important;
}

.sloganText {
  width:100% !important;
  margin:0 !important;
  padding:0 !important;
  text-align:center !important;
  display:block !important;
  line-height:1.5 !important;
  overflow:visible !important;
  text-overflow:clip !important;
  white-space:normal !important;
  -webkit-line-clamp:unset !important;
  -webkit-box-orient:unset !important;
}

.statusText {
  width:100% !important;
  margin:0 !important;
  padding:0 12px !important;
  box-sizing:border-box !important;
  text-align:center !important;
  display:block !important;
  line-height:1.5 !important;
  overflow:visible !important;
  text-overflow:clip !important;
  white-space:normal !important;
  -webkit-line-clamp:unset !important;
  -webkit-box-orient:unset !important;
}

.sloganTopBadge,
.sloganTopText,
.sloganTopBar {
  display:block !important;
  width:100% !important;
  margin:0 !important;
  padding:8px 12px !important;
  box-sizing:border-box !important;
  background:#f59e0b !important;
  color:#fff !important;
  font-weight:700 !important;
  line-height:1.45 !important;
  border-radius:10px 10px 0 0 !important;
  text-align:center !important;
}


/* QUE_MODE_PATCH_20260310 */
:root{
  --que:#84cc16;
  --que-bg:#f7fee7;
}
.formula-box span.que{ color:var(--que); font-weight:800; }
.ruleBadge.que{ color:#65a30d !important; font-weight:900 !important; }

#blockQue{
  background: var(--que-bg);
  border:1px solid #d9f99d;
  border-radius:10px;
  padding:10px;
  margin-bottom:10px;
  border-bottom:none !important;
}
#blockQue .mode-left{ color: var(--que) !important; }
#blockQue .mode-left input{ accent-color: var(--que); }
#blockQue .mode-left span{
  background:transparent !important;
  padding:0 !important;
  border-radius:0 !important;
  color:var(--que) !important;
  font-weight:950 !important;
}
#blockQue .mode-left .rule-tag{
  background:transparent !important;
  padding:0 !important;
  border-radius:0 !important;
  display:inline !important;
}
.mode-block.active.que .mode-left{ color:var(--que) !important; }
