/* Decorative themes, lightweight effects and accessibility refinements */
/* ==============================
   黑金琥珀 · 星月夜空装饰 v2 — 华丽版
   ============================== */

/* --- 星星层 --- */
[data-theme="obsidian-gold"] .scroll-container {
  position: relative;
}

/* 小星星层 */
[data-theme="obsidian-gold"] .page-home .scroll-container::before,
[data-theme="obsidian-gold"] .page-life .scroll-container::before {
  content: '';
  position: fixed;
  top: 0; left: 0;
  width: 1px; height: 1px;
  pointer-events: none;
  z-index: 0;
  box-shadow:
    82vw 29vh 0 0 rgba(212,168,67,0.22),
    36vw 63vh 0 0 rgba(212,168,67,0.28),
    95vw 27vh 0 0 rgba(212,168,67,0.42),
    70vw 23vh 0 0 rgba(212,168,67,0.38),
    5vw 8vh 0 0 rgba(212,168,67,0.24),
    30vw 78vh 0 0 rgba(212,168,67,0.38),
    72vw 51vh 0 0 rgba(212,168,67,0.42),
    90vw 88vh 0 0 rgba(212,168,67,0.32),
    58vw 91vh 0 0 rgba(212,168,67,0.28),
    1vw 95vh 0 0 rgba(212,168,67,0.44),
    90vw 69vh 0 0 rgba(212,168,67,0.30),
    20vw 56vh 0 0 rgba(212,168,67,0.48),
    44vw 27vh 0 0 rgba(212,168,67,0.24),
    13vw 82vh 0 0 rgba(212,168,67,0.44),
    78vw 68vh 0 0 rgba(212,168,67,0.42),
    94vw 78vh 0 0 rgba(212,168,67,0.34),
    49vw 21vh 0 0 rgba(212,168,67,0.36),
    81vw 89vh 0 0 rgba(212,168,67,0.46),
    47vw 98vh 0 0 rgba(212,168,67,0.26),
    9vw 12vh 0 0 rgba(212,168,67,0.38),
    99vw 75vh 0 0 rgba(212,168,67,0.48),
    30vw 26vh 0 0 rgba(212,168,67,0.32),
    59vw 93vh 0 0 rgba(212,168,67,0.44),
    21vw 65vh 0 0 rgba(212,168,67,0.30),
    86vw 59vh 0 0 rgba(212,168,67,0.40),
    82vw 44vh 0 0 rgba(212,168,67,0.34),
    32vw 42vh 0 0 rgba(212,168,67,0.32),
    35vw 84vh 0 0 rgba(212,168,67,0.40),
    5vw 71vh 0 0 rgba(212,168,67,0.32),
    9vw 45vh 0 0 rgba(212,168,67,0.48),
    18vw 34vh 0 0 rgba(212,168,67,0.42),
    69vw 58vh 0 0 rgba(212,168,67,0.40),
    29vw 36vh 0 0 rgba(212,168,67,0.34),
    15vw 40vh 0 0 rgba(212,168,67,0.38),
    50vw 88vh 0 0 rgba(212,168,67,0.36),
    71vw 3vh 0 0 rgba(212,168,67,0.40),
    97vw 59vh 0 0 rgba(212,168,67,0.42),
    44vw 19vh 0 0 rgba(212,168,67,0.28),
    77vw 73vh 0 0 rgba(212,168,67,0.34),
    40vw 52vh 0 0 rgba(212,168,67,0.22),
    73vw 15vh 0 0 rgba(212,168,67,0.24),
    55vw 46vh 0 0 rgba(212,168,67,0.30),
    62vw 7vh 0 0 rgba(212,168,67,0.26),
    88vw 35vh 0 0 rgba(212,168,67,0.32),
    42vw 72vh 0 0 rgba(212,168,67,0.36);
  animation: starTwinkle1 6s ease-in-out infinite alternate;
}

