/* ============================================================
   全伪装：Excel 工作簿外壳（公共样式）
   多个小游戏共用：棋盘/拼图被伪装成 Excel 工作表中的一块区域，
   四周填充办公台账数据，整体呈现为一份真实的工作簿。
   仅在 html.moyu-full 下由各页面 .xls-shell 渲染，非全伪装完全不受影响。
   ============================================================ */
.xls-shell { position: fixed; inset: 0; z-index: 90; display: flex; flex-direction: column;
    background: #f3f3f3; color: #1f2329; font-family: 'Segoe UI','Noto Sans SC',sans-serif; font-size: 12.5px; }
html.moyu-full body { background: #f3f3f3; }

.xls-titlebar { display: flex; align-items: center; gap: 12px; height: 30px; padding: 0 12px; background: #217346; color: #fff; flex-shrink: 0; }
.xls-tb-name { display: flex; align-items: center; gap: 7px; font-size: 12.5px; }
.xls-tb-bar { font-size: 11.5px; color: #cfe6da; }
/* 左上角「首页」入口：伪装为窗口标题栏上的应用级入口 */
.xls-tb-home { display: inline-flex; align-items: center; gap: 5px; padding: 3px 9px; border-radius: 3px;
    color: #eaf5ee; font-size: 12px; text-decoration: none; transition: background .14s; }
.xls-tb-home:hover { background: rgba(255,255,255,.18); color: #fff; }
.xls-tb-acts { margin-left: auto; display: flex; align-items: center; gap: 14px; color: #cfe6da; font-size: 11px; }
.xls-tb-acts .xls-tb-win { cursor: default; }
/* 右上角关闭：点击回到首页 */
.xls-tb-acts .xls-tb-close { display: inline-flex; align-items: center; justify-content: center; width: 20px; height: 20px;
    border-radius: 3px; color: #eaf5ee; text-decoration: none; font-size: 13px; line-height: 1; }
.xls-tb-acts .xls-tb-close:hover { background: #c0392b; color: #fff; }

.xls-ribbon { display: flex; align-items: flex-end; gap: 2px; height: 34px; padding: 0 8px; background: #f3f3f3; border-bottom: 1px solid #d0d0d0; overflow: hidden; flex-shrink: 0; }
.xls-rb { height: 30px; padding: 0 12px; line-height: 30px; border-bottom: 2px solid transparent; color: #444; font-size: 12.5px; cursor: default; }
.xls-rb.on { background: #fff; border-bottom-color: #217346; color: #217346; font-weight: 600; }
.xls-rb-sep { width: 1px; height: 20px; background: #d0d0d0; margin: 0 6px; align-self: center; }
.xls-cmd { display: inline-flex; align-items: center; gap: 5px; height: 30px; padding: 0 10px; color: #444; font-size: 12px; cursor: pointer; border-radius: 3px; align-self: center; transition: background .14s; }
.xls-cmd:hover { background: #e8e8e8; }
.xls-cmd i { color: #217346; }
/* 命令激活态（用于难度/模式切换等当前项高亮） */
.xls-cmd.on { background: #e2efe7; color: #217346; font-weight: 600; }

.xls-formula { display: flex; align-items: center; height: 26px; background: #fff; border-bottom: 1px solid #d0d0d0; flex-shrink: 0; font-size: 12px; }
.xls-namebox { display: flex; align-items: center; width: 96px; height: 100%; padding: 0 8px; border-right: 1px solid #d0d0d0; color: #444; font-family: 'JetBrains Mono',monospace; }
.xls-fx { width: 30px; text-align: center; color: #217346; font-weight: 700; font-style: italic; }
.xls-ftext { display: flex; align-items: center; flex: 1; height: 100%; padding: 0 8px; border-left: 1px solid #ececec; color: #333; font-family: 'JetBrains Mono',monospace; overflow: hidden; white-space: nowrap; }

.xls-grid { flex: 1; min-height: 0; overflow: auto; background: #fff; }
.xls-table { width: 100%; min-width: 1192px; border-collapse: collapse; table-layout: fixed; background: #fff; font-size: 12px; user-select: none; }
.xls-table th, .xls-table td { height: 24px; padding: 0 6px; border: 1px solid #e0e0e0; font-weight: 400; text-align: left; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
/* 全表统一行高：游玩区与周边台账单元格尺寸完全一致 */
.xls-table tbody th, .xls-table tbody td { height: 72px; }
.xls-table .xls-corner, .xls-table .xls-ch, .xls-table .xls-rn { background: #f0f0f0; color: #666; text-align: center; font-weight: 600; }
.xls-table .xls-ch.sel, .xls-table .xls-rn.sel { background: #cfe3cf; color: #1a5c3a; }
.xls-table td.xls-num { text-align: right; }
.xls-table td.xls-total { background: #f5faf7; color: #1a5c3a; font-weight: 700; }
/* 游玩区正上方 4 个单元格：实时显示本局数据，加粗 + 淡色，与周边台账数据仅作微小区分 */
.xls-table td.xls-stat { font-weight: 700; color: #64748b; }
/* 右侧空白填充列：无框线、无底色，等价于 Excel 已用区域之外的空白 */
.xls-table th.xls-pad, .xls-table td.xls-pad { border: 0; background: #fff; }

/* 游玩区：普通单元格，无边框、无底纹，与周边台账融为一体 */
.xls-table td.xls-tile { padding: 0; text-align: center; font-weight: 600; font-size: 17px; font-variant-numeric: tabular-nums; }
.xls-table td.xt-0 { background: #fff; }
.xls-table td.xt-2 { background: #f1f8f3; color: #217346; }
.xls-table td.xt-4 { background: #e6f2ea; color: #1c5c39; }
.xls-table td.xt-8 { background: #dbecdf; color: #1c5c39; }
.xls-table td.xt-16 { background: #cfe6d5; color: #17492e; }
.xls-table td.xt-32 { background: #c2dfca; color: #17492e; }
.xls-table td.xt-64 { background: #b4d8bf; color: #17492e; }
.xls-table td.xt-128 { background: #a6d0b4; color: #fff; }
.xls-table td.xt-256 { background: #93c5a6; color: #fff; }
.xls-table td.xt-512 { background: #7fb998; color: #fff; }
.xls-table td.xt-1024 { background: #6bad88; color: #fff; font-size: 15px; }
.xls-table td.xt-2048 { background: #217346; color: #fff; font-size: 15px; }
/* 通用游玩区状态色（井字棋/数字华容道等复用） */
.xls-table td.xt-done { background: #e2efe7; color: #1a5c3a; }        /* 已就位：浅绿 */
.xls-table td.xt-mark { background: #f1f8f3; color: #217346; }        /* 已标记：绿字 */
.xls-table td.xt-mark-alt { background: #eef4fb; color: #1d4e89; }    /* 另一侧标记：蓝字 */
.xls-table td.xt-win { background: #217346; color: #fff; }            /* 获胜格：深绿 */
.xls-table td.xt-tip { background: #fdf6e3; color: #b7791f; }         /* 提示格：浅黄 */

.xls-tabs { display: flex; align-items: center; gap: 2px; height: 26px; padding: 0 6px; background: #f3f3f3; border-top: 1px solid #d0d0d0; flex-shrink: 0; overflow-x: auto; }
.xls-tab { display: inline-flex; align-items: center; gap: 6px; height: 100%; padding: 0 12px; color: #555; font-size: 12px; border-bottom: 2px solid transparent; white-space: nowrap; cursor: default; }
.xls-tab i { font-size: 11px; color: #217346; }
.xls-tab.on { background: #fff; color: #217346; border-bottom-color: #217346; font-weight: 600; }
.xls-tab-add { padding: 0 10px; color: #64748b; }

.xls-status { display: flex; align-items: center; gap: 18px; height: 22px; padding: 0 12px; background: #217346; color: #fff; font-size: 11px; flex-shrink: 0; }
.xls-status .xls-right { display: flex; gap: 14px; margin-left: auto; }

/* 结束反馈：低干扰，不再全屏压暗、无游戏化大字 */
html.moyu-full .game-over-overlay { background: rgba(255,255,255,.72); align-items: center; justify-content: flex-end; }
html.moyu-full .game-over-box { background: #fff; border: 1px solid #d9dde2; border-radius: 4px; padding: 14px 18px; margin-right: 26px; box-shadow: 0 6px 20px rgba(0,0,0,.1); }
html.moyu-full .game-over-box h2 { font-size: 14px; color: #1f2329 !important; margin-bottom: 8px; font-weight: 600; }
html.moyu-full .game-over-box p { color: #4e5969 !important; font-size: 12px; }
html.moyu-full .game-over-box strong { color: #217346 !important; font-size: 14px !important; }
