/* =============================================================
   旬 (Shun) — 应季 · 富插画设计语言
   方向：保留并升级这套和风插画美学（不是做减法），叠加统一的
   时令配色体系 + 明朝排版 + 高级扁平控件。富图层全部走基础样式渲染，
   本文件只做"识别度"升级 + 4 季 hero 美图槽位。
   作用域锁死 html[data-theme="shun"]，对旧皮肤零影响。
   一键回退：删本文件 + index.html 的 <link>，或 git restore。
   ============================================================= */

@font-face {
  font-family: "Shippori Mincho";
  src: url("/static/assets/fonts/shippori-mincho-japanese-600.woff2") format("woff2");
  font-display: swap;
  font-style: normal;
  font-weight: 600;
}

@font-face {
  font-family: "Zen Kaku Gothic New";
  src: url("/static/assets/fonts/zen-kaku-gothic-new-japanese-400.woff2") format("woff2");
  font-display: swap;
  font-style: normal;
  font-weight: 400;
}

@font-face {
  font-family: "Zen Kaku Gothic New";
  src: url("/static/assets/fonts/zen-kaku-gothic-new-japanese-700.woff2") format("woff2");
  font-display: swap;
  font-style: normal;
  font-weight: 700;
}

html[data-theme="shun"] {
  /* 墨と和紙基底（暖白和纸 + 沉墨） */
  --ink: #221f1a;
  --ink-soft: #5c564c;
  --ink-faint: #a1988a;
  --paper: #f7f2e8;
  --paper-warm: #efe7d7;
  --surface: #fcfaf4;
  --line: #e4dbc9;
  --line-strong: #d6cab3;
  --paper-pink: #f4eee3;
  --paper-green: var(--accent-tint);
  --paper-blue: #eeeae0;

  /* 旬 · 当前时令色（默认夏，按 data-login-season 覆盖） */
  --accent: #2f7355;
  --accent-strong: #1e4d39;
  --accent-soft: #5c9a7e;
  --accent-tint: #e7efe9;

  /* 把既有强调色族归一到当前时令色 —— 全局一抹彩 */
  --sakura: var(--accent-soft);
  --sakura-deep: var(--accent);
  --sakura-ink: var(--accent-strong);
  --matcha: var(--accent-soft);
  --matcha-dark: var(--accent-strong);
  --indigo: var(--accent);
  --indigo-soft: var(--accent-tint);
  --koi: var(--accent);
  --gold: var(--accent-soft);
  --wood: var(--ink-soft);

  /* 底色 / 富插画图层（保留！）—— hero 默认用现有素材兜底 */
  --theme-bg: var(--paper);
  --theme-bg-soft: var(--paper-warm);
  --theme-rail-top: #fbf7ee;
  --theme-rail-bottom: #f2ecdf;
  --theme-art: var(--art-day);
  --theme-art-opacity: 0.92;
  --theme-ambient-opacity: 0.20;
  --rail-art: url("/static/assets/rail-study-corner.png");
  --rail-art-opacity: 0.72;

  /* 阴影克制（高级感来自干净，不来自重投影） */
  --theme-shadow: 0 18px 50px rgba(34, 31, 26, 0.10);
  --theme-shadow-card: 0 8px 24px rgba(34, 31, 26, 0.07);
  --shadow-soft: 0 18px 50px rgba(34, 31, 26, 0.10);
  --shadow-tiny: 0 6px 18px rgba(34, 31, 26, 0.06);

  --font-mincho: "Shippori Mincho", "Songti SC", "Noto Serif JP", serif;
}

/* ---- 旬 · 一年四色 ----
   data-login-season 已挂在 <html> 上且登录后保留。
   ★ Codex 出图后：把每季的 --theme-art 换成下面注释里的 hero 文件即可。 */