/* 中星 + 亮星层 */
[data-theme="obsidian-gold"] .page-home .scroll-container::after,
[data-theme="obsidian-gold"] .page-life .scroll-container::after {
  content: '';
  position: fixed;
  top: 0; left: 0;
  width: 2px; height: 2px;
  border-radius: 50%;
  pointer-events: none;
  z-index: 0;
  box-shadow:
    63vw 18vh 1px 0 rgba(240,200,120,0.58),
    85vw 72vh 1px 0 rgba(240,200,120,0.56),
    22vw 58vh 1px 0 rgba(240,200,120,0.42),
    78vw 49vh 1px 0 rgba(240,200,120,0.56),
    29vw 17vh 1px 0 rgba(240,200,120,0.38),
    81vw 16vh 1px 0 rgba(240,200,120,0.34),
    5vw 75vh 1px 0 rgba(240,200,120,0.30),
    31vw 62vh 1px 0 rgba(240,200,120,0.48),
    61vw 85vh 1px 0 rgba(240,200,120,0.34),
    55vw 66vh 1px 0 rgba(240,200,120,0.42),
    94vw 14vh 1px 0 rgba(240,200,120,0.48),
    94vw 77vh 1px 0 rgba(240,200,120,0.52),
    14vw 54vh 1px 0 rgba(240,200,120,0.34),
    69vw 85vh 1px 0 rgba(240,200,120,0.32),
    /* 亮星 */
    28vw 63vh 2px 1px rgba(240,200,120,0.52),
    75vw 27vh 2px 1px rgba(240,200,120,0.42),
    74vw 5vh 2px 1px rgba(240,200,120,0.62),
    35vw 44vh 2px 1px rgba(240,200,120,0.50),
    66vw 46vh 2px 1px rgba(240,200,120,0.60),
    12vw 24vh 2px 1px rgba(240,200,120,0.48),
    54vw 79vh 2px 1px rgba(240,200,120,0.64);
  animation: starTwinkle2 8s ease-in-out infinite alternate;
}

@keyframes starTwinkle1 {
  0%   { opacity: 0.6; }
  50%  { opacity: 1; }
  100% { opacity: 0.7; }
}

@keyframes starTwinkle2 {
  0%   { opacity: 0.8; }
  35%  { opacity: 0.5; }
  65%  { opacity: 1; }
  100% { opacity: 0.65; }
}

/* --- SVG 月亮 (左上区域) --- */
[data-theme="obsidian-gold"] .page-home .hero {
  position: relative;
}
[data-theme="obsidian-gold"] .page-home .hero > * {
  position: relative;
  z-index: 2;
}

[data-theme="obsidian-gold"] .page-home .hero::before {
  content: '';
  position: absolute;
  top: -12px;
  left: -10px;
  width: 88px;
  height: 88px;
  background: url('/img/moon.svg?v=136') no-repeat center / contain;
  pointer-events: none;
  z-index: 1;
  animation: moonFloat 8s ease-in-out infinite;
  filter: drop-shadow(0 0 18px rgba(212,168,67,0.25));
}

@keyframes moonFloat {
  0%   { transform: translateY(0) scale(1);    filter: drop-shadow(0 0 18px rgba(212,168,67,0.25)); }
  50%  { transform: translateY(-6px) scale(1.03); filter: drop-shadow(0 0 28px rgba(212,168,67,0.38)); }
  100% { transform: translateY(0) scale(1);    filter: drop-shadow(0 0 18px rgba(212,168,67,0.25)); }
}

/* --- 右上角金色花纹 --- */
[data-theme="obsidian-gold"] .page-home::before {
  content: '';
  position: fixed;
  top: 0;
  right: 0;
  width: 200px;
  height: 200px;
  background: url('/img/flourish-tr.svg?v=136') no-repeat top right / contain;
  pointer-events: none;
  z-index: 0;
  opacity: 0.7;
  animation: flourishFade 10s ease-in-out infinite alternate;
}

