:root {
  --bg-rice-paper: #F5F6F3;
  --bg-card-pure: #FFFFFF;
  --color-bamboo: #24533C;
  --color-bamboo-hover: #1B3E2D;
  --color-bamboo-light: #EBF2ED;
  --color-bamboo-border: rgba(36, 83, 60, 0.18);
  --color-pine-ink: #141816;
  --color-slate-fog: #4E5752;
  --color-faint-ink: #7F8A83;
  --color-seal-vermilion: #B8382A;
  --color-seal-bg: #FCEDE9;
  --color-ochre-gold: #B88235;
  --color-ochre-bg: #FBF4E9;
  --color-swiss-blue: #1A4EB8;

  /* 克制利落的建筑微圆角（4px ~ 12px） */
  --radius-window: 12px;
  --radius-card: 6px;
  --radius-inner: 4px;
  --radius-tag: 3px;

  --shadow-window: 0 24px 64px rgba(20, 24, 22, 0.08), 0 2px 10px rgba(0, 0, 0, 0.03);
  --shadow-card: 0 4px 16px rgba(20, 24, 22, 0.04), 0 1px 3px rgba(0, 0, 0, 0.02);
  --shadow-card-hover: 0 8px 24px rgba(20, 24, 22, 0.07), 0 2px 6px rgba(0, 0, 0, 0.03);
  --shadow-dock: 0 -8px 24px rgba(20, 24, 22, 0.06), 0 1px 4px rgba(0, 0, 0, 0.02);
  --border-hairline: 1px solid rgba(20, 24, 22, 0.09);

  --font-songti: "Songti SC", "Noto Serif SC", "Source Han Serif SC", STSong, "SimSun", serif;
  --font-kai: "Kaiti SC", "STKaiti", "KaiTi", serif;
  --font-mono: "SF Mono", Menlo, Consolas, monospace;
}

* { box-sizing: border-box; margin: 0; padding: 0; -webkit-font-smoothing: antialiased; }

body {
  background-color: var(--bg-rice-paper);
  color: var(--color-pine-ink);
  font-family: var(--font-songti);
  line-height: 1.6;
  min-height: 100vh;
}

.app-viewport-wrapper {
  display: flex;
  justify-content: center;
  align-items: flex-start;
  min-height: 100vh;
  padding: 24px 16px 120px 16px;
}

.device-frame {
  width: 100%;
  max-width: 980px;
  background: rgba(255, 255, 255, 0.94);
  border-radius: var(--radius-window);
  box-shadow: var(--shadow-window);
  border: 1px solid rgba(255, 255, 255, 0.85);
  position: relative;
  overflow: hidden;
  transition: max-width 0.35s cubic-bezier(0.16, 1, 0.3, 1);
}

.device-frame.mobile-compact { max-width: 480px; }

.top-system-bar {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 12px 20px;
  background: rgba(255, 255, 255, 0.92);
  backdrop-filter: blur(16px);
  border-bottom: var(--border-hairline);
  position: sticky;
  top: 0;
  z-index: 50;
}