html[data-theme="shun"][data-login-season="spring"] {
  --accent: #c2618a;  --accent-strong: #8e3d5e;  --accent-soft: #d98aab;  --accent-tint: #f6e7ee;
  --theme-art: url("/static/assets/hero-shun-spring.png");
}
html[data-theme="shun"][data-login-season="summer"] {
  --accent: #2f7355;  --accent-strong: #1e4d39;  --accent-soft: #5c9a7e;  --accent-tint: #e7efe9;
  --theme-art: url("/static/assets/hero-shun-summer.png");
}
html[data-theme="shun"][data-login-season="autumn"] {
  --accent: #c2592b;  --accent-strong: #8a3c18;  --accent-soft: #d98253;  --accent-tint: #f7e8dd;
  --theme-art: url("/static/assets/hero-shun-autumn.png");
}
html[data-theme="shun"][data-login-season="winter"] {
  --accent: #2e5a86;  --accent-strong: #1c3c5c;  --accent-soft: #5e86ae;  --accent-tint: #e4ebf2;
  --theme-art: url("/static/assets/hero-shun-winter.png");
}

/* ---- 字体：明朝承字形，黑体承界面 ---- */
html[data-theme="shun"] body {
  font-family: "Zen Kaku Gothic New", "Noto Sans JP", "Noto Sans CJK JP",
               "PingFang SC", "Microsoft YaHei", system-ui, sans-serif;
}
html[data-theme="shun"] .brand-jp,
html[data-theme="shun"] .login-brand-jp,
html[data-theme="shun"] .login-brand-seal,
html[data-theme="shun"] .login-season-kanji,
html[data-theme="shun"] .form-name {
  font-family: var(--font-mincho);
  letter-spacing: 1px;
  font-weight: 600;
}
html[data-theme="shun"] .verb-display {
  font-family: var(--font-mincho);
  font-weight: 600;
  letter-spacing: 1px;
}

/* ---- 旬 · 一抹时令色承载主操作（扁平 solid，去渐变更现代）---- */
html[data-theme="shun"] .tab.active,
html[data-theme="shun"] .btn-ai,
html[data-theme="shun"] .btn-primary,
html[data-theme="shun"] .btn-add,
html[data-theme="shun"] .btn-next,
html[data-theme="shun"] .seg.active,
html[data-theme="shun"] .verb-chip.active,
html[data-theme="shun"] .vocab-tab.active,
html[data-theme="shun"] .btn-login-submit {
  background: var(--accent-strong) !important;
  background-image: none !important;
  color: #fff !important;
  border-color: var(--accent-strong) !important;
  box-shadow: 0 8px 20px color-mix(in srgb, var(--accent-strong) 24%, transparent) !important;
}
html[data-theme="shun"] .tab.active:hover,
html[data-theme="shun"] .btn-ai:hover,
html[data-theme="shun"] .btn-primary:hover,
html[data-theme="shun"] .btn-add:hover,
html[data-theme="shun"] .btn-next:hover {
  background: var(--accent-strong) !important;
  border-color: var(--accent-strong) !important;
}

/* 次级操作：安静的墨线幽灵键，不与主色抢戏 */
html[data-theme="shun"] .btn-secondary,
html[data-theme="shun"] .btn-login-register {
  background: transparent !important;
  background-image: none !important;
  color: var(--ink) !important;
  border: 1px solid var(--line-strong) !important;
  box-shadow: none !important;
}
html[data-theme="shun"] .btn-secondary:hover {
  background: var(--accent-tint) !important;
  border-color: var(--accent-soft) !important;
  color: var(--accent-strong) !important;
}

/* ---- 输入控件：和纸表面，聚焦一抹时令色 ---- */
html[data-theme="shun"] input:focus,
html[data-theme="shun"] textarea:focus,
html[data-theme="shun"] select:focus,
html[data-theme="shun"] .field input:focus,
html[data-theme="shun"] .field textarea:focus,
html[data-theme="shun"] .scene-toolbar input:focus,
html[data-theme="shun"] .scene-toolbar select:focus {
  border-color: var(--accent) !important;
  outline: none;
  box-shadow: 0 0 0 3px var(--accent-tint) !important;
}