/* --- 左下角金色花纹 --- */
[data-theme="obsidian-gold"] .page-home::after {
  content: '';
  position: fixed;
  bottom: 86px;
  left: 0;
  width: 180px;
  height: 180px;
  background: url('/img/flourish-bl.svg?v=136') no-repeat bottom left / contain;
  pointer-events: none;
  z-index: 0;
  opacity: 0.55;
  animation: flourishFade 12s ease-in-out infinite alternate-reverse;
}

@keyframes flourishFade {
  0%   { opacity: 0.45; }
  50%  { opacity: 0.75; }
  100% { opacity: 0.5; }
}

/* --- 金色光尘 (hero区域) --- */
[data-theme="obsidian-gold"] .page-home .hero::after {
  content: '';
  position: absolute;
  top: -20px;
  right: -20px;
  width: 200px;
  height: 200px;
  background: radial-gradient(
    ellipse at 60% 40%,
    rgba(240,200,120,0.08) 0%,
    rgba(212,168,67,0.04) 35%,
    transparent 65%
  );
  pointer-events: none;
  z-index: 0;
  animation: dustDrift 10s ease-in-out infinite alternate;
}

@keyframes dustDrift {
  0%   { transform: translate(0, 0) scale(1); opacity: 0.5; }
  50%  { transform: translate(-8px, -5px) scale(1.06); opacity: 0.9; }
  100% { transform: translate(4px, 2px) scale(0.96); opacity: 0.6; }
}

/* --- 浮动金色光斑 (LIFE页也有) --- */
[data-theme="obsidian-gold"] .page-life::before {
  content: '';
  position: fixed;
  top: 60px;
  right: -20px;
  width: 160px;
  height: 160px;
  background: url('/img/flourish-tr.svg?v=136') no-repeat top right / contain;
  pointer-events: none;
  z-index: 0;
  opacity: 0.45;
}

[data-theme="obsidian-gold"] .page-life::after {
  content: '';
  position: fixed;
  bottom: 86px;
  left: 0;
  width: 140px;
  height: 140px;
  background: url('/img/flourish-bl.svg?v=136') no-repeat bottom left / contain;
  pointer-events: none;
  z-index: 0;
  opacity: 0.35;
}

/* --- 其他主题关闭所有装饰 --- */
[data-theme="abyssal-jade"] .page-home .scroll-container::before,
[data-theme="abyssal-jade"] .page-home .scroll-container::after,
[data-theme="abyssal-jade"] .page-life .scroll-container::before,
[data-theme="abyssal-jade"] .page-life .scroll-container::after,
[data-theme="abyssal-jade"] .page-home::before,
[data-theme="abyssal-jade"] .page-home::after,
[data-theme="abyssal-jade"] .page-home .hero::before,
[data-theme="abyssal-jade"] .page-home .hero::after,
[data-theme="abyssal-jade"] .page-life::before,
[data-theme="abyssal-jade"] .page-life::after,
[data-theme="warm-paper"] .page-home .scroll-container::before,
[data-theme="warm-paper"] .page-home .scroll-container::after,
[data-theme="warm-paper"] .page-life .scroll-container::before,
[data-theme="warm-paper"] .page-life .scroll-container::after,
[data-theme="warm-paper"] .page-home::before,
[data-theme="warm-paper"] .page-home::after,
[data-theme="warm-paper"] .page-home .hero::before,
[data-theme="warm-paper"] .page-home .hero::after,
[data-theme="warm-paper"] .page-life::before,
[data-theme="warm-paper"] .page-life::after {
  display: none !important;
}

/* ==============================
   月藤私语 / Moonlit Vine
   All rules are isolated to [data-theme="moonlit-vine"].
   ============================== */
html[data-theme="moonlit-vine"],
[data-theme="moonlit-vine"] body {
  background: var(--bg-primary) !important;
}

[data-theme="moonlit-vine"] body::after {
  background: var(--bg-primary) !important;
}