.top-left-window-controls { display: flex; align-items: center; gap: 12px; }
.window-dots { display: flex; gap: 6px; }
.window-dot { width: 9px; height: 9px; border-radius: 50%; }
.window-dot.dot-close { background: #FF5F56; }
.window-dot.dot-min { background: #FFBD2E; }
.window-dot.dot-max { background: #27C93F; }

.top-brand-title {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 15px;
  font-weight: 600;
}

.brand-seal-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 22px;
  height: 22px;
  background: var(--color-seal-vermilion);
  color: #FFF;
  font-size: 12px;
  font-family: var(--font-kai);
  border-radius: 2px;
}

/* 顶部三家模型切换胶囊 */
.top-center-models-bar {
  display: flex;
  background: rgba(235, 240, 236, 0.8);
  padding: 3px;
  border-radius: var(--radius-inner);
  gap: 3px;
  border: var(--border-hairline);
}

.model-pill-item {
  border: none;
  background: transparent;
  padding: 4px 12px;
  font-family: var(--font-songti);
  font-size: 12px;
  color: var(--color-slate-fog);
  border-radius: 3px;
  cursor: pointer;
  transition: all 0.2s ease;
}

.model-pill-item.active {
  background: #FFFFFF;
  color: var(--color-bamboo);
  font-weight: 600;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.05);
}

.clean-btn {
  border: var(--border-hairline);
  background: #FFF;
  padding: 5px 12px;
  border-radius: var(--radius-inner);
  font-family: var(--font-songti);
  font-size: 12px;
  color: var(--color-slate-fog);
  cursor: pointer;
  transition: all 0.2s ease;
}

.clean-btn:hover { border-color: var(--color-bamboo); color: var(--color-bamboo); }
.clean-btn.btn-active {
  background: var(--color-bamboo-light);
  border-color: var(--color-bamboo-border);
  color: var(--color-bamboo);
  font-weight: 600;
}

.main-stage {
  padding: 20px 22px 50px 22px;
  display: flex;
  flex-direction: column;
  gap: 18px;
  animation: pageTransitionIn 0.35s cubic-bezier(0.16, 1, 0.3, 1) forwards;
}

@keyframes pageTransitionIn {
  from { opacity: 0; transform: translateY(8px) scale(0.996); }
  to { opacity: 1; transform: translateY(0) scale(1); }
}

.card-sharp {
  background: var(--bg-card-pure);
  border-radius: var(--radius-card);
  border: var(--border-hairline);
  box-shadow: var(--shadow-card);
  padding: 18px 20px;
}

/* 水墨远山 Hero 意境视窗 */
.hero-mountain-window {
  position: relative;
  width: 100%;
  height: 220px;
  border-radius: var(--radius-card);
  overflow: hidden;
  border: var(--border-hairline);
  background: linear-gradient(175deg, #D4DFD8 0%, #A8BCB0 45%, #768F80 80%, #526C5E 100%);
  display: flex;
  justify-content: space-between;
  align-items: flex-end;
  padding: 24px;
  color: #FFFFFF;
}

.hero-mountain-silhouette {
  position: absolute; bottom: 0; left: 0; right: 0;
  width: 100%; height: 120px; opacity: 0.38; pointer-events: none;
}

.hero-celestial-orb {
  position: absolute;
  top: 38px; left: 50%;
  transform: translateX(-50%);
  width: 54px; height: 54px;
  border-radius: 50%;
  border: 1.5px solid rgba(255, 255, 255, 0.7);
  background: radial-gradient(circle, rgba(255, 255, 255, 0.25) 0%, transparent 70%);
  box-shadow: 0 0 24px rgba(255, 255, 255, 0.4);
}

.hero-content-center { position: relative; z-index: 2; }
.hero-main-title { font-size: 26px; font-weight: 600; letter-spacing: 2px; }
.hero-subtitle-motto { font-size: 14px; opacity: 0.9; margin-top: 4px; }

.hero-days-tag {
  display: inline-flex;
  gap: 8px;
  margin-top: 10px;
  font-size: 12px;
  background: rgba(255, 255, 255, 0.2);
  padding: 4px 10px;
  border-radius: var(--radius-inner);
  border: 1px solid rgba(255, 255, 255, 0.3);
}

.hero-nearfield-card {
  position: relative; z-index: 2;
  background: rgba(255, 255, 255, 0.94);
  border-radius: var(--radius-inner);
  padding: 12px 14px;
  min-width: 170px;
  border: 1px solid rgba(255, 255, 255, 0.95);
  box-shadow: 0 6px 20px rgba(0, 0, 0, 0.12);
}

.nearfield-header {
  display: flex; justify-content: space-between; font-size: 11px;
  color: var(--color-faint-ink); border-bottom: var(--border-hairline);
  padding-bottom: 4px; margin-bottom: 6px;
}

.nearfield-title { font-size: 13px; font-weight: 600; color: var(--color-bamboo); }
.nearfield-status { font-size: 11px; color: var(--color-slate-fog); margin-top: 2px; }

.calendar-toolbar { display: flex; align-items: center; justify-content: space-between; gap: 8px; margin-bottom: 12px; }
.calendar-mode-strip { display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 12px; }
.calendar-mode-strip .clean-btn { padding: 5px 10px; }
.calendar-grid { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: 4px; }
.calendar-weekday { text-align: center; font-size: 11px; color: var(--color-faint-ink); padding: 6px 0; }
.calendar-day {
  position: relative; min-width: 0; min-height: 58px; border: var(--border-hairline);
  border-radius: var(--radius-inner); background: rgba(255,255,255,.8);
  color: var(--color-pine-ink); font: inherit; cursor: pointer;
  display: flex; flex-direction: column; align-items: center; justify-content: center;
}
.calendar-day small { font-size: 10px; color: var(--color-faint-ink); white-space: nowrap; }
.calendar-day.today { border-color: var(--color-bamboo); }
.calendar-day.selected { background: var(--color-bamboo-light); }
.calendar-mood-dot { width: 7px; height: 7px; border-radius: 50%; margin-top: 3px; }
.calendar-annotation { display: flex; width: 100%; justify-content: space-between; align-items: center; gap: 8px; padding: 9px 10px; margin-top: 6px; border: var(--border-hairline); border-radius: var(--radius-inner); background: rgba(255,255,255,.8); color: var(--color-pine-ink); font: inherit; text-align: left; cursor: pointer; }
.calendar-annotation small { color: var(--color-faint-ink); }
.traditional-wheel-layout { display: flex; align-items: center; justify-content: center; flex-wrap: wrap; gap: 18px; margin: 12px 0; }
#traditionalColorWheel { width: 220px; height: 220px; max-width: 100%; border-radius: 50%; touch-action: none; cursor: crosshair; }
.traditional-wheel-controls { width: 120px; display: flex; flex-direction: column; gap: 8px; font-size: 12px; }
.traditional-wheel-controls input { width: 100%; accent-color: var(--color-bamboo); }
.traditional-color-samples { display: flex; flex-wrap: wrap; gap: 5px; margin-bottom: 10px; }
.traditional-color-samples button { width: 18px; height: 18px; border-radius: 50%; border: 1px solid rgba(0,0,0,.15); cursor: pointer; }
[hidden] { display: none !important; }
.forum-section-tabs, .forum-actions { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 12px; }
.forum-post-card { cursor: pointer; }
.forum-post-card h2, .forum-detail-title { font-size: 17px; margin-bottom: 6px; }
.forum-post-card p, .forum-body, .forum-comment p { font-size: 13px; color: var(--color-slate-fog); white-space: pre-wrap; overflow-wrap: anywhere; }
.forum-post-card small, .forum-comment small { color: var(--color-faint-ink); }
.forum-form { display: flex; flex-direction: column; gap: 10px; margin-top: 12px; }
.forum-form input, .forum-form textarea, .forum-form select {
  width: 100%; padding: 9px 10px; border: var(--border-hairline);
  border-radius: var(--radius-inner); background: #fff; color: var(--color-pine-ink);
  font: inherit; font-size: 13px;
}
.forum-form textarea { resize: vertical; }
.forum-form button { align-self: flex-start; }
.forum-inline { flex-direction: row; flex-wrap: wrap; align-items: center; }
.forum-inline input { flex: 1; min-width: 140px; }
.forum-auth-grid { display: grid; grid-template-columns: repeat(auto-fit,minmax(210px,1fr)); gap: 18px; }
.forum-alert, .forum-notice { padding: 8px 10px; margin: 8px 0; border-radius: var(--radius-inner); font-size: 13px; }
.forum-alert { color: var(--color-seal-vermilion); background: var(--color-seal-bg); }
.forum-notice { color: var(--color-bamboo); background: var(--color-bamboo-light); }
.forum-comment { border-top: var(--border-hairline); padding: 10px 0; }
.forum-attachments { display: flex; flex-direction: column; gap: 7px; margin-top: 16px; }
.forum-attachments a { color: var(--color-bamboo); font-size: 13px; overflow-wrap: anywhere; }
.forum-attachments audio, .forum-attachments video { display: block; width: 100%; max-height: 360px; margin-top: 8px; }
.forum-admin-list > div { display: flex; align-items: center; flex-wrap: wrap; gap: 8px; border-top: var(--border-hairline); padding: 9px 0; font-size: 13px; }
.forum-admin-list small { flex: 1; min-width: 100px; color: var(--color-faint-ink); }
.profile-cover {
  height: 150px; margin-top: 10px; border-radius: var(--radius-inner);
  position: relative; background-color: var(--color-bamboo-light);
  background-size: cover; background-position: center;
}
.profile-avatar {
  width: 78px; height: 78px; position: absolute; left: 18px; bottom: -30px;
  border: 4px solid #fff; border-radius: 50%; background: var(--color-bamboo);
  color: #fff; font-size: 26px; display: grid; place-items: center; overflow: hidden;
}
.profile-avatar img { width: 100%; height: 100%; object-fit: cover; }
.profile-identity { padding: 38px 4px 6px; }
.profile-identity h2 { font-size: 19px; }
.profile-identity > div:not(.profile-tags), .profile-identity p { font-size: 13px; color: var(--color-slate-fog); margin-top: 5px; }
.profile-identity p { white-space: pre-wrap; overflow-wrap: anywhere; }
.profile-tags { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 10px; }
.profile-tags span { padding: 3px 9px; border-radius: var(--radius-inner); background: var(--color-bamboo-light); color: var(--color-bamboo); font-size: 12px; }
.profile-tags small { color: var(--color-faint-ink); }
.forum-user-link { border: 0; padding: 0; background: none; color: var(--color-bamboo); font: inherit; cursor: pointer; }
.sr-only { position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0; }
.forum-home-head { display:flex;flex-direction:column;gap:10px; }
.forum-headline { display:flex;justify-content:space-between;align-items:center;gap:16px; }
.forum-headline h2 { font-size:22px;font-weight:600; }
.forum-headline p { font-size:12px;color:var(--color-slate-fog); }
.forum-headline .clean-btn { flex:none;min-height:38px; }
.forum-search { display:flex;gap:8px;align-items:stretch; }
.forum-search-field { flex:1;min-width:0; }
.forum-search input { width:100%;height:42px;border:var(--border-hairline);border-radius:var(--radius-inner);background:#fff;padding:0 13px;color:var(--color-pine-ink);font:inherit;font-size:14px; }
.forum-search .clean-btn { min-width:58px; }
.forum-layout { display:grid;grid-template-columns:minmax(185px,220px) minmax(0,1fr);gap:16px;align-items:start; }
.forum-sidebar { position:sticky;top:76px;max-height:calc(100dvh - 100px);overflow-y:auto;overscroll-behavior:contain;border:var(--border-hairline);border-radius:var(--radius-card);background:#fff;padding:14px; }
.forum-sidebar-block { padding-bottom:17px;margin-bottom:17px;border-bottom:var(--border-hairline); }
.forum-sidebar h3 { font-size:13px;font-weight:600;margin-bottom:9px; }
.forum-filter-option { width:100%;display:flex;flex-direction:column;align-items:flex-start;gap:1px;text-align:left;border:0;border-radius:var(--radius-inner);background:none;color:var(--color-pine-ink);font:inherit;font-size:13px;padding:8px;cursor:pointer; }
.forum-filter-option small { font-size:11px;color:var(--color-faint-ink); }
.forum-filter-option.selected { background:var(--color-bamboo-light);color:var(--color-bamboo); }
.forum-side-heading { display:flex;justify-content:space-between;align-items:center; }
.forum-side-heading button { border:0;background:none;color:var(--color-bamboo);font:inherit;font-size:11px;cursor:pointer; }
.forum-tag-list,.forum-post-tags { display:flex;flex-wrap:wrap;gap:6px; }
.forum-tag-list>small { color:var(--color-faint-ink);font-size:11px; }
.forum-tag-chip { display:inline-flex;align-items:center;gap:5px;border:1px solid var(--tag-color);border-color:color-mix(in srgb,var(--tag-color) 38%,white);border-radius:var(--radius-tag);background:var(--color-bamboo-light);background:color-mix(in srgb,var(--tag-color) 12%,white);color:var(--color-pine-ink);padding:4px 7px;font:inherit;font-size:11px;line-height:1.2;cursor:pointer; }
.forum-tag-chip.selected { outline:2px solid var(--tag-color);outline-offset:1px; }
.forum-tag-dot { display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--tag-color);flex:none; }
.forum-create-tag { display:flex;flex-direction:column;gap:8px;padding-bottom:16px;margin-bottom:16px;border-bottom:var(--border-hairline); }
.forum-create-tag h3 { margin:0; }
.forum-create-tag>div { display:flex;gap:5px; }
.forum-create-tag input[name="name"] { min-width:0;flex:1;border:var(--border-hairline);border-radius:var(--radius-inner);padding:6px;font:inherit;font-size:12px; }
.forum-create-tag input[type="color"] { width:38px;height:34px;flex:none;border:var(--border-hairline);border-radius:var(--radius-inner);background:#fff;padding:3px; }
.forum-create-tag .clean-btn { align-self:flex-start; }
.forum-feed { min-width:0;border:var(--border-hairline);border-radius:var(--radius-card);background:#fff;overflow:hidden; }
.forum-feed-heading { padding:14px 18px;border-bottom:var(--border-hairline); }
.forum-feed-heading h3 { font-size:16px;font-weight:600; }
.forum-feed-heading small { color:var(--color-faint-ink);font-size:11px; }
.forum-feed-item { border-bottom:var(--border-hairline);padding:0 18px 14px; }
.forum-post-open { display:block;width:100%;padding:16px 0 8px;border:0;background:none;text-align:left;color:inherit;font:inherit;cursor:pointer; }
.forum-post-top { display:flex;justify-content:space-between;gap:10px;color:var(--color-bamboo);font-size:11px; }
.forum-post-top time { flex:none;color:var(--color-faint-ink); }
.forum-post-open h3 { margin:5px 0 4px;font-size:17px;line-height:1.4;font-weight:700; }
.forum-post-open p { color:var(--color-faint-ink);font-size:13px;line-height:1.55;overflow-wrap:anywhere;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden; }
.forum-post-bottom { display:flex;justify-content:space-between;align-items:center;gap:8px;flex-wrap:wrap;color:var(--color-faint-ink);font-size:11px; }
.forum-post-bottom .forum-user-link { font-size:11px; }
.forum-empty,.forum-guest-note { padding:28px 18px;color:var(--color-slate-fog);font-size:13px; }
.forum-guest-note { border-top:var(--border-hairline);display:flex;align-items:center;gap:10px;flex-wrap:wrap; }
.forum-more { display:block;margin:14px auto;min-height:38px; }
.forum-search-extras { display:flex;align-items:center;flex-wrap:wrap;gap:7px;padding:12px 18px;border-bottom:var(--border-hairline); }
.forum-search-extras h3 { width:100%;font-size:12px;font-weight:600; }
.forum-search-extras>button:not(.forum-tag-chip),.forum-search-extras>a { border:var(--border-hairline);border-radius:var(--radius-inner);padding:4px 7px;background:#fff;color:var(--color-bamboo);font:inherit;font-size:11px;text-decoration:none;cursor:pointer; }
.forum-mobile-filters { display:none; }
.forum-tag-picker { border:var(--border-hairline);border-radius:var(--radius-inner);padding:12px; }
.forum-tag-picker legend { padding:0 4px;font-size:12px;color:var(--color-slate-fog); }
.forum-tag-picker>div { display:flex;flex-wrap:wrap;gap:8px; }
.forum-tag-picker label { display:inline-flex;align-items:center;gap:5px;cursor:pointer; }
.forum-tag-picker input { width:auto;accent-color:var(--color-bamboo); }
.forum-tag-picker small { font-size:12px;color:var(--color-faint-ink); }
.forum-new-tag-inline { display:flex;align-items:end;gap:10px;flex-wrap:wrap; }
.forum-new-tag-inline label:first-child { flex:1;min-width:160px; }
.forum-new-tag-inline label:last-child input { width:50px;height:38px;padding:3px; }
.forum-edit-tags { margin:12px 0;border-top:var(--border-hairline);padding-top:10px; }
.forum-edit-tags summary { color:var(--color-bamboo);font-size:12px;cursor:pointer; }
@media (hover:hover) and (pointer:fine) {
  .forum-post-open:hover h3 { color:var(--color-bamboo); }
  .forum-filter-option:hover,.forum-tag-chip:hover { background:var(--color-bamboo-light); }
}
@media (max-width:700px) {
  .app-viewport-wrapper { min-height:100dvh;padding-top:calc(16px + env(safe-area-inset-top, 0px)); }
  .main-stage[data-forum-view="forum"] { padding:14px 12px 50px;gap:12px; }
  .forum-layout { display:flex;flex-direction:column;gap:10px; }
  .forum-feed { width:100%; }
  .forum-mobile-filters { display:block; }
  .forum-mobile-filters .clean-btn { min-height:40px;width:100%;text-align:left; }
  .forum-sidebar { display:none;position:static;width:100%;max-height:none;overflow:visible; }
  .forum-sidebar.open { display:block; }
  .forum-headline h2 { font-size:19px; }
  .forum-home-head { padding:14px; }
  .forum-feed-item { padding:0 13px 13px; }
  .forum-feed-heading { padding:12px 13px; }
  .forum-post-open { padding-top:13px;min-height:76px; }
  .forum-post-open h3 { font-size:16px; }
  .forum-search input { font-size:16px; }
  .forum-create-tag input[name="name"],.forum-form input,.forum-form textarea,.forum-form select { font-size:16px; }
  .forum-tag-chip { min-height:32px; }
  .forum-filter-option { min-height:44px;justify-content:center; }
  .floating-dock-nav { bottom:calc(12px + env(safe-area-inset-bottom, 0px)); }
  .app-viewport-wrapper { padding-bottom:calc(120px + env(safe-area-inset-bottom, 0px)); }
}
@media (pointer:coarse) {
  html { -webkit-tap-highlight-color:transparent; }
  .forum-layout button,.forum-home-head button,.forum-composer button { touch-action:manipulation;user-select:none;-webkit-user-select:none; }
  .forum-post-open:active,.forum-filter-option:active,.forum-tag-chip:active { background:var(--color-bamboo-light); }
}

.editorial-section-tag {
  display: flex; justify-content: space-between; font-size: 11px;
  color: var(--color-faint-ink); letter-spacing: 1px;
  margin-bottom: 8px; padding-bottom: 4px;
  border-bottom: 1px solid rgba(20, 24, 22, 0.08);
}

/* 首页核心功能矩阵 */
.home-feature-matrix {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 12px;
  margin: 6px 0;
}

@media (max-width: 768px) {
  .home-feature-matrix { grid-template-columns: repeat(2, 1fr); }
}

.matrix-card-btn {
  background: #FFFFFF;
  border: var(--border-hairline);
  border-radius: var(--radius-card);
  padding: 14px 12px;
  cursor: pointer;
  transition: all 0.22s ease;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  min-height: 96px;
}

.matrix-card-btn:hover {
  border-color: var(--color-bamboo);
  transform: translateY(-2px);
  box-shadow: var(--shadow-card-hover);
}

.matrix-card-icon { display: flex; justify-content: space-between; font-size: 18px; }
.matrix-card-title { font-size: 14px; font-weight: 600; margin-top: 8px; }
.matrix-card-desc { font-size: 11px; color: var(--color-faint-ink); margin-top: 2px; }

/* Pulse 心力指标条 */
.pulse-drive-container { display: flex; flex-direction: column; gap: 8px; margin-top: 10px; }
.pulse-bar-row {
  display: grid; grid-template-columns: 80px 1fr 40px;
  align-items: center; gap: 12px; font-size: 12px;
}
.pulse-track-line {
  width: 100%; height: 6px; background: rgba(20, 24, 22, 0.06);
  border-radius: 2px; overflow: hidden;
}
.pulse-fill-line {
  height: 100%; background: linear-gradient(to right, var(--color-bamboo), #3D825E);
  border-radius: 2px;
}
.pulse-fill-line.pulse-vermilion { background: linear-gradient(to right, var(--color-seal-vermilion), #DE584A); }
.pulse-fill-line.pulse-gold { background: linear-gradient(to right, var(--color-ochre-gold), #DEAC62); }
.pulse-bar-value { font-size: 11px; color: var(--color-faint-ink); font-family: var(--font-mono); text-align: right; }

.palette-rectangular-grid { display: grid; grid-template-columns: repeat(5, 1fr); gap: 8px; margin: 10px 0; }
.swatch-rect-chip {
  background: #FFF; border: var(--border-hairline); border-radius: var(--radius-inner);
  padding: 8px 6px; display: flex; flex-direction: column; align-items: center;
  gap: 4px; cursor: pointer; transition: all 0.2s ease;
}
.swatch-rect-chip.active { border-color: var(--color-bamboo); background: var(--color-bamboo-light); }
.swatch-color-sq { width: 20px; height: 14px; border-radius: 2px; }
.swatch-name-txt { font-size: 11px; color: var(--color-slate-fog); }

.sharp-tag-cloud { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 6px; }
.sharp-tag-item {
  border: var(--border-hairline); background: rgba(255, 255, 255, 0.9);
  padding: 4px 10px; border-radius: var(--radius-inner); font-size: 12px; cursor: pointer;
}
.sharp-tag-item.selected { background: var(--color-bamboo); color: #FFF; border-color: var(--color-bamboo); }

.scripture-editorial-box {
  background: #FAF8F5; border-left: 3px solid var(--color-ochre-gold);
  padding: 14px 16px; border-radius: 0 var(--radius-inner) var(--radius-inner) 0; margin: 10px 0;
}
.ancient-cite-block {
  border: 1px solid rgba(184, 130, 53, 0.25); background: #FFF;
  border-radius: var(--radius-inner); padding: 14px; margin-top: 10px;
}

/* 底部精简导航与弹性微动效 */
.floating-dock-nav {
  position: fixed; bottom: 18px; left: 50%;
  transform: translateX(-50%);
  width: calc(100% - 32px); max-width: 440px;
  background: rgba(255, 255, 255, 0.94);
  backdrop-filter: blur(24px);
  border-radius: var(--radius-card);
  padding: 6px 10px;
  box-shadow: var(--shadow-dock);
  border: var(--border-hairline);
  display: flex; justify-content: space-around; align-items: center; z-index: 100;
}

.dock-item-btn {
  background: none; border: none; display: flex; flex-direction: column;
  align-items: center; gap: 3px; color: var(--color-faint-ink); cursor: pointer;
  padding: 6px 14px; border-radius: var(--radius-inner); position: relative;
  transition: all 0.25s cubic-bezier(0.16, 1, 0.3, 1);
  font-family: var(--font-songti);
}

.dock-icon-svg {
  width: 20px; height: 20px; stroke: currentColor; fill: none;
  stroke-width: 1.7; transition: transform 0.25s cubic-bezier(0.34, 1.56, 0.64, 1);
}

.dock-item-btn:hover .dock-icon-svg {
  transform: translateY(-2px) scale(1.1); stroke: var(--color-bamboo);
}

.dock-item-btn.active { color: var(--color-bamboo); background: var(--color-bamboo-light); }
.dock-item-btn.active .dock-icon-svg {
  stroke: var(--color-bamboo);
  animation: dockIconBounce 0.4s cubic-bezier(0.34, 1.56, 0.64, 1) forwards;
}

.dock-item-btn.active::after {
  content: ""; position: absolute; bottom: 2px; left: 50%;
  transform: translateX(-50%); width: 12px; height: 2px;
  background: var(--color-bamboo); border-radius: 1px;
}

@keyframes dockIconBounce {
  0% { transform: scale(0.9); }
  50% { transform: scale(1.22) translateY(-3px); }
  100% { transform: scale(1.05) translateY(-1px); }
}

.floating-mini-player {
  position: fixed; bottom: 74px; left: 50%;
  transform: translateX(-50%);
  width: calc(100% - 32px); max-width: 440px;
  background: rgba(255, 255, 255, 0.94);
  backdrop-filter: blur(20px);
  border-radius: var(--radius-inner);
  padding: 8px 14px;
  box-shadow: var(--shadow-card);
  border: var(--border-hairline);
  display: flex; justify-content: space-between; align-items: center; z-index: 90;
}

.modal-overlay {
  position: fixed; top: 0; left: 0; right: 0; bottom: 0;
  background: rgba(20, 24, 22, 0.4); backdrop-filter: blur(6px);
  display: flex; justify-content: center; align-items: center; padding: 20px; z-index: 200;
}
.modal-content-card {
  background: #FFF; width: 100%; max-width: 540px; max-height: 88vh;
  overflow-y: auto; border-radius: var(--radius-card); padding: 22px 20px;
  box-shadow: var(--shadow-window); border: var(--border-hairline); position: relative;
}
.annual-ring-svg { width: 280px; height: 280px; }
.admin-badge {
  background: var(--color-seal-bg); color: var(--color-seal-vermilion);
  padding: 2px 6px; border-radius: 2px; font-size: 11px; font-weight: 600;
}
.admin-table { width: 100%; border-collapse: collapse; font-size: 12px; }
.admin-table th, .admin-table td { padding: 8px; text-align: left; border-bottom: 1px solid rgba(0,0,0,0.05); }
.library-heading,.library-detail-title { display:flex;align-items:start;justify-content:space-between;gap:12px; }
.library-heading h2,.library-detail-title h3 { margin:3px 0 0;font-size:19px;font-weight:600; }
.library-eyebrow { color:var(--color-bamboo);font-size:10px;letter-spacing:1.5px;font-weight:700; }
.library-muted { color:var(--color-slate-fog);font-size:12px;line-height:1.7; }
.library-list { display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:10px;margin-top:18px; }
.library-book { text-align:left;background:#fff;border:var(--border-hairline);border-radius:4px;padding:14px;color:var(--color-pine-ink);font:inherit;cursor:pointer;display:flex;flex-direction:column;gap:6px;min-height:144px; }
.library-book:hover,.library-book.selected { border-color:var(--color-bamboo);background:var(--color-bamboo-light); }
.library-book-school { color:var(--color-bamboo);font-size:11px; }
.library-book strong { font-size:16px;font-weight:600; }
.library-book small,.library-book-summary { color:var(--color-slate-fog);font-size:11px;line-height:1.5; }
.library-detail { border-top:var(--border-hairline);margin-top:22px;padding-top:20px;font-size:13px;line-height:1.7; }
.library-links { display:flex;flex-wrap:wrap;gap:8px;margin:16px 0; }
.library-links a { text-decoration:none; }
.library-detail h4 { font-size:13px;margin:20px 0 10px; }
.library-chapters { display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:7px; }
.library-chapters span { background:var(--color-bamboo-light);padding:5px 8px;border-radius:3px;font-size:11px; }
.library-status { margin:14px 0;color:var(--color-bamboo);background:var(--color-bamboo-light);border:1px solid var(--color-bamboo-border);padding:9px 12px;border-radius:4px;font-size:12px; }
.library-lesson { border-top:var(--border-hairline);margin-top:18px;padding-top:18px;line-height:1.8; }
.library-lesson h3 { margin:5px 0 14px;font-size:17px; }
.library-lesson h4 { color:var(--color-bamboo);margin:16px 0 3px; }
.library-lesson p { margin:0 0 8px; }
.library-practice { margin-top:20px;background:var(--color-bamboo-light);padding:14px;border-radius:4px; }
.library-practice label { display:block;margin:10px 0 6px;font-size:12px; }
.library-practice textarea { width:100%;box-sizing:border-box;border:var(--border-hairline);border-radius:4px;background:#fff;padding:10px;font:inherit;font-size:13px;resize:vertical; }
.library-source { border-top:var(--border-hairline);margin-top:22px;padding-top:12px;font-size:12px; }
.library-source summary { cursor:pointer;color:var(--color-slate-fog); }
.library-material-frame { width:100%;height:380px;border:var(--border-hairline);border-radius:4px;background:#fff; }
.breath-route { position:relative;display:grid;place-items:center;min-height:280px;margin:16px 0;overflow:hidden;background:var(--color-bamboo-light); }
.breath-route svg { width:min(260px,70vw);height:auto; }
.breath-route-center { position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);display:flex;flex-direction:column;align-items:center;gap:3px;pointer-events:none;color:var(--color-bamboo);font-size:12px; }
.breath-route-center span { font-size:20px;color:var(--color-pine-ink); }
.breath-audio-item { padding:10px 0;border-bottom:var(--border-hairline); }
.breath-audio-item p { margin:3px 0 7px; }
.breath-audio-item audio { width:min(100%,420px); }
.library-chapter-nav { display:flex;gap:6px;overflow-x:auto;padding:5px 0 10px;scrollbar-width:thin; }
.library-chapter-nav .clean-btn { flex:none; }
button.matrix-card-btn { text-align:left;color:inherit;font:inherit; }
.attention-catalog { display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:9px;max-height:330px;overflow-y:auto;margin-top:14px;padding-right:4px; }
.attention-item { display:flex;flex-direction:column;align-items:flex-start;gap:5px;text-align:left;padding:11px;border:var(--border-hairline);border-radius:4px;background:#fff;color:var(--color-pine-ink);font:inherit;cursor:pointer; }
.attention-item:hover,.attention-item.selected { border-color:var(--color-bamboo);background:var(--color-bamboo-light); }
.attention-item span { font-size:10px;color:var(--color-bamboo); }
.attention-item strong { font-size:13px;font-weight:600; }
.attention-item small { font-size:11px;color:var(--color-slate-fog);line-height:1.45; }
.attention-stage { background:#f6f8f5;border:var(--border-hairline);border-radius:4px;overflow:hidden; }
.attention-stage canvas { display:block;width:100%;height:auto;touch-action:none;cursor:crosshair; }
.attention-controls { display:flex;align-items:center;flex-wrap:wrap;gap:8px;margin-top:12px;font-size:12px;color:var(--color-slate-fog); }
.attention-featured { display:flex;flex-wrap:wrap;gap:8px;margin:16px 0 4px; }
.attention-practice { margin-top:16px; }
.attention-practice .attention-stage { width:min(100%,480px);margin:16px auto;background:#1d1e1d;border-color:#383b38;border-radius:18px; }
.attention-practice .attention-stage canvas { cursor:pointer; }
.attention-ball-choices { display:flex;justify-content:center;flex-wrap:wrap;gap:7px;margin:12px auto;max-width:480px; }
.attention-ball-choices[hidden] { display:none; }
.attention-controls [hidden] { display:none; }
.attention-ball-choice { width:34px;height:34px;border:1px solid #aac6d0;border-radius:50%;background:#e6f1f2;color:#23404b;font:600 13px sans-serif;cursor:pointer; }
.attention-ball-choice.selected { border:2px solid #c98556;background:#f5dfb3; }
.attention-grid { --attention-grid-size:5;display:grid;grid-template-columns:repeat(var(--attention-grid-size),1fr);width:min(100%,420px);margin:16px auto;border:1px solid #d9dedb;border-radius:10px;overflow:hidden;background:#fff; }
.attention-grid-cell { aspect-ratio:1;border:0;border-right:1px solid #e2e7e4;border-bottom:1px solid #e2e7e4;background:#fff;color:#245c75;font:700 clamp(18px,4vw,30px) sans-serif;cursor:pointer; }
.attention-grid-cell:nth-child(4n + 2) { color:#ba6848; }
.attention-grid-cell:nth-child(5n + 3) { color:#276d53; }
.attention-grid-cell:hover:not(:disabled) { background:#f1f6f2; }
.attention-grid-cell.completed { background:#f2f7f3;color:#80948b; }
.attention-grid-cell:disabled { cursor:default; }
.cognitive-level-list { max-height:220px;grid-template-columns:repeat(auto-fit,minmax(125px,1fr)); }
.cognitive-practice { text-align:center; }
.cognitive-practice .attention-controls { justify-content:center; }
.cognitive-chain-prompt { display:flex;justify-content:center;align-items:center;gap:14px;margin:18px 0;color:var(--color-bamboo); }
.cognitive-chain-prompt strong { font-size:clamp(24px,5vw,38px);font-weight:600; }
.cognitive-chain-prompt span { color:var(--color-faint-ink);font-size:24px; }
.cognitive-chain-prompt small { align-self:end;color:var(--color-slate-fog);font:11px var(--font-mono); }
.cognitive-word-grid,.cognitive-inhibition-grid { display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:6px;width:min(100%,520px);margin:15px auto; }
.cognitive-word,.cognitive-inhibition-cell { display:grid;place-items:center;aspect-ratio:1;border:var(--border-hairline);border-radius:var(--radius-inner);background:#fff;min-width:0; }
.cognitive-word { font:600 clamp(15px,3.4vw,25px) var(--font-songti);color:var(--color-pine-ink);cursor:pointer; }
.cognitive-word:hover:not(:disabled) { border-color:var(--color-bamboo);background:var(--color-bamboo-light); }
.cognitive-word.completed { color:var(--color-bamboo);background:var(--color-bamboo-light); }
.cognitive-word.current,.cognitive-inhibition-cell.current { outline:2px solid var(--color-bamboo);outline-offset:1px; }
.cognitive-word:disabled { cursor:default; }
.cognitive-progress { margin:16px 0 6px;color:var(--color-slate-fog);font:12px var(--font-mono); }
.cognitive-stroop-tile { display:grid;place-items:center;width:min(100%,260px);min-height:180px;margin:14px auto;border:var(--border-hairline);border-radius:var(--radius-card);font-size:clamp(68px,15vw,110px);font-weight:700; }
.cognitive-answer-row { display:flex;justify-content:center;flex-wrap:wrap;gap:9px;margin:16px 0; }
.cognitive-answer-row .clean-btn { min-width:60px;min-height:46px;font-size:17px; }
.cognitive-inhibition-grid { gap:0;border:2px solid var(--color-pine-ink);background:#fff; }
.cognitive-inhibition-cell { border:0;border-radius:0;border-right:1px solid var(--color-pine-ink);border-bottom:1px solid var(--color-pine-ink); }
.cognitive-inhibition-cell:nth-child(5n) { border-right:0; }
.cognitive-inhibition-cell:nth-last-child(-n+5) { border-bottom:0; }
.cognitive-inhibition-cell.completed { background:#f3f6f2;opacity:.6; }
.cognitive-inhibition-cell span { font-weight:700;line-height:1; }
.cognitive-inhibition-cell .large { font-size:clamp(30px,7vw,62px); }
.cognitive-inhibition-cell .small { font-size:clamp(18px,4vw,32px); }
.sound-head .library-heading { align-items:center; }
.sound-head .library-heading>strong { font-size:12px;color:var(--color-bamboo);white-space:nowrap; }
.sound-categories { display:flex;gap:7px;overflow-x:auto;padding:2px 0 12px;scrollbar-width:thin; }
.sound-categories .clean-btn { flex:none;min-height:36px; }
.sound-track-list { display:flex;flex-direction:column; }
.sound-track { display:flex;align-items:center;gap:11px;padding:12px 0;border-top:var(--border-hairline); }
.sound-track-symbol { display:grid;place-items:center;width:38px;height:38px;flex:none;border-radius:50%;background:var(--color-bamboo-light);color:var(--color-bamboo);font-size:17px; }
.sound-track-text { min-width:0;flex:1;display:flex;flex-direction:column; }
.sound-track-text strong { font-size:14px;font-weight:600; }
.sound-track-text small { font-size:11px;color:var(--color-faint-ink);overflow:hidden;text-overflow:ellipsis;white-space:nowrap; }
.sound-track-actions { display:flex;gap:5px;flex:none; }
.sound-track-actions .clean-btn { min-height:34px; }
.sound-lower { display:grid;grid-template-columns:minmax(0,1.3fr) minmax(230px,.7fr);gap:14px; }
.sound-playing h3 { font-size:17px;margin:12px 0 4px; }
.sound-playing input[type="range"] { width:100%;margin-top:16px;accent-color:var(--color-bamboo); }
.sound-time { text-align:right;font:11px var(--font-mono);color:var(--color-faint-ink); }
.sound-timer { display:flex;align-items:center;gap:10px;margin:16px 0 4px;font-size:12px; }
.sound-timer select { border:var(--border-hairline);border-radius:var(--radius-inner);background:#fff;padding:6px;font:inherit; }
#soundTimerStatus { color:var(--color-faint-ink);font-size:11px; }
.sound-queue-row { display:flex;align-items:center;justify-content:space-between;gap:8px;padding:7px 0;border-top:var(--border-hairline); }
.sound-queue-row .forum-user-link { text-align:left;font-size:12px;overflow-wrap:anywhere; }
.sound-queue-row>div { display:flex;gap:3px; }
.sound-queue-row .clean-btn { padding:4px 7px; }
.sound-external iframe { display:block;width:100%;height:110px;border:0;margin:12px 0; }
.sound-external a { color:var(--color-bamboo); }
.sound-netease-entry form { display:flex;align-items:end;gap:8px;margin:12px 0; }
.sound-netease-entry label { flex:1;min-width:0;font-size:12px;color:var(--color-slate-fog); }
.sound-netease-entry input { display:block;width:100%;margin-top:5px;padding:9px 10px;border:var(--border-hairline);border-radius:var(--radius-inner);font:inherit;font-size:14px;color:var(--color-pine-ink); }
.sound-netease-entry a { color:var(--color-bamboo); }
.sound-history-heading { margin-top:22px; }
.sound-history-list { max-height:280px;overflow-y:auto; }
.sound-history-list .forum-user-link { min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap; }
.sound-history-list small { color:var(--color-faint-ink);font-size:11px; }
.sound-feedback-overlay { position:fixed;inset:0;z-index:400;background:rgba(20,24,22,.48);display:grid;place-items:center;padding:16px; }
.sound-feedback-overlay[hidden] { display:none; }
.sound-feedback-card { width:min(100%,420px);max-height:min(85dvh,720px);overflow-y:auto;border-radius:var(--radius-card);background:#fff;padding:22px;box-shadow:var(--shadow-window); }
.sound-feedback-card h2 { font-size:22px;margin:7px 0; }
.sound-feedback-card p { font-size:12px;color:var(--color-slate-fog);margin-bottom:14px; }
.sound-feeling-options { display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px; }
.sound-feeling-options button { display:flex;flex-direction:column;align-items:flex-start;gap:3px;min-height:60px;border:var(--border-hairline);border-radius:var(--radius-inner);background:#fff;padding:9px;color:var(--color-pine-ink);font:inherit;text-align:left;cursor:pointer; }
.sound-feeling-options strong { font-size:13px; }
.sound-feeling-options small { font-size:11px;color:var(--color-bamboo); }
.sound-rest { text-align:center;padding:45px 20px; }
.sound-rest h2 { margin:10px 0;font-size:20px; }
.sound-rest p { margin-bottom:18px;color:var(--color-slate-fog);font-size:13px; }
.sound-calendar-entry { display:flex;gap:12px;align-items:flex-start;border-top:var(--border-hairline);padding:9px 0;font-size:12px; }
.sound-calendar-entry time { color:var(--color-faint-ink);font:11px var(--font-mono);white-space:nowrap; }
.sound-calendar-entry div { display:flex;flex-direction:column; }
.sound-calendar-entry small { color:var(--color-slate-fog);font-size:11px; }
.sound-admin-list>div { align-items:flex-start; }
.sound-admin-head { display:flex;flex:1;min-width:160px;flex-direction:column; }
.sound-admin-list details { min-width:100%;order:3; }
.sound-admin-list summary { color:var(--color-bamboo);cursor:pointer; }

/* 听境：轻量社区式列表与雾透控制 */
.main-stage[data-soundscape="true"] { gap:14px;background:radial-gradient(circle at 85% 4%,rgba(171,205,185,.22),transparent 34%),radial-gradient(circle at 4% 68%,rgba(203,216,210,.18),transparent 35%); }
.main-stage[data-soundscape="true"] .card-sharp,.main-stage[data-soundscape="true"] .sound-publish { border-radius:22px;border:1px solid rgba(112,139,123,.16);box-shadow:0 14px 36px rgba(36,60,44,.045),0 1px 2px rgba(36,60,44,.03); }
.main-stage[data-soundscape="true"] .clean-btn { display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:38px;padding:7px 14px;border-radius:999px;border:1px solid rgba(99,128,110,.25);background:rgba(248,251,248,.64);backdrop-filter:blur(14px) saturate(130%);-webkit-backdrop-filter:blur(14px) saturate(130%);color:#345943;font-family:inherit;font-size:12px;font-weight:600;transition:transform 130ms cubic-bezier(.23,1,.32,1),background-color 180ms ease,border-color 180ms ease,box-shadow 180ms ease; }
.main-stage[data-soundscape="true"] .clean-btn:hover:not(:disabled) { background:rgba(230,241,233,.94);border-color:rgba(54,103,73,.48);box-shadow:0 5px 16px rgba(37,76,51,.1); }
.main-stage[data-soundscape="true"] .clean-btn:active:not(:disabled) { transform:scale(.96); }
.main-stage[data-soundscape="true"] .clean-btn:focus-visible,.main-stage[data-soundscape="true"] :is(input,select,summary):focus-visible { outline:2px solid #4c8866;outline-offset:3px; }
.main-stage[data-soundscape="true"] .clean-btn:disabled { opacity:.45;cursor:not-allowed; }
.main-stage[data-soundscape="true"] .clean-btn.btn-active { background:rgba(48,93,64,.92);border-color:rgba(41,83,55,.7);color:#fff;box-shadow:inset 0 1px rgba(255,255,255,.18),0 6px 16px rgba(40,75,49,.13); }
.main-stage[data-soundscape="true"] .clean-btn.btn-active:hover:not(:disabled) { background:#275d3e;color:#fff; }
.sound-head { display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:16px;padding:25px 28px !important;background:linear-gradient(115deg,rgba(236,245,238,.94),rgba(255,255,255,.84) 62%) !important; }
.sound-head-copy { display:flex;align-items:center;gap:16px;min-width:0; }
.sound-brand-mark,.sound-section-icon { display:grid;place-items:center;flex:none;width:49px;height:49px;border-radius:17px;background:#2c6245;color:#f5fbf5;box-shadow:inset 0 1px rgba(255,255,255,.2),0 8px 18px rgba(44,98,69,.15); }
.sound-head .library-eyebrow,.sound-kicker { font:700 10px var(--font-mono);letter-spacing:.16em;color:#4b8061; }
.sound-head h2 { font-size:clamp(21px,2.4vw,28px);line-height:1.25;margin:3px 0 5px; }
.sound-head .library-muted { font-size:12px;margin:0; }
.sound-head-actions { display:flex;align-items:center;gap:10px;flex-wrap:wrap; }
.sound-library-count { font-size:11px;font-weight:700;color:#3c7653;background:rgba(241,250,243,.75);border:1px solid rgba(89,145,104,.2);padding:8px 12px;border-radius:999px; }
.sound-head .forum-notice { flex-basis:100%;margin:0; }
.sound-publish { padding:20px 24px;background:linear-gradient(120deg,rgba(238,246,240,.87),rgba(255,255,255,.7));backdrop-filter:blur(24px) saturate(135%);-webkit-backdrop-filter:blur(24px) saturate(135%); }
.sound-publish-intro { display:flex;align-items:center;gap:13px;margin-bottom:16px; }
.sound-section-icon { width:39px;height:39px;border-radius:13px;box-shadow:none; }
.sound-publish h3 { margin:2px 0;font-size:17px; }
.sound-publish p { color:var(--color-slate-fog);font-size:11px; }
.sound-upload-form { display:grid;grid-template-columns:1.3fr .7fr;gap:11px 12px;align-items:end; }
.sound-upload-form label { display:block;min-width:0;color:var(--color-slate-fog);font-size:11px;font-weight:600; }
.sound-upload-form input:not([type="file"]),.sound-upload-form select { display:block;width:100%;height:42px;margin-top:6px;border:1px solid rgba(91,123,102,.22);border-radius:12px;background:rgba(255,255,255,.73);padding:8px 12px;color:var(--color-pine-ink);font-family:inherit;font-size:13px; }
.sound-upload-description { grid-column:1/-1; }
.sound-file-picker { display:flex !important;position:relative;align-items:center;justify-content:center;gap:7px;min-height:45px;padding:9px 12px;border:1px dashed rgba(54,103,73,.4);border-radius:13px;background:rgba(255,255,255,.48);color:var(--color-bamboo) !important;cursor:pointer;transition:background-color 180ms ease,transform 130ms ease; }
.sound-file-picker:hover { background:rgba(227,240,230,.85); }
.sound-file-picker:active { transform:scale(.98); }
.sound-file-picker input { position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:pointer; }
.sound-upload-footer { display:flex;align-items:center;justify-content:space-between;gap:9px;min-width:0; }
.sound-upload-footer span { min-width:0;color:var(--color-faint-ink);font-size:11px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap; }
.sound-upload-form progress { grid-column:1/-1;width:100%;height:7px;accent-color:#3e8060; }
.sound-upload-form progress[hidden] { display:none; }
.sound-upload-status { grid-column:1/-1;min-height:1px;color:var(--color-bamboo);font-size:11px; }
.sound-library { padding:19px 22px !important; }
.sound-category-heading { display:flex;align-items:center;justify-content:space-between;gap:15px;min-height:58px;padding:0 3px 13px;border-bottom:1px solid rgba(84,116,94,.12); }
.sound-category-heading h3 { margin:3px 0 0;font-size:20px;line-height:1.2;color:var(--color-pine-ink); }
.sound-track-list { display:flex;flex-direction:column;gap:5px;padding-top:10px; }
.sound-track { gap:12px;padding:10px 12px;border:1px solid transparent;border-radius:15px;background:rgba(241,246,242,.46);transition:background-color 180ms ease,transform 150ms cubic-bezier(.23,1,.32,1),border-color 180ms ease;animation:sound-row-enter 180ms cubic-bezier(.23,1,.32,1) both; }
.sound-track:hover { transform:translateX(2px);background:rgba(235,244,238,.9);border-color:rgba(68,114,79,.13); }
.sound-track-symbol { width:40px;height:40px;border-radius:13px;background:rgba(58,113,79,.12);color:#2d6b49; }
.sound-track-text strong { font-size:13px; }
.sound-track-text small { font-size:11px; }
.sound-empty { display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:165px;text-align:center;color:var(--color-pine-ink); }
.sound-empty-icon { display:grid;place-items:center;width:48px;height:48px;margin-bottom:9px;border-radius:16px;background:rgba(48,99,64,.1);color:var(--color-bamboo); }
.sound-empty strong { font-size:15px; }
.sound-empty p { margin:4px 0 11px;color:var(--color-faint-ink);font-size:11px; }
.sound-playing { position:relative;overflow:hidden;background:radial-gradient(circle at 92% 8%,rgba(88,147,113,.25),transparent 40%),linear-gradient(145deg,#1c3027,#243f31) !important;border-color:#365c44 !important;color:#f6fbf6; }
.sound-playing::before { content:"";position:absolute;right:-35px;top:-75px;width:210px;height:210px;border:1px solid rgba(216,246,222,.12);border-radius:50%;pointer-events:none; }
.sound-playing .editorial-section-tag { border-color:rgba(232,250,231,.16);color:#cfdfd3; }
.sound-playing h3 { margin:18px 0 4px;font-size:20px;color:#fff; }
.sound-playing .library-muted { color:#c6d5c9 !important; }
.sound-playing .sound-time,.sound-playing #soundTimerStatus,.sound-playing .sound-timer { color:#c0d5c7; }
.sound-playing input[type="range"] { accent-color:#a0d5a9; }
.main-stage[data-soundscape="true"] .sound-playing .clean-btn { background:rgba(230,247,233,.12);border-color:rgba(230,247,233,.21);color:#edf8ef; }
.main-stage[data-soundscape="true"] .sound-playing .clean-btn:hover:not(:disabled) { background:rgba(230,247,233,.22); }
.main-stage[data-soundscape="true"] .sound-playing .clean-btn.btn-active { background:#e5f4e8;border-color:#f6fff6;color:#1d4d32; }
.sound-timer select { border-color:rgba(216,240,220,.24);border-radius:999px;background:rgba(232,248,236,.14);color:#f4fff5;padding:7px 12px; }
.sound-timer select option { color:#1e2d22;background:#fff; }
.sound-queue { background:rgba(255,255,255,.82) !important; }
.sound-queue .editorial-section-tag { margin-bottom:14px; }
.sound-queue-row { border-color:rgba(91,123,102,.13); }
.sound-netease-entry { padding:0 !important;overflow:hidden;background:rgba(255,255,255,.56) !important; }
.sound-netease-entry>summary { display:flex;justify-content:space-between;align-items:center;gap:10px;cursor:pointer;list-style:none;padding:16px 22px;color:var(--color-bamboo);font-size:13px;font-weight:700;transition:background-color 180ms ease,transform 130ms cubic-bezier(.23,1,.32,1); }
.sound-netease-entry>summary::-webkit-details-marker { display:none; }
.sound-netease-entry>summary:hover { background:rgba(221,237,225,.35); }
.sound-netease-entry>summary:active { transform:scale(.99); }
.sound-netease-entry>summary span { display:flex;align-items:center;gap:8px;margin-left:auto;color:var(--color-faint-ink);font-size:11px;font-weight:400; }
.sound-netease-entry>summary span::after { content:"";display:block;width:7px;height:7px;border-right:1.5px solid currentColor;border-bottom:1.5px solid currentColor;transform:rotate(45deg);transition:transform 180ms cubic-bezier(.23,1,.32,1); }
.sound-netease-entry[open]>summary span::after { transform:rotate(225deg); }
.sound-netease-entry[open]>summary { border-bottom:1px solid rgba(91,123,102,.13); }
.sound-netease-entry>.editorial-section-tag,.sound-netease-entry>form,.sound-netease-entry>.library-muted,.sound-netease-entry>.sound-history-heading,.sound-netease-entry>.sound-history-list { margin-left:22px;margin-right:22px; }
.sound-netease-entry>.editorial-section-tag { margin-top:15px; }
.sound-netease-entry>.sound-history-list { margin-bottom:20px; }
.sound-netease-entry input { border-radius:11px; }
@keyframes sound-row-enter { from { opacity:0;transform:translateY(5px); } to { opacity:1;transform:translateY(0); } }
@media (prefers-reduced-motion:reduce) { .sound-track { animation:none; } .main-stage[data-soundscape="true"] .clean-btn,.sound-track,.sound-file-picker { transition:none; } }
@media (max-width:700px) { .main-stage[data-soundscape="true"] { padding:13px 12px 100px;gap:11px; } .sound-head { padding:18px !important; } .sound-head-copy { gap:11px; } .sound-brand-mark { width:42px;height:42px;border-radius:14px; } .sound-head-actions { width:100%;justify-content:space-between; } .sound-library { padding:14px !important; } .sound-category-heading h3 { font-size:18px; } .sound-track { padding:10px; } .sound-track-actions { padding-left:0; } .sound-publish { padding:16px; } .sound-upload-form { grid-template-columns:1fr; } .sound-upload-description,.sound-upload-form progress,.sound-upload-status { grid-column:auto; } .sound-upload-form input:not([type="file"]),.sound-upload-form select { font-size:16px; } .sound-upload-footer { flex-wrap:wrap; } .sound-netease-entry>summary { padding:15px; } .sound-netease-entry>.editorial-section-tag,.sound-netease-entry>form,.sound-netease-entry>.library-muted,.sound-netease-entry>.sound-history-heading,.sound-netease-entry>.sound-history-list { margin-left:15px;margin-right:15px; } }
:root[data-theme="dark"] .main-stage[data-soundscape="true"] { background:radial-gradient(circle at 90% 5%,rgba(73,111,80,.15),transparent 35%); }
:root[data-theme="dark"] .sound-head { background:linear-gradient(115deg,#25382c,#1d2924 75%) !important; }
:root[data-theme="dark"] .sound-head .library-eyebrow,:root[data-theme="dark"] .sound-kicker { color:#a5d2ae; }
:root[data-theme="dark"] .sound-library-count { background:#2d4534;border-color:#42664b;color:#d5f0d9; }
:root[data-theme="dark"] .sound-publish { background:linear-gradient(120deg,#293a30,#202d27); }
:root[data-theme="dark"] .sound-upload-form input:not([type="file"]),:root[data-theme="dark"] .sound-upload-form select,:root[data-theme="dark"] .sound-file-picker { background:#26372d;border-color:#42604c;color:#e4eee5; }
:root[data-theme="dark"] .sound-track { background:rgba(53,75,58,.37); }
:root[data-theme="dark"] .sound-track:hover { background:rgba(67,94,71,.53); }
:root[data-theme="dark"] .sound-queue,:root[data-theme="dark"] .sound-netease-entry { background:#1f2d25 !important; }
:root[data-theme="dark"] .sound-queue-row,:root[data-theme="dark"] .sound-netease-entry[open]>summary { border-color:#3a4f3e; }
:root[data-theme="dark"] .main-stage[data-soundscape="true"] .clean-btn { background:rgba(50,71,55,.7);border-color:#45644c;color:#dcefe0; }
:root[data-theme="dark"] .main-stage[data-soundscape="true"] .clean-btn.btn-active { background:#426f4e;color:#fff; }
:root[data-theme="dark"] .main-stage[data-soundscape="true"] .sound-playing .clean-btn { background:rgba(230,247,233,.12);border-color:rgba(230,247,233,.21);color:#edf8ef; }
:root[data-theme="dark"] .main-stage[data-soundscape="true"] .sound-playing .clean-btn.btn-active { background:#e5f4e8;color:#1d4d32; }
.course-head .library-heading { gap:12px; }
.course-search { display:flex;gap:8px;margin:18px 0 12px; }
.course-search input { flex:1;min-width:0;border:var(--border-hairline);border-radius:var(--radius-inner);background:#fff;padding:10px 12px;color:var(--color-pine-ink);font:inherit;font-size:14px; }
.course-filter { margin-top:12px; }
.course-grid { display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:14px;margin-top:14px; }
.course-card { display:flex;flex-direction:column;overflow:hidden;border:var(--border-hairline);border-radius:var(--radius-inner);background:#fff;color:var(--color-pine-ink);text-align:left;font:inherit;cursor:pointer;transition:transform 180ms cubic-bezier(.23,1,.32,1);animation:course-arrive 280ms cubic-bezier(.23,1,.32,1) backwards;animation-delay:calc(var(--course-order) * 35ms); }
.course-card:active { transform:scale(.98); }
.course-card:focus-visible { outline:2px solid var(--color-bamboo);outline-offset:3px; }
.course-cover { position:relative;display:grid;place-items:center;aspect-ratio:16/9;overflow:hidden;background:radial-gradient(circle at 24% 28%,#dae8da 0,transparent 34%),linear-gradient(135deg,#e8eee9,#c8d7cc 55%,#aebfb5);color:var(--color-bamboo); }
.course-cover::after { content:"";position:absolute;width:52%;aspect-ratio:1;right:-10%;bottom:-46%;border:1px solid rgba(36,83,60,.18);border-radius:50%; }
.course-cover-audio { background:radial-gradient(circle at 20% 25%,#f1e9d8 0,transparent 34%),linear-gradient(135deg,#f0eee6,#d5dccf 58%,#c4d0be); }
.course-cover img { position:absolute;inset:0;width:100%;height:100%;object-fit:cover; }
.course-cover-symbol { position:relative;z-index:1;display:grid;place-items:center;width:62px;height:62px;border:1px solid rgba(255,255,255,.75);border-radius:50%;background:rgba(255,255,255,.45);font-size:26px;box-shadow:0 10px 25px rgba(25,58,43,.08); }
.course-cover-kind { position:absolute;z-index:2;bottom:10px;left:11px;padding:3px 8px;border-radius:3px;background:rgba(250,252,248,.92);color:var(--color-bamboo);font-size:11px; }
.course-card-copy { display:flex;flex:1;flex-direction:column;padding:13px; }
.course-card-copy strong { font-size:15px;font-weight:600;line-height:1.45; }
.course-card-copy p { display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden;margin:6px 0 14px;color:var(--color-slate-fog);font-size:12px;line-height:1.55; }
.course-card-copy small { margin-top:auto;color:var(--color-faint-ink);font-size:11px; }
.course-empty { grid-column:1/-1;padding:32px;color:var(--color-slate-fog);text-align:center; }
.course-pagination { display:flex;justify-content:center;align-items:center;gap:12px;margin:20px 0; }
.course-pagination span { color:var(--color-slate-fog);font-size:12px; }
.course-detail { animation:course-arrive 240ms cubic-bezier(.23,1,.32,1) both; }
.course-player { overflow:hidden;margin:18px 0;border-radius:var(--radius-inner);background:#1d2520; }
.course-player video { display:block;width:100%;max-height:min(65dvh,650px);aspect-ratio:16/9;object-fit:contain;background:#161c18; }
.course-player audio { display:block;width:calc(100% - 24px);margin:12px; }
.course-player .course-cover { max-height:360px; }
.course-description { padding:8px 0 2px; }
.course-description p { margin:14px 0;white-space:pre-wrap;font-size:14px;line-height:1.8;color:var(--color-pine-ink); }
.course-admin-create { margin:16px 0 22px; }
.course-admin-fields { display:grid;grid-template-columns:minmax(130px,.6fr) repeat(2,minmax(0,1fr));gap:9px; }
.course-admin-fields label,.course-admin-publish { display:flex;flex-direction:column;gap:5px;font-size:12px;color:var(--color-slate-fog); }
.course-admin-publish { flex-direction:row;align-items:center;gap:8px; }
.course-admin-publish input { width:auto; }
.course-admin-create progress,.course-admin-row progress { display:block;width:100%;height:8px;accent-color:var(--color-bamboo); }
.course-admin-list { display:flex;flex-direction:column;gap:10px; }
.course-admin-row { display:flex;align-items:center;flex-wrap:wrap;gap:12px;padding:11px;border:var(--border-hairline);border-radius:var(--radius-inner); }
.course-admin-thumb { width:90px;aspect-ratio:16/9;flex:none;display:grid;place-items:center;overflow:hidden;border-radius:3px;background:var(--color-bamboo-light);color:var(--color-bamboo); }
.course-admin-thumb img { width:100%;height:100%;object-fit:cover; }
.course-admin-info { display:flex;flex:1;min-width:180px;flex-direction:column;gap:3px; }
.course-admin-info strong { font-size:13px; }
.course-admin-info small { font-size:11px;color:var(--color-bamboo); }
.course-admin-info p { max-width:45ch;margin:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--color-slate-fog);font-size:11px; }
.course-admin-actions { display:flex;gap:5px; }
.course-admin-row details { width:100%; }
.course-admin-row summary { color:var(--color-bamboo);font-size:12px;cursor:pointer; }
@keyframes course-arrive { from { opacity:0;transform:translateY(8px); } to { opacity:1;transform:translateY(0); } }
@media (hover:hover) and (pointer:fine) { .course-card:hover:not(:active) { transform:translateY(-3px); } }
@media (max-width:700px) {
  .sound-lower { grid-template-columns:1fr; }
  .sound-track { align-items:flex-start;flex-wrap:wrap; }
  .sound-track-text { padding-top:3px; }
  .sound-track-actions { width:100%;padding-left:49px; }
  .sound-track-actions .clean-btn { min-height:40px; }
  .sound-feedback-card { padding:18px;max-height:calc(100dvh - 32px - env(safe-area-inset-bottom, 0px)); }
  .sound-feeling-options button { min-height:68px; }
  .sound-timer select { font-size:16px; }
  .sound-netease-entry form { flex-direction:column;align-items:stretch; }
  .sound-netease-entry input { font-size:16px; }
  .cognitive-word-grid,.cognitive-inhibition-grid { gap:4px; }
  .cognitive-inhibition-grid { gap:0; }
  .course-search input { font-size:16px; }
  .course-admin-fields { grid-template-columns:1fr; }
  .course-grid { grid-template-columns:repeat(2,minmax(0,1fr));gap:9px; }
  .course-card-copy { padding:10px; }
  .course-card-copy strong { font-size:13px; }
  .course-card-copy p { font-size:11px; }
  .course-admin-info { min-width:calc(100% - 102px); }
  .course-admin-actions { margin-left:102px; }
}
@media (max-width:380px) { .course-grid { grid-template-columns:1fr; } }
@media (prefers-reduced-motion:reduce) { .course-card,.course-detail { animation:none;transition:none; } }

/* 社区、账号与管理工作台：沿用站点色彩，采用更清晰的产品界面排版 */
.main-stage[data-forum-view="forum"],
.main-stage[data-forum-view="profile"],
.main-stage[data-forum-view="admin"] {
  --workspace-ink: #202a27;
  --workspace-muted: #75817c;
  --workspace-line: #e7ece8;
  --workspace-soft: #f4f7f5;
  color: var(--workspace-ink);
  font-family: Inter, -apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang SC", "Microsoft YaHei", sans-serif;
  letter-spacing: 0;
}
.main-stage[data-forum-view="forum"] .card-sharp,
.main-stage[data-forum-view="profile"] .card-sharp,
.main-stage[data-forum-view="admin"] .card-sharp {
  border: 1px solid var(--workspace-line);
  border-radius: 14px;
  box-shadow: 0 4px 18px rgba(26, 48, 37, .035);
}
.ui-icon { display:inline-block;flex:none;vertical-align:middle; }
.main-stage[data-forum-view="forum"] .clean-btn,
.main-stage[data-forum-view="profile"] .clean-btn,
.main-stage[data-forum-view="admin"] .clean-btn {
  display:inline-flex;align-items:center;justify-content:center;gap:7px;
  border-radius:8px;font-family:inherit;letter-spacing:0;
}
.main-stage[data-forum-view="forum"] .btn-active,
.main-stage[data-forum-view="profile"] .btn-active,
.main-stage[data-forum-view="admin"] .btn-active { background:#24533c;color:#fff;border-color:#24533c; }
.main-stage[data-forum-view="forum"] .forum-form input,
.main-stage[data-forum-view="forum"] .forum-form textarea,
.main-stage[data-forum-view="forum"] .forum-form select,
.main-stage[data-forum-view="profile"] .forum-form input,
.main-stage[data-forum-view="profile"] .forum-form textarea,
.main-stage[data-forum-view="admin"] .forum-form input,
.main-stage[data-forum-view="admin"] .forum-form textarea,
.main-stage[data-forum-view="admin"] .forum-form select { border:1px solid #dfe6e1;border-radius:8px;font-family:inherit;font-size:14px; }
.main-stage[data-forum-view="forum"] :is(input,textarea,select,button):focus-visible,
.main-stage[data-forum-view="profile"] :is(input,textarea,select,button):focus-visible,
.main-stage[data-forum-view="admin"] :is(input,textarea,select,button):focus-visible { outline:2px solid #397953;outline-offset:2px; }

.forum-home-head { padding:22px 26px 20px;gap:18px; }
.forum-home-head .editorial-section-tag { border:0;margin:0;padding:0;letter-spacing:.09em;font-size:10px; }
.forum-home-head .editorial-section-tag strong { letter-spacing:0;font-weight:500; }
.forum-headline h2 { font-size:clamp(22px,3vw,28px);font-weight:700;letter-spacing:-.035em; }
.forum-headline p { margin-top:5px;font-size:13px;color:var(--workspace-muted); }
.forum-search { gap:10px; }
.forum-search-field { display:flex;align-items:center;gap:10px;height:44px;padding:0 13px;border:1px solid var(--workspace-line);border-radius:9px;background:var(--workspace-soft);color:#8c9992; }
.forum-search-field:focus-within { border-color:#78a388;box-shadow:0 0 0 3px rgba(36,83,60,.08); }
.forum-search-field input { height:100%;padding:0;border:0;background:transparent;outline:0;color:var(--workspace-ink); }
.forum-search-field input:focus-visible { outline:0 !important; }
.forum-layout { grid-template-columns:minmax(205px,235px) minmax(0,1fr);gap:14px; }
.forum-sidebar { top:74px;padding:13px;border-color:var(--workspace-line);border-radius:14px;box-shadow:0 4px 18px rgba(26,48,37,.035); }
.forum-sidebar-brand { display:flex;align-items:center;gap:10px;padding:7px 7px 17px;margin-bottom:15px;border-bottom:1px solid var(--workspace-line); }
.forum-sidebar-mark,.admin-brand-mark { display:grid;place-items:center;width:34px;height:34px;flex:none;border-radius:10px;background:#24533c;color:#fff;font-size:16px;font-weight:700; }
.forum-sidebar-brand span:last-child,.admin-brand span:last-child { display:flex;flex-direction:column;gap:2px; }
.forum-sidebar-brand strong,.admin-brand strong { font-size:13px;font-weight:700; }
.forum-sidebar-brand small,.admin-brand small { color:var(--workspace-muted);font-size:10px; }
.forum-sidebar-block { padding-bottom:13px;margin-bottom:13px;border-color:var(--workspace-line); }
.forum-sidebar h3 { margin:0 7px 8px;color:#83918a;font-size:10px;letter-spacing:.09em;font-weight:700; }
.forum-filter-option { flex-direction:row;align-items:flex-start;gap:10px;padding:9px 10px;margin:2px 0;border-radius:8px;color:#53635b;font-size:13px; }
.forum-filter-option .ui-icon { margin-top:1px;color:#7f9186; }
.forum-filter-option span { display:flex;min-width:0;flex-direction:column;gap:2px; }
.forum-filter-option strong { font-size:13px;font-weight:550; }
.forum-filter-option small { line-height:1.4;color:#96a19a; }
.forum-filter-option.selected { background:#eaf3ed;color:#24533c; }
.forum-filter-option.selected .ui-icon { color:#24533c; }
.forum-side-heading h3 { margin:0 0 10px 7px; }
.forum-side-heading button { font-size:11px; }
.forum-tag-list { padding:0 5px; }
.forum-tag-chip { border-radius:5px;font-family:inherit;font-weight:550; }
.forum-feed { border-color:var(--workspace-line);border-radius:14px;box-shadow:0 4px 18px rgba(26,48,37,.035); }
.forum-feed-heading { padding:19px 22px; }
.forum-feed-heading h3 { font-size:16px;font-weight:700; }
.forum-feed-heading small { display:block;margin-top:3px;font-size:11px; }
.forum-feed-item { display:flex;gap:12px;padding:17px 22px;border-color:var(--workspace-line);transition:background-color .18s ease; }
.forum-feed-avatar { display:grid;place-items:center;width:36px;height:36px;flex:none;margin-top:1px;border-radius:11px;background:#e6eee8;color:#24533c;font-size:15px;font-weight:700; }
.forum-feed-content { min-width:0;flex:1; }
.forum-post-open { padding:0 0 9px; }
.forum-post-top { align-items:center;color:#607368;font-size:11px; }
.forum-channel-label { display:inline-flex;align-items:center;gap:3px;font-weight:600; }
.forum-post-open h3 { margin:7px 0 5px;font-size:16px;font-weight:700;line-height:1.35;letter-spacing:-.01em; }
.forum-post-open p { color:#84908a;font-size:12px;line-height:1.6; }
.forum-post-bottom { font-size:11px; }
.forum-post-bottom>span { display:inline-flex;align-items:center;gap:5px;flex-wrap:wrap; }
.forum-post-bottom .forum-user-link { color:#536b5d;font-weight:600; }
.forum-meta-separator { margin:0 2px;color:#aeb8b1; }
.forum-empty { padding:48px 24px;text-align:center; }
.forum-user-link:hover { text-decoration:underline; }
.forum-detail-title { font-size:clamp(22px,3vw,30px);font-weight:700; }
.forum-body { color:var(--workspace-ink);font-size:14px;line-height:1.85; }

.workspace-heading { padding:6px 2px 2px; }
.workspace-heading>span,.admin-breadcrumb { color:#7c8e83;font-size:10px;letter-spacing:.12em;font-weight:700; }
.workspace-heading h1 { margin:7px 0 4px;font-size:27px;font-weight:700;letter-spacing:-.03em; }
.workspace-heading p { color:var(--workspace-muted);font-size:13px; }
.profile-layout { display:grid;grid-template-columns:minmax(220px,280px) minmax(0,1fr);align-items:start;gap:16px; }
.profile-side { position:sticky;top:74px;padding:12px !important;overflow:hidden; }
.profile-side .profile-cover { height:126px;margin:0;border-radius:9px;background-color:#dce9df; }
.profile-side .profile-avatar { width:68px;height:68px;left:14px;bottom:-28px;border-width:3px;font-size:25px; }
.profile-side .profile-identity { padding:37px 8px 8px; }
.profile-side .profile-identity h2 { font-size:19px;font-weight:700; }
.profile-side .profile-identity>div:not(.profile-tags),.profile-side .profile-identity p { font-size:11px;line-height:1.5; }
.profile-side-actions { display:flex;flex-direction:column;gap:7px;margin:11px 8px 5px;padding-top:13px;border-top:1px solid var(--workspace-line); }
.profile-side-actions .clean-btn { justify-content:flex-start !important;min-height:38px; }
.profile-settings { display:flex;min-width:0;flex-direction:column;gap:14px; }
.profile-setting-card { padding:21px 23px !important; }
.setting-card-heading { display:flex;align-items:flex-start;gap:11px;padding-bottom:15px;border-bottom:1px solid var(--workspace-line);color:#315e45; }
.setting-card-heading .ui-icon { margin-top:2px; }
.setting-card-heading h2 { color:var(--workspace-ink);font-size:16px;font-weight:700; }
.setting-card-heading p { margin-top:3px;color:var(--workspace-muted);font-size:11px; }
.profile-setting-card .forum-form { margin-top:16px;gap:12px; }
.profile-setting-card .forum-form label { display:flex;flex-direction:column;gap:6px;color:#526259;font-size:12px;font-weight:600; }
.profile-setting-card .forum-form textarea { min-height:88px; }
.profile-setting-card .forum-auth-grid { gap:14px; }
.profile-setting-card .forum-auth-grid form { padding:13px;border:1px solid var(--workspace-line);border-radius:10px;background:#fbfcfb; }
.profile-setting-card .forum-auth-grid h3 { font-size:13px;font-weight:700; }
.profile-setting-card .forum-auth-grid small { color:var(--workspace-muted);font-size:11px; }
.profile-auth-card { max-width:850px;width:100%; }
.profile-auth-card .forum-form { padding:15px; }
.profile-auth-card h3 { font-size:16px; }

.admin-shell { display:grid;grid-template-columns:210px minmax(0,1fr);width:100%;min-height:610px;overflow:hidden;border:1px solid var(--workspace-line);border-radius:16px;background:#fff;box-shadow:0 8px 32px rgba(26,48,37,.04); }
.admin-sidebar { position:relative;display:flex;flex-direction:column;min-width:0;padding:18px 10px 15px;background:#fbfcfb;border-right:1px solid var(--workspace-line); }
.admin-brand { display:flex;align-items:center;gap:10px;margin:0 8px 20px;padding-bottom:17px;border-bottom:1px solid var(--workspace-line); }
.admin-nav-group { margin-bottom:17px; }
.admin-nav-group>span { display:block;margin:0 10px 7px;color:#96a39b;font-size:10px;font-weight:700;letter-spacing:.08em; }
.admin-nav-item { display:flex;align-items:center;gap:10px;width:100%;min-height:38px;padding:8px 10px;border:0;border-radius:8px;background:transparent;color:#607067;text-align:left;font-family:inherit;font-size:12px;font-weight:500;cursor:pointer;transition:background-color .18s ease,color .18s ease; }
.admin-nav-item .ui-icon { color:#819288; }
.admin-nav-item.selected { background:#e9f2ec;color:#24533c;font-weight:700; }
.admin-nav-item.selected .ui-icon { color:#24533c; }
.admin-sidebar-foot { margin-top:auto;padding:12px 10px 2px;border-top:1px solid var(--workspace-line);color:#94a098;font-size:11px; }
.admin-main { display:flex;flex-direction:column;gap:17px;min-width:0;padding:24px 26px 30px; }
.admin-topbar { display:flex;align-items:center;justify-content:space-between;gap:16px;padding-bottom:18px;border-bottom:1px solid var(--workspace-line); }
.admin-topbar h1 { margin:5px 0 4px;font-size:25px;font-weight:700;letter-spacing:-.03em; }
.admin-topbar p { color:var(--workspace-muted);font-size:12px; }
.admin-panel { min-width:0; }
.admin-panel>.card-sharp { padding:22px !important; }
.admin-panel .editorial-section-tag { margin-bottom:16px;padding-bottom:13px;font-size:12px;letter-spacing:0; }
.admin-panel .editorial-section-tag span { color:var(--workspace-ink);font-weight:700; }
.admin-panel .forum-form { max-width:850px; }
.admin-panel .forum-admin-list { margin-top:17px; }
.admin-panel .forum-admin-list>div { padding:12px 0;border-color:var(--workspace-line); }
.admin-stat-grid { display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:11px; }
.admin-stat-grid>div { display:flex;flex-direction:column;gap:7px;min-height:118px;padding:16px;border:1px solid var(--workspace-line);border-radius:12px;background:#fff; }
.admin-stat-grid span { display:flex;align-items:center;gap:8px;color:#65756b;font-size:11px; }
.admin-stat-grid span .ui-icon { color:#46795a; }
.admin-stat-grid strong { color:var(--workspace-ink);font-size:27px;line-height:1;font-weight:700; }
.admin-stat-grid small { color:#9aa69e;font-size:10px; }
.admin-overview-grid { display:grid;grid-template-columns:1.1fr .9fr;gap:13px;margin-top:14px; }
.admin-overview-grid .card-sharp { padding:20px !important; }
.admin-card-title { display:flex;justify-content:space-between;align-items:flex-start;gap:10px;margin-bottom:14px; }
.admin-card-title h2 { font-size:15px;font-weight:700; }
.admin-card-title p { margin-top:3px;color:var(--workspace-muted);font-size:11px; }
.admin-card-title button { border:0;background:transparent;color:#24533c;font-family:inherit;font-size:11px;font-weight:600;cursor:pointer; }
.admin-quick-grid { display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px; }
.admin-quick-grid button { display:flex;align-items:center;gap:8px;min-width:0;min-height:43px;padding:10px;border:1px solid var(--workspace-line);border-radius:8px;background:#fbfcfb;color:#50665a;text-align:left;font-family:inherit;font-size:11px;font-weight:600;cursor:pointer; }
.admin-quick-grid button span:nth-child(2) { flex:1; }
.admin-quick-grid button span:last-child { color:#99a79e;font-size:17px; }
.admin-recent-list>div { display:flex;flex-direction:column;gap:3px;padding:10px 0;border-top:1px solid var(--workspace-line); }
.admin-recent-list strong { overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:12px;font-weight:600; }
.admin-recent-list small { color:var(--workspace-muted);font-size:10px; }

@media (hover:hover) and (pointer:fine) {
  .forum-feed-item:hover { background:#fbfdfb; }
  .admin-nav-item:hover:not(.selected),.admin-quick-grid button:hover { background:#f0f5f1;color:#24533c; }
}
@media (max-width:800px) {
  .admin-shell { grid-template-columns:175px minmax(0,1fr); }
  .admin-main { padding:20px; }
  .admin-stat-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .admin-overview-grid { grid-template-columns:1fr; }
}
@media (max-width:700px) {
  .main-stage[data-forum-view="admin"],.main-stage[data-forum-view="profile"] { padding:14px 12px 50px;gap:12px; }
  .forum-home-head { padding:17px !important;gap:15px; }
  .forum-headline { align-items:flex-start; }
  .forum-headline .clean-btn { min-height:39px; }
  .forum-sidebar { box-shadow:none; }
  .forum-filter-option { justify-content:flex-start; }
  .forum-feed-item { padding:15px 12px;gap:10px; }
  .forum-feed-avatar { width:31px;height:31px;font-size:13px; }
  .forum-post-open h3 { font-size:15px; }
  .forum-post-top time { font-size:10px; }
  .profile-layout { grid-template-columns:1fr; }
  .profile-side { position:static; }
  .profile-side .profile-cover { height:105px; }
  .profile-side-actions { flex-direction:row;flex-wrap:wrap; }
  .profile-setting-card { padding:18px !important; }
  .admin-shell { display:block;min-height:0; }
  .admin-sidebar { display:block;overflow-x:auto;padding:12px;border-right:0;border-bottom:1px solid var(--workspace-line);scrollbar-width:none;white-space:nowrap; }
  .admin-sidebar::-webkit-scrollbar { display:none; }
  .admin-brand { margin:0 0 9px;padding-bottom:0;border:0; }
  .admin-nav-group { display:inline-flex;align-items:center;gap:5px;margin:0 9px 0 0;white-space:nowrap; }
  .admin-nav-group>span,.admin-sidebar-foot { display:none; }
  .admin-nav-item { width:auto;min-height:38px;white-space:nowrap; }
  .admin-main { padding:17px 14px 24px; }
  .admin-topbar { align-items:flex-start; }
  .admin-topbar h1 { font-size:21px; }
  .admin-topbar .clean-btn { font-size:11px;white-space:nowrap; }
  .admin-panel>.card-sharp { padding:16px !important; }
  .admin-quick-grid { gap:6px; }
}
@media (max-width:430px) {
  .forum-headline { flex-direction:column;align-items:stretch; }
  .forum-headline .clean-btn { align-self:flex-start; }
  .forum-search { flex-wrap:wrap; }
  .forum-search-field { flex-basis:100%; }
  .admin-stat-grid>div { min-height:105px;padding:12px; }
  .admin-stat-grid strong { font-size:23px; }
  .profile-setting-card .forum-auth-grid { grid-template-columns:1fr; }
}
@media (prefers-reduced-motion:reduce) {
  .forum-feed-item,.admin-nav-item { transition:none; }
}

/* 全局的方圆节奏与即时反馈 */
:root { --radius-window:22px;--radius-card:16px;--radius-inner:9px;--radius-tag:7px; }
.device-frame { border-radius:var(--radius-window); }
.top-system-bar { padding:14px 20px; }
.top-center-models-bar { position:relative;isolation:isolate;gap:2px;padding:4px;border:1px solid #e0e7e1;border-radius:999px;background:#edf2ee;box-shadow:inset 0 1px 2px rgba(25,56,38,.04); }
.top-center-models-bar::before { content:"";position:absolute;z-index:-1;top:4px;bottom:4px;left:0;width:var(--pill-width,0px);transform:translateX(var(--pill-left,0px));border-radius:999px;background:#fff;box-shadow:0 2px 7px rgba(24,56,39,.12);transition:transform .28s cubic-bezier(.22,1,.36,1),width .28s cubic-bezier(.22,1,.36,1);opacity:0; }
.top-center-models-bar[data-ready="1"]::before { opacity:1; }
.model-pill-item { position:relative;min-height:34px;padding:6px 13px;border-radius:999px;color:#5e7165;font-size:12px;white-space:nowrap;transition:color .18s ease,transform .14s ease; }
.model-pill-item.active { border-radius:999px; }
.top-center-models-bar[data-ready="1"] .model-pill-item.active { background:transparent;box-shadow:none; }
.model-pill-item:active { transform:scale(.96); }
.model-pill-item:focus-visible { outline:2px solid #397953;outline-offset:2px; }
.clean-btn { transition:background-color .18s ease,border-color .18s ease,color .18s ease,transform .14s ease,box-shadow .18s ease; }
.clean-btn:active,.matrix-card-btn:active { transform:scale(.975); }
.clean-btn:focus-visible,.matrix-card-btn:focus-visible { outline:2px solid #397953;outline-offset:3px; }
.hero-mountain-window { border-radius:21px; }
.hero-nearfield-card { border-radius:14px; }
.main-stage[data-forum-view=""] .card-sharp { border-radius:17px; }
.matrix-card-btn { min-width:0;min-height:138px;padding:16px;border-radius:17px;text-align:left;color:var(--color-pine-ink);font-family:inherit;transition:transform .18s cubic-bezier(.22,1,.36,1),box-shadow .18s ease,border-color .18s ease,background-color .18s ease; }
.matrix-card-icon { align-items:flex-start; }
.matrix-card-icon>span:last-child { color:var(--color-faint-ink);font-size:10px;letter-spacing:.04em; }
.matrix-icon-symbol { display:grid;place-items:center;width:40px;height:40px;border-radius:12px;background:#eaf2ec;color:var(--color-bamboo); }
.matrix-card-btn:nth-child(2) .matrix-icon-symbol { background:#f8f0e3;color:#9c7236; }
.matrix-card-btn:nth-child(3) .matrix-icon-symbol { background:#f9ebe7;color:#b14a3d; }
.matrix-card-btn:nth-child(4) .matrix-icon-symbol { background:#eaf0f8;color:#47698f; }
.matrix-card-title { margin-top:17px;font-size:14px; }
.matrix-card-desc { line-height:1.55; }
.floating-dock-nav { border-radius:999px; }
.agenda-title { display:inline-flex;align-items:center;gap:7px;font-size:14px;font-weight:600; }
.agenda-title .ui-icon { color:var(--color-bamboo); }
.home-bottom-grid { display:grid;grid-template-columns:1fr 1fr;gap:14px; }
.home-recommendation-row { display:flex;justify-content:space-between;align-items:center;gap:10px;min-height:39px;padding:6px 10px;border-radius:10px;background:#f5f8f5;font-size:12px; }
.home-recommendation-action { flex:none;padding:3px 5px;border:0;border-radius:7px;background:transparent;color:var(--color-bamboo);font:600 12px var(--font-songti);cursor:pointer; }
.home-recommendation-action:hover { background:#e6efe8; }
.home-recommendation-action:focus-visible { outline:2px solid #397953;outline-offset:2px; }
.library-school-intro { margin:16px 0 11px;padding:16px 18px;border-radius:14px;background:linear-gradient(120deg,#edf5ee,#f9f9f4); }
.library-school-intro span { color:var(--color-bamboo);font-size:13px;font-weight:700; }
.library-school-intro p { margin-top:5px;color:var(--color-slate-fog);font-size:13px;line-height:1.7; }

/* 无广告站内黄历日页 */
.calendar-page-intro { display:flex;align-items:end;justify-content:space-between;gap:18px;padding:23px 25px; }
.calendar-page-intro>div:first-child>span { color:#738777;font:600 10px var(--font-mono);letter-spacing:.09em; }
.calendar-page-intro h1 { margin:3px 0 5px;font-size:26px;line-height:1.3;font-weight:700; }
.calendar-page-intro p { color:var(--color-faint-ink);font-size:12px; }
.calendar-page-intro .calendar-mode-strip { justify-content:flex-end;margin:0; }
.calendar-mode-strip .clean-btn { min-height:33px;padding:6px 12px;border-radius:999px; }
.calendar-mode-strip .btn-active { background:#24533c;color:#fff;border-color:#24533c; }
.almanac-sheet { overflow:hidden;padding:0; }
.almanac-date-hero { display:flex;justify-content:space-between;gap:16px;min-height:190px;padding:24px 27px 22px;background:radial-gradient(circle at 78% 15%,rgba(218,233,220,.95),transparent 35%),linear-gradient(135deg,#e9f1e9 0%,#f6f5ef 100%); }
.almanac-eyebrow { color:#66816f;font:600 10px var(--font-mono);letter-spacing:.12em; }
.almanac-day-line { display:flex;align-items:center;gap:19px;margin-top:10px; }
.almanac-day-line>strong { color:#24533c;font-family:var(--font-songti);font-size:clamp(82px,11vw,120px);font-weight:600;line-height:1;letter-spacing:-.07em; }
.almanac-day-line h2 { font-size:22px;font-weight:700; }
.almanac-day-line p { margin-top:5px;color:#415a49;font-size:15px; }
.almanac-day-line div>span { display:block;margin-top:7px;color:#718377;font-size:11px; }
.almanac-date-controls { display:flex;align-self:flex-start;gap:6px; }
.almanac-date-controls .clean-btn { display:grid;place-items:center;min-width:37px;min-height:37px;padding:6px 9px;border-radius:999px;background:rgba(255,255,255,.75); }
.calendar-arrow-next { display:inline-flex;transform:rotate(180deg); }
.almanac-pillar-strip { display:grid;grid-template-columns:repeat(3,1fr);border-bottom:1px solid #e5ece6; }
.almanac-pillar-strip>div { display:flex;align-items:center;justify-content:center;gap:12px;padding:15px 10px;border-right:1px solid #e5ece6; }
.almanac-pillar-strip>div:last-child { border-right:0; }
.almanac-pillar-strip span { color:#8b988e;font-size:11px; }
.almanac-pillar-strip strong { color:#284633;font-size:19px;font-weight:600;letter-spacing:.08em; }
.almanac-yi-ji { display:grid;grid-template-columns:1fr 1fr;gap:12px;padding:21px 24px; }
.almanac-yi-ji>div { min-width:0;padding:18px;border-radius:14px; }
.almanac-yi { background:#eff6ef; }
.almanac-ji { background:#faf1ee; }
.almanac-yi-ji h3 { display:flex;align-items:center;gap:9px;margin-bottom:13px;font-size:13px;font-weight:700; }
.almanac-yi-ji h3>span { display:grid;place-items:center;width:27px;height:27px;border-radius:50%;background:#2d6748;color:#fff;font-size:14px; }
.almanac-ji h3>span { background:#b45c4f; }
.almanac-yi-ji>div>div { display:flex;flex-wrap:wrap;gap:7px; }
.almanac-yi-ji>div>div>span { padding:4px 9px;border:1px solid rgba(57,99,69,.13);border-radius:999px;background:rgba(255,255,255,.64);color:#3e6248;font-size:12px; }
.almanac-ji>div>span { border-color:rgba(150,85,72,.12) !important;color:#965c50 !important; }
.almanac-section-heading { display:flex;justify-content:space-between;align-items:end;gap:10px;margin:1px 24px 0;padding:0 0 10px;border-bottom:1px solid #e8ede8; }
.almanac-section-heading span { color:#86968a;font:600 10px var(--font-mono);letter-spacing:.08em; }
.almanac-section-heading h3 { margin-top:3px;font-size:16px;font-weight:700; }
.almanac-section-heading small { color:#9aa69d;font-size:10px; }
.almanac-fact-grid { display:grid;grid-template-columns:repeat(4,minmax(0,1fr));padding:2px 24px 17px; }
.almanac-fact { display:flex;min-width:0;flex-direction:column;gap:4px;padding:13px 9px 11px 0;border-bottom:1px solid #edf0ec; }
.almanac-fact span { color:#91a095;font-size:11px; }
.almanac-fact strong { overflow-wrap:anywhere;color:#283b30;font-size:13px;font-weight:600; }
.almanac-lower-grid { display:grid;grid-template-columns:1fr 1fr;gap:0 26px;padding:0 24px 18px; }
.almanac-spirits { padding:12px 0;border-bottom:1px solid #edf0ec; }
.almanac-spirits h3 { color:#60796a;font-size:12px;font-weight:700; }
.almanac-spirits p { margin-top:5px;color:#43554a;font-size:12px;line-height:1.7; }
.almanac-source-note { display:flex;align-items:flex-start;gap:8px;padding:13px 24px;background:#f8faf8;color:#7d8c80; }
.almanac-source-note .ui-icon { margin-top:1px; }
.almanac-source-note p { font-size:11px;line-height:1.6; }
.almanac-loading { min-height:160px;padding:24px; }
.almanac-loading h2 { font-size:18px; }
.almanac-loading p { margin-top:9px;color:var(--color-faint-ink);font-size:12px; }
.calendar-alt-detail { padding:25px; }
.calendar-alt-detail>span { color:#839687;font-size:11px; }
.calendar-alt-detail h2 { margin:8px 0;font-size:20px; }
.calendar-alt-detail p { color:var(--color-faint-ink);font-size:12px; }
.calendar-month-panel { padding:19px 22px; }
.calendar-toolbar { margin-bottom:13px; }
.calendar-toolbar .clean-btn { display:grid;place-items:center;width:36px;height:36px;padding:5px;border-radius:50%; }
.calendar-toolbar>div { display:flex;align-items:center;gap:5px;font-size:15px;font-weight:700; }
.calendar-toolbar input { width:63px;padding:4px;border:0;border-bottom:1px solid #d8e4da;border-radius:0;background:transparent;color:#2f513a;text-align:center;font:inherit; }
.calendar-grid { gap:5px; }
.calendar-day { min-height:61px;border:0;border-radius:11px;background:#f8faf8;transition:background-color .18s ease,transform .14s ease; }
.calendar-day.selected { background:#e5f0e8;color:#24533c;box-shadow:inset 0 0 0 1px #9cbaa4; }
.calendar-day.today:not(.selected) { box-shadow:inset 0 0 0 1px #8fae99; }
.calendar-day:active { transform:scale(.95); }
.calendar-day small { max-width:100%;overflow:hidden;text-overflow:ellipsis; }
@media (hover:hover) and (pointer:fine) { .calendar-day:hover { background:#eaf2eb; } }
@media (min-width:850px) { .home-feature-matrix { grid-template-columns:repeat(5,minmax(0,1fr)); } }
@media (max-width:700px) {
  .top-system-bar { display:grid;grid-template-columns:1fr auto;gap:10px;padding:11px 13px; }
  .top-left-window-controls { grid-column:1;min-width:0; }
  .top-right-actions { grid-column:2; }
  .top-center-models-bar { grid-column:1/-1;grid-row:2;justify-self:center;max-width:100%;overflow-x:auto;scrollbar-width:none; }
  .top-center-models-bar::-webkit-scrollbar { display:none; }
  .model-pill-item { padding:6px 10px;font-size:11px; }
  .hero-mountain-window { border-radius:19px; }
  .home-feature-matrix { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .matrix-card-btn { min-height:124px;padding:13px; }
  .matrix-card-btn:last-child { grid-column:1/-1;min-height:104px; }
  .home-bottom-grid { grid-template-columns:1fr; }
  .calendar-page-intro { flex-direction:column;align-items:stretch;padding:18px; }
  .calendar-page-intro .calendar-mode-strip { justify-content:flex-start; }
  .almanac-date-hero { min-height:170px;padding:20px; }
  .almanac-day-line { gap:14px; }
  .almanac-day-line>strong { font-size:82px; }
  .almanac-day-line h2 { font-size:18px; }
  .almanac-day-line p { font-size:13px; }
  .almanac-date-controls { gap:3px; }
  .almanac-date-controls .clean-btn { min-width:31px;min-height:31px;padding:4px; }
  .almanac-yi-ji { gap:8px;padding:15px; }
  .almanac-yi-ji>div { padding:13px; }
  .almanac-fact-grid { grid-template-columns:repeat(2,minmax(0,1fr));padding:2px 16px 15px; }
  .almanac-lower-grid { grid-template-columns:1fr;padding:0 16px 15px; }
  .almanac-section-heading { margin:1px 16px 0; }
  .almanac-source-note { padding:13px 16px; }
  .calendar-month-panel { padding:15px; }
}
@media (max-width:430px) {
  .top-brand-title { font-size:13px; }
  .window-dots { display:none; }
  .top-right-actions .clean-btn { padding:4px 7px; }
  .almanac-date-hero { flex-wrap:wrap; }
  .almanac-date-controls { width:100%;justify-content:flex-end; }
  .almanac-day-line>strong { font-size:76px; }
  .almanac-pillar-strip>div { flex-direction:column;gap:1px; }
  .almanac-yi-ji { grid-template-columns:1fr; }
  .calendar-day { min-height:51px; }
  .calendar-day small { font-size:9px; }
}
@media (prefers-reduced-motion:reduce) {
  .top-center-models-bar::before,.model-pill-item,.matrix-card-btn,.calendar-day,.clean-btn { transition:none !important; }
}

/* 窄视窗由组件宽度决定布局，避免桌面上的紧凑预览截断顶栏。 */
.top-right-actions { display:flex;align-items:center;gap:7px;flex:none; }
.top-brand-title { white-space:nowrap; }
.appearance-toggle { display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:35px;white-space:nowrap; }
.device-frame.mobile-compact .top-system-bar { display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px 8px;align-items:center;padding:12px 15px; }
.device-frame.mobile-compact .top-left-window-controls { grid-column:1;grid-row:1;min-width:0; }
.device-frame.mobile-compact .top-right-actions { grid-column:2;grid-row:1; }
.device-frame.mobile-compact .top-center-models-bar { grid-column:1/-1;grid-row:2;justify-self:stretch;justify-content:space-between;min-width:0;width:100%;overflow:visible; }
.device-frame.mobile-compact .model-pill-item { flex:1;min-width:0;padding:6px 5px;font-size:11px; }
.device-frame.mobile-compact .window-dots { display:none; }
.device-frame.mobile-compact .top-brand-title { font-size:13px; }
.device-frame.mobile-compact .top-right-actions .clean-btn { padding:5px 8px; }
.device-frame.mobile-compact .hero-main-title { font-size:clamp(21px,6vw,27px); }
.device-frame.mobile-compact .hero-mountain-window { flex-direction:column;align-items:stretch;justify-content:flex-end;gap:15px;height:auto;min-height:290px; }
.device-frame.mobile-compact .hero-nearfield-card { width:100%;min-width:0; }
.device-frame.mobile-compact .home-feature-matrix { grid-template-columns:repeat(2,minmax(0,1fr)); }
.device-frame.mobile-compact .matrix-card-btn:last-child { grid-column:1/-1; }
.device-frame.mobile-compact .home-bottom-grid { grid-template-columns:1fr; }
.device-frame.mobile-compact .forum-layout { display:flex;flex-direction:column; }
.device-frame.mobile-compact .forum-mobile-filters { display:block; }
.device-frame.mobile-compact .forum-sidebar { display:none;position:static;max-height:none; }
.device-frame.mobile-compact .forum-sidebar.open { display:block; }
.device-frame.mobile-compact .forum-feed { width:100%; }
.device-frame.mobile-compact .profile-layout { grid-template-columns:1fr; }
.device-frame.mobile-compact .profile-side { position:static; }
.device-frame.mobile-compact .admin-shell { display:block;min-height:0; }
.device-frame.mobile-compact .admin-sidebar { display:block;overflow-x:auto;white-space:nowrap;border-right:0;border-bottom:1px solid var(--workspace-line); }
.device-frame.mobile-compact .admin-nav-group { display:inline-flex;margin-right:8px; }
.device-frame.mobile-compact .admin-nav-group>span,.device-frame.mobile-compact .admin-sidebar-foot { display:none; }
.device-frame.mobile-compact .admin-nav-item { width:auto;white-space:nowrap; }
.device-frame.mobile-compact .admin-main { padding:18px; }
.device-frame.mobile-compact .calendar-page-intro { flex-direction:column;align-items:stretch; }
.device-frame.mobile-compact .calendar-mode-strip { width:100%; }
@media (max-width:700px) {
  .top-center-models-bar { width:100%;justify-content:space-between;overflow:visible; }
  .model-pill-item { flex:1;min-width:0;padding:6px 5px; }
  .top-right-actions { gap:4px; }
  .appearance-toggle { min-width:35px; }
  .hero-mountain-window { flex-direction:column;align-items:stretch;justify-content:flex-end;gap:15px;height:auto;min-height:290px; }
  .hero-nearfield-card { width:100%;min-width:0; }
}
@media (max-width:390px) { .appearance-toggle #themeToggleText { display:none; } }

/* 六种历法共用胶囊切换器，各自保持独立的色彩识别。 */
.main-stage[data-calendar-mode="huangli"] { --calendar-accent:#9b5142;--calendar-tint:#f7ede9;--calendar-deep:#704035; }
.main-stage[data-calendar-mode="yinli"] { --calendar-accent:#596d94;--calendar-tint:#edf1f8;--calendar-deep:#374c72; }
.main-stage[data-calendar-mode="zangli"] { --calendar-accent:#a8762e;--calendar-tint:#faf2e2;--calendar-deep:#76501d; }
.main-stage[data-calendar-mode="nongli"] { --calendar-accent:#317453;--calendar-tint:#eaf4ed;--calendar-deep:#24533c; }
.main-stage[data-calendar-mode="daoli"] { --calendar-accent:#47827e;--calendar-tint:#e9f4f2;--calendar-deep:#285c59; }
.main-stage[data-calendar-mode="maya"] { --calendar-accent:#a85a3d;--calendar-tint:#f9eee6;--calendar-deep:#713b2e; }
.calendar-page-intro { border-top:3px solid var(--calendar-accent);transition:border-color .24s ease; }
.calendar-page-intro>div:first-child>span { color:var(--calendar-accent); }
.calendar-page-intro .calendar-mode-strip { display:flex;flex-wrap:wrap;gap:4px;max-width:100%;padding:5px;border:1px solid var(--color-bamboo-border);border-radius:999px;background:var(--calendar-tint); }
.calendar-mode-strip .calendar-mode-option { display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:36px;padding:7px 11px;border:0;border-radius:999px;background:transparent;color:var(--color-slate-fog);font-family:inherit;font-size:12px;white-space:nowrap;transition:background-color .2s ease,color .2s ease,transform .13s ease,box-shadow .2s ease; }
.calendar-mode-strip .calendar-mode-option.btn-active { background:var(--calendar-accent);border:0;color:#fff;box-shadow:0 3px 9px color-mix(in srgb,var(--calendar-accent) 22%,transparent); }
.calendar-mode-option[data-mode="huangli"] { --mode-color:#9b5142; }
.calendar-mode-option[data-mode="yinli"] { --mode-color:#596d94; }
.calendar-mode-option[data-mode="zangli"] { --mode-color:#a8762e; }
.calendar-mode-option[data-mode="nongli"] { --mode-color:#317453; }
.calendar-mode-option[data-mode="daoli"] { --mode-color:#47827e; }
.calendar-mode-option[data-mode="maya"] { --mode-color:#a85a3d; }
.calendar-mode-option:active { transform:scale(.94); }
.calendar-mode-option:focus-visible { outline:2px solid var(--calendar-accent);outline-offset:2px; }
.calendar-mode-dot { width:7px;height:7px;flex:none;border-radius:50%;background:var(--mode-color);opacity:.9; }
.calendar-mode-option.btn-active .calendar-mode-dot { background:#fff;opacity:1; }
.calendar-day.selected { background:var(--calendar-tint);color:var(--calendar-deep);box-shadow:inset 0 0 0 1px var(--calendar-accent); }
.calendar-alt-detail { min-height:215px;border-top:3px solid var(--calendar-accent);background:linear-gradient(125deg,var(--calendar-tint),var(--bg-card-pure) 68%); }
.calendar-alt-detail>span { color:var(--calendar-accent);font-weight:700;letter-spacing:.06em; }
.calendar-alt-detail h2 { margin:14px 0;font-size:clamp(20px,3vw,29px);color:var(--calendar-deep); }
.lunar-focus-facts { display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:23px; }
.lunar-focus-facts>div { display:flex;flex-direction:column;gap:4px;padding-top:10px;border-top:1px solid var(--color-bamboo-border); }
.lunar-focus-facts span { color:var(--color-faint-ink);font-size:11px; }
.lunar-focus-facts strong { color:var(--calendar-deep);font-size:13px; }
.maya-sheet { overflow:hidden;padding:0;border-top:3px solid var(--calendar-accent); }
.maya-hero { display:flex;justify-content:space-between;align-items:center;gap:20px;padding:30px;background:radial-gradient(circle at 85% 20%,#e8c7ae,transparent 42%),linear-gradient(120deg,#f3e7d8,#faf3ec); }
.maya-hero .almanac-eyebrow { color:#8d624c; }
.maya-hero h2 { margin:10px 0 0;color:#6f3e30;font:600 clamp(32px,6vw,59px) var(--font-mono);letter-spacing:-.06em; }
.maya-hero p { margin-top:4px;color:#956c58;font-size:12px; }
.maya-cycle-mark { display:grid;place-items:center;width:90px;height:90px;flex:none;border:2px solid #b98062;border-radius:50%; }
.maya-cycle-mark span { grid-area:1/1;width:56px;height:56px;border:2px solid #b98062;border-radius:50%; }
.maya-cycle-mark span:nth-child(2) { width:27px;height:27px;background:#b98062; }
.maya-cycle-mark span:nth-child(3) { width:7px;height:7px;background:#fff;border:0; }
.maya-calendar-round { display:grid;grid-template-columns:1fr 1fr;gap:12px;padding:22px; }
.maya-calendar-round>div { padding:17px;border-radius:15px;background:#f8f2eb; }
.maya-calendar-round>div:last-child { background:#f0f2e9; }
.maya-calendar-round span { color:#96745f;font:600 10px var(--font-mono);letter-spacing:.06em; }
.maya-calendar-round strong { display:block;margin:6px 0;color:#673d30;font-size:24px; }
.maya-calendar-round p { color:#8b8077;font-size:11px; }
.maya-units { padding:2px 23px 19px; }
.maya-units h3 { margin-bottom:10px;font-size:14px; }
.maya-units>div { display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px; }
.maya-units>div>div { display:flex;flex-direction:column;gap:2px;padding:12px;border-top:2px solid #bf9275;background:#faf8f5; }
.maya-units strong { color:#6f3e30;font:600 21px var(--font-mono); }
.maya-units span { font-size:11px; }
.maya-units small { color:#9c8d80;font-size:10px; }
.maya-source { padding:13px 23px;background:#f8f6f2;color:#786c63;font-size:11px;line-height:1.7; }
@media (max-width:700px) {
  .calendar-page-intro .calendar-mode-strip { display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border-radius:21px; }
  .calendar-mode-strip .calendar-mode-option { padding:7px 4px;font-size:11px; }
  .maya-hero { padding:22px; }
  .maya-cycle-mark { width:65px;height:65px; }
  .maya-cycle-mark span { width:41px;height:41px; }
  .maya-cycle-mark span:nth-child(2) { width:20px;height:20px; }
  .maya-units>div { gap:4px; }
  .maya-units>div>div { padding:8px 4px; }
  .maya-units span,.maya-units small { font-size:9px; }
}
.device-frame.mobile-compact .calendar-page-intro .calendar-mode-strip { display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border-radius:21px; }
@media (max-width:430px) {
  .maya-calendar-round { grid-template-columns:1fr; }
  .maya-units>div { grid-template-columns:repeat(5,minmax(0,1fr)); }
  .lunar-focus-facts { grid-template-columns:1fr; }
}
@media (prefers-reduced-motion:reduce) { .calendar-mode-option,.calendar-page-intro { transition:none !important; } }

.forum-sidebar .forum-side-heading { display:flex;align-items:center;justify-content:space-between;gap:5px; }
.forum-sidebar .forum-side-heading>button { display:inline-flex;align-items:center;gap:3px;padding:4px 7px;border:0;border-radius:999px;background:transparent;color:var(--color-bamboo);font-family:inherit;font-size:11px;font-weight:700;cursor:pointer; }
.forum-sidebar .forum-side-heading>button:hover { background:var(--color-bamboo-light); }
.forum-section-create { display:flex;flex-direction:column;gap:9px;margin:12px 4px 3px;padding:13px;border:1px solid var(--workspace-line);border-radius:12px;background:var(--workspace-soft); }
.forum-section-create label { display:flex;flex-direction:column;gap:4px;color:var(--workspace-muted);font-size:11px; }
.forum-section-create input { width:100%;min-height:34px;padding:6px 9px;border:1px solid var(--workspace-line);border-radius:8px;background:var(--bg-card-pure);color:var(--workspace-ink);font:inherit; }
.forum-section-create .clean-btn { align-self:flex-start; }
.forum-pinned-badge { display:inline-flex;align-items:center;margin-right:8px;padding:2px 7px;border-radius:999px;background:#e9f1e9;color:#326849;font-size:10px;font-weight:700;vertical-align:middle; }
.forum-report { margin-top:18px;padding-top:13px;border-top:1px solid var(--workspace-line);color:var(--workspace-muted);font-size:12px; }
.forum-report summary { cursor:pointer; }
.forum-report .forum-form { margin-top:11px; }
:root[data-theme="dark"] .forum-pinned-badge { background:#365440;color:#daf4dd; }

/* 白日 / 夜间模式：优先调整共用语义色，再覆盖早期组件中的固定浅色。 */
:root[data-theme="dark"] {
  color-scheme:dark;
  --bg-rice-paper:#121918;
  --bg-card-pure:#1d2825;
  --color-bamboo:#a3d7b4;
  --color-bamboo-hover:#c3ebcc;
  --color-bamboo-light:#283d32;
  --color-bamboo-border:rgba(169,218,182,.2);
  --color-pine-ink:#eef3ed;
  --color-slate-fog:#c1cbc2;
  --color-faint-ink:#9baaa0;
  --color-seal-vermilion:#df806a;
  --color-seal-bg:#3a2926;
  --color-ochre-gold:#dfbc78;
  --color-ochre-bg:#373126;
  --shadow-window:0 24px 65px rgba(0,0,0,.28);
  --shadow-card:0 4px 18px rgba(0,0,0,.09);
  --shadow-card-hover:0 8px 25px rgba(0,0,0,.18);
  --shadow-dock:0 12px 35px rgba(0,0,0,.3);
  --border-hairline:1px solid rgba(220,238,226,.12);
}
:root[data-theme="dark"] body { background:#121918;color:var(--color-pine-ink); }
:root[data-theme="dark"] .device-frame { background:#17211e;border-color:#34433b; }
:root[data-theme="dark"] .top-system-bar { background:rgba(25,35,30,.96); }
:root[data-theme="dark"] .top-center-models-bar { background:#26362e;border-color:#405548; }
:root[data-theme="dark"] .top-center-models-bar::before { background:#425e4d;box-shadow:0 2px 8px rgba(0,0,0,.2); }
:root[data-theme="dark"] .model-pill-item { color:#c2d0c5; }
:root[data-theme="dark"] .model-pill-item.active { color:#f5fff5; }
:root[data-theme="dark"] .clean-btn { background:#26352d;border-color:#405046;color:#d4e1d6; }
:root[data-theme="dark"] .clean-btn.btn-active { background:#395f47;border-color:#61916d;color:#f6fff5; }
:root[data-theme="dark"] .clean-btn:hover { border-color:#8abc99;color:#f3fff4; }
:root[data-theme="dark"] .card-sharp { background:#1d2825;border-color:#36473d;box-shadow:var(--shadow-card); }
:root[data-theme="dark"] .hero-mountain-window { border-color:#436657;background:linear-gradient(165deg,#526b5e,#304d3f 58%,#20392e); }
:root[data-theme="dark"] .hero-nearfield-card { background:rgba(28,42,34,.92);color:#f3f7f0; }
:root[data-theme="dark"] .hero-nearfield-card :is(.nearfield-title,.nearfield-status) { color:#edf5ec; }
:root[data-theme="dark"] .matrix-card-btn { background:#1e2a25;border-color:#3b4d41;color:#edf5ec; }
:root[data-theme="dark"] .matrix-icon-symbol { background:#344b3a;color:#b9e6c2; }
:root[data-theme="dark"] .matrix-card-btn:nth-child(2) .matrix-icon-symbol { background:#4a3e30;color:#f0cc86; }
:root[data-theme="dark"] .matrix-card-btn:nth-child(3) .matrix-icon-symbol { background:#503630;color:#f5aa93; }
:root[data-theme="dark"] .matrix-card-btn:nth-child(4) .matrix-icon-symbol { background:#324559;color:#a8c5e8; }
:root[data-theme="dark"] :is(.matrix-card-desc,.main-stage[data-forum-view=""] .library-muted) { color:#acbdb0; }
:root[data-theme="dark"] .pulse-track-line { background:#34433a; }
:root[data-theme="dark"] .home-recommendation-row { background:#26362d; }
:root[data-theme="dark"] .home-recommendation-action { color:#b9e1c2; }
:root[data-theme="dark"] .home-recommendation-action:hover { background:#344b3a; }
:root[data-theme="dark"] .floating-dock-nav { background:rgba(29,42,34,.97);border-color:#45604c;box-shadow:var(--shadow-dock); }
:root[data-theme="dark"] .dock-item-btn { color:#b4c4b8; }
:root[data-theme="dark"] .dock-item-btn.active { background:#365744;color:#ecfaec; }
:root[data-theme="dark"] .almanac-date-hero { background:radial-gradient(circle at 78% 15%,#405b47,transparent 38%),linear-gradient(135deg,#2c3e32,#24322a); }
:root[data-theme="dark"] :is(.almanac-day-line>strong,.main-stage[data-calendar-mode="huangli"] .almanac-pillar-strip strong) { color:#b9e1be; }
:root[data-theme="dark"] :is(.almanac-day-line h2,.almanac-day-line p,.almanac-date-controls .clean-btn) { color:#edf5ec; }
:root[data-theme="dark"] :is(.almanac-day-line div>span,.almanac-eyebrow) { color:#adc3ae; }
:root[data-theme="dark"] .almanac-date-controls .clean-btn { background:#354c3c; }
:root[data-theme="dark"] :is(.almanac-pillar-strip,.almanac-pillar-strip>div) { border-color:#35463b; }
:root[data-theme="dark"] .almanac-yi { background:#2b4735; }
:root[data-theme="dark"] .almanac-ji { background:#49312e; }
:root[data-theme="dark"] .almanac-yi-ji>div>div>span { background:#24342b;border-color:#48644c;color:#d5ebd7; }
:root[data-theme="dark"] .almanac-ji>div>span { background:#392b29;color:#f3c5b9 !important; }
:root[data-theme="dark"] :is(.almanac-section-heading,.almanac-fact,.almanac-spirits) { border-color:#37463c; }
:root[data-theme="dark"] :is(.almanac-fact strong,.almanac-spirits p) { color:#e2ece2; }
:root[data-theme="dark"] :is(.almanac-source-note,.maya-source) { background:#25312a;color:#aebfb0; }
:root[data-theme="dark"] .calendar-page-intro .calendar-mode-strip { background:color-mix(in srgb,var(--calendar-accent) 13%,#25312a); }
:root[data-theme="dark"] .calendar-mode-strip .calendar-mode-option { color:#c1d0c4; }
:root[data-theme="dark"] .calendar-mode-strip .calendar-mode-option.btn-active { color:#fff; }
:root[data-theme="dark"] .calendar-mode-strip .calendar-mode-option.btn-active { background:var(--calendar-accent);border-color:transparent; }
:root[data-theme="dark"] .calendar-alt-detail { background:linear-gradient(125deg,color-mix(in srgb,var(--calendar-accent) 18%,#1d2825),#1d2825 72%); }
:root[data-theme="dark"] :is(.calendar-alt-detail h2,.lunar-focus-facts strong) { color:#e3ece2; }
:root[data-theme="dark"] .calendar-toolbar input { color:#e1efe3;border-color:#536458; }
:root[data-theme="dark"] .calendar-day { background:#26352d;color:#dbe7dc; }
:root[data-theme="dark"] .calendar-day.selected { background:color-mix(in srgb,var(--calendar-accent) 22%,#26352d);color:#fff; }
:root[data-theme="dark"] .calendar-annotation { background:#27352e;border-color:#415346;color:#e5eee3; }
:root[data-theme="dark"] .maya-hero { background:radial-gradient(circle at 85% 20%,#6a4636,transparent 42%),linear-gradient(120deg,#443028,#302723); }
:root[data-theme="dark"] :is(.maya-hero h2,.maya-calendar-round strong,.maya-units strong) { color:#f1c6a9; }
:root[data-theme="dark"] :is(.maya-hero p,.maya-hero .almanac-eyebrow) { color:#e5b99e; }
:root[data-theme="dark"] .maya-calendar-round>div { background:#382d27; }
:root[data-theme="dark"] .maya-calendar-round>div:last-child { background:#2b3830; }
:root[data-theme="dark"] :is(.maya-calendar-round span,.maya-calendar-round p) { color:#cbb6a8; }
:root[data-theme="dark"] .maya-units>div>div { background:#302d29;border-color:#a87055; }
:root[data-theme="dark"] .library-school-intro { background:linear-gradient(120deg,#294034,#263129); }
:root[data-theme="dark"] :is(.library-book,.library-detail,.library-lesson) { background:#223029;border-color:#3c4f41;color:#e7f0e6; }
:root[data-theme="dark"] .main-stage[data-forum-view="forum"],
:root[data-theme="dark"] .main-stage[data-forum-view="profile"],
:root[data-theme="dark"] .main-stage[data-forum-view="admin"] { --workspace-ink:#edf3ee;--workspace-muted:#a9bbae;--workspace-line:#3a4a40;--workspace-soft:#25332b;color:var(--workspace-ink); }
:root[data-theme="dark"] .main-stage:is([data-forum-view="forum"],[data-forum-view="profile"],[data-forum-view="admin"]) .card-sharp { background:#1e2a24;border-color:#3a4a40;box-shadow:0 4px 18px rgba(0,0,0,.09); }
:root[data-theme="dark"] .main-stage:is([data-forum-view="forum"],[data-forum-view="profile"],[data-forum-view="admin"]) .btn-active { background:#3b7050;border-color:#578867;color:#fff; }
:root[data-theme="dark"] :is(.forum-sidebar,.forum-feed,.admin-shell,.admin-sidebar,.admin-main) { background:#1d2923;border-color:#3a4a40; }
:root[data-theme="dark"] :is(.forum-search-field,.profile-setting-card .forum-auth-grid form,.admin-quick-grid button) { background:#27362d;border-color:#405247;color:#e2eee4; }
:root[data-theme="dark"] :is(.forum-search-field input,.forum-section-create input) { color:#e6f0e7; }
:root[data-theme="dark"] .forum-filter-option { color:#c0d0c3; }
:root[data-theme="dark"] :is(.forum-filter-option.selected,.admin-nav-item.selected) { background:#33513d;color:#ecf8ed; }
:root[data-theme="dark"] :is(.forum-filter-option small,.forum-post-open p,.forum-headline p) { color:#a7b9ad; }
:root[data-theme="dark"] .forum-feed-avatar { background:#355341;color:#e9f7e9; }
:root[data-theme="dark"] .forum-feed-item { border-color:#39493f; }
:root[data-theme="dark"] .forum-tag-chip { background:#26372d; }
:root[data-theme="dark"] .admin-sidebar { background:#1a2620; }
:root[data-theme="dark"] .admin-stat-grid>div { background:#243129;border-color:#3a4a40; }
:root[data-theme="dark"] .main-stage[data-forum-view] :is(input,textarea,select) { background:#26352c;color:#edf4ed;border-color:#43564a; }
:root[data-theme="dark"] .main-stage[data-forum-view] :is(input,textarea)::placeholder { color:#92a698; }
@media (hover:hover) and (pointer:fine) { :root[data-theme="dark"] .calendar-day:hover { background:#385343; } :root[data-theme="dark"] .forum-feed-item:hover { background:#28392e; } }

html { -webkit-tap-highlight-color:transparent; }
button,a,[role="button"] { touch-action:manipulation; }
button { user-select:none; }
@media (pointer:coarse) { input,textarea,select { font-size:16px; } }

/* 玛雅历：现代 13 月亮历的 Kin 矩阵与传统历法对照。图形均由 SVG 绘制。 */
.maya-experience { display:grid;gap:16px;min-width:0; }
.maya-color-red { --kin-color:#aa574b;--kin-surface:#f5e4dc;--kin-ink:#633f38; }
.maya-color-white { --kin-color:#7e8179;--kin-surface:#f2f0e8;--kin-ink:#47534a; }
.maya-color-blue { --kin-color:#397f9b;--kin-surface:#dcecf0;--kin-ink:#315d70; }
.maya-color-yellow { --kin-color:#aa883e;--kin-surface:#f6edcc;--kin-ink:#77602d; }
.maya-date-toolbar { display:flex;align-items:center;justify-content:space-between;gap:12px;padding:13px 16px;border:1px solid var(--color-bamboo-border);border-radius:19px;background:var(--bg-card-pure); }
.maya-date-toolbar>div:first-child { display:flex;align-items:baseline;gap:12px;flex-wrap:wrap; }
.maya-date-toolbar>div:first-child span,.maya-feature-top span,.maya-section-heading>div>span,.maya-inspector-header span { color:var(--color-faint-ink);font:600 10px var(--font-mono);letter-spacing:.13em; }
.maya-date-toolbar>div:first-child strong { color:var(--color-pine-ink);font-size:15px; }
.maya-date-actions { display:flex;align-items:center;gap:5px; }
.maya-date-actions .clean-btn { min-width:32px;min-height:32px;padding:4px 9px;border-radius:999px; }
.maya-date-actions input { width:125px;min-height:32px;padding:3px 8px;border:1px solid var(--color-bamboo-border);border-radius:999px;background:transparent;color:var(--color-pine-ink);font:12px var(--font-mono); }
.maya-feature { position:relative;isolation:isolate;overflow:hidden;min-height:325px;padding:25px 29px 19px;border:1px solid color-mix(in srgb,var(--kin-color) 33%,transparent);border-radius:28px;background:radial-gradient(circle at 75% 8%,color-mix(in srgb,var(--kin-color) 16%,transparent),transparent 40%),radial-gradient(circle at 14% 85%,#fbf9eb,transparent 48%),linear-gradient(140deg,#f7f6ee,#e9ebdc);box-shadow:0 10px 32px rgba(47,65,47,.09);color:var(--kin-ink); }
.maya-feature-rays { position:absolute;inset:-50%;z-index:-1;pointer-events:none;background:repeating-conic-gradient(from -10deg at 53% 47%,transparent 0deg 13deg,rgba(255,255,255,.35) 14deg 16deg,transparent 17deg 30deg);mask-image:radial-gradient(circle at 53% 47%,transparent 0 9%,#000 22%,transparent 66%);opacity:.65; }
.maya-feature::after { content:"";position:absolute;right:-35px;top:-35px;width:170px;height:170px;border:1px solid color-mix(in srgb,var(--kin-color) 25%,transparent);border-radius:50%;box-shadow:0 0 0 25px rgba(255,255,255,.07),0 0 0 52px rgba(255,255,255,.06);pointer-events:none; }
.maya-feature-top { display:flex;align-items:center;justify-content:space-between;gap:12px; }
.maya-feature-top strong { color:var(--kin-color);font:700 14px var(--font-mono);letter-spacing:.05em; }
.maya-feature-core { display:grid;grid-template-columns:145px minmax(0,1fr);gap:24px;align-items:center;margin:17px 0 19px; }
.maya-feature-glyph { display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;min-height:148px;padding:12px;border:1px solid color-mix(in srgb,var(--kin-color) 40%,transparent);border-radius:26px;background:rgba(255,255,255,.48);box-shadow:0 8px 0 color-mix(in srgb,var(--kin-color) 11%,transparent),0 16px 28px rgba(53,58,42,.08);color:var(--kin-color);cursor:pointer;transition:transform .2s ease,box-shadow .2s ease; }
.maya-feature-glyph span { color:var(--kin-ink);font-size:10px; }
.maya-feature-glyph.is-exception { cursor:default;font:700 36px var(--font-mono); }
.maya-feature-glyph.is-exception span { font-size:36px; }
.maya-feature-copy>span { color:var(--kin-color);font:600 11px var(--font-mono);letter-spacing:.1em; }
.maya-feature-codes { display:flex;flex-wrap:wrap;gap:7px; }
.maya-feature-codes button { padding:4px 8px;border:1px solid color-mix(in srgb,var(--kin-color) 35%,transparent);border-radius:999px;background:rgba(255,255,255,.34);color:var(--kin-color);font:700 10px var(--font-mono);cursor:pointer; }
.maya-feature-copy h2 { margin:6px 0;font-size:clamp(24px,3.6vw,43px);line-height:1.25;color:var(--kin-ink);letter-spacing:.015em; }
.maya-feature-copy p { margin:0;color:var(--kin-ink);font-size:14px;opacity:.8; }
.maya-feature-explain { margin-top:17px;padding:0;border:0;background:transparent;color:var(--kin-ink);font:700 12px inherit;cursor:pointer; }
.maya-feature-explain span { margin-left:6px; }
.maya-nearby { display:flex;align-items:center;gap:7px;padding-top:14px;border-top:1px solid color-mix(in srgb,var(--kin-color) 23%,transparent); }
.maya-nearby>span { margin-right:5px;font-size:11px;white-space:nowrap;opacity:.8; }
.maya-nearby button { display:inline-flex;align-items:center;gap:4px;min-width:51px;padding:5px 7px;border:1px solid color-mix(in srgb,var(--kin-color) 36%,transparent);border-radius:11px;background:color-mix(in srgb,var(--kin-surface) 75%,white);color:var(--kin-color);cursor:pointer;transition:transform .16s ease; }
.maya-nearby small { font:600 10px var(--font-mono); }
.maya-matrix-section,.maya-moon-section,.maya-traditional { min-width:0;padding:20px;border:1px solid var(--color-bamboo-border);border-radius:24px;background:var(--bg-card-pure);box-shadow:var(--shadow-card); }
.maya-matrix-section { background:radial-gradient(circle at 98% 0%,rgba(193,206,170,.28),transparent 35%),var(--bg-card-pure); }
.maya-section-heading { display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:16px; }
.maya-section-heading h2 { margin:3px 0;color:var(--color-pine-ink);font-size:clamp(19px,2.4vw,28px); }
.maya-section-heading p { margin:0;color:var(--color-slate-fog);font-size:12px; }
.maya-section-heading .clean-btn { flex:none;border-radius:999px; }
.maya-matrix-scroll { overflow:auto;overscroll-behavior-inline:contain;padding:5px;border:1px solid #aeb8a3;border-radius:16px;background:#e5e8d9;scrollbar-color:#91a08a transparent; }
.maya-matrix { display:grid;gap:2px;min-width:690px; }
.maya-matrix-row { display:grid;grid-template-columns:34px repeat(13,minmax(0,1fr));gap:2px; }
.maya-matrix-seal { display:grid;place-items:center;min-height:37px;padding:0;border:0;border-radius:6px;background:var(--kin-surface);color:var(--kin-color);cursor:pointer; }
.maya-kin-cell { position:relative;display:grid;place-items:center;min-height:37px;padding:0;border:1px solid rgba(63,79,59,.27);border-radius:5px;background:#f2f3e9;color:#3c493c;font:600 12px var(--font-mono);font-variant-numeric:tabular-nums;cursor:pointer;transition:background-color .16s ease,transform .12s ease; }
.maya-kin-cell.is-marked { background:#d7ddc9; }
.maya-kin-cell.is-current { z-index:1;border-color:#355343;background:#355343;color:#fff;box-shadow:0 0 0 3px #fff,0 0 0 5px #355343; }
.maya-kin-cell:active,.maya-nearby button:active,.maya-week-day:active,.maya-moon-days button:active { transform:scale(.94); }
.maya-matrix-caption { margin:10px 3px 0;color:var(--color-faint-ink);font-size:11px; }
.maya-moon-section { background:radial-gradient(circle at 100% 0%,rgba(223,182,154,.21),transparent 34%),var(--bg-card-pure); }
.maya-week-strip { display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:5px; }
.maya-week-day { display:flex;flex-direction:column;align-items:center;gap:2px;min-height:66px;padding:8px 3px;border:1px solid #d8d3c3;border-radius:12px;background:#f2eadf;color:#544f43;cursor:pointer;transition:transform .12s ease,background-color .2s ease; }
.maya-week-day:nth-child(7n + 1) { background:#efdad3; }
.maya-week-day:nth-child(7n + 3) { background:#dcebed; }
.maya-week-day:nth-child(7n + 5) { background:#eee6be; }
.maya-week-day strong { font:700 22px var(--font-mono); }
.maya-week-day small { font-size:9px; }
.maya-week-day.selected { border-color:#355343;background:#365443;color:#fff;box-shadow:0 3px 9px rgba(35,66,46,.18); }
.maya-moon-exception { display:flex;flex-direction:column;gap:5px;padding:18px;border-radius:14px;background:var(--calendar-tint);color:var(--calendar-deep); }
.maya-moon-exception span { font-size:12px; }
.maya-year-link { margin-top:12px;padding:0;border:0;background:transparent;color:var(--color-bamboo);font-size:12px;font-weight:700;text-align:left;cursor:pointer; }
.maya-traditional { padding:0;overflow:hidden; }
.maya-traditional summary { display:flex;align-items:center;justify-content:space-between;gap:15px;padding:17px 20px;list-style:none;cursor:pointer; }
.maya-traditional summary::-webkit-details-marker { display:none; }
.maya-traditional summary span { display:grid;gap:3px;min-width:0; }
.maya-traditional summary small { color:var(--color-faint-ink);font:600 10px var(--font-mono);letter-spacing:.13em; }
.maya-traditional summary strong { color:var(--color-pine-ink);font-size:17px; }
.maya-traditional summary em { overflow:hidden;color:var(--color-slate-fog);font-size:11px;font-style:normal;text-overflow:ellipsis;white-space:nowrap; }
.maya-traditional summary b { font-size:25px;font-weight:400;transition:transform .2s ease; }
.maya-traditional[open] summary b { transform:rotate(180deg); }
.maya-traditional-content { display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;padding:0 20px 15px; }
.maya-traditional-content>div { min-width:0;padding:14px;border-radius:14px;background:var(--calendar-tint); }
.maya-traditional-content span { color:var(--calendar-accent);font:600 10px var(--font-mono); }
.maya-traditional-content strong { display:block;margin:7px 0;color:var(--calendar-deep);font-size:18px;overflow-wrap:anywhere; }
.maya-traditional-content p { margin:0;color:var(--color-slate-fog);font-size:11px; }
.maya-long-units { display:grid;grid-template-columns:repeat(5,1fr);gap:7px;padding:0 20px 20px; }
.maya-long-units>div { display:flex;flex-direction:column;gap:2px;padding:8px;border-top:2px solid var(--calendar-accent);background:var(--calendar-tint); }
.maya-long-units strong { color:var(--calendar-deep);font:700 17px var(--font-mono); }
.maya-long-units span { color:var(--color-slate-fog);font-size:10px; }
.maya-context-note { margin:0;padding:6px 10px 0;color:var(--color-faint-ink);font-size:11px;line-height:1.75; }
.maya-inspector-backdrop { position:fixed;inset:0;z-index:1000;display:grid;place-items:center;padding:14px;background:rgba(13,24,18,.65);backdrop-filter:blur(8px); }
body:has(> .maya-inspector-backdrop) { overflow:hidden; }
.maya-inspector { width:min(920px,100%);max-height:min(91dvh,1100px);overflow:auto;padding:22px;border:1px solid rgba(226,232,215,.45);border-radius:26px;background:#f2f3e9;box-shadow:0 25px 80px rgba(8,26,14,.32);color:#354638;outline:none;animation:mayaPanelIn .2s ease-out; }
.maya-inspector-header { display:flex;justify-content:space-between;align-items:start;gap:14px;margin-bottom:17px; }
.maya-inspector-header span { color:#788475; }
.maya-inspector-header h2 { margin:4px 0 0;color:#344638;font-size:clamp(20px,3vw,28px); }
.maya-inspector-close { display:grid;place-items:center;width:38px;height:38px;flex:none;border:1px solid #c7d1c2;border-radius:50%;background:#fff;color:#465b4b;font-size:26px;line-height:1;cursor:pointer; }
.maya-inspect-matrix>p,.maya-moon-panel>p { color:#68796c;font-size:12px; }
.maya-inspector .maya-matrix-scroll { max-height:calc(91dvh - 160px); }
.maya-inspector .maya-matrix { min-width:760px; }
.maya-inspector .maya-kin-cell,.maya-inspector .maya-matrix-seal { min-height:39px; }
.maya-inspect-kin { display:grid;grid-template-columns:190px minmax(0,1fr);gap:25px;align-items:start;padding:20px;border-radius:19px;background:linear-gradient(135deg,var(--kin-surface),#fbfaf4); }
.maya-inspect-icon { display:grid;place-items:center;min-height:175px;border:1px solid color-mix(in srgb,var(--kin-color) 30%,transparent);border-radius:20px;background:rgba(255,255,255,.55);color:var(--kin-color); }
.maya-inspect-kin span { color:var(--kin-color);font:700 12px var(--font-mono); }
.maya-inspect-kin h3 { margin:8px 0;color:var(--kin-ink);font-size:28px; }
.maya-inspect-kin p { color:#66746a;font-size:14px; }
.maya-inspect-kin dl { display:grid;grid-template-columns:1fr 1fr;gap:10px; }
.maya-inspect-kin dl>div { padding-top:10px;border-top:1px solid rgba(77,98,75,.2); }
.maya-inspect-kin dt { color:#788476;font-size:11px; }
.maya-inspect-kin dd { margin:4px 0;color:var(--kin-ink);font-size:13px;font-weight:700; }
.maya-inspect-kin .maya-inspect-note { font-size:11px; }
.maya-current-note { display:block;margin-top:8px;color:var(--kin-color); }
.maya-symbol-info { display:grid;grid-template-columns:170px minmax(0,1fr);align-items:center;gap:20px;padding:19px;border-radius:19px;background:var(--kin-surface); }
.maya-symbol-info span { color:var(--kin-color);font:700 12px var(--font-mono); }
.maya-symbol-info h3 { margin:8px 0;color:var(--kin-ink);font-size:26px; }
.maya-symbol-info p { color:var(--kin-ink);font-size:13px; }
.maya-tone-notation { display:flex;flex-direction:column;justify-content:center;align-items:center;gap:4px;min-height:145px;border:1px solid color-mix(in srgb,var(--kin-color) 40%,transparent);border-radius:18px;color:var(--kin-color);font-size:29px;letter-spacing:4px; }
.maya-tone-notation i { font-size:21px;font-style:normal; }
.maya-moon-tabs { display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:5px; }
.maya-moon-tabs button { display:flex;flex-direction:column;align-items:center;gap:2px;min-width:0;padding:8px 2px;border:1px solid #cbd2c3;border-radius:10px;background:#fff;color:#3e5142;font:700 14px var(--font-mono);cursor:pointer; }
.maya-moon-tabs small { font-size:10px; }
.maya-moon-tabs button.selected,.maya-moon-days button.selected { border-color:#355343;background:#365443;color:#fff; }
.maya-moon-panel h3 { margin:18px 0 10px; }
.maya-moon-days { display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:6px; }
.maya-moon-days button { display:flex;flex-direction:column;align-items:center;gap:2px;min-height:65px;padding:8px 2px;border:1px solid #c9d2c5;border-radius:10px;background:#fff;color:#364c3c;cursor:pointer;transition:transform .12s ease; }
.maya-moon-days strong { font:700 19px var(--font-mono); }
.maya-moon-days small { color:inherit;font-size:9px; }
.maya-moon-days span { color:inherit;font:10px var(--font-mono);opacity:.7; }
@keyframes mayaPanelIn { from { opacity:0;transform:translateY(9px) scale(.985); } to { opacity:1;transform:translateY(0) scale(1); } }
@media (hover:hover) and (pointer:fine) { .maya-kin-cell:hover { background:#b9cab2;color:#253b2c; } .maya-feature-glyph:hover { transform:translateY(-3px);box-shadow:0 11px 0 color-mix(in srgb,var(--kin-color) 11%,transparent),0 19px 31px rgba(53,58,42,.12); } .maya-nearby button:hover { transform:translateY(-2px); } }
@media (max-width:700px) {
  .maya-date-toolbar { align-items:start;flex-direction:column; }
  .maya-feature { padding:21px; }
  .maya-feature-core { grid-template-columns:108px minmax(0,1fr);gap:14px; }
  .maya-feature-glyph { min-height:116px; }
  .maya-feature-glyph .maya-glyph { width:72px;height:72px; }
  .maya-feature-copy h2 { font-size:24px; }
  .maya-traditional-content { grid-template-columns:1fr; }
  .maya-inspect-kin { grid-template-columns:1fr; }
  .maya-symbol-info { grid-template-columns:1fr; }
  .maya-inspect-icon { min-height:120px; }
}
.device-frame.mobile-compact .maya-date-toolbar { align-items:start;flex-direction:column; }
.device-frame.mobile-compact .maya-feature-core { grid-template-columns:108px minmax(0,1fr);gap:14px; }
.device-frame.mobile-compact .maya-feature-glyph { min-height:116px; }
.device-frame.mobile-compact .maya-feature-glyph .maya-glyph { width:72px;height:72px; }
.device-frame.mobile-compact .maya-feature-copy h2 { font-size:24px; }
.device-frame.mobile-compact .maya-traditional-content { grid-template-columns:1fr; }
@media (max-width:430px) {
  .maya-date-actions { flex-wrap:wrap; }
  .maya-feature-core { grid-template-columns:1fr; }
  .maya-feature-glyph { width:126px;min-height:118px; }
  .maya-feature-top span { max-width:170px; }
  .maya-nearby { flex-wrap:wrap; }
  .maya-section-heading { align-items:start;flex-direction:column; }
  .maya-matrix-section,.maya-moon-section { padding:15px; }
  .maya-week-day { min-height:58px; }
  .maya-week-day strong { font-size:18px; }
  .maya-week-day small { font-size:8px; }
  .maya-inspector { padding:16px; }
  .maya-moon-tabs { grid-template-columns:repeat(4,1fr); }
}
@media (max-width:700px) {
  .top-center-models-bar::before { display:none; }
  .top-center-models-bar[data-ready="1"] .model-pill-item.active { background:#fff;box-shadow:0 2px 7px rgba(24,56,39,.12); }
  :root[data-theme="dark"] .top-center-models-bar[data-ready="1"] .model-pill-item.active { background:#425e4d;box-shadow:0 2px 8px rgba(0,0,0,.2); }
}
:root[data-theme="dark"] .maya-color-red { --kin-color:#e79d8d;--kin-surface:#48322e;--kin-ink:#f5ded4; }
:root[data-theme="dark"] .maya-color-white { --kin-color:#c3c9ba;--kin-surface:#39443b;--kin-ink:#e3ecdf; }
:root[data-theme="dark"] .maya-color-blue { --kin-color:#86c5d9;--kin-surface:#2c4a53;--kin-ink:#d8f0f5; }
:root[data-theme="dark"] .maya-color-yellow { --kin-color:#e5d18d;--kin-surface:#4a4531;--kin-ink:#f1e7c5; }
:root[data-theme="dark"] .maya-date-toolbar,:root[data-theme="dark"] .maya-matrix-section,:root[data-theme="dark"] .maya-moon-section,:root[data-theme="dark"] .maya-traditional { background:#202c25;border-color:#3e5041; }
:root[data-theme="dark"] .maya-feature { background:radial-gradient(circle at 75% 8%,color-mix(in srgb,var(--kin-color) 13%,transparent),transparent 40%),linear-gradient(140deg,#29372e,#202b26); }
:root[data-theme="dark"] .maya-feature-rays { opacity:.18; }
:root[data-theme="dark"] .maya-feature-glyph { background:rgba(15,28,20,.45); }
:root[data-theme="dark"] .maya-nearby button { background:var(--kin-surface); }
:root[data-theme="dark"] .maya-matrix-scroll { background:#2d3a30;border-color:#566750; }
:root[data-theme="dark"] .maya-kin-cell { background:#39463a;border-color:#526052;color:#edf1df; }
:root[data-theme="dark"] .maya-kin-cell.is-marked { background:#4d5a48; }
:root[data-theme="dark"] .maya-kin-cell.is-current { background:#a8d2a7;border-color:#a8d2a7;color:#17291d;box-shadow:0 0 0 3px #243227,0 0 0 5px #a8d2a7; }
:root[data-theme="dark"] .maya-week-day { background:#383930;border-color:#5b5b4e;color:#eee5d1; }
:root[data-theme="dark"] .maya-week-day:nth-child(7n + 1) { background:#4d3935; }
:root[data-theme="dark"] .maya-week-day:nth-child(7n + 3) { background:#30444b; }
:root[data-theme="dark"] .maya-week-day:nth-child(7n + 5) { background:#48452f; }
:root[data-theme="dark"] .maya-week-day.selected { background:#4b785a;border-color:#7ea88a;color:#fff; }
:root[data-theme="dark"] .maya-traditional-content>div,:root[data-theme="dark"] .maya-long-units>div { background:#303b30; }
:root[data-theme="dark"] .maya-traditional-content strong,:root[data-theme="dark"] .maya-long-units strong { color:#e7c3a9; }
:root[data-theme="dark"] .maya-inspector { background:#1e2b23;border-color:#52634f;color:#eef2e7; }
:root[data-theme="dark"] .maya-inspector-header h2,:root[data-theme="dark"] .maya-moon-panel h3 { color:#eef2e7; }
:root[data-theme="dark"] .maya-inspector-close,:root[data-theme="dark"] .maya-moon-tabs button,:root[data-theme="dark"] .maya-moon-days button { background:#304036;border-color:#526451;color:#ecf2e8; }
:root[data-theme="dark"] .maya-moon-tabs button.selected,:root[data-theme="dark"] .maya-moon-days button.selected { background:#4b785a;color:#fff; }
:root[data-theme="dark"] .maya-inspect-kin { background:linear-gradient(135deg,var(--kin-surface),#29352d); }
:root[data-theme="dark"] .maya-symbol-info { background:var(--kin-surface); }
:root[data-theme="dark"] .maya-inspect-icon { background:rgba(11,24,17,.35); }
:root[data-theme="dark"] .maya-inspect-kin p { color:#c3d1c1; }
@media (pointer:coarse) { .maya-date-actions input { font-size:16px; } }
@media (prefers-reduced-motion:reduce) { .maya-inspector,.maya-kin-cell,.maya-feature-glyph,.maya-nearby button,.maya-week-day,.maya-moon-days button { animation:none;transition:none; } }

/* Shared background, controlled from the admin appearance presets. */
.ambient-background { position:fixed;inset:-22px;z-index:0;overflow:hidden;opacity:var(--appearance-background-opacity,.36);filter:blur(var(--appearance-background-blur,0px));pointer-events:none;background:#b7a487; }
.ambient-background img { position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 56%;opacity:0;transition:opacity 900ms ease-in-out; }
.ambient-background img.is-visible { opacity:1; }
.app-viewport-wrapper { position:relative;z-index:1; }
.device-frame { background:rgb(255 255 255 / var(--appearance-module-opacity,.94));backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px); }
.main-stage > .card-sharp:not(.hero-mountain-window):not(.sound-head):not(.sound-playing):not(.maya-hero),.main-stage .library-book,.main-stage .profile-setting-card,.main-stage .sound-queue { background-color:rgb(255 255 255 / var(--appearance-module-opacity,.94));backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px); }
:root[data-theme="dark"] .ambient-background { filter:blur(var(--appearance-background-blur,0px)) brightness(.55); }
:root[data-theme="dark"] .device-frame { background:rgb(24 34 28 / var(--appearance-module-opacity,.94)); }
:root[data-theme="dark"] .main-stage > .card-sharp:not(.hero-mountain-window):not(.sound-head):not(.sound-playing):not(.maya-hero),:root[data-theme="dark"] .main-stage .library-book,:root[data-theme="dark"] .main-stage .profile-setting-card,:root[data-theme="dark"] .main-stage .sound-queue { background-color:rgb(28 41 33 / var(--appearance-module-opacity,.94)); }

/* Classics: the school switch lives with the reading material. */
.main-stage[data-library-school] { font-family:system-ui,-apple-system,"Microsoft YaHei",sans-serif; }
.main-stage[data-library-school] .library-page { padding:clamp(18px,3vw,36px);border-radius:26px; }
.main-stage[data-library-school] .library-heading { align-items:start; }
.main-stage[data-library-school] .library-heading h2 { margin:9px 0 7px;font-size:clamp(28px,4vw,40px);font-weight:650;letter-spacing:-.035em;line-height:1.2; }
.main-stage[data-library-school] .library-heading p { color:var(--color-slate-fog);font-size:14px; }
.library-school-switch { display:flex;flex-wrap:wrap;gap:7px;width:max-content;max-width:100%;margin:28px 0 22px;padding:5px;border:1px solid rgba(63,91,70,.12);border-radius:999px;background:rgba(232,239,233,.77); }
.library-school-option { min-height:40px;padding:8px 17px;border:0;border-radius:999px;background:transparent;color:#526558;font:600 13px system-ui,-apple-system,"Microsoft YaHei",sans-serif;cursor:pointer;transition:background-color 180ms ease,color 180ms ease,transform 130ms cubic-bezier(.23,1,.32,1),box-shadow 180ms ease; }
.library-school-option:hover { background:rgba(255,255,255,.62); }
.library-school-option:active { transform:scale(.96); }
.library-school-option.active { background:#fff;color:#24533c;box-shadow:0 3px 12px rgba(31,66,43,.1); }
.library-school-option:focus-visible { outline:2px solid #397953;outline-offset:2px; }
.main-stage[data-library-school] .library-school-intro { display:flex;justify-content:space-between;align-items:end;gap:22px;margin:0 0 15px;padding:21px 24px;border:1px solid rgba(57,100,69,.13);border-radius:21px;background:linear-gradient(110deg,rgba(227,239,229,.9),rgba(248,249,242,.78)); }
.library-school-intro div { display:flex;flex-direction:column;gap:6px;white-space:nowrap; }
.library-school-intro div span { color:#588166;font-size:11px;letter-spacing:.08em; }
.library-school-intro div strong { color:#1f3e2a;font-size:23px;letter-spacing:-.03em; }
.main-stage[data-library-school] .library-school-intro p { max-width:50ch;margin:0;color:#4e6252;font-size:13px;line-height:1.6; }
.main-stage[data-library-school] .library-status { border-radius:13px;padding:13px 16px;font-size:13px; }
.main-stage[data-library-school] .library-list { grid-template-columns:repeat(auto-fit,minmax(205px,1fr));gap:13px;margin:24px 0; }
.main-stage[data-library-school] .library-book { min-height:214px;padding:20px;border:1px solid rgba(68,95,76,.16);border-radius:21px;background:rgba(255,255,255,.76);box-shadow:0 6px 20px rgba(29,57,36,.035);transition:transform 180ms cubic-bezier(.23,1,.32,1),border-color 180ms ease,box-shadow 180ms ease,background-color 180ms ease; }
.main-stage[data-library-school] .library-book:hover { transform:translateY(-3px);border-color:rgba(55,103,71,.44);box-shadow:0 14px 28px rgba(32,65,42,.09); }
.main-stage[data-library-school] .library-book:active { transform:translateY(-1px) scale(.985); }
.main-stage[data-library-school] .library-book.selected { border-color:#679475;background:rgba(235,245,237,.88); }
.library-book-top { display:flex;align-items:center;justify-content:space-between;color:#9aac9f;font:600 11px var(--font-mono); }
.main-stage[data-library-school] .library-book-school { padding:5px 9px;border-radius:999px;background:#e9f2ec;font-size:11px; }
.main-stage[data-library-school] .library-book strong { margin-top:12px;font-size:23px;letter-spacing:-.02em; }
.main-stage[data-library-school] .library-book small,.main-stage[data-library-school] .library-book-summary { font-size:12px;line-height:1.55; }
.library-book-open { margin-top:auto;padding-top:12px;color:#276145;font-size:12px;font-weight:700; }
.main-stage[data-library-school] .library-detail { margin-top:24px;padding:25px;border:1px solid rgba(68,95,76,.15);border-radius:22px;background:rgba(255,255,255,.62); }
.main-stage[data-library-school] .library-lesson { max-width:76ch;font-size:14px;line-height:1.9; }
.main-stage[data-library-school] .library-detail h4 { font-size:15px; }
.main-stage[data-library-school] .library-practice { border-radius:17px;padding:18px; }
:root[data-theme="dark"] .library-school-switch { background:#28392d;border-color:#47604c; }
:root[data-theme="dark"] .library-school-option { color:#bdcebf; }
:root[data-theme="dark"] .library-school-option.active { background:#466e51;color:#fff; }
:root[data-theme="dark"] .main-stage[data-library-school] .library-school-intro { background:linear-gradient(110deg,#294536,#243229); }
:root[data-theme="dark"] .library-school-intro div strong,:root[data-theme="dark"] .main-stage[data-library-school] .library-school-intro p { color:#e6f1e5; }
:root[data-theme="dark"] .main-stage[data-library-school] .library-detail { background:rgba(31,47,36,.82);border-color:#425a47; }

/* Soundscape discovery layout. */
.main-stage[data-soundscape="true"] { font-family:system-ui,-apple-system,"Microsoft YaHei",sans-serif; }
.sound-discover { padding:8px 3px 2px; }
.sound-discover-tabs { display:flex;align-items:center;gap:4px;width:max-content;max-width:100%;margin-bottom:18px;padding:5px;border-radius:999px;background:rgba(255,255,255,.75);box-shadow:0 4px 18px rgba(46,74,53,.06);overflow-x:auto;scrollbar-width:none; }
.sound-discover-tabs::-webkit-scrollbar { display:none; }
.sound-discover-tabs button { flex:none;min-height:38px;padding:7px 17px;border:0;border-radius:999px;background:transparent;color:#5d6d63;font:600 13px system-ui,-apple-system,"Microsoft YaHei",sans-serif;cursor:pointer;transition:background-color 160ms ease,color 160ms ease,transform 130ms cubic-bezier(.23,1,.32,1); }
.sound-discover-tabs button.selected { background:#1d5d55;color:#fff; }
.sound-discover-tabs button:active { transform:scale(.96); }
.sound-discover-tabs button:focus-visible,.sound-category-tile:focus-visible,.sound-featured-play:focus-visible { outline:2px solid #397953;outline-offset:2px; }
.sound-featured { position:relative;display:flex;align-items:end;justify-content:space-between;gap:18px;min-height:clamp(220px,27vw,310px);overflow:hidden;padding:clamp(22px,4vw,38px);border-radius:25px;background:#57746d;color:#fff;box-shadow:0 18px 34px rgba(31,67,53,.15); }
.sound-featured-art { position:absolute;inset:0;background:linear-gradient(90deg,rgba(16,43,42,.75),rgba(25,63,57,.25) 60%,rgba(28,65,60,.05)),url('/public/backgrounds/soundscape-hero.png') center 58%/cover;transform:scale(1.01); }
.sound-featured-copy,.sound-featured-play { position:relative;z-index:1; }
.sound-featured-copy { max-width:65%; }
.sound-featured-copy span { font-size:11px;font-weight:700;letter-spacing:.16em;text-transform:uppercase; }
.sound-featured-copy h3 { margin:12px 0 6px;color:#fff;font-size:clamp(27px,4vw,40px);line-height:1.15;letter-spacing:-.035em; }
.sound-featured-copy p { max-width:44ch;color:#f3f7f3;font-size:14px;line-height:1.6; }
.sound-featured-play { display:grid;place-items:center;flex:none;width:62px;height:62px;border:1px solid rgba(255,255,255,.7);border-radius:50%;background:rgba(255,255,255,.2);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);color:#fff;cursor:pointer;transition:transform 150ms cubic-bezier(.23,1,.32,1),background-color 180ms ease; }
.sound-featured-play:hover { background:rgba(255,255,255,.32);transform:scale(1.05); }
.sound-featured-play:active { transform:scale(.95); }
.sound-section-title { display:flex;align-items:end;justify-content:space-between;gap:12px;margin:31px 2px 15px; }
.sound-section-title span { color:#598673;font:700 10px var(--font-mono);letter-spacing:.12em; }
.sound-section-title h3 { margin-top:4px;font-size:22px;line-height:1.3;letter-spacing:-.025em; }
.sound-section-title small { color:var(--color-faint-ink);font-size:12px; }
.sound-category-grid { display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:10px; }
.sound-category-tile { display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;min-height:136px;padding:13px 8px;border:1px solid rgba(88,126,102,.13);border-radius:21px;background:rgba(255,255,255,.76);color:#274a38;font:inherit;cursor:pointer;box-shadow:0 5px 17px rgba(40,71,49,.035);transition:transform 170ms cubic-bezier(.23,1,.32,1),box-shadow 170ms ease,border-color 170ms ease,background-color 170ms ease; }
.sound-category-tile:hover { transform:translateY(-3px);box-shadow:0 12px 22px rgba(40,71,49,.09);border-color:rgba(62,120,80,.34); }
.sound-category-tile:active { transform:scale(.97); }
.sound-category-tile.selected { border-color:#48876d;background:rgba(229,244,235,.95);box-shadow:0 0 0 2px rgba(72,135,109,.11); }
.sound-category-tile-icon { display:grid;place-items:center;width:53px;height:53px;border-radius:18px;background:#e0ecea;color:#31716c; }
.sound-category-tile.tone-1 .sound-category-tile-icon { background:#e3eee4;color:#4e845b; }
.sound-category-tile.tone-2 .sound-category-tile-icon { background:#eee7da;color:#a47a46; }
.sound-category-tile.tone-3 .sound-category-tile-icon { background:#e3eaf1;color:#527699; }
.sound-category-tile strong { font-size:13px;font-weight:650;white-space:nowrap; }
.sound-category-tile small { color:#7d9184;font-size:11px; }
.main-stage[data-soundscape="true"] .sound-library { margin-top:17px;padding:20px 24px !important; }
.main-stage[data-soundscape="true"] .sound-category-heading { min-height:67px; }
.main-stage[data-soundscape="true"] .sound-category-heading h3 { font-size:24px; }
.main-stage[data-soundscape="true"] .sound-track-list { gap:8px;padding-top:14px; }
.main-stage[data-soundscape="true"] .sound-track { min-height:72px;padding:13px;border-radius:17px;background:rgba(239,245,241,.67); }
.main-stage[data-soundscape="true"] .sound-track-symbol { width:48px;height:48px;border-radius:15px; }
.main-stage[data-soundscape="true"] .sound-track-text strong { font-size:15px; }
.main-stage[data-soundscape="true"] .sound-track-text small { font-size:12px; }
:root[data-theme="dark"] .sound-discover-tabs { background:rgba(34,51,39,.88); }
:root[data-theme="dark"] .sound-discover-tabs button { color:#c5d4c8; }
:root[data-theme="dark"] .sound-discover-tabs button.selected { background:#3c806d;color:#fff; }
:root[data-theme="dark"] .sound-category-tile { background:rgba(37,55,43,.86);border-color:#425d49;color:#e8f2e9; }
:root[data-theme="dark"] .sound-category-tile.selected { background:#365744;border-color:#79ad86; }
:root[data-theme="dark"] .main-stage[data-soundscape="true"] .sound-track { background:rgba(51,74,57,.56); }

/* Appearance controls in the account and admin workspace. */
.profile-appearance-choice { display:flex;align-items:center;justify-content:space-between;gap:15px;padding:19px 22px;margin-bottom:16px;border-radius:20px; }
.profile-appearance-choice>div { display:flex;align-items:center;gap:13px; }
.profile-appearance-choice>div>.ui-icon { color:var(--color-bamboo); }
.profile-appearance-choice span { display:flex;flex-direction:column;gap:3px; }
.profile-appearance-choice strong { font-size:15px; }
.profile-appearance-choice small { color:var(--color-slate-fog);font-size:12px; }
.appearance-admin { padding:22px; }
.appearance-admin .library-muted { margin:11px 0 18px; }
.appearance-imports { display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:13px; }
.appearance-imports form { min-width:0;padding:17px;border:1px solid rgba(67,106,79,.16);border-radius:18px;background:rgba(239,246,241,.45); }
.appearance-imports h3 { margin-bottom:7px;font-size:16px; }
.appearance-imports input { width:100%;min-width:0; }
.appearance-imports small { color:var(--color-slate-fog); }
.appearance-preset-form { margin-top:24px;padding:22px;border:1px solid rgba(67,106,79,.18);border-radius:21px;background:rgba(238,245,239,.5); }
.appearance-form-top { display:grid;grid-template-columns:1fr 1fr;gap:14px; }
.appearance-form-top label,.appearance-controls label { display:flex;flex-direction:column;gap:7px;color:var(--color-pine-ink);font-size:12px;font-weight:650; }
.appearance-form-top input,.appearance-form-top select { min-width:0;min-height:41px;padding:8px 11px;border:1px solid rgba(61,98,71,.2);border-radius:11px;background:rgba(255,255,255,.87);color:var(--color-pine-ink);font:inherit; }
.appearance-image-heading { display:flex;justify-content:space-between;gap:10px;margin:22px 0 11px; }
.appearance-image-heading strong { font-size:14px; }
.appearance-image-heading small { color:var(--color-faint-ink);font-size:11px; }
.appearance-image-grid { display:grid;grid-template-columns:repeat(auto-fill,minmax(115px,1fr));gap:10px; }
.appearance-image-choice { position:relative;display:flex;flex-direction:column;gap:6px;padding:6px;border:1px solid rgba(61,98,71,.17);border-radius:14px;background:rgba(255,255,255,.76);cursor:pointer; }
.appearance-image-choice:has(input:checked) { border-color:#397953;box-shadow:0 0 0 2px rgba(57,121,83,.14); }
.appearance-image-choice input { position:absolute;top:12px;right:12px;width:18px;height:18px;accent-color:#397953; }
.appearance-image-choice img { width:100%;height:89px;object-fit:cover;border-radius:9px;background:#dce4db; }
.appearance-image-choice span { padding:1px 3px;color:var(--color-pine-ink);font-size:11px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap; }
.appearance-controls { display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;margin:22px 0; }
.appearance-controls label { display:block; }
.appearance-controls output { float:right;color:var(--color-bamboo); }
.appearance-controls input { display:block;width:100%;margin-top:11px;accent-color:#397953; }
.appearance-controls small { display:block;margin-top:5px;color:var(--color-faint-ink);font-weight:400; }
.appearance-preview { position:relative;display:grid;place-items:center;min-height:170px;margin:0 0 20px;overflow:hidden;border:1px solid rgba(67,106,79,.18);border-radius:18px;background:#e6e5d9; }
.appearance-preview img { position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:var(--preview-background-opacity,.36);filter:blur(var(--preview-background-blur,0px)); }
.appearance-preview>div { position:relative;display:flex;flex-direction:column;align-items:center;gap:5px;min-width:180px;padding:17px 24px;border:1px solid rgba(255,255,255,.68);border-radius:15px;background:rgb(255 255 255 / var(--preview-module-opacity,.94));box-shadow:0 10px 28px rgba(32,56,38,.1);color:#263f2b; }
.appearance-preview strong { font-size:15px; }
.appearance-preview span { color:#65776a;font-size:11px; }
.appearance-preset-list { margin-top:28px; }
.appearance-preset-list h3 { margin-bottom:12px;font-size:17px; }
.appearance-preset-row { display:flex;align-items:center;gap:10px;padding:11px 0;border-top:1px solid rgba(58,96,70,.13); }
.appearance-preset-thumbs { display:flex;flex:none;padding-left:5px; }
.appearance-preset-thumbs img { width:41px;height:41px;margin-left:-5px;border:2px solid #fff;border-radius:11px;object-fit:cover; }
.appearance-preset-row>div:nth-child(2) { display:flex;flex:1;min-width:0;flex-direction:column; }
.appearance-preset-row strong { font-size:13px; }
.appearance-preset-row small { color:var(--color-faint-ink);font-size:11px; }
:root[data-theme="dark"] .appearance-imports form,:root[data-theme="dark"] .appearance-preset-form { background:rgba(39,57,44,.64);border-color:#48604c; }
:root[data-theme="dark"] .appearance-image-choice { background:#293a2e;border-color:#48604c; }
:root[data-theme="dark"] .appearance-form-top input,:root[data-theme="dark"] .appearance-form-top select { background:#24352a;border-color:#48604c;color:#eef5ed; }

.device-frame.mobile-compact .library-school-switch { display:grid;grid-template-columns:repeat(4,minmax(0,1fr));width:100%; }
.device-frame.mobile-compact .library-school-option { min-width:0;padding:8px 3px;font-size:11px; }
.device-frame.mobile-compact .main-stage[data-library-school] .library-school-intro { display:block; }
.device-frame.mobile-compact .main-stage[data-library-school] .library-school-intro p { margin-top:11px; }
.device-frame.mobile-compact .main-stage[data-library-school] .library-list { grid-template-columns:repeat(2,minmax(0,1fr)); }
.device-frame.mobile-compact .sound-category-grid { grid-template-columns:repeat(4,minmax(0,1fr));gap:7px; }
.device-frame.mobile-compact .sound-discover-tabs { width:100%; }
.device-frame.mobile-compact .sound-featured { min-height:230px;padding:23px; }
.device-frame.mobile-compact .sound-featured-copy { max-width:75%; }
.device-frame.mobile-compact .sound-category-tile { min-height:108px;padding:9px 3px;gap:5px;border-radius:16px; }
.device-frame.mobile-compact .sound-category-tile strong { font-size:10px;white-space:normal;text-align:center;line-height:1.2; }
.device-frame.mobile-compact .sound-category-tile small { font-size:9px; }
.device-frame.mobile-compact .appearance-imports,.device-frame.mobile-compact .appearance-form-top,.device-frame.mobile-compact .appearance-controls { grid-template-columns:1fr; }

@media (max-width:700px) {
  .ambient-background img { object-position:center center; }
  .main-stage[data-library-school] .library-page { padding:19px; }
  .library-school-switch { width:100%;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:2px; }
  .library-school-option { min-width:0;padding:8px 3px;font-size:11px; }
  .main-stage[data-library-school] .library-school-intro { display:block;padding:18px; }
  .main-stage[data-library-school] .library-school-intro p { margin-top:11px; }
  .main-stage[data-library-school] .library-list { grid-template-columns:repeat(2,minmax(0,1fr));gap:9px; }
  .main-stage[data-library-school] .library-book { min-height:210px;padding:14px; }
  .main-stage[data-library-school] .library-book strong { font-size:18px; }
  .main-stage[data-library-school] .library-detail { padding:16px; }
  .sound-discover-tabs { width:100%; }
  .sound-featured { min-height:230px;padding:23px; }
  .sound-featured-copy { max-width:75%; }
  .sound-featured-play { width:51px;height:51px; }
  .sound-category-grid { grid-template-columns:repeat(4,minmax(0,1fr));gap:7px; }
  .sound-category-tile { min-height:108px;padding:9px 3px;gap:5px;border-radius:16px; }
  .sound-category-tile-icon { width:44px;height:44px;border-radius:14px; }
  .sound-category-tile strong { font-size:10px;white-space:normal;text-align:center;line-height:1.2; }
  .sound-category-tile small { font-size:9px; }
  .appearance-imports,.appearance-form-top,.appearance-controls { grid-template-columns:1fr; }
  .appearance-preset-row { flex-wrap:wrap; }
  .appearance-preset-row>div:nth-child(2) { flex-basis:calc(100% - 65px); }
  .profile-appearance-choice { flex-wrap:wrap; }
}
@media (prefers-reduced-motion:reduce) {
  .ambient-background img,.library-school-option,.main-stage[data-library-school] .library-book,.sound-discover-tabs button,.sound-category-tile,.sound-featured-play { transition:none; }
}

/* 首页日课：保留山水主题，以真实画作纹理和清晰的操作层次替代平面波形。 */
.hero-mountain-window { min-height:278px;height:auto;align-items:center;gap:28px;padding:clamp(24px,3vw,42px);border-radius:28px;border:1px solid rgba(255,255,255,.18);background:linear-gradient(94deg,rgba(29,55,44,.93) 0%,rgba(38,65,51,.83) 44%,rgba(58,79,60,.48) 100%),url('/public/backgrounds/default.webp') center 58%/cover;box-shadow:0 18px 42px rgba(36,58,43,.16); }
.hero-mountain-window::after { content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(180deg,rgba(255,255,255,.08),transparent 42%,rgba(11,29,20,.12)); }
.hero-content-center { max-width:720px; }
.hero-kicker { display:flex;align-items:center;gap:13px;color:rgba(255,255,255,.82);font-size:12px;letter-spacing:.16em; }
.hero-kicker-line { width:28px;height:1px;background:rgba(255,255,255,.48); }
.hero-main-title { margin:17px 0 9px;font-size:clamp(29px,3vw,44px);font-weight:500;letter-spacing:.055em;line-height:1.24;text-wrap:balance; }
.hero-subtitle-motto { margin:0;color:rgba(255,255,255,.86);font-size:14px;line-height:1.8;letter-spacing:.025em; }
.hero-bottom-row { display:flex;align-items:center;flex-wrap:wrap;gap:16px;margin-top:26px; }
.hero-start-btn { display:inline-flex;align-items:center;justify-content:center;gap:22px;min-height:43px;padding:9px 18px;border:1px solid rgba(255,255,255,.86);border-radius:999px;background:rgba(255,255,255,.92);color:#254c39;font-family:inherit;font-size:13px;font-weight:600;line-height:1.4;cursor:pointer;box-shadow:0 7px 22px rgba(13,35,23,.12);transition:transform .2s cubic-bezier(.2,.8,.2,1),background-color .2s,box-shadow .2s; }
.hero-start-btn:hover { transform:translateY(-2px);background:#fff;box-shadow:0 11px 27px rgba(13,35,23,.2); }
.hero-start-btn:active { transform:scale(.97); }
.hero-start-btn:focus-visible,.hero-date-link:focus-visible,.hero-mood-link:focus-visible { outline:2px solid #fff;outline-offset:3px; }
.hero-days-tag { margin:0;padding:0;border:0;background:none;color:rgba(255,255,255,.8);font-size:12px; }
.hero-days-tag strong { font-size:16px;color:#fff; }
.hero-nearfield-card { width:244px;min-width:244px;padding:19px 20px;border-radius:20px;background:rgba(255,255,255,.86);border:1px solid rgba(255,255,255,.65);backdrop-filter:blur(22px);-webkit-backdrop-filter:blur(22px);box-shadow:0 18px 40px rgba(21,38,29,.17); }
.nearfield-header { align-items:center;margin:0 0 16px;padding:0 0 12px;font-size:11px;letter-spacing:.07em;color:#617668; }
.hero-date-link { display:flex;align-items:center;justify-content:space-between;width:100%;padding:0;border:0;background:transparent;color:#2d5440;text-align:left;cursor:pointer; }
.nearfield-title { font-size:17px;line-height:1.35;color:#264d39; }
.hero-date-link>span:last-child { font-size:19px;transition:transform .18s; }
.hero-date-link:hover>span:last-child,.hero-mood-link:hover>span:last-child { transform:translate(2px,-2px); }
.nearfield-status { margin-top:6px;color:#697b6d;font-size:12px; }
.hero-mood-link { display:flex;align-items:center;gap:8px;width:100%;margin-top:20px;padding:13px 0 0;border:0;border-top:1px solid rgba(38,77,57,.16);background:transparent;color:#2b6247;font-family:inherit;font-size:12px;font-weight:600;line-height:1.4;text-align:left;cursor:pointer; }
.hero-mood-link>span:last-child { margin-left:auto;transition:transform .18s; }
.hero-mood-dot { flex:none;width:9px;height:9px;border-radius:50%;box-shadow:0 0 0 3px rgba(48,93,69,.08); }
:root[data-theme="dark"] .hero-mountain-window { background:linear-gradient(94deg,rgba(16,34,25,.93),rgba(24,45,33,.82) 52%,rgba(27,45,33,.62)),url('/public/backgrounds/default.webp') center 58%/cover; }
:root[data-theme="dark"] .hero-nearfield-card { background:rgba(35,54,40,.83);border-color:rgba(255,255,255,.13); }
:root[data-theme="dark"] .hero-date-link,:root[data-theme="dark"] .nearfield-title,:root[data-theme="dark"] .hero-mood-link { color:#ecf3e9; }
:root[data-theme="dark"] .nearfield-header,:root[data-theme="dark"] .nearfield-status { color:#bdcdbf; }

/* 管理员篇章编辑器与书架中的学习模块 */
.chapter-editor-metadata { display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:13px; }
.chapter-editor-metadata label,.chapter-editor-workspace label { display:grid;gap:7px;color:var(--color-bamboo);font-size:12px;font-weight:600; }
.chapter-editor-metadata :is(input,select) { width:100%; }
.chapter-editor-workspace { display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:18px;align-items:start; }
.chapter-editor-toolbar { display:flex;flex-wrap:wrap;gap:6px;margin-bottom:12px; }
.chapter-editor-toolbar .clean-btn { border-radius:999px;padding:7px 12px; }
.chapter-editor-workspace textarea { width:100%;min-height:420px;resize:vertical;font-size:14px;line-height:1.8; }
.chapter-editor-workspace small { color:var(--color-faint-ink); }
.chapter-editor-preview { min-height:450px;max-height:720px;overflow:auto;padding:18px;border:1px solid rgba(61,91,70,.16);border-radius:21px;background:rgba(244,248,243,.74); }
.chapter-editor-preview .editorial-section-tag { margin:0 0 14px; }
.chapter-editor-actions { display:flex;align-items:center;flex-wrap:wrap;gap:10px; }
.chapter-editor-list { display:grid;gap:8px;margin-top:12px; }
.chapter-editor-list article { display:flex;align-items:center;justify-content:space-between;gap:12px;padding:13px 15px;border:1px solid rgba(61,91,70,.14);border-radius:16px;background:rgba(255,255,255,.55); }
.chapter-editor-list article>div { display:flex;align-items:center;gap:8px;flex-wrap:wrap; }
.chapter-editor-list article>div:first-child { display:grid;gap:4px; }
.chapter-editor-list small { color:var(--color-faint-ink); }
.course-reading-layout { display:grid;gap:16px;margin:22px 0; }
.course-reading-block { position:relative;padding:19px 21px;border:1px solid rgba(63,91,69,.16);border-radius:18px;background:rgba(255,255,255,.72); }
.course-reading-label { display:flex;align-items:center;gap:10px;margin-bottom:12px;color:#4a735b;font-size:12px;font-weight:700;letter-spacing:.08em; }
.course-reading-label span { color:#9baa9d;font:11px/1.3 ui-monospace,SFMono-Regular,Consolas,monospace; }
.course-reading-text { white-space:pre-wrap;overflow-wrap:anywhere;color:var(--color-pine-ink);font-size:15px;line-height:1.9; }
.course-reading-body { border-color:rgba(48,91,63,.22);background:linear-gradient(135deg,rgba(236,245,237,.93),rgba(252,253,249,.94)); }
.course-reading-body .course-reading-text { font-size:18px;line-height:2.05;letter-spacing:.035em; }
.course-reading-note { margin-left:24px;border-left:3px solid #a58b60;background:rgba(246,243,235,.8); }
.course-reading-readalong { background:linear-gradient(135deg,rgba(225,238,230,.92),rgba(247,250,245,.96)); }
.course-readalong-tools { display:flex;align-items:center;flex-wrap:wrap;gap:9px;margin-top:16px; }
.course-readalong-tools audio { width:min(100%,320px);height:35px; }
.course-readalong-tools audio[hidden] { display:none; }
:root[data-theme="dark"] .chapter-editor-preview,:root[data-theme="dark"] .course-reading-block,:root[data-theme="dark"] .chapter-editor-list article { background:rgba(37,53,41,.72); }
:root[data-theme="dark"] .course-reading-text { color:#eef3eb; }
@media (max-width:850px) { .chapter-editor-workspace { grid-template-columns:1fr; } .chapter-editor-preview { min-height:220px;max-height:470px; } }
@media (max-width:600px) { .hero-mountain-window,.device-frame.mobile-compact .hero-mountain-window { min-height:0;padding:26px;align-items:stretch;gap:25px; } .hero-nearfield-card,.device-frame.mobile-compact .hero-nearfield-card { width:100%;min-width:0; } .hero-main-title { font-size:30px; } .hero-bottom-row { gap:13px; } .chapter-editor-metadata { grid-template-columns:1fr; } .course-reading-note { margin-left:10px; } .chapter-editor-list article { align-items:flex-start;flex-direction:column; } }
@media (prefers-reduced-motion:reduce) { .hero-start-btn,.hero-date-link>span:last-child,.hero-mood-link>span:last-child { transition:none; } }

/* Dock lives outside the blurred device frame, so its position never follows page height. */
.floating-dock-nav { width:440px;max-width:calc(100vw - 28px);height:70px;bottom:calc(18px + env(safe-area-inset-bottom,0px));left:50%;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));justify-content:initial;gap:0;padding:7px;border-radius:999px;transform:translateX(-50%);isolation:isolate;background:rgba(255,255,255,.82);backdrop-filter:blur(24px) saturate(145%);-webkit-backdrop-filter:blur(24px) saturate(145%); }
.dock-active-pill { position:absolute;z-index:0;top:7px;bottom:7px;left:7px;width:calc((100% - 14px)/4);border-radius:999px;background:rgba(222,237,227,.88);box-shadow:0 3px 10px rgba(35,70,46,.09);transform:translateX(var(--dock-shift,0%));transition:transform .32s cubic-bezier(.22,1,.36,1);pointer-events:none; }
.dock-item-btn { z-index:1;min-width:0;min-height:56px;padding:5px 3px;border-radius:999px;transition:color .2s ease,transform .16s ease; }
.dock-item-btn.active { background:transparent; }
.dock-item-btn:active { transform:scale(.94); }
.dock-item-btn.active .dock-icon-svg { animation:none;transform:none; }
.dock-item-btn.active::after { display:none; }
.floating-mini-player { width:440px;max-width:calc(100vw - 28px);bottom:calc(99px + env(safe-area-inset-bottom,0px)); }
:root[data-theme="dark"] .dock-active-pill { background:rgba(72,116,82,.62);box-shadow:0 3px 12px rgba(0,0,0,.2); }
@media (prefers-reduced-motion:reduce) { .dock-active-pill { transition:none; } }

/* Courses are authored in one mode at a time; numbered notes and read-along items stay explicit. */
.chapter-editor-input { min-width:0; }
.chapter-editor-toolbar { padding:5px;border:1px solid rgba(58,100,72,.16);border-radius:18px;background:rgba(238,245,239,.62); }
.chapter-editor-toolbar .clean-btn { flex:1;min-width:65px;border:0;background:transparent; }
.chapter-editor-toolbar .clean-btn.btn-active { background:#fff;color:#24553b;box-shadow:0 3px 10px rgba(39,77,50,.11); }
.chapter-editor-block-head { display:flex;align-items:end;justify-content:space-between;gap:15px;margin:16px 0 11px; }
.chapter-editor-block-head>div { display:grid;gap:3px; }
.chapter-editor-block-head span { color:var(--color-faint-ink);font-size:11px; }
.chapter-editor-block-head strong { color:var(--color-bamboo);font-size:20px; }
.chapter-editor-block-head small { max-width:60%;text-align:right; }
.chapter-editor-sequence { display:flex;gap:7px;margin:0 0 12px;overflow-x:auto;padding:2px 0 6px;scrollbar-width:thin; }
.chapter-editor-sequence .clean-btn { flex:none;min-height:36px;border-radius:999px; }
.chapter-editor-sequence .chapter-add { border-style:dashed; }
.chapter-editor-input textarea { border-radius:17px;background:rgba(255,255,255,.86); }
.chapter-repeat-setting { display:flex;align-items:end;flex-wrap:wrap;gap:10px;margin:14px 0; }
.chapter-repeat-setting label { min-width:125px; }
.chapter-repeat-setting :is(select,input) { min-height:39px; }
.chapter-repeat-setting [hidden],.course-readalong-goal [hidden] { display:none!important; }
.chapter-book-manager { margin:24px 0;padding:16px 19px;border:1px solid rgba(64,102,73,.18);border-radius:18px;background:rgba(248,251,247,.7); }
.chapter-book-manager>summary { color:var(--color-bamboo);font-weight:700;cursor:pointer; }
.chapter-book-forms { display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);gap:18px;margin-top:18px; }
.chapter-book-forms form { min-width:0;padding:17px;border:1px solid rgba(64,102,73,.13);border-radius:16px;background:rgba(255,255,255,.72); }
.chapter-book-forms .chapter-editor-metadata { gap:9px; }
.course-readalong-goal { display:flex;align-items:center;flex-wrap:wrap;gap:11px;margin-top:17px;padding:12px 14px;border:1px solid rgba(53,98,68,.15);border-radius:14px;background:rgba(255,255,255,.48); }
.course-readalong-goal label { display:flex;align-items:center;gap:7px;color:var(--color-bamboo);font-size:12px; }
.course-readalong-goal :is(select,input) { width:auto;max-width:98px;min-height:35px;border:1px solid rgba(68,108,77,.23);border-radius:9px;background:rgba(255,255,255,.8);color:var(--color-pine-ink);font-family:inherit;font-size:13px; }
.course-readalong-goal [data-readalong-progress] { margin-left:auto;color:var(--color-bamboo);font-size:12px;font-weight:700;white-space:nowrap; }
:root[data-theme="dark"] .chapter-editor-toolbar,:root[data-theme="dark"] .chapter-book-manager { background:rgba(37,55,43,.75); }
:root[data-theme="dark"] .chapter-editor-toolbar .clean-btn.btn-active,:root[data-theme="dark"] .chapter-book-forms form,:root[data-theme="dark"] .course-readalong-goal { background:rgba(54,79,59,.85);color:#edf7ed; }
@media (max-width:850px) { .chapter-book-forms { grid-template-columns:1fr; } }
@media (max-width:560px) { .chapter-editor-toolbar .clean-btn { min-width:75px;flex:none; } .chapter-editor-block-head { align-items:start;flex-direction:column;gap:3px; } .chapter-editor-block-head small { max-width:none;text-align:left; } .course-readalong-goal [data-readalong-progress] { margin-left:0; } }

.mood-journal-entry { display:grid;gap:10px;margin-top:18px; }
.mood-journal-entry label { color:var(--color-bamboo);font-size:13px;font-weight:600; }
.mood-journal-entry textarea { width:100%;min-height:104px;box-sizing:border-box;padding:12px 14px;border:1px solid rgba(66,103,75,.24);border-radius:13px;background:rgba(249,251,248,.9);color:var(--color-pine-ink);font-family:inherit;font-size:14px;line-height:1.7;resize:vertical; }
.mood-journal-entry button { justify-self:end;min-height:38px;padding:8px 17px;border-radius:999px; }
:root[data-theme="dark"] .mood-journal-entry textarea { background:#273b2d;color:#f0f6ee;border-color:#53715a; }
