/* ============ 三学段皮肤 ============ */

/* ---------- 小学 · 像素风 ---------- */
.theme-pixel {
  --font: "Microsoft YaHei", monospace;
  --font-title: "Press Start 2P", "Microsoft YaHei", monospace;
  --bg: #1a1c4b;            /* FC 夜空蓝 */
  --bg2: #24265e;
  --bg3: #2f3172;
  --txt: #fcfcfc;
  --muted: #9d9fd6;
  --primary: #f8d838;       /* FC 黄 */
  --gold: #f8d838;
  --accent: #38b764;        /* 草绿 */
  --accent-txt: #08301a;
  --green: #38b764;
  --border: #4a4d99;
  --border-main: 4px solid #0d0e2e;
  --bubble-radius: 2px;
  --bubble-border: 3px solid #0d0e2e;
  --bubble-npc-bg: #2f3172;
  --bubble-stu-bg: #4a3a1a;
  --avatar-radius: 2px;
  --avatar-border: 3px solid #38b764;
  /* 地图场景 */
  --map-bg: #2878c8;        /* 蓝天 */
  --map-ground: #38b764;    /* 草地 */
  --map-road: #de9e41;      /* 土路 */
  --map-road-edge: #a85638;
  --node-fill: #fcfcfc;
  --node-stroke: #0d0e2e;
  --node-done: #f8d838;
  --node-lock: #6b6ea8;
  --boss-fill: #f83800;
}
.theme-pixel .brand, .theme-pixel #stageTitle, .theme-pixel .chapter-banner {
  text-shadow: 2px 2px 0 #0d0e2e; letter-spacing: 1px;
}
.theme-pixel .task-card, .theme-pixel .bubble, .theme-pixel .modal-box,
.theme-pixel #input, .theme-pixel #btnSend, .theme-pixel .p-level {
  box-shadow: 3px 3px 0 #0d0e2e;
}
.theme-pixel #mapScroll {
  background: linear-gradient(rgba(40,120,200,.28), rgba(30,60,140,.34)), url("/static/art/bg/math.jpg") center/cover no-repeat;
}
.theme-pixel button { font-family: var(--font); cursor: pointer; }
.theme-pixel #btnSend, .theme-pixel .btn-primary, .theme-pixel .accept {
  border: 3px solid #0d0e2e; border-radius: 0;
}
.theme-pixel .p-mode, .theme-pixel #phaseBadge { border-radius: 0; }

/* ---------- 初中 · 日系动漫风 ---------- */
.theme-anime {
  --font: "PingFang SC", "Microsoft YaHei", sans-serif;
  --font-title: "PingFang SC", "Microsoft YaHei", sans-serif;
  --bg: #fff5f8;            /* 樱花白 */
  --bg2: #ffeef4;
  --bg3: #ffffff;
  --txt: #4a3b47;
  --muted: #a08b9a;
  --primary: #f472b6;       /* 樱粉 */
  --gold: #f0a833;
  --accent: #7db9f5;        /* 天空蓝 */
  --accent-txt: #ffffff;
  --green: #34d399;
  --border: #f3d1e0;
  --border-main: 2px solid #f3d1e0;
  --bubble-radius: 16px;
  --bubble-border: 1px solid #f3d1e0;
  --bubble-npc-bg: #ffffff;
  --bubble-stu-bg: #e3f0ff;
  --avatar-radius: 50%;
  --avatar-border: 2px solid #f472b6;
  --map-bg: #cfe9ff;        /* 晴空 */
  --map-ground: #d9f2e3;
  --map-road: #ffd9a0;
  --map-road-edge: #f0b866;
  --node-fill: #ffffff;
  --node-stroke: #f472b6;
  --node-done: #ffd166;
  --node-lock: #d8ccd4;
  --boss-fill: #ef476f;
}
.theme-anime #mapScroll {
  background: linear-gradient(rgba(191,227,255,.30), rgba(217,242,227,.30)), url("/static/art/bg/math.jpg") center/cover no-repeat;
}
.theme-anime .bubble { box-shadow: 0 2px 12px rgba(244,114,182,.12); }
.theme-anime .task-card { border-radius: 16px; }
.theme-anime .brand { letter-spacing: 4px; }