[data-theme="moonlit-vine"] .app,
[data-theme="moonlit-vine"] .life-subpage,
[data-theme="moonlit-vine"] .set-panel,
[data-theme="moonlit-vine"] .page-settings.active {
  background-color: var(--bg-primary) !important;
  background-image:
    radial-gradient(circle at 86% 8%, rgba(183, 164, 206, 0.16), transparent 30%),
    radial-gradient(circle at 8% 86%, rgba(213, 166, 181, 0.12), transparent 34%),
    linear-gradient(155deg, rgba(23, 17, 30, 0.42), rgba(14, 11, 20, 0.92)),
    var(--bg-texture) !important;
  background-repeat: no-repeat, no-repeat, no-repeat, repeat !important;
  background-size: cover, cover, cover, 180px 180px !important;
}

[data-theme="moonlit-vine"] .safe-area-top,
[data-theme="moonlit-vine"] .safe-area-bottom,
[data-theme="moonlit-vine"] .life-subpage .sub-header,
[data-theme="moonlit-vine"] .set-panel-header {
  background: rgba(14, 11, 20, 0.92) !important;
  border-color: var(--border-subtle);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
}

/* One slow light layer and one sparse star layer: no DOM particles. */
[data-theme="moonlit-vine"] .page-home::before,
[data-theme="moonlit-vine"] .page-life::before,
[data-theme="moonlit-vine"] .page-settings::before {
  content: "";
  position: fixed;
  width: 54vw;
  height: 54vw;
  max-width: 270px;
  max-height: 270px;
  top: 7vh;
  right: -18vw;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(213, 166, 181, 0.13), rgba(183, 164, 206, 0.055) 42%, transparent 70%);
  pointer-events: none;
  z-index: 0;
  opacity: 0.72;
  animation: moonlitGlowDrift 22s ease-in-out infinite alternate;
}

[data-theme="moonlit-vine"] .page-home::after,
[data-theme="moonlit-vine"] .page-life::after,
[data-theme="moonlit-vine"] .page-settings::after {
  content: "";
  position: fixed;
  inset: 0;
  pointer-events: none;
  z-index: 0;
  opacity: 0.48;
  background:
    radial-gradient(circle at 14% 16%, rgba(242, 235, 241, 0.72) 0 0.7px, transparent 1.4px),
    radial-gradient(circle at 82% 24%, rgba(213, 166, 181, 0.62) 0 0.8px, transparent 1.6px),
    radial-gradient(circle at 67% 67%, rgba(183, 164, 206, 0.58) 0 0.7px, transparent 1.5px),
    radial-gradient(circle at 23% 76%, rgba(199, 163, 107, 0.48) 0 0.65px, transparent 1.4px),
    radial-gradient(circle at 91% 86%, rgba(242, 235, 241, 0.54) 0 0.75px, transparent 1.5px);
  animation: moonlitStarBreath 13s ease-in-out infinite alternate;
}

[data-theme="moonlit-vine"] .page > .scroll-container,
[data-theme="moonlit-vine"] .life-subpage > .sub-header,
[data-theme="moonlit-vine"] .life-subpage > .scroll-container,
[data-theme="moonlit-vine"] .set-panel > .set-panel-header,
[data-theme="moonlit-vine"] .set-panel > .scroll-container {
  position: relative;
  z-index: 1;
}

[data-theme="moonlit-vine"] .life-subpage,
[data-theme="moonlit-vine"] .set-panel {
  position: absolute !important;
}

