/* Shared Atoms shell. Book materials follow the supplied paper-binding reference. */
body { background: #eeece6; }
.app-frame.atoms-app { --ink: #272722; --muted: #706d65; --line: #e1ded6; --paper: #f8f7f3; color: var(--ink); background: var(--paper); box-shadow: none; }
.atoms-app .screen { background: #f8f7f3; }
.atoms-app:not(.home-atoms) .screen { padding: 12px 18px calc(110px + env(safe-area-inset-bottom)); }
.atoms-app .bottom-nav-inner { margin: 0 12px max(12px, env(safe-area-inset-bottom)); width: min(calc(var(--app-width) - 24px), calc(100% - 24px)); border: 1px solid #e9e6df; border-radius: 999px; padding: 7px; background: #fffdf9; box-shadow: 0 8px 24px #3a311c14; }
.atoms-app .nav-button { color: #67645b; border-radius: 999px; }
.atoms-app .nav-button.active { color: #282823; background: #eeece5; }
.atoms-app:not(.home-atoms) { font-family: 'PingFang SC','Microsoft YaHei',sans-serif; }
.atoms-app:not(.home-atoms) :is(.primary-button,.floating-add) { background: #272722; color: #fff; box-shadow: none; border-radius: 999px; }
.atoms-app:not(.home-atoms) .icon-button { border: 1px solid #e1ded6; border-radius: 50%; background: #fff; color: #272722; box-shadow: none; }
.atoms-app :focus-visible { outline: 2px solid #d70050; outline-offset: 3px; }
.atoms-app ::selection { background: #f7d6e2; color: #272722; }
.atoms-app input { caret-color: #d70050; }
.atoms-app input::placeholder { color: #746f67; }
.atoms-page-heading { padding: 24px 2px 22px; }
.atoms-page-heading h1 { margin: 0; font-family: 'Songti SC','SimSun',serif; font-size: 30px; line-height: 1.25; font-weight: 500; }
.atoms-page-heading p { margin: 10px 0 0; color: #706d65; font-size: 13px; line-height: 1.6; }
.atoms-app:not(.home-atoms) :is(.segment,.library-tabs) { display: flex; gap: 3px; padding: 3px; background: #eae8e3; border: 0; border-radius: 999px; }
.atoms-app:not(.home-atoms) :is(.segment,.library-tabs) button { flex: 1; min-width: 0; min-height: 34px; padding: 0 12px; border: 0; border-radius: 999px; background: transparent; color: #666158; font-size: 13px; font-weight: 500; }
.atoms-app:not(.home-atoms) :is(.segment,.library-tabs) button.active { color: #272722; background: #fff; box-shadow: none; font-weight: 650; }
.atoms-app .library-tabs button::after { display: none; }
.atoms-app:not(.home-atoms) .search-box { min-height: 48px; margin: 20px 0; padding: 0 14px; border: 1px solid #e1ded6; border-radius: 18px; background: #fff; box-shadow: none; color: #746f67; }
.atoms-app .search-box input { min-width: 0; color: #272722; font-size: 13px; }
.atoms-app .library-update-banner { margin: 18px 0 0; padding: 14px 12px; border: 1px solid #e8dce0; border-radius: 18px; background: linear-gradient(110deg,#f5eaf8,#fff0d9); color: #665551; font-size: 12px; line-height: 1.6; }
.atoms-app .library-update-icon { background: transparent; color: #795d4d; }
.atoms-app .library-update-dismiss { color: #665551; }
.atoms-app .library-search-status { margin: 18px 0 0; color: #706d65; font-size: 13px; line-height: 1.7; }
.atoms-app [hidden] { display: none !important; }
.atoms-app .bookshelf-section { padding: 2px 0 26px; }
.atoms-app .bookshelf-section .book-showcase { gap: 25px 13px; }
.atoms-app .bookshelf-section .book-cover.small { width: 100%; min-height: 0; aspect-ratio: .68; border: 1px solid #dfdbe2; border-radius: 10px; background: #f3f0eb; box-shadow: 0 7px 14px #28231e14; }
.atoms-app .bookshelf-section .book-cover::after { border-radius: inherit; }
.atoms-app .bookshelf-section .book-card h3 { display: block; min-height: 0; width: 100%; margin: 10px 0 0; overflow: hidden; white-space: nowrap; text-overflow: ellipsis; -webkit-line-clamp: unset; font-size: 12px; font-weight: 650; line-height: 1.5; letter-spacing: 0; color: #272722; }
.atoms-app .book-card-meta { display: block; margin-top: 4px; overflow: hidden; white-space: nowrap; text-overflow: ellipsis; color: #706d65; font-size: 10px; line-height: 1.5; }
.atoms-app .course-time-filters { border: 0; background: transparent; margin-bottom: 20px; padding: 0; gap: 6px; }
.atoms-app .course-time-filters button { min-height: 36px; border: 1px solid #dedbd3; border-radius: 999px; color: #666158; background: transparent; }
.atoms-app .course-time-filters button.active { border-color: #272722; background: #272722; color: #fff; }
.atoms-app .course-catalog { gap: 16px; }
.atoms-app .course-list-card { border: 1px solid #e1ded6; border-radius: 22px; padding: 12px; background: #fff; box-shadow: none; }
.atoms-app .course-list-cover { border-radius: 13px; }
/* Daily planning keeps its actual time geometry and completion semantics. */
.atoms-app .today-topbar { display: flex; flex-direction: column; align-items: stretch; gap: 20px; padding: 24px 0 18px; background: transparent; }
.atoms-app .today-quote-card { gap: 11px; padding: 0 2px; }
.atoms-app .today-quote-card > .today-quote-date { color: #272722; font-family: 'Songti SC','SimSun',serif; font-size: 30px; font-weight: 600; line-height: 1.35; }
.atoms-app .today-quote-card > strong { color: #706d65; font-size: 13px; font-weight: 400; line-height: 1.7; }
.atoms-app .today-topbar .segment { width: 100%; }
.atoms-app .date-strip { gap: 5px; margin-bottom: 22px; }
.atoms-app .date-pill { border: 0; border-radius: 999px; background: transparent; color: #706d65; }
.atoms-app .date-pill strong { color: #272722; font-variant-numeric: tabular-nums; }
.atoms-app .date-pill.active { background: #272722; color: #fff; box-shadow: none; }
.atoms-app .date-pill.active :is(span,strong) { color: #fff; }
.atoms-app .day-schedule { background: transparent; }
.atoms-app .day-schedule .event-card.schedule-event { border-radius: 16px; box-shadow: none; border-color: #dfdcd3; }
.atoms-app .day-schedule .event-card.schedule-event::before { width: 3px; opacity: .5; }
.atoms-app .day-schedule-time { color: #706d65; font-variant-numeric: tabular-nums; }
.atoms-app .day-schedule-hour-line { border-color: #e6e2da; }
.atoms-app .day-schedule .event-card.schedule-event.completed { background: #edece6; }
.atoms-app .month-calendar { border-radius: 24px; border-color: #e1ded6; background: #fff; box-shadow: none; }
.atoms-app .calendar-summary > div { border: 1px solid #e1ded6; border-radius: 20px; background: #fff; box-shadow: none; }
/* Personal space: quiet paper panels, real progress, preserved collage canvas. */
.atoms-app .me-workbench { gap: 20px; }
.atoms-app .me-profile-strip { border: 1px solid #e1ded6; border-radius: 26px; background: #fff; box-shadow: none; }
.atoms-app .me-profile-main { padding: 22px 20px 20px; }
.atoms-app .me-profile-main .me-avatar { border: 0; background: linear-gradient(140deg,#ffd477,#ffb347); color: #272722; box-shadow: none; font-family: 'Songti SC','SimSun',serif; font-size: 28px; }
.atoms-app .me-identity em { background: #f5e8c8; color: #725720; box-shadow: none; }
.atoms-app .me-profile-id,.atoms-app .me-profile-id code { color: #706d65; font-size: 11px; }
.atoms-app .me-profile-metrics { border: 0; border-top: 1px solid #e1ded6; border-radius: 0; padding: 21px 0 4px; background: transparent; }
.atoms-app .me-profile-metric strong { font-family: 'PingFang SC','Microsoft YaHei',sans-serif; font-size: 28px; font-weight: 650; font-variant-numeric: tabular-nums; }
.atoms-app .me-profile-metric small { color: #706d65; font-weight: 400; font-size: 11px; }
.atoms-app .chenzao-insight { padding: 20px; background: linear-gradient(130deg,#fbf1dd,#f6edf7); border-top: 1px solid #e1ded6; }
.atoms-app .chenzao-insight p { color: #635b57; font-size: 13px; }
.atoms-app .me-panel { padding: 20px 15px; border: 1px solid #e1ded6; border-radius: 26px; background: #fff; box-shadow: none; }
.atoms-app .me-section-head { gap: 8px; margin-bottom: 18px; }
.atoms-app .me-section-head h2 { font-family: 'Songti SC','SimSun',serif; font-size: 21px; font-weight: 600; }
.atoms-app .board-tools { gap: 4px; }
.atoms-app .me-panel-caption { color: #706d65; }
.atoms-app .me-support-fab { color: #272722; background: #fffdf9; border: 1px solid #e1ded6; box-shadow: 0 5px 16px #28231e12; border-radius: 999px; }
/* Centered paper-bound book reader. The complete title remains available in title/accessible text. */
.atoms-app .book-reading-sheet { background: #f8f7f3; }
.atoms-app .book-reading-header { background: #f8f7f3; border-color: #e1ded6; grid-template-columns: 44px minmax(0,1fr) 44px; }
.atoms-app .book-reading-header > strong { text-align: center; }
.atoms-app .book-reading-header .icon-button { width: 40px; height: 40px; }
.atoms-app .book-reading-hero { display: block; text-align: center; padding: 22px 0 26px; }
.atoms-app .book-reading-hero .book-cover.large { width: 160px; min-height: 0; aspect-ratio: .68; margin: 0 auto 23px; border-radius: 11px; border-color: #dfdbe2; box-shadow: 0 12px 24px #28231e1c; }
.atoms-app .book-reading-intro h1 { display: block; width: 100%; overflow: hidden; white-space: nowrap; text-overflow: ellipsis; font-family: 'Songti SC','SimSun',serif; font-size: 25px; font-weight: 600; line-height: 1.5; }
.atoms-app .book-reading-meta { justify-content: center; color: #706d65; }
.atoms-app .book-reading-summary { text-align: left; color: #706d65; font-size: 13px; line-height: 1.8; }
.atoms-app :is(.book-talk-section,.book-shownotes-section,.book-model-summary) { background: #fff; border: 1px solid #e1ded6; border-radius: 22px; padding: 18px; box-shadow: none; }
.atoms-app .book-plan-action { border-radius: 999px; background: #272722; color: #fff; box-shadow: none; min-height: 48px; }
@media (hover:hover) { .atoms-app .bookshelf-section .book-card:hover .book-cover { transform: translateY(-3px); transition: transform 180ms ease; } .atoms-app .nav-button:hover { background: #f2f0ea; } }
@media (max-width:360px) { .atoms-app:not(.home-atoms) .screen { padding-left: 14px; padding-right: 14px; } .atoms-app .bookshelf-section .book-showcase { gap: 22px 10px; } .atoms-app .me-panel { padding: 18px 12px; } .atoms-app .me-section-head h2 { font-size: 18px; } }
@media (prefers-reduced-motion:reduce) { .atoms-app *, .atoms-app *::before, .atoms-app *::after { scroll-behavior: auto; transition: none !important; animation: none !important; } }
/* Override the older shared homepage canvas without changing its home-specific rules. */
.app-frame.home-style-final.atoms-app:not(.home-atoms) .screen { background: #f8f7f3; }
.atoms-app .date-pill.active strong { background: transparent; box-shadow: none; }
.atoms-app .book-talk-section { margin-bottom: 18px; }
.atoms-app .book-shownotes-section { margin-bottom: 20px; }
.atoms-app .model-topic-row { min-height: 150px; border: 1px solid #e1ded6; border-radius: 23px; background: linear-gradient(155deg,#f5ebce,#fffdfa); padding: 16px; }
.atoms-app .model-topic-row:nth-child(3n+2) { background: linear-gradient(155deg,#e9ddef,#fffdfa); }
.atoms-app .model-topic-row:nth-child(3n) { background: linear-gradient(155deg,#dce5f6,#fffdfa); }
.atoms-app .model-topic-symbol { background: #ffffff80; color: #635d53; }
.atoms-app .model-topic-copy strong { font-family: 'Songti SC','SimSun',serif; font-size: 18px; font-weight: 600; color: #272722; }
.atoms-app .model-topic-count { position: static; grid-column: 1; grid-row: 3; color: #706d65; font-size: 11px; line-height: 1.4; font-weight: 400; letter-spacing: 0; }
.atoms-app .model-topic-count::after { content: ' 个模型'; }
/* September refinement: shared Songti display type, Apple-like calendar geometry. */
.atoms-app { --display-font: 'Songti SC', 'SimSun', serif; }
.app-frame.home-atoms .vision-summary .vision-title-cn,
.atoms-app .today-quote-card > .today-quote-date,
.atoms-app .me-profile-metric strong,
.atoms-app .detail-metric strong,
.atoms-app .badge-module-head strong,
.atoms-app .badge-module-head em,
.atoms-app .wish-badge-module,
.atoms-app .badge-center,
.atoms-app .dashboard-detail-metrics,
.atoms-app .chart-head h3 { font-family: var(--display-font); }
.app-frame.home-atoms .vision-summary .vision-title-cn { font-size: 30px; font-weight: 600; line-height: 1.35; }
.atoms-app .me-profile-metric strong { font-size: 30px; font-weight: 600; }
.atoms-app .badge-module-head strong { font-size: 23px; font-weight: 600; }
.atoms-app .badge-module-head em { font-size: 13px; color: #706d65; font-style: normal; }
.atoms-app :is(.badge-center,.wish-badge-module) :is(h2,h3,strong,small,span,button) { font-family: var(--display-font); }
.atoms-app .badge-category-tabs { background: #eae8e3; border-radius: 999px; padding: 3px; }
.atoms-app .badge-category-tabs button { border-radius: 999px; color: #706d65; }
.atoms-app .badge-category-tabs button.active { background: #fff; color: #272722; box-shadow: none; }
.atoms-app .dashboard-detail-metrics { gap: 12px; }
.atoms-app .detail-metric { background: #fff; border: 1px solid #e1ded6; border-radius: 20px; box-shadow: none; padding: 18px 14px; color: #272722; }
.atoms-app .detail-metric strong { font-size: 32px; line-height: 1.25; font-weight: 600; color: #272722; }
.atoms-app .detail-metric span { color: #706d65; font-size: 13px; }
.atoms-app .chart-card { border: 1px solid #e1ded6; border-radius: 22px; background: #fff; box-shadow: none; }
.atoms-app .chart-head h3 { font-size: 21px; font-weight: 600; }
.atoms-app .sheet:has(.dashboard-detail-metrics), .atoms-app .sheet:has(.badge-center) { background: #f8f7f3; }
.atoms-app .sheet:has(.dashboard-detail-metrics) .sheet-header h2,
.atoms-app .sheet:has(.badge-center) .sheet-header h2 { font-family: var(--display-font); font-size: 24px; }
.atoms-app.atoms-me .me-workbench { padding-top: 20px; }
.atoms-app .chenzao-insight { padding: 17px 20px; }
.atoms-app .chenzao-insight p { margin: 0; }
.atoms-app .legacy-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 12px; }
.atoms-app .legacy-feature { display: flex; flex-direction: column; align-items: flex-start; gap: 10px; min-height: 156px; padding: 17px 14px; border: 0; border-radius: 14px; background: #f7f6f3; text-align: left; box-shadow: none; }
.atoms-app .legacy-feature > svg { width: 25px; height: 25px; color: #3e3e38; }
.atoms-app .legacy-feature strong { font-size: 16px; color: #272722; }
.atoms-app .legacy-feature span { font-size: 12px; line-height: 1.6; color: #706d65; }
.atoms-app .legacy-summary { margin-top: 18px; background: transparent; color: #706d65; }
.atoms-app.atoms-library .library-tabs { margin-top: 22px; }
.atoms-app .library-update-banner { height: 48px; min-height: 48px; padding: 0 12px; gap: 8px; }
.atoms-app .library-update-banner > span:nth-child(2) { min-width: 0; white-space: nowrap; text-overflow: ellipsis; overflow: hidden; }
.atoms-app .library-update-dismiss { flex: 0 0 28px; }
.atoms-app .search-box { height: 48px; }
.atoms-app .book-cover.reference-book-cover { position: relative; }
.atoms-app .book-cover.reference-book-cover img { position: absolute; width: var(--sprite-width); max-width: none; height: auto; left: var(--sprite-left); top: var(--sprite-top); object-fit: fill; }
.atoms-app .book-cover.cover-raising-girls img { object-fit: cover; width: 108%; max-width: none; height: 108%; left: -4%; top: -4%; position: absolute; }
.atoms-app .book-content-pending { color: #706d65; font-size: 13px; }
/* The weekday remains above the selected number, with a fine baseline below. */
.atoms-app .date-strip { padding-bottom: 0; gap: 0; border-bottom: 1px solid #dedbd4; }
.atoms-app .date-pill { min-width: 0; padding: 5px 0 10px; border-radius: 0; gap: 4px; position: relative; }
.atoms-app .date-pill > span { color: #77736b; font-size: 12px; }
.atoms-app .date-pill > strong { display: grid; place-items: center; width: 32px; height: 30px; margin: 0 auto; color: #706d65; font-size: 18px; font-weight: 400; }
.atoms-app .date-pill.active { background: transparent; color: #272722; }
.atoms-app .date-pill.active > span { color: #272722; font-weight: 650; }
.atoms-app .date-pill.active > strong { background: #272722; color: #fff; border-radius: 999px; font-weight: 650; box-shadow: none; }
.atoms-app .date-pill.active::after { content: ''; position: absolute; left: 0; right: 0; bottom: -1px; height: 2px; background: #272722; }
.atoms-app .day-schedule .event-card.schedule-event,
.atoms-app .week-schedule-event { border-radius: 4px; border: 0; box-shadow: none; }
.atoms-app .day-schedule .event-card.schedule-event::before { top: 4px; bottom: 4px; left: 3px; width: 2px; border-radius: 1px; opacity: .8; }
.atoms-app .day-schedule .event-card.schedule-event.past:not(.completed) { opacity: 1; background: var(--category-bg, #eaeef3); }
.atoms-app .day-schedule .event-card.schedule-event.past .event-main { color: var(--category-ink, #555961); }
.atoms-app .day-schedule .event-check { width: 15px; height: 15px; min-width: 15px; flex-basis: 15px; min-height: 15px; border: 1px solid #87929a; border-radius: 3px; background: transparent; padding: 0; margin-top: 2px; position: relative; }
.atoms-app .day-schedule .event-check::after { content: ''; position: absolute; inset: -8px; }
.atoms-app .day-schedule .event-check.checked { background: #58685c; border-color: #58685c; color: #fff; }
.atoms-app .day-schedule .event-checkmark { width: 7px; height: 4px; border-width: 0 0 1.5px 1.5px; }
.atoms-app .week-schedule-event::before { border-radius: 1px; }
/* Required scheduling choices across manual, guided-wish and coach conversations. */
.atoms-app .agent-repeat-control, .atoms-app .agent-date-control { margin: 16px 0; padding: 18px 0; border-top: 1px solid #e1ded6; border-bottom: 1px solid #e1ded6; }
.atoms-app .agent-repeat-control .rhythm-section-heading { display: flex; justify-content: space-between; gap: 8px; margin-bottom: 16px; font-size: 13px; }
.atoms-app .agent-repeat-control .rhythm-section-heading span { color: #706d65; font-size: 12px; }
.atoms-app :is(.agent-weekday-options,.curated-frequency-options,.rhythm-day-grid) { display: grid; grid-template-columns: repeat(7,minmax(0,1fr)); gap: 5px; }
.atoms-app :is(.agent-weekday-options,.curated-frequency-options,.rhythm-day-grid) button { display: grid; place-items: center; width: 100%; aspect-ratio: 1; min-height: 0; padding: 0; border: 1px solid #e5e2dc; border-radius: 50%; background: #fff; color: #272722; font-size: 12px; font-weight: 600; box-shadow: none; }
.atoms-app :is(.agent-weekday-options,.curated-frequency-options,.rhythm-day-grid) button.selected { background: #272722; border-color: #272722; color: #fff; }
.atoms-app .agent-repeat-control > .primary-button { margin-top: 16px; width: 100%; min-height: 44px; }
.atoms-app .agent-repeat-control > .primary-button:disabled { background: #e5e2dc; color: #77736b; cursor: default; }
.atoms-app .agent-date-control label { display: grid; gap: 12px; font-size: 13px; }
.atoms-app .agent-date-control input { min-height: 44px; padding: 10px 14px; width: 100%; background: #eeece6; border: 0; border-radius: 13px; color: #272722; }
.atoms-app .agent-date-control > button { margin-top: 12px; min-height: 44px; width: 100%; }
.atoms-app .curated-schedule-panel { border: 0; background: #f8f7f3; box-shadow: none; }
.atoms-app .curated-time-fields input { background: #eeece6; border: 0; border-radius: 14px; min-height: 44px; color: #272722; }
.life-agent-shell .life-weekdays { display: grid; grid-template-columns: repeat(7,minmax(0,1fr)); gap: 5px; }
.life-agent-shell .life-weekdays button { width: 100%; aspect-ratio: 1; min-height: 0; padding: 0; border-radius: 50%; font-size: 12px; background: #fff; border: 1px solid #e1ded6; color: #272722; }
.life-agent-shell .life-weekdays button.selected { background: #272722; color: #fff; border-color: #272722; }
@media(max-width:360px) { .atoms-app .legacy-feature { padding: 14px 11px; } .atoms-app .badge-module-head strong { font-size: 21px; } .atoms-app .badge-module-head em { font-size: 12px; } }

/* 我的愿景板：沿用首页右上角的暖紫、浅杏渐变。 */
.atoms-app .vision-board-canvas {
  min-height: 0;
  height: auto;
  aspect-ratio: 9 / 10;
  border-radius: 16px;
}
.atoms-app .vision-board-canvas,
.atoms-app .wish-badge-collage {
  background: radial-gradient(ellipse at 100% 0%, rgba(215,0,80,.10) 0%, rgba(215,0,80,.025) 32%, transparent 65%), radial-gradient(ellipse at 96% 12%, #f0e5f1 0%, transparent 47%), radial-gradient(ellipse at 76% 0%, #fff0d9 0%, transparent 57%), #f8f7f3;
}
.atoms-app .vision-board-empty-state {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 24px;
  padding: 24px 12px;
  touch-action: auto;
}
.atoms-app .vision-board-whisper {
  margin: 0;
  color: rgba(105,81,97,.32);
  font-family: 'Songti SC','SimSun',serif;
  font-size: clamp(16px,4.3vw,20px);
  letter-spacing: .06em;
  text-align: center;
}
.atoms-app .vision-board-empty-state .ghost-button {
  min-height: 44px;
  color: #70616a;
  background: transparent;
  font-size: 12px;
}
.atoms-app .badge-collection-grid {
  display: grid;
  grid-template-columns: repeat(3,minmax(0,1fr));
  gap: 28px 8px;
  padding: 24px 0;
}
.atoms-app .badge-collection-grid .collectible-badge {
  min-width: 0;
  padding: 0;
  border: 0;
  background: transparent;
  box-shadow: none;
}
.atoms-app .badge-collection-grid .badge-pin-image-wrap { width: 100%; max-width: 104px; margin-inline: auto; }
.atoms-app .badge-collection-grid .collectible-badge h3 { font-size: 13px; line-height: 1.5; }

/* 成就入口三行预览，全部徽章在独立内页展示。 */
.atoms-app .achievement-preview { row-gap: 24px; padding: 20px 0 24px; }
.atoms-app .achievement-preview .badge-pin-image-wrap { width: 90px; }
.atoms-app .badge-collection-grid .badge-pin-image-wrap { isolation: isolate; }
.atoms-app .badge-collection-grid .collectible-badge.locked h3 { color: #77736b; }
.atoms-app .badge-collection-grid .badge-progress { color: #77736b; font-size: 11px; }
.atoms-app .badge-collection-grid .unlocked .badge-progress { color: #a51c50; }
.atoms-app .achievement-view-all { display: flex; justify-content: center; align-items: center; gap: 6px; width: 100%; min-height: 44px; border: 0; border-top: 1px solid #e1ded6; background: transparent; color: #706d65; font-size: 12px; cursor: pointer; }
.atoms-app .achievement-view-all svg { width: 15px; height: 15px; }
.atoms-app .achievement-summary { margin: 0 0 20px; color: #706d65; font-size: 13px; }
.atoms-app .sheet.achievement-page { height: 100%; max-height: 100%; border-radius: 0; background: #f8f7f3; }
.atoms-app .achievement-page .sheet-header { flex-direction: row-reverse; justify-content: flex-end; gap: 14px; }
.atoms-app .achievement-page .sheet-body { padding-bottom: 40px; }
.atoms-app .achievement-page .badge-collection-grid { row-gap: 30px; }
@media (prefers-reduced-motion: reduce) { .atoms-app .collectible-badge.unlocked .badge-pin-image-wrap { animation: none; } }
.atoms-app .achievement-preview .collectible-badge { min-height: 128px; }
.atoms-app .achievement-page .badge-category-tabs { grid-template-columns: repeat(3,minmax(0,1fr)); }
.atoms-app .achievement-page .badge-category-tabs button { min-height: 40px; }

/* 飞书徽章原图独立展示，不添加底座或角标。 */
.atoms-app .badge-collection-grid .badge-pin-image-wrap::before { content: none; display: none; }
.atoms-app .badge-collection-grid .badge-state-mark { display: none; }
.atoms-app .badge-collection-grid .badge-pin-image-wrap { background: transparent; border: 0; border-radius: 0; box-shadow: none; width: 100%; max-width: 104px; }
.atoms-app .badge-collection-grid .badge-pin-image-wrap img { width: 100%; height: 100%; object-fit: contain; }
.atoms-app .badge-collection-grid .locked .badge-pin-image-wrap { filter: grayscale(1); opacity: .48; }
.atoms-app .badge-collection-grid .collectible-badge h3 { font-family: 'PingFang SC','Microsoft YaHei',sans-serif; font-size: 12px; font-weight: 600; }
.atoms-app .achievement-page .badge-category-tabs { grid-template-columns: repeat(2,minmax(0,1fr)); }
.atoms-app .achievement-page .collectible-badge p { min-height: 38px; color: #706d65; font-family: 'PingFang SC','Microsoft YaHei',sans-serif; }
.atoms-app .achievement-preview .collectible-badge { min-height: 145px; }
.atoms-app .badge-collection-grid .badge-progress { font-family: 'PingFang SC','Microsoft YaHei',sans-serif; font-size: 10px; }

/* Personal badge gallery: shared board palette and quiet typography. */
.atoms-app .wish-badge-collage {
  box-shadow: none;
}
.atoms-app .badge-module-head em { font-family: var(--font-ui, sans-serif); font-size: 12px; font-weight: 400; font-style: normal; color: #706d65; }
.atoms-app .badge-module-head strong,
.atoms-app .achievement-page .sheet-title { font-family: 'Songti SC','SimSun',serif; font-size: 21px; font-weight: 500; }
.atoms-app .achievement-page .sheet-header { padding: 22px 18px 16px; }
.atoms-app .achievement-page .badge-category-tabs { padding: 4px; border: 0; background: #eeece6; border-radius: 999px; }
.atoms-app .achievement-page .badge-category-tabs button { font-family: var(--font-ui, sans-serif); font-size: 13px; font-weight: 400; border: 0; border-radius: 999px; color: #706d65; background: transparent; }
.atoms-app .achievement-page .badge-category-tabs button.active { color: #272722; background: #fffdf9; box-shadow: none; }
.atoms-app .achievement-page .achievement-badges { gap: 32px 14px; padding: 32px 0; }
.atoms-app .achievement-tile { display: flex; flex-direction: column; align-items: center; gap: 8px; min-width: 0; padding: 0; border: 0; background: transparent; color: #272722; cursor: pointer; }
.atoms-app .achievement-art { display: grid; place-items: center; width: 100%; aspect-ratio: 1; }
.atoms-app .achievement-art img { width: 100%; height: 100%; object-fit: contain; filter: none; }
.atoms-app .achievement-tile strong { font-family: var(--font-ui, sans-serif); font-size: 13px; font-weight: 500; line-height: 1.5; }
.atoms-app .achievement-tile .achievement-count { font-family: var(--font-ui, sans-serif); font-size: 11px; font-weight: 400; line-height: 1.4; color: #77736b; font-variant-numeric: tabular-nums; }
.atoms-app .locked .achievement-art,
.atoms-app .badge-wall-pin.locked .badge-wall-pin-art { filter: grayscale(1) contrast(.12) brightness(1.78); opacity: 1; }
.atoms-app .badge-wall-reset { position: absolute; top: 12px; right: 12px; z-index: 15; display: flex; align-items: center; gap: 5px; min-height: 44px; padding: 0 12px; border: 0; border-radius: 999px; background: #fffdf9; color: #706d65; font: 400 12px var(--font-ui, sans-serif); cursor: pointer; }
.atoms-app .badge-wall-reset svg { width: 14px; height: 14px; }
.atoms-app .badge-detail-page { background: #fffdf9; display: flex; flex-direction: column; }
.atoms-app .badge-detail-header { padding: 18px; }
.atoms-app .badge-detail-body { display: flex; flex: 1; flex-direction: column; align-items: center; justify-content: center; padding: 20px 28px 64px; text-align: center; }
.atoms-app .badge-detail-art { width: min(76%, 300px); flex-shrink: 0; margin: 0 auto 28px; }
.atoms-app .badge-detail-body h2 { margin: 0 0 16px; font: 500 26px/1.4 'Songti SC','SimSun',serif; color: #272722; }
.atoms-app .badge-detail-body p { max-width: 30ch; margin: 22px 0 0; font: 400 14px/1.8 var(--font-ui, sans-serif); color: #706d65; }
.atoms-app .badge-earned-label { padding: 6px 14px; border-radius: 8px; background: #fff1d0; color: #805b1d; font: 400 12px/1.5 var(--font-ui, sans-serif); }
.atoms-app .badge-detail-progress { width: 100%; position: relative; height: 24px; }
.atoms-app .badge-detail-progress progress { display: block; appearance: none; width: 100%; height: 24px; border: 0; border-radius: 999px; overflow: hidden; background: #eeece6; color: #e7bf62; }
.atoms-app .badge-detail-progress progress::-webkit-progress-bar { background: #eeece6; }
.atoms-app .badge-detail-progress progress::-webkit-progress-value { background: #e7bf62; border-radius: 999px; }
.atoms-app .badge-detail-progress progress::-moz-progress-bar { background: #e7bf62; border-radius: 999px; }
.atoms-app .badge-detail-progress span { position: absolute; inset: 0; display: grid; place-items: center; font: 400 11px var(--font-ui, sans-serif); color: #574526; font-variant-numeric: tabular-nums; }
.atoms-app :is(.achievement-tile,.badge-wall-reset):focus-visible { outline: 2px solid #a51c50; outline-offset: 4px; }
@media (max-width: 360px) { .atoms-app .achievement-page .achievement-badges { column-gap: 8px; } .atoms-app .achievement-tile strong { font-size: 12px; } }