/* ---------- 国风水墨风 ---------- */
.theme-ink {
  --font: "KaiTi", "STKaiti", "Microsoft YaHei", serif;
  --font-title: "KaiTi", "STKaiti", serif;
  --bg: #f7f4ec;            /* 宣纸净白 */
  --bg2: #efeade;
  --bg3: #fdfbf5;
  --txt: #2e2a26;           /* 浓墨 */
  --muted: #8a8378;         /* 淡墨 */
  --primary: #3c3a36;       /* 焦墨 */
  --gold: #9c7c3c;
  --accent: #a83232;        /* 朱砂印章 */
  --accent-txt: #f7f4ec;
  --green: #5c7a5e;
  --border: #d5ccba;
  --border-main: 1px solid #d5ccba;
  --bubble-radius: 2px;
  --bubble-border: 1px solid #cfc5b0;
  --bubble-npc-bg: #fdfbf5;
  --bubble-stu-bg: #eceadf;
  --avatar-radius: 2px;
  --avatar-border: 2px solid #3c3a36;
  --map-bg: #e8e4d8;        /* 淡墨远山 */
  --map-ground: #f2efe6;
  --map-road: #d9d2c0;
  --map-road-edge: #b3a98f;
  --node-fill: #fdfbf5;
  --node-stroke: #3c3a36;
  --node-done: #b3a98f;
  --node-lock: #c9c2b2;
  --boss-fill: #a83232;
}
.theme-ink #mapScroll {
  background: linear-gradient(rgba(240,234,214,.42), rgba(230,222,198,.46)), url("/static/art/bg/math.jpg") center/cover no-repeat;
}
.theme-ink .brand { letter-spacing: 10px; color: #3c3a36; }
.theme-ink .chapter-banner { letter-spacing: 8px; color: #5c5850; }
.theme-ink .bubble { border-left: 3px solid #3c3a36; box-shadow: 0 1px 6px rgba(60,58,54,.08); }
.theme-ink .task-card { box-shadow: 0 2px 10px rgba(60,58,54,.06); }
.theme-ink #stageTitle { letter-spacing: 5px; }
.theme-ink .btn-primary, .theme-ink .accept, .theme-ink #btnSend { background: #3c3a36; }
.theme-ink .p-level { border: 1px solid #a83232; color: #a83232; }

/* ---------- 暗黑写实风（学生自选） ---------- */
.theme-dark {
  --font: "Segoe UI", "Microsoft YaHei", sans-serif;
  --font-title: "Segoe UI", "Microsoft YaHei", sans-serif;
  --bg: #0c0e11;            /* 夜幕 */
  --bg2: #13161b;
  --bg3: #1a1e24;
  --txt: #d7dce2;
  --muted: #7c8590;
  --primary: #c9a227;       /* 暗金 */
  --gold: #c9a227;
  --accent: #8b3a3a;        /* 暗红 */
  --accent-txt: #e8dcc8;
  --green: #4a7a5c;
  --border: #2a2f37;
  --border-main: 1px solid #2a2f37;
  --bubble-radius: 4px;
  --bubble-border: 1px solid #2a2f37;
  --bubble-npc-bg: #1a1e24;
  --bubble-stu-bg: #242b26;
  --avatar-radius: 4px;
  --avatar-border: 1px solid #c9a227;
  --map-bg: #0d1420;        /* 深夜天幕 */
  --map-ground: #151a20;
  --map-road: #3d3427;
  --map-road-edge: #28221a;
  --node-fill: #1a1e24;
  --node-stroke: #7c8590;
  --node-done: #c9a227;
  --node-lock: #33383f;
  --boss-fill: #6e2323;
}
.theme-dark #mapScroll {
  background: linear-gradient(rgba(13,20,32,.55), rgba(10,14,22,.62)), url("/static/art/bg/math.jpg") center/cover no-repeat;
}
.theme-dark .brand { color: var(--gold); letter-spacing: 3px; font-weight: 600; }
.theme-dark .bubble { box-shadow: 0 2px 8px rgba(0,0,0,.45); }
.theme-dark .task-card { box-shadow: 0 2px 10px rgba(0,0,0,.4); }
.theme-dark #stageTitle { font-weight: 600; letter-spacing: 1px; }
.theme-dark .p-level { border: 1px solid var(--gold); color: var(--gold); }
.theme-dark .chapter-banner { letter-spacing: 3px; }
.theme-dark .btn-primary, .theme-dark .accept { background: var(--gold); color: #14100a; }
.theme-dark #phaseBadge { border: 1px solid var(--border); background: var(--bg3); }

/* ---------- 清蓝舞台（2026-09-08 界面改版：默认皮肤——像素硬边撞色→细描边圆角+统一蓝紫调，
   高端、简洁、大气、易懂；RPG 深蓝舞台世界观不变，只提质感） ---------- */
.theme-stage {
  --font: "PingFang SC", "Microsoft YaHei", sans-serif;
  --font-title: "PingFang SC", "Microsoft YaHei", sans-serif;
  --bg: #171b33;            /* 舞台夜幕蓝 */
  --bg2: #1e2342;
  --bg3: #22274a;
  --txt: #dfe3f7;
  --muted: #8a90a8;
  --primary: #a5abff;       /* 清蓝紫 */
  --gold: #f0c47c;
  --accent: #8b93ff;
  --accent-txt: #171b33;
  --green: #9fd6a5;
  --border: #2e3357;
  --border-main: 0.5px solid #2e3357;
  --bubble-radius: 12px;
  --bubble-border: 0.5px solid #333a66;
  --bubble-npc-bg: #22274a;
  --bubble-stu-bg: #2d3563;
  --avatar-radius: 50%;
  --avatar-border: 2px solid #8b93ff;
  --map-bg: #1a1f3d;        /* 地图夜幕 */
  --map-ground: #1e2342;
  --map-road: #2d3563;
  --map-road-edge: #3d4680;
  --node-fill: #22274a;
  --node-stroke: #8b93ff;
  --node-done: #f0c47c;
  --node-lock: #3a3f66;
  --boss-fill: #e07070;
}
.theme-stage #mapScroll {
  background: linear-gradient(rgba(23,27,51,.55), rgba(23,27,51,.66)), url("/static/art/bg/math.jpg") center/cover no-repeat;
}
.theme-stage .brand { letter-spacing: 2px; }
.theme-stage .bubble { box-shadow: none; }          /* 清透无阴影，细描边即可 */
.theme-stage .task-card { border-radius: 12px; box-shadow: none; }
.theme-stage #stageTitle { font-weight: 500; letter-spacing: 1px; }
.theme-stage .btn-primary, .theme-stage .accept { background: var(--accent); color: var(--accent-txt); border-radius: 10px; }
.theme-stage #phaseBadge { border: 0.5px solid var(--border); background: var(--bg3); }
.theme-stage button { border-radius: 8px; }