/* ---- 徽章 / 进度 / AI 私教 统一走时令色 ---- */
html[data-theme="shun"] .plan-badge,
html[data-theme="shun"] .review-badge {
  background: var(--accent-tint);
  color: var(--accent-strong);
}
html[data-theme="shun"] .scene-progress .filled,
html[data-theme="shun"] .progress-fill { background: var(--accent); }
html[data-theme="shun"] progress::-webkit-progress-value { background: var(--accent); }
html[data-theme="shun"] progress::-moz-progress-bar { background: var(--accent); }

html[data-theme="shun"] #agentFab,
html[data-theme="shun"] .agent-fab,
html[data-theme="shun"] .agent-launch,
html[data-theme="shun"] .agent-launch-avatar {
  background: var(--accent);
  color: #fff;
}
html[data-theme="shun"] .agent-msg-user .agent-bubble {
  background: var(--accent);
  color: #fff;
}

/* ---- 皮肤切换里的"旬"按钮：四季撞色小圆点 + 选中态 ---- */
html[data-theme="shun"] .theme-choice[data-theme-choice="shun"].active {
  border-color: var(--accent);
  color: var(--accent-strong);
}
.theme-dot-shun {
  background: conic-gradient(#c2618a 0 25%, #2f7355 0 50%, #c2592b 0 75%, #2e5a86 0 100%);
}

/* ---- 旬 · 成熟的和风空间：深墨侧栏 + 暖和纸学习面 ---- */
html[data-theme="shun"] body {
  background:
    radial-gradient(circle at 82% 6%, color-mix(in srgb, var(--accent) 9%, transparent), transparent 26%),
    linear-gradient(145deg, #e8dfcf 0%, var(--paper) 44%, #eee6d8 100%);
}

html[data-theme="shun"] body::before {
  background-position: right bottom;
  background-size: min(960px, 67vw) auto;
  filter: saturate(0.86);
  mask-image: linear-gradient(90deg, transparent 26%, rgba(0,0,0,0.3) 52%, #000 100%);
  opacity: 0.12;
}

html[data-theme="shun"] .app-shell {
  background: var(--paper);
  border-color: color-mix(in srgb, var(--line-strong) 72%, transparent);
  box-shadow: 0 28px 90px rgba(40, 34, 25, 0.16);
}

html[data-theme="shun"] .app-rail {
  --rail-ink: #f6f1e7;
  background:
    radial-gradient(circle at 78% 10%, rgba(129, 176, 107, 0.24), transparent 27%),
    radial-gradient(circle at 10% 88%, rgba(231, 192, 120, 0.18), transparent 34%),
    linear-gradient(140deg, rgba(255,255,255,0.08), transparent 38%),
    linear-gradient(180deg, #173a37 0%, #102b2b 46%, #0c2223 73%, #111b1b 100%);
  border-right-color: rgba(255,255,255,0.08);
  box-shadow:
    inset -1px 0 rgba(255,255,255,0.08),
    inset 0 1px rgba(255,255,255,0.1),
    18px 0 44px rgba(21, 41, 36, 0.12);
  color: var(--rail-ink);
}

html[data-theme="shun"] .app-rail::before {
  border-color: color-mix(in srgb, var(--accent-soft) 24%, transparent);
  box-shadow:
    inset 0 1px rgba(255,255,255,0.12),
    inset 0 -1px rgba(231,192,120,0.08);
}

html[data-theme="shun"] .app-rail::after {
  filter: saturate(0.86) sepia(0.04) brightness(0.92) contrast(1.03);
  mix-blend-mode: normal;
  opacity: 0.56;
}

html[data-theme="shun"] body.app-ready .app-rail::after {
  background-image:
    linear-gradient(180deg, rgba(13, 35, 33, 0) 0%, rgba(13, 35, 33, 0.12) 34%, rgba(13, 35, 33, 0.56) 100%),
    var(--rail-art);
  background-position: center bottom;
  background-size: 136% auto;
  height: clamp(260px, 34vh, 380px);
  opacity: 0.66;
}

html[data-theme="shun"] .app-rail header {
  backdrop-filter: blur(14px);
  background:
    linear-gradient(135deg, rgba(255,255,255,0.11), rgba(255,255,255,0.045)),
    radial-gradient(circle at 10% 0%, rgba(231,192,120,0.18), transparent 42%);
  border: 1px solid rgba(255,255,255,0.11);
  border-radius: 14px;
  box-shadow:
    inset 0 1px rgba(255,255,255,0.14),
    0 20px 42px rgba(5, 20, 20, 0.2);
  padding-inline: 14px;
}

html[data-theme="shun"] .app-rail header::after {
  background: linear-gradient(90deg, transparent, rgba(129,176,107,0.82), rgba(231,192,120,0.82), transparent);
  left: 14px;
  right: 14px;
}

html[data-theme="shun"] .brand-jp,
html[data-theme="shun"] .brand-zh,
html[data-theme="shun"] .rail-tagline {
  color: var(--rail-ink);
}

html[data-theme="shun"] .brand-zh,
html[data-theme="shun"] .rail-tagline { opacity: 0.64; }

html[data-theme="shun"] .tab {
  backdrop-filter: none;
  background:
    linear-gradient(135deg, rgba(255,255,255,0.09), rgba(255,255,255,0.035));
  border-color: rgba(255,255,255,0.1);
  box-shadow: inset 0 1px rgba(255,255,255,0.08);
  color: rgba(246, 241, 231, 0.78);
}

html[data-theme="shun"] .tab:hover {
  background:
    linear-gradient(135deg, rgba(255,255,255,0.14), rgba(255,255,255,0.06));
  border-color: rgba(255,255,255,0.18);
  color: #fff;
}

html[data-theme="shun"] .tab.active {
  color: #fff !important;
  background:
    linear-gradient(135deg, rgba(46, 122, 111, 0.98), rgba(24, 83, 77, 0.98) 56%, rgba(14, 61, 58, 0.98)) !important;
  border-color: rgba(197, 230, 202, 0.36) !important;
  box-shadow:
    0 16px 36px rgba(12, 65, 55, 0.34),
    inset 0 1px rgba(255,255,255,0.18) !important;
}

@media (min-width: 861px) {
  html[data-theme="shun"] .tab.active::after {
    background: linear-gradient(180deg, rgba(231,192,120,0.1), rgba(231,192,120,0.95), rgba(129,176,107,0.8));
    border-radius: 999px;
    bottom: 10px;
    box-shadow: 0 0 18px rgba(231,192,120,0.42);
    content: "";
    left: 7px;
    position: absolute;
    top: 10px;
    width: 3px;
  }
}

html[data-theme="shun"] .tab-icon {
  filter: grayscale(0.1) saturate(0.86) drop-shadow(0 4px 7px rgba(0,0,0,0.16));
  opacity: 0.9;
}

html[data-theme="shun"] .rail-glyph {
  color: rgba(255,253,247,0.9);
}

html[data-theme="shun"] .rail-caption {
  color: rgba(246,241,231,0.7);
}

html[data-theme="shun"] .app-workspace {
  background:
    linear-gradient(180deg, rgba(252,250,244,0.88), rgba(247,242,232,0.96)),
    radial-gradient(circle at 94% 7%, color-mix(in srgb, var(--accent) 8%, transparent), transparent 24%);
}

html[data-theme="shun"] .profile-bar {
  background: rgba(252,250,244,0.82);
  border-color: var(--line);
  box-shadow: 0 9px 28px rgba(34,31,26,0.06);
  flex-wrap: nowrap;
  justify-content: space-between;
  padding: 8px 9px;
}

html[data-theme="shun"] .profile-picker { flex: 1 1 auto; }
html[data-theme="shun"] .profile-current,
html[data-theme="shun"] .profile-theme-quick,
html[data-theme="shun"] .profile-tools-toggle {
  background: rgba(255,255,255,0.54);
  border-color: var(--line);
  box-shadow: none;
}

html[data-theme="shun"] .profile-theme-quick:hover,
html[data-theme="shun"] .profile-tools-toggle:hover {
  background: var(--accent-tint);
  border-color: var(--accent-soft);
  color: var(--accent-strong);
}

html[data-theme="shun"] .btn-upgrade {
  background: var(--accent-strong);
  border-color: var(--accent-strong);
  box-shadow: none;
}

html[data-theme="shun"] .settings-panel {
  background:
    radial-gradient(circle at 94% 0, color-mix(in srgb, var(--accent) 10%, transparent), transparent 28%),
    var(--paper);
}

html[data-theme="shun"] .settings-panel-head h2 {
  font-family: var(--font-mincho);
  font-weight: 600;
}

html[data-theme="shun"] .settings-panel .btn-add-profile:hover,
html[data-theme="shun"] .settings-panel .theme-choice:hover {
  background: var(--accent-tint);
  border-color: color-mix(in srgb, var(--accent) 38%, var(--line));
}

html[data-theme="shun"] .settings-panel .theme-choice.active {
  background: var(--accent-tint);
  border-color: var(--accent);
  color: var(--accent-strong);
}

html[data-theme="shun"] .section-row,
html[data-theme="shun"] .section-title,
html[data-theme="shun"] .verb-picker,
html[data-theme="shun"] .track,
html[data-theme="shun"] .form-card,
html[data-theme="shun"] .scene-card,
html[data-theme="shun"] .srs-card,
html[data-theme="shun"] .book-card,
html[data-theme="shun"] .book-empty,
html[data-theme="shun"] .tip,
html[data-theme="shun"] .practice-profile-details,
html[data-theme="shun"] .practice-surface,
html[data-theme="shun"] .courseware-form,
html[data-theme="shun"] .courseware-list,
html[data-theme="shun"] .courseware-draft {
  border-color: var(--line);
  box-shadow: 0 8px 24px rgba(34,31,26,0.055);
}

/* 新四季主图：左侧保字，右侧看景。 */
html[data-theme="shun"] .verb-stage {
  background-image:
    linear-gradient(90deg, rgba(252,250,244,0.99) 0%, rgba(252,250,244,0.96) 35%, rgba(252,250,244,0.48) 58%, rgba(252,250,244,0.06) 100%),
    var(--theme-art);
  background-position: center, center;
  background-size: auto, cover;
  border-color: var(--line-strong);
  box-shadow: 0 18px 46px rgba(34,31,26,0.11);
}

html[data-theme="shun"] .verb-stage::before {
  background: var(--accent-strong);
  box-shadow: none;
}

html[data-theme="shun"] .verb-stage::after {
  color: color-mix(in srgb, var(--accent-strong) 48%, transparent);
  content: "旬";
  font-family: var(--font-mincho);
  font-size: clamp(54px, 6vw, 82px);
  opacity: 0.18;
  right: clamp(24px, 3vw, 42px);
  top: clamp(24px, 3vw, 40px);
  writing-mode: horizontal-tb;
}

html[data-theme="shun"] .verb-display {
  margin-left: 0;
  margin-right: auto;
  max-width: 58%;
  text-align: center;
  text-shadow: 0 7px 22px rgba(247,242,232,0.78);
}

html[data-theme="shun"] .verb-display .changing { color: var(--accent-strong); }

html[data-theme="shun"] .verb-reading-row,
html[data-theme="shun"] .verb-meaning {
  justify-content: flex-start;
  max-width: 58%;
}

html[data-theme="shun"] .verb-reading {
  background: rgba(252,250,244,0.8);
  color: var(--accent-strong);
}

/* 今日页不再像通用 SaaS 渐变卡，而是同一张季节画上的和纸题签。 */
html[data-theme="shun"] .today-hero {
  background:
    linear-gradient(90deg, rgba(252,250,244,0.99) 0%, rgba(252,250,244,0.96) 52%, rgba(252,250,244,0.42) 72%, rgba(252,250,244,0.08) 100%),
    var(--theme-art) center / cover no-repeat;
  border-color: var(--line-strong);
  box-shadow: 0 18px 48px rgba(34,31,26,0.10);
  color: var(--ink);
  min-height: 300px;
}

html[data-theme="shun"] .today-hero::after {
  color: color-mix(in srgb, var(--accent-strong) 12%, transparent);
  font-family: var(--font-mincho);
}

html[data-theme="shun"] .today-eyebrow { color: var(--accent-strong); }
html[data-theme="shun"] .today-hero h1 { color: var(--ink); font-family: var(--font-mincho); }
html[data-theme="shun"] .today-hero > p { color: var(--ink-soft); max-width: 56%; }
html[data-theme="shun"] .today-habit {
  background: rgba(252,250,244,0.72);
  border-color: var(--line);
  color: var(--ink-soft);
}
html[data-theme="shun"] .today-primary { max-width: 420px; }
html[data-theme="shun"] #today .today-primary.btn-primary small { color: currentColor; opacity: 0.82; }

/* 登录从写实照片切到同一套岩絵具四季画。 */
html[data-theme="shun"] .login-overlay {
  background:
    linear-gradient(90deg, rgba(27,31,28,0.2), rgba(247,242,232,0.22) 48%, rgba(247,242,232,0.72) 100%),
    var(--login-season-bg) center / cover no-repeat;
}

html[data-theme="shun"] .login-card {
  background: rgba(252,250,244,0.82);
  backdrop-filter: blur(20px) saturate(0.94);
  border-color: rgba(255,255,255,0.62);
}

html[data-theme="shun"] .login-art {
  background:
    linear-gradient(90deg, rgba(247,242,232,0.05), rgba(247,242,232,0.1)),
    var(--login-panel-bg) center / cover no-repeat;
}

html[data-theme="shun"] .login-season-caption {
  background: rgba(34,31,26,0.62);
  border-color: rgba(255,255,255,0.2);
}

html[data-theme="shun"] .login-forgot-link {
  background: rgba(252,250,244,0.92);
  border: 1px solid var(--line-strong);
  border-radius: 999px;
  color: var(--accent-strong);
  display: inline-flex;
  font-weight: 700;
  padding: 5px 10px;
}

html[data-theme="shun"] .login-forgot-link:hover {
  background: var(--surface);
  color: var(--accent-strong);
}

html[data-theme="shun"].season-art-ready .verb-stage,
html[data-theme="shun"].season-art-ready .today-hero {
  animation: shun-season-art-reveal 260ms ease-out both;
}

@keyframes shun-season-art-reveal {
  from { opacity: 0.94; }
  to { opacity: 1; }
}

@media (prefers-reduced-motion: reduce) {
  html[data-theme="shun"].season-art-ready .verb-stage,
  html[data-theme="shun"].season-art-ready .today-hero { animation: none; }
}

html[data-theme="shun"] .login-brand-jp { color: var(--ink); }
html[data-theme="shun"] .login-brand-seal { background: var(--accent-strong); }

html[data-theme="shun"] .skeleton {
  background: color-mix(in srgb, var(--accent-tint) 58%, var(--paper-warm));
}

/* ===== 今日页 · 移动端首屏收紧 =====
   语感地图明细(.mastery-map.compact 约 487px)在手机上独占近一屏，且本就有
   「看完整地图」入口；这里把明细收成概览（标题+按钮完整保留），底部柔化淡出，
   首屏不再被撑爆。如需对所有皮肤生效，把选择器里的 html[data-theme="shun"] 去掉
   并移入 styles.css。 */
@media (max-width: 860px) {
  html[data-theme="shun"] .mobile-topbar {
    background: rgba(247,242,232,0.96);
    border-bottom-color: var(--line);
  }
  html[data-theme="shun"] .mobile-menu-btn {
    background: rgba(252,250,244,0.74);
    border-color: var(--line-strong);
  }
  html[data-theme="shun"] .app-shell > .tabs {
    background: rgba(247,242,232,0.96);
    border-top-color: var(--line);
    box-shadow: 0 -10px 30px rgba(34,31,26,0.08);
  }
  html[data-theme="shun"] .app-shell > .tabs .tab {
    background: rgba(252,250,244,0.78);
    border-color: var(--line);
    color: var(--ink-soft);
  }
  html[data-theme="shun"] .app-shell > .tabs .tab.active {
    color: #fff !important;
  }
  html[data-theme="shun"] .app-shell > .tabs.mobile-tabs-open {
    background: var(--paper);
  }
  html[data-theme="shun"] .mobile-menu-sheet {
    background:
      radial-gradient(circle at 100% 0, color-mix(in srgb, var(--accent) 12%, transparent), transparent 28%),
      var(--paper);
  }
  html[data-theme="shun"] .today-hero {
    background:
      linear-gradient(90deg, rgba(252,250,244,0.98) 0%, rgba(252,250,244,0.91) 64%, rgba(252,250,244,0.38) 100%),
      var(--theme-art) 68% center / cover no-repeat;
    min-height: 244px;
    padding: 18px 18px 16px;
  }
  html[data-theme="shun"] .today-hero > p {
    max-width: 86%;
  }
  html[data-theme="shun"] .today-primary {
    max-width: none;
    width: 100%;
  }
  html[data-theme="shun"] #godan .verb-picker {
    display: flex;
    flex-wrap: nowrap;
    overflow-x: auto;
    scroll-snap-type: x proximity;
  }
  html[data-theme="shun"] #godan .verb-chip {
    flex: 0 0 auto;
    scroll-snap-align: start;
  }
  html[data-theme="shun"] #godan .verb-picker-divider {
    display: none;
  }
  html[data-theme="shun"] #godan .verb-stage {
    background-image:
      linear-gradient(90deg, rgba(252,250,244,0.98) 0%, rgba(252,250,244,0.9) 47%, rgba(252,250,244,0.28) 100%),
      var(--theme-art);
    background-position: center, 63% center;
    background-size: auto, cover;
    min-height: 180px;
    padding: 30px 16px 6px;
  }
  html[data-theme="shun"] #godan .verb-stage::before {
    font-size: 11px;
    left: 16px;
    padding: 6px 11px 7px;
  }
  html[data-theme="shun"] #godan .verb-stage::after {
    font-size: 46px;
    right: 15px;
    top: 14px;
  }
  html[data-theme="shun"] #godan .verb-display {
    font-size: 58px;
    max-width: 62%;
    text-align: left;
  }
  html[data-theme="shun"] #godan .verb-reading-row,
  html[data-theme="shun"] #godan .verb-meaning {
    max-width: 68%;
  }
  html[data-theme="shun"] .practice-layout {
    gap: 10px;
  }
  html[data-theme="shun"] #practice > .section-row,
  html[data-theme="shun"] #courseware > .section-row,
  html[data-theme="shun"] #review > .section-title {
    display: none;
  }
  html[data-theme="shun"] #practice .practice-toolbar {
    margin-top: 0;
  }
  html[data-theme="shun"] .practice-profile-details:not([open]) {
    box-shadow: none;
  }
  html[data-theme="shun"] .courseware-form textarea {
    height: 92px;
    min-height: 92px;
  }
  html[data-theme="shun"] .vocab-tabs {
    display: flex;
    flex-wrap: nowrap;
    overflow-x: auto;
    scroll-snap-type: x proximity;
  }
  html[data-theme="shun"] .vocab-tab {
    flex: 0 0 auto;
    min-height: 44px;
    scroll-snap-align: start;
  }
  html[data-theme="shun"] #book > .section-row {
    background: transparent;
    border: 0;
    box-shadow: none;
    justify-content: flex-end;
    min-height: 44px;
    padding: 0;
  }
  html[data-theme="shun"] #bookSectionTitle { display: none; }
  html[data-theme="shun"] #book .btn-add {
    min-height: 44px;
    width: 100%;
  }
  /* 今日页一屏装下：语感地图明细在手机端收起，只留标题 + 「看完整地图」入口 */
  html[data-theme="shun"] .today-map-card .mastery-map { display: none; }
  html[data-theme="shun"] .today-map-card { padding-bottom: 14px; }
  html[data-theme="shun"] .today-map-card .today-card-head { margin-bottom: 0; }
  /* 收起 hero 里的软性提示句，缩短纵向 */
  html[data-theme="shun"] #today .today-habit { display: none; }
  /* 底部留白收紧：App 内 legal-footer 已隐藏，只需清固定底栏(69px) */
  html[data-theme="shun"] .app-workspace { padding-bottom: 80px; }
}