/* Smoked-glass surfaces shared by home, life, diary, notes, todo and settings. */
[data-theme="moonlit-vine"] .card,
[data-theme="moonlit-vine"] .settings-card,
[data-theme="moonlit-vine"] .settings-group,
[data-theme="moonlit-vine"] .diary-entry,
[data-theme="moonlit-vine"] .task-card,
[data-theme="moonlit-vine"] .weather-card,
[data-theme="moonlit-vine"] .bookmark-card,
[data-theme="moonlit-vine"] .life-card,
[data-theme="moonlit-vine"] .set-group,
[data-theme="moonlit-vine"] .calendar-container,
[data-theme="moonlit-vine"] .calendar-today-card,
[data-theme="moonlit-vine"] .memory-panel,
[data-theme="moonlit-vine"] .memory-status-card,
[data-theme="moonlit-vine"] .afterglow-section,
[data-theme="moonlit-vine"] .playnote-section,
[data-theme="moonlit-vine"] .dom-task-card {
  background:
    linear-gradient(145deg, rgba(57, 41, 65, 0.66), rgba(27, 20, 35, 0.76)) !important;
  border: 1px solid rgba(237, 213, 226, 0.11) !important;
  box-shadow:
    inset 0 1px 0 rgba(255, 244, 249, 0.055),
    0 14px 34px rgba(4, 2, 8, 0.26),
    0 2px 8px rgba(4, 2, 8, 0.22) !important;
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
}

[data-theme="moonlit-vine"] .afterglow-card,
[data-theme="moonlit-vine"] .playnote-card,
[data-theme="moonlit-vine"] .weather-day,
[data-theme="moonlit-vine"] .event-item,
[data-theme="moonlit-vine"] .memory-star-card,
[data-theme="moonlit-vine"] .note-card {
  background: rgba(20, 14, 27, 0.54) !important;
  border-color: rgba(237, 213, 226, 0.095) !important;
  box-shadow: inset 0 1px 0 rgba(255, 244, 249, 0.035);
}

[data-theme="moonlit-vine"] .card::after,
[data-theme="moonlit-vine"] .life-card::after,
[data-theme="moonlit-vine"] .set-group::after {
  content: "";
  position: absolute;
  left: 14%;
  right: 14%;
  top: 0;
  height: 1px;
  background: linear-gradient(90deg, transparent, rgba(242, 235, 241, 0.18), transparent);
  pointer-events: none;
}

/* Inputs remain calmer and darker than their surrounding cards. */
[data-theme="moonlit-vine"] input,
[data-theme="moonlit-vine"] textarea,
[data-theme="moonlit-vine"] select,
[data-theme="moonlit-vine"] .memory-search-input,
[data-theme="moonlit-vine"] .playnote-input,
[data-theme="moonlit-vine"] .playnote-textarea,
[data-theme="moonlit-vine"] .playnote-comment-input {
  background: rgba(9, 7, 14, 0.48) !important;
  color: var(--text-primary) !important;
  border-color: rgba(213, 166, 181, 0.17) !important;
  caret-color: var(--accent-primary);
}

[data-theme="moonlit-vine"] input:focus,
[data-theme="moonlit-vine"] textarea:focus,
[data-theme="moonlit-vine"] select:focus {
  border-color: rgba(213, 166, 181, 0.48) !important;
  box-shadow: 0 0 0 3px rgba(213, 166, 181, 0.08);
  outline: none;
}

[data-theme="moonlit-vine"] .tab-bar {
  background: rgba(14, 11, 20, 0.86) !important;
  border-top: 1px solid rgba(237, 213, 226, 0.11);
  box-shadow: 0 -10px 30px rgba(4, 2, 8, 0.24);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
}

[data-theme="moonlit-vine"] .tab.active {
  color: var(--tab-active);
  text-shadow: 0 0 15px rgba(213, 166, 181, 0.34);
}

[data-theme="moonlit-vine"] .todo-check {
  background: rgba(14, 11, 20, 0.42);
  box-shadow: inset 0 0 0 1px rgba(242, 235, 241, 0.025);
}

[data-theme="moonlit-vine"] .todo-check.done {
  background: var(--green-check);
  border-color: rgba(134, 183, 162, 0.82);
  box-shadow: 0 0 16px rgba(134, 183, 162, 0.16);
}

[data-theme="moonlit-vine"] .theme-option.active {
  border-color: rgba(213, 166, 181, 0.58);
  box-shadow: 0 0 0 1px rgba(213, 166, 181, 0.30), 0 10px 28px rgba(4, 2, 8, 0.20);
}

[data-theme="moonlit-vine"] .hero-heart {
  color: #D5A6B5;
  text-shadow: 0 0 16px rgba(213, 166, 181, 0.36);
}

[data-theme="moonlit-vine"] .days-number {
  background: linear-gradient(135deg, #F0D7DF, #D5A6B5 48%, #B7A4CE);
  -webkit-background-clip: text;
  background-clip: text;
}

[data-theme="moonlit-vine"] .calendar-today-card,
[data-theme="moonlit-vine"] .memory-star-hero {
  background:
    radial-gradient(circle at 82% 8%, rgba(183, 164, 206, 0.15), transparent 38%),
    linear-gradient(145deg, rgba(60, 40, 68, 0.72), rgba(21, 15, 29, 0.84)) !important;
}

[data-theme="moonlit-vine"] .bm-btn-submit,
[data-theme="moonlit-vine"] .calendar-toolbar button,
[data-theme="moonlit-vine"] .memory-search-btn,
[data-theme="moonlit-vine"] .memory-refresh-btn,
[data-theme="moonlit-vine"] .avatar-upload-btn,
[data-theme="moonlit-vine"] .playnote-btn.save,
[data-theme="moonlit-vine"] .playnote-comment-send {
  min-height: 44px;
  background: linear-gradient(135deg, rgba(213, 166, 181, 0.94), rgba(183, 164, 206, 0.90)) !important;
  color: #17111E !important;
  border-color: rgba(242, 235, 241, 0.18) !important;
  box-shadow: 0 8px 20px rgba(4, 2, 8, 0.18);
}

[data-theme="moonlit-vine"] .theme-option,
[data-theme="moonlit-vine"] .set-row,
[data-theme="moonlit-vine"] .sub-back,
[data-theme="moonlit-vine"] [data-panel-close] {
  min-height: 44px;
}

/* Small, single-shot transitions; dynamic long lists do not animate continuously. */
[data-theme="moonlit-vine"] .page.active,
[data-theme="moonlit-vine"] .life-subpage.open,
[data-theme="moonlit-vine"] .set-panel.active {
  animation: moonlitPageIn 340ms cubic-bezier(.22, .8, .32, 1) both;
}

[data-theme="moonlit-vine"] .page.active > .scroll-container,
[data-theme="moonlit-vine"] .life-subpage.open > .scroll-container,
[data-theme="moonlit-vine"] .set-panel.active > .scroll-container {
  flex: 1 1 auto !important;
  min-height: 0 !important;
  overflow-y: auto !important;
  -webkit-overflow-scrolling: touch !important;
  overscroll-behavior: contain;
  transform: none !important;
  animation: none !important;
}

[data-theme="moonlit-vine"] .hero,
[data-theme="moonlit-vine"] .shortcuts,
[data-theme="moonlit-vine"] .life-grid,
[data-theme="moonlit-vine"] .set-group {
  animation: moonlitCardIn 440ms cubic-bezier(.22, .8, .32, 1) both;
}

[data-theme="moonlit-vine"] .life-subpage.open {
  animation: moonlitSubpageIn 300ms cubic-bezier(.22, .8, .32, 1) both;
}

[data-theme="moonlit-vine"] button:active,
[data-theme="moonlit-vine"] .shortcut-btn:active,
[data-theme="moonlit-vine"] .life-card:active,
[data-theme="moonlit-vine"] .theme-option:active {
  transform: scale(0.985);
}

@keyframes moonlitGlowDrift {
  from { transform: translate3d(0, 0, 0) scale(0.98); opacity: 0.56; }
  to { transform: translate3d(-6px, 4px, 0) scale(1.03); opacity: 0.78; }
}

@keyframes moonlitStarBreath {
  from { opacity: 0.32; }
  to { opacity: 0.58; }
}

@keyframes moonlitPageIn {
  from { opacity: 0.72; }
  to { opacity: 1; }
}

@keyframes moonlitCardIn {
  from { opacity: 0; transform: translate3d(0, 5px, 0); }
  to { opacity: 1; transform: translate3d(0, 0, 0); }
}

@keyframes moonlitSubpageIn {
  from { opacity: 0.78; }
  to { opacity: 1; }
}

@media (max-width: 390px) {
  [data-theme="moonlit-vine"] .app,
  [data-theme="moonlit-vine"] .life-subpage,
  [data-theme="moonlit-vine"] .set-panel,
  [data-theme="moonlit-vine"] .page-settings.active {
    background-size: cover, cover, cover, 150px 150px !important;
  }

  [data-theme="moonlit-vine"] .page-home::before,
  [data-theme="moonlit-vine"] .page-life::before,
  [data-theme="moonlit-vine"] .page-settings::before {
    right: -24vw;
    opacity: 0.60;
  }
}

@media (prefers-reduced-motion: reduce) {
  [data-theme="moonlit-vine"] *,
  [data-theme="moonlit-vine"] *::before,
  [data-theme="moonlit-vine"] *::after {
    animation: none !important;
    transition-duration: 0.01ms !important;
    transition-delay: 0ms !important;
    scroll-behavior: auto !important;
  }

  [data-theme="moonlit-vine"] .page-home::before,
  [data-theme="moonlit-vine"] .page-life::before,
  [data-theme="moonlit-vine"] .page-settings::before {
    transform: none !important;
    opacity: 0.62;
  }
}

/* ===== Frontend safety & accessibility v140 ===== */
.sr-only { position:absolute !important; width:1px !important; height:1px !important; padding:0 !important; margin:-1px !important; overflow:hidden !important; clip:rect(0,0,0,0) !important; white-space:nowrap !important; border:0 !important; }
button, .todo-check, [role="button"], [role="tab"], [role="radio"] { font-family:inherit; -webkit-tap-highlight-color:transparent; user-select:none; -webkit-user-select:none; }
button:focus-visible, [role="button"]:focus-visible, [role="tab"]:focus-visible, [role="radio"]:focus-visible, input:focus-visible, textarea:focus-visible, select:focus-visible { outline:2px solid var(--accent-primary); outline-offset:3px; }
.load-state { display:flex; flex-direction:column; align-items:center; gap:10px; padding:18px 14px; color:var(--text-secondary); text-align:center; font-size:13px; line-height:1.6; }
.load-state-error { color:var(--red-urgent); }
.load-state-retry { min-height:44px; padding:8px 18px; border-radius:999px; border:1px solid var(--border-gold); background:var(--gold-dim); color:var(--gold-primary); }
.inline-load-warning, .entry-editor-error, .cal-form-error { margin:8px 0; padding:9px 11px; border-radius:10px; border:1px solid rgba(217,130,136,.28); background:rgba(217,130,136,.08); color:var(--red-urgent); font-size:12px; line-height:1.5; }
.todo-check, .bm-add-btn, .bm-btn, .bm-comment-send, .dom-complete-btn, .dom-report-submit, .playnote-add { appearance:none; -webkit-appearance:none; font-family:inherit; }
.todo-check { padding:0; }
.bm-add-btn, .playnote-add { display:block; width:100%; }
.bm-add-btn { background:transparent; }
.bm-btn { border:0; background:transparent; }
.bm-btn-submit { background:var(--gold-primary); }
.diary-entry-header[role="button"], .bm-card-header[role="button"], .memory-star-card[role="button"], .playnote-card-main[role="button"], .afterglow-card[role="button"] { cursor:pointer; }
.diary-content, .note-content, .bm-text, .bm-comment-content, .dom-task-content, .dom-task-detail, .dom-report-bubble, .dom-review-bubble, .playnote-card-content, .afterglow-modal-text { user-select:text; -webkit-user-select:text; }
@media (max-width:480px) { .cal-nav-btn, .entry-action, .bm-comment-send, .dom-complete-btn, .dom-report-submit { min-height:44px; min-width:44px; } }
