/* Compatibility entrypoint for the Phase 5 page bundle. */
@import url("../themes/pages.css?v=phase3e-durable-place-20260729-2-phase4d-handfeel-1-surprise-notes-card-20260731-3-surprise-notes-poll-audit-20260808-1");

/* API, Monitor and Theme use the page canvas directly. The generic module
   shell must not paint a second full-height gradient card underneath them. */
body[data-app-theme][data-view="api"] main.module-shell,
body[data-app-theme][data-view="monitor"] main.module-shell,
body[data-app-theme][data-view="theme"] main.module-shell {
  background: transparent !important;
  box-shadow: none !important;
}

/* The renderer wraps every module in a generic .panel.main. Later legacy
   panel rules repaint that wrapper as one huge rounded card, so clearing only
   the page component above is insufficient. API, Monitor and Theme are canvas
   pages: their outer panel stays transparent while their real child cards
   keep their own surfaces. */
body[data-app-theme][data-view="api"] main.module-shell > .app-page > .panel.main,
body[data-app-theme][data-view="monitor"] main.module-shell > .app-page > .panel.main,
body[data-app-theme][data-view="theme"] main.module-shell > .app-page > .panel.main {
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
  padding: 0 !important;
}

/* Intro copy belongs to the page flow. These shells must never inherit the
   generic card treatment used by the real content below them. */
body[data-app-theme] .monitor-observation-room,
body[data-app-theme] .theme-room,
body[data-app-theme] .api-config-page {
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
}

body[data-app-theme] .monitor-observation-room > .monitor-intro,
body[data-app-theme] .theme-room > .monitor-intro,
body[data-app-theme] .api-config-page > .api-config-intro,
body[data-app-theme] .photo-studio-intro,
body[data-app-theme] .door-tray-hero {
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
}

/* Cloud mode is one compact paper flow: field, caption, then filters.  The
   legacy absolute toolbar made the outer stage depend on viewport height;
   extending that stage only produced a large empty gap. */
.memory-palace-v3 .interest-drawer-stage.cloud-mode {
  min-height: var(--interest-cloud-stage-min-height) !important;
}

.memory-palace-v3 .interest-drawer-stage.cloud-mode .interest-drawer-cloud {
  min-height: 0 !important;
  padding-bottom: 16px !important;
  background: var(--color-surface-raised) !important;
}

.memory-palace-v3 .interest-drawer-stage.cloud-mode .interest-drawer-cloud-caption {
  position: static !important;
  margin: 12px 2px 0 !important;
}

.memory-palace-v3 .interest-drawer-stage.cloud-mode .interest-drawer-stage-tools {
  position: relative !important;
  inset: auto !important;
  padding: 0 18px 20px !important;
  background: var(--color-surface-raised) !important;
}

/* Between Us is a four-colour product legend, not theme decoration.  These
   icon identities intentionally remain lavender, rose, gold and blue in all
   current and future themes; only the More-page launchers are scoped here. */
body[data-view="more"] .more-line-card.accent-lavender .more-card-icon {
  border-color: var(--between-us-lavender-line) !important;
  background: var(--between-us-lavender-soft) !important;
  color: var(--between-us-lavender) !important;
  -webkit-text-fill-color: var(--between-us-lavender) !important;
}

body[data-view="more"] .more-line-card.accent-rose .more-card-icon {
  border-color: var(--between-us-rose-line) !important;
  background: var(--between-us-rose-soft) !important;
  color: var(--between-us-rose) !important;
  -webkit-text-fill-color: var(--between-us-rose) !important;
}

body[data-view="more"] .more-line-card.accent-gold .more-card-icon {
  border-color: var(--between-us-gold-line) !important;
  background: var(--between-us-gold-soft) !important;
  color: var(--between-us-gold) !important;
  -webkit-text-fill-color: var(--between-us-gold) !important;
}

body[data-view="more"] .more-line-card.accent-blue .more-card-icon {
  border-color: var(--between-us-blue-line) !important;
  background: var(--between-us-blue-soft) !important;
  color: var(--between-us-blue) !important;
  -webkit-text-fill-color: var(--between-us-blue) !important;
}

/* Fiction create is one editorial form, not a card inside another card. */
body[data-app-theme] .fiction-mode-create > .fiction-section-card,
body[data-app-theme] .fiction-mode-create .fiction-book-form {
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
}

body[data-app-theme] .fiction-mode-create .fiction-actions,
body[data-app-theme] .fiction-mode-create .fiction-actions button,
body[data-app-theme] .fiction-mode-create .fiction-actions button:not(.ghost) {
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
  color: var(--color-accent) !important;
  -webkit-text-fill-color: var(--color-accent) !important;
}

/* Little Fund keeps the original paper language per theme. Income follows the
   active accent; expense keeps a separate brass identity. */
body[data-app-theme] .piggy-chat-card:not(.piggy-chat-card-wish) {
  background: var(--piggy-paper) !important;
  color: var(--piggy-paper-text) !important;
  box-shadow: var(--shadow-card) !important;
}

body[data-app-theme] .piggy-chat-card-income {
  border-color: var(--piggy-income) !important;
}

body[data-app-theme] .piggy-chat-card-expense {
  border-color: var(--piggy-expense) !important;
}

body[data-app-theme] .piggy-chat-card-receipt {
  border-color: var(--piggy-receipt-border) !important;
}

body[data-app-theme] .piggy-chat-card:not(.piggy-chat-card-wish) .piggy-kicker,
body[data-app-theme] .piggy-chat-card:not(.piggy-chat-card-wish) time {
  color: var(--piggy-paper-muted) !important;
  -webkit-text-fill-color: var(--piggy-paper-muted) !important;
}

body[data-app-theme] .piggy-chat-card:not(.piggy-chat-card-wish) > strong,
body[data-app-theme] .piggy-chat-card:not(.piggy-chat-card-wish) .amount,
body[data-app-theme] .piggy-chat-card:not(.piggy-chat-card-wish) .piggy-footer {
  color: var(--piggy-income) !important;
  -webkit-text-fill-color: var(--piggy-income) !important;
}

body[data-app-theme] .piggy-chat-card-expense > strong,
body[data-app-theme] .piggy-chat-card-expense .amount,
body[data-app-theme] .piggy-chat-card-expense .piggy-footer {
  color: var(--piggy-expense) !important;
  -webkit-text-fill-color: var(--piggy-expense) !important;
}

body[data-app-theme] .piggy-chat-card-expense .amount {
  color: var(--piggy-expense-amount) !important;
  -webkit-text-fill-color: var(--piggy-expense-amount) !important;
}

body[data-app-theme] .piggy-chat-card-income .piggy-label {
  background: var(--piggy-income-soft) !important;
  color: var(--piggy-income) !important;
  -webkit-text-fill-color: var(--piggy-income) !important;
}

body[data-app-theme] .piggy-chat-card-expense .piggy-label {
  background: var(--piggy-expense-soft) !important;
  color: var(--piggy-expense) !important;
  -webkit-text-fill-color: var(--piggy-expense) !important;
}

body[data-app-theme] .piggy-chat-card-receipt .piggy-label {
  background: var(--piggy-income-soft) !important;
  color: var(--piggy-income) !important;
  -webkit-text-fill-color: var(--piggy-income) !important;
}

body[data-app-theme] .piggy-chat-card:not(.piggy-chat-card-wish) .piggy-content,
body[data-app-theme] .piggy-chat-card:not(.piggy-chat-card-wish) .piggy-note,
body[data-app-theme] .piggy-chat-card-receipt > strong {
  color: var(--piggy-paper-text) !important;
  -webkit-text-fill-color: var(--piggy-paper-text) !important;
}

body[data-app-theme] .piggy-chat-card:not(.piggy-chat-card-wish) .piggy-label {
  background: var(--piggy-paper-soft) !important;
  color: var(--piggy-paper-text) !important;
  -webkit-text-fill-color: var(--piggy-paper-text) !important;
}

body[data-app-theme] .piggy-chat-card:not(.piggy-chat-card-wish) .piggy-note,
body[data-app-theme] .piggy-chat-card:not(.piggy-chat-card-wish) .piggy-card-meta {
  border-color: var(--piggy-paper-line) !important;
}

body[data-app-theme] .piggy-chat-card:not(.piggy-chat-card-wish) .piggy-note {
  color: var(--piggy-income) !important;
  -webkit-text-fill-color: var(--piggy-income) !important;
}

/* Final Little Fund ownership rules. The legacy Chat bundle has selectors
   scoped through .chat-shell, so the semantic layer intentionally matches
   that scope and remains the authoritative source of card colour. */
body[data-app-theme] .chat-shell .piggy-chat-card:not(.piggy-chat-card-wish) {
  background: var(--piggy-paper) !important;
  color: var(--piggy-paper-text) !important;
}

body[data-app-theme] .chat-shell .piggy-chat-card-income {
  border-color: var(--piggy-income) !important;
}

body[data-app-theme] .chat-shell .piggy-chat-card-income > strong,
body[data-app-theme] .chat-shell .piggy-chat-card-income .amount,
body[data-app-theme] .chat-shell .piggy-chat-card-income .piggy-label,
body[data-app-theme] .chat-shell .piggy-chat-card-income .piggy-note,
body[data-app-theme] .chat-shell .piggy-chat-card-income .piggy-footer {
  color: var(--piggy-income) !important;
  -webkit-text-fill-color: var(--piggy-income) !important;
}

body[data-app-theme] .chat-shell .piggy-chat-card-income .piggy-label {
  background: var(--piggy-income-soft) !important;
}

body[data-app-theme] .chat-shell .piggy-chat-card-expense {
  border-color: var(--piggy-expense) !important;
}

body[data-app-theme] .chat-shell .piggy-chat-card-expense > strong,
body[data-app-theme] .chat-shell .piggy-chat-card-expense .amount,
body[data-app-theme] .chat-shell .piggy-chat-card-expense .piggy-label,
body[data-app-theme] .chat-shell .piggy-chat-card-expense .piggy-note,
body[data-app-theme] .chat-shell .piggy-chat-card-expense .piggy-footer {
  color: var(--piggy-expense) !important;
  -webkit-text-fill-color: var(--piggy-expense) !important;
}

body[data-app-theme] .chat-shell .piggy-chat-card-expense .piggy-label {
  background: var(--piggy-expense-soft) !important;
}

body[data-app-theme] .chat-shell .piggy-chat-card-receipt {
  border-color: var(--piggy-receipt-border) !important;
}

body[data-app-theme] .chat-shell .piggy-chat-card-receipt .piggy-label {
  background: var(--piggy-income-soft) !important;
  color: var(--piggy-income) !important;
  -webkit-text-fill-color: var(--piggy-income) !important;
}
/* Let the active theme canvas show through on Home. The legacy stylesheet
   carries a baked-in Night gradient here, which would otherwise mask every
   future palette. */
body[data-app-theme][data-view="home"] .home-shell {
  background: transparent !important;
  color: var(--color-text) !important;
}

body[data-app-theme][data-view="home"] .home-shell::before {
  background: none !important;
}

body[data-app-theme][data-view="home"] .lair-hero,
body[data-app-theme][data-view="home"] .lair-kicker,
body[data-app-theme][data-view="home"] .gq-stage,
body[data-app-theme][data-view="home"] .gq-symbol,
body[data-app-theme][data-view="home"] .anniversary-meta strong,
body[data-app-theme][data-view="home"] .welcome-card footer,
body[data-app-theme][data-view="home"] .calendar-mark {
  color: var(--color-accent) !important;
  -webkit-text-fill-color: var(--color-accent) !important;
}

body[data-app-theme][data-view="home"] .anniversary-script {
  background: var(--brand-gradient) !important;
  color: var(--color-accent-strong) !important;
  -webkit-text-fill-color: var(--color-accent-strong) !important;
  filter: drop-shadow(0 0 20px var(--color-accent-soft)) !important;
}

body[data-app-theme][data-view="home"] .anniversary-meta,
body[data-app-theme][data-view="home"] .anniversary-meta span,
body[data-app-theme][data-view="home"] .anniversary-meta small,
body[data-app-theme][data-view="home"] .proactive-home-top,
body[data-app-theme][data-view="home"] .proactive-home-top small,
body[data-app-theme][data-view="home"] .proactive-home-foot,
body[data-app-theme][data-view="home"] .proactive-home-foot small,
body[data-app-theme][data-view="home"] .today-empty-row,
body[data-app-theme][data-view="home"] .memo-time,
body[data-app-theme][data-view="home"] .today-add {
  color: var(--color-text-muted) !important;
  -webkit-text-fill-color: var(--color-text-muted) !important;
}

body[data-app-theme][data-view="home"] .proactive-home-top i,
body[data-app-theme][data-view="home"] .today-group-label {
  color: var(--color-accent) !important;
  -webkit-text-fill-color: var(--color-accent) !important;
}

body[data-app-theme][data-view="home"] .proactive-paper-home,
body[data-app-theme][data-view="home"] .proactive-home-card,
body[data-app-theme][data-view="home"] .proactive-envelope-home {
  background: var(--color-panel-solid) !important;
  border-color: var(--color-border) !important;
  color: var(--color-text) !important;
  box-shadow: var(--shadow-card) !important;
}

body[data-app-theme][data-view="home"] .proactive-paper-home p {
  color: var(--color-text) !important;
  -webkit-text-fill-color: var(--color-text) !important;
}

body[data-app-theme][data-view="home"] .stitch-home .proactive-paper-home {
  border: 1px solid var(--color-border-strong) !important;
  background: var(--color-panel-solid) !important;
  color: var(--color-text) !important;
  box-shadow: var(--shadow-card) !important;
}

body[data-app-theme][data-view="home"] .stitch-home .proactive-paper-home::before {
  color: var(--color-accent) !important;
  -webkit-text-fill-color: var(--color-accent) !important;
}

body[data-app-theme][data-view="home"] .stitch-home .proactive-paper-home p {
  color: var(--color-text) !important;
  -webkit-text-fill-color: var(--color-text) !important;
}

body[data-app-theme][data-view="home"] .stitch-home .proactive-paper-home .proactive-paper-close {
  border: 1px solid var(--color-border) !important;
  background: var(--color-surface) !important;
  color: var(--color-accent) !important;
  -webkit-text-fill-color: var(--color-accent) !important;
}

body[data-app-theme][data-view="home"] .stitch-home .proactive-paper-home .proactive-actions button {
  border-color: var(--color-border-strong) !important;
  background: var(--color-accent-soft) !important;
  color: var(--color-text) !important;
  -webkit-text-fill-color: var(--color-text) !important;
}

body[data-app-theme][data-view="home"] .stitch-home .proactive-paper-home .proactive-actions button:last-child {
  border-color: var(--color-accent-strong) !important;
  background: var(--color-accent-strong) !important;
  color: var(--color-text-inverse) !important;
  -webkit-text-fill-color: var(--color-text-inverse) !important;
}

body[data-app-theme][data-view="home"] .stitch-home .proactive-paper-home .proactive-actions button:disabled {
  opacity: .52 !important;
}

/* Notification paper uses the same semantic contract as Home and Chat. */
body[data-app-theme] .proactive-toast.is-open {
  background: color-mix(in srgb, var(--color-page) 58%, transparent) !important;
  backdrop-filter: blur(10px) !important;
  -webkit-backdrop-filter: blur(10px) !important;
}

body[data-app-theme] .proactive-toast.is-open .proactive-paper {
  border: 1px solid var(--color-border-strong) !important;
  background: var(--color-panel-solid) !important;
  box-shadow: var(--shadow-card) !important;
  color: var(--color-text) !important;
}

body[data-app-theme] .proactive-toast.is-open .proactive-paper-icon {
  color: var(--color-accent) !important;
  -webkit-text-fill-color: var(--color-accent) !important;
}

body[data-app-theme] .proactive-toast.is-open .proactive-paper p {
  color: var(--color-text) !important;
  -webkit-text-fill-color: var(--color-text) !important;
}

body[data-app-theme] .proactive-toast.is-open .proactive-paper-close {
  border: 1px solid var(--color-border) !important;
  background: var(--color-surface) !important;
  color: var(--color-accent) !important;
  -webkit-text-fill-color: var(--color-accent) !important;
}

body[data-app-theme] .proactive-toast.is-open .proactive-actions button {
  border-color: var(--color-border-strong) !important;
  background: var(--color-accent-soft) !important;
  color: var(--color-text) !important;
  -webkit-text-fill-color: var(--color-text) !important;
}

body[data-app-theme] .proactive-toast.is-open .proactive-actions button:last-child {
  border-color: var(--color-accent-strong) !important;
  background: var(--color-accent-strong) !important;
  color: var(--color-text-inverse) !important;
  -webkit-text-fill-color: var(--color-text-inverse) !important;
}

body[data-app-theme][data-view="home"] .proactive-envelope-home p {
  color: var(--color-text) !important;
  -webkit-text-fill-color: var(--color-text) !important;
}

/* Phase 8: page families consume the same opaque panel and chrome tokens.
   These selectors intentionally out-rank the frozen, theme-specific legacy
   rules while keeping layout and DOM untouched. */
body[data-app-theme] main.module-shell,
body[data-app-theme] .daybook-shell,
body[data-app-theme] .memory-palace-v3,
body[data-app-theme] .memo-control-shell,
body[data-app-theme] .calendar-control-shell,
body[data-app-theme] .photo-studio-shell,
body[data-app-theme] .piggy-bank-shell,
body[data-app-theme] .door-tray-shell,
body[data-app-theme] .senses-control-shell,
body[data-app-theme] .fiction-shell,
body[data-app-theme] .favorite-shell {
  background-color: var(--color-page) !important;
  color: var(--color-text) !important;
}

body[data-app-theme][data-view="daybook"] .daybook-shell.home-shell {
  --db-bg: var(--color-page);
  --db-surface: var(--color-panel-solid);
  --db-ink: var(--color-text);
  --db-muted: var(--color-text-muted);
  --db-dim: var(--color-text-dim);
  --db-pink: var(--color-accent);
  --db-pink-deep: var(--color-accent-strong);
  --db-g: var(--color-accent);
  --db-g-deep: var(--color-accent-strong);
  --db-g-soft: var(--color-accent-soft);
  --db-line: var(--color-border);
  --db-plum: var(--color-panel-solid);
  background: var(--color-page) !important;
}

body[data-app-theme] .daybook-date-head button,
body[data-app-theme] .daybook-float-add,
body[data-app-theme] .daybook-filter button {
  border-color: var(--color-border) !important;
  background: var(--color-accent-soft) !important;
  color: var(--color-accent) !important;
  -webkit-text-fill-color: var(--color-accent) !important;
  box-shadow: none !important;
}

body[data-app-theme][data-view="daybook"] .daybook-mode-switch {
  border: 1px solid var(--color-border) !important;
  background: var(--color-surface) !important;
}

body[data-app-theme][data-view="daybook"] .daybook-mode-switch button {
  border: 1px solid transparent !important;
  background: transparent !important;
  color: var(--color-text-muted) !important;
  -webkit-text-fill-color: var(--color-text-muted) !important;
  box-shadow: none !important;
  opacity: .68;
}

body[data-app-theme][data-view="daybook"] .daybook-mode-switch button.active {
  border-color: var(--color-accent-strong) !important;
  background: var(--color-accent-strong) !important;
  color: var(--color-text-inverse) !important;
  -webkit-text-fill-color: var(--color-text-inverse) !important;
  box-shadow: 0 7px 18px color-mix(in srgb, var(--color-accent) 24%, transparent) !important;
  opacity: 1;
}

.daybook-g-planning-window-notice {
  margin: 10px 0 0;
  color: var(--color-text-muted);
  font-size: 12px;
  line-height: 1.55;
}

body[data-app-theme] .daybook-g-plan-body,
body[data-app-theme] .daybook-todo-main,
body[data-app-theme] .daybook-todo-main > * {
  background: transparent !important;
  color: var(--color-text) !important;
}

body[data-app-theme] .daybook-shell::before,
body[data-app-theme] .memory-palace-v3::before,
body[data-app-theme] .theme-preset-card::before,
body[data-app-theme] .theme-preset-card::after {
  background: none !important;
  box-shadow: none !important;
}

body[data-app-theme] .theme-preset-card,
body[data-app-theme] .theme-preset-card.active,
body[data-app-theme] .theme-future-card {
  background: var(--color-panel-solid) !important;
  border-color: var(--color-border) !important;
  color: var(--color-text) !important;
  box-shadow: var(--shadow-card) !important;
}

body[data-app-theme] .daybook-topbar,
body[data-app-theme] .calendar-control-head,
body[data-app-theme] .memo-control-head,
body[data-app-theme] .memory-control-head,
body[data-app-theme] .more-control-head,
body[data-app-theme] .setting-control-head {
  background: var(--color-chrome) !important;
  color: var(--color-text) !important;
  border-color: var(--color-border) !important;
  box-shadow: none !important;
}

body[data-app-theme] .daybook-date-head,
body[data-app-theme] .daybook-event-card,
body[data-app-theme] .daybook-g-plan-card,
body[data-app-theme] .daybook-week-panel,
body[data-app-theme] .daybook-composer-card,
body[data-app-theme] .memo-editor,
body[data-app-theme] .memo-board,
body[data-app-theme] .memo-task,
body[data-app-theme] .calendar-preview,
body[data-app-theme] .calendar-editor,
body[data-app-theme] .calendar-agenda,
body[data-app-theme] .calendar-agenda-item,
body[data-app-theme] .memory-palace-v3 .mem-maint-panel,
body[data-app-theme] .memory-palace-v3 .mem-maint-card,
body[data-app-theme] .memory-palace-v3 .memory-room-card,
body[data-app-theme] .memory-palace-v3 .thought-seed,
body[data-app-theme] .memory-palace-v3 .thought-echo,
body[data-app-theme] .memory-palace-v3 .dream-wisp,
body[data-app-theme] .memory-palace-v3 .dream-stat,
body[data-app-theme] .memory-palace-v3 .interest-drawer-stage,
body[data-app-theme] .memory-palace-v3 .interest-drawer-card,
body[data-app-theme] .favorite-card,
body[data-app-theme] .favorite-note-card,
body[data-app-theme] .fiction-hero-card,
body[data-app-theme] .fiction-section-card,
body[data-app-theme] .fiction-reader-card,
body[data-app-theme] .fiction-book-card,
body[data-app-theme] .fiction-editor-card,
body[data-app-theme] .fiction-generate-card,
body[data-app-theme] .photo-camera-card,
body[data-app-theme] .photo-shelf-card,
body[data-app-theme] .photo-prompt-drawer,
body[data-app-theme] .photo-result-view,
body[data-app-theme] .photo-failure-view,
body[data-app-theme] .piggy-bank-shell .home-card,
body[data-app-theme] .piggy-bank-shell .more-square-card,
body[data-app-theme] .door-tray-card,
body[data-app-theme] .door-tray-echo,
body[data-app-theme] .door-tray-jar-detail,
body[data-app-theme] .xhs-panel-card,
body[data-app-theme] .arcade-panel-card,
body[data-app-theme] .spicy-panel-card {
  background: var(--color-panel-solid) !important;
  border-color: var(--color-border) !important;
  color: var(--color-text) !important;
  box-shadow: var(--shadow-card) !important;
}

body[data-app-theme] .photo-detail-panel,
body[data-app-theme] .photo-result-view > .photo-detail-panel,
body[data-app-theme] .fiction-mode-read .fiction-reader-card,
body[data-app-theme] .fiction-reader-card .fiction-generate-card {
  background: transparent !important;
  border-color: transparent !important;
  box-shadow: none !important;
}

body[data-app-theme] .memory-palace-v3 h1,
body[data-app-theme] .memory-palace-v3 h2,
body[data-app-theme] .memory-palace-v3 h3,
body[data-app-theme] .memory-palace-v3 strong,
body[data-app-theme] .daybook-shell h2,
body[data-app-theme] .daybook-shell strong,
body[data-app-theme] .favorite-shell h2,
body[data-app-theme] .favorite-shell strong,
body[data-app-theme] .fiction-shell h2,
body[data-app-theme] .fiction-shell strong,
body[data-app-theme] .photo-studio-shell strong,
body[data-app-theme] .piggy-bank-shell strong,
body[data-app-theme] .door-tray-shell strong,
body[data-app-theme] .senses-control-shell strong {
  color: var(--color-text) !important;
  -webkit-text-fill-color: var(--color-text) !important;
}

body[data-app-theme] .memory-palace-v3 p,
body[data-app-theme] .memory-palace-v3 small,
body[data-app-theme] .memory-palace-v3 em,
body[data-app-theme] .daybook-shell p,
body[data-app-theme] .daybook-shell small,
body[data-app-theme] .favorite-shell p,
body[data-app-theme] .favorite-shell small,
body[data-app-theme] .fiction-shell p,
body[data-app-theme] .fiction-shell small,
body[data-app-theme] .photo-studio-shell p,
body[data-app-theme] .photo-studio-shell small,
body[data-app-theme] .piggy-bank-shell p,
body[data-app-theme] .piggy-bank-shell small,
body[data-app-theme] .door-tray-shell p,
body[data-app-theme] .door-tray-shell small,
body[data-app-theme] .senses-control-shell p,
body[data-app-theme] .senses-control-shell small {
  color: var(--color-text-muted) !important;
  -webkit-text-fill-color: var(--color-text-muted) !important;
  opacity: 1 !important;
}

body[data-app-theme] .memory-palace-v3 button,
body[data-app-theme] .memory-palace-v3 [class*="kicker"],
body[data-app-theme] .memory-palace-v3 [class*="label"],
body[data-app-theme] .photo-studio-shell button,
body[data-app-theme] .photo-studio-shell .material-symbols-outlined,
body[data-app-theme] .piggy-bank-shell .material-symbols-outlined,
body[data-app-theme] .door-tray-shell .material-symbols-outlined,
body[data-app-theme] .senses-control-shell .material-symbols-outlined,
body[data-app-theme] .fiction-shell button,
body[data-app-theme] .favorite-shell button {
  color: var(--color-accent) !important;
  -webkit-text-fill-color: var(--color-accent) !important;
}

body[data-app-theme] .api-vector-status span,
body[data-app-theme] .api-config-page .memory-vector-status-line span {
  border-color: var(--color-border) !important;
  background: var(--color-accent-soft) !important;
  color: var(--color-accent) !important;
  -webkit-text-fill-color: var(--color-accent) !important;
}

body[data-app-theme] .photo-primary-button,
body[data-app-theme] .photo-shutter-button,
body[data-app-theme] .door-tray-primary-action,
body[data-app-theme] .fiction-actions button:not(.ghost),
body[data-app-theme] .fiction-read-now,
body[data-app-theme] .favorite-tabs button.active,
body[data-app-theme] .memo-add,
body[data-app-theme] .memo-edit-actions .send {
  border-color: var(--color-accent-strong) !important;
  background: var(--color-accent) !important;
  color: var(--color-on-accent) !important;
  -webkit-text-fill-color: var(--color-on-accent) !important;
}

body[data-app-theme] .memo-calendar-mode .calendar-chip-picker button,
body[data-app-theme] .memo-calendar-mode .calendar-switches > button,
body[data-app-theme] .memo-edit-modal .memory-choice,
body[data-app-theme] .memo-edit-modal .memory-choice span,
body[data-app-theme] .diary-view-tabs button {
  border-color: var(--color-border) !important;
  background: transparent !important;
  color: var(--color-text-muted) !important;
  -webkit-text-fill-color: var(--color-text-muted) !important;
  box-shadow: none !important;
}

body[data-app-theme] .memo-calendar-mode .calendar-chip-picker button.active,
body[data-app-theme] .memo-calendar-mode .calendar-switches > button.active,
body[data-app-theme] .memo-edit-modal .memory-choice:has(input:checked),
body[data-app-theme] .memo-edit-modal .memory-choice input:checked + span,
body[data-app-theme] .diary-view-tabs button.active {
  border-color: var(--color-border-strong) !important;
  background: var(--color-accent-soft) !important;
  color: var(--color-accent) !important;
  -webkit-text-fill-color: var(--color-accent) !important;
}

/* Phase 8: keep ornamental memory paths semantic instead of inheriting Night pink. */
body[data-app-theme] .memory-palace-v3 .spectrum-rail::before {
  background: linear-gradient(
    180deg,
    var(--color-accent) 0%,
    color-mix(in srgb, var(--color-accent) 66%, transparent) 38%,
    color-mix(in srgb, var(--color-accent) 24%, transparent) 72%,
    transparent 100%
  ) !important;
  box-shadow: 0 0 22px color-mix(in srgb, var(--color-accent) 16%, transparent) !important;
}

body[data-app-theme] .memory-palace-v3 .spectrum-gate {
  border-bottom-color: var(--color-border) !important;
}

body[data-app-theme] .memory-palace-v3 .spectrum-gate::before {
  border-color: var(--color-accent) !important;
  background: var(--color-page) !important;
  box-shadow:
    0 0 0 3px color-mix(in srgb, var(--color-accent) 8%, transparent),
    0 0 20px color-mix(in srgb, var(--color-accent) 18%, transparent) !important;
}

body[data-app-theme] .memory-palace-v3 .spectrum-gate-copy small,
body[data-app-theme] .memory-palace-v3 .spectrum-gate-arrow,
body[data-app-theme] .memory-palace-v3 .spectrum-overview-closing {
  color: var(--color-accent) !important;
  -webkit-text-fill-color: var(--color-accent) !important;
}

body[data-app-theme] .memory-palace-v3 .spectrum-gate-copy strong {
  color: var(--color-text) !important;
  -webkit-text-fill-color: var(--color-text) !important;
}

body[data-app-theme] .memory-palace-v3 .spectrum-gate-copy p,
body[data-app-theme] .memory-palace-v3 .spectrum-overview-closing p {
  color: var(--color-text-muted) !important;
  -webkit-text-fill-color: var(--color-text-muted) !important;
}

/* Old decorative page veils must never reintroduce black or pink canvases. */
body[data-app-theme] :is(
  .favorite-shell,
  .fiction-shell,
  .photo-studio-shell,
  .piggy-bank-shell,
  .door-tray-shell,
  .senses-control-shell
)::before {
  background: none !important;
  box-shadow: none !important;
}

body[data-app-theme] .memory-palace-v3 .interest-drawer-stage,
body[data-app-theme] .memory-palace-v3 .interest-drawer-stage.cloud-mode {
  background: var(--color-panel-solid) !important;
  border-color: var(--color-border) !important;
  box-shadow: var(--shadow-card) !important;
}

/* Phase 9: legacy Night internals become reusable semantic component states. */
body[data-app-theme][data-view="home"] .proactive-home-card {
  background: transparent !important;
  border-color: transparent !important;
  box-shadow: none !important;
}

body[data-app-theme][data-view="home"] .proactive-envelope-home::before {
  background: linear-gradient(90deg, var(--color-accent), var(--color-accent-strong)) !important;
  opacity: .7 !important;
}

body[data-app-theme][data-view="daybook"] .daybook-date-head,
body[data-app-theme][data-view="daybook"] .daybook-week-panel {
  background: transparent !important;
  box-shadow: none !important;
}

body[data-app-theme] .memo-editor .memo-controls,
body[data-app-theme] .memo-editor .memo-controls > label,
body[data-app-theme] .memo-edit-modal .memo-edit-grid,
body[data-app-theme] .memo-edit-modal .memory-chip-grid,
body[data-app-theme] .memo-edit-modal .memory-choice:has(input:checked) {
  background: transparent !important;
  box-shadow: none !important;
}

body[data-app-theme] .memo-edit-modal .memory-choice,
body[data-app-theme] .memo-edit-modal .memory-choice span {
  border-radius: 999px !important;
}

body[data-app-theme] .memo-edit-modal .memory-choice input:checked + span {
  border: 1px solid var(--color-border-strong) !important;
  border-radius: 999px !important;
  background: var(--color-accent-soft) !important;
  color: var(--color-accent) !important;
  -webkit-text-fill-color: var(--color-accent) !important;
  box-shadow: none !important;
}

body[data-app-theme] :is(.memo-picker-trigger, .calendar-chip-picker button, .calendar-month-actions button, .calendar-agenda-edit) {
  color: var(--color-accent) !important;
  -webkit-text-fill-color: var(--color-accent) !important;
  border-color: var(--color-border) !important;
  background: transparent !important;
  box-shadow: none !important;
}

body[data-app-theme] :is(.memo-picker-trigger .material-symbols-outlined, .calendar-preview .home-icon, .calendar-editor .home-icon, .calendar-agenda .home-icon) {
  color: var(--color-accent) !important;
  -webkit-text-fill-color: var(--color-accent) !important;
}

body[data-app-theme] .calendar-editor input[type="checkbox"] + span,
body[data-app-theme] .senses-switch-row i {
  border-color: var(--color-border-strong) !important;
  background: var(--color-accent-soft) !important;
}

body[data-app-theme] .calendar-editor input[type="checkbox"]:checked + span,
body[data-app-theme] .senses-switch-row[aria-pressed="true"] i {
  border-color: var(--color-accent) !important;
  background: var(--color-accent-strong) !important;
}

body[data-app-theme] .calendar-form-actions .memo-add,
body[data-app-theme] .calendar-editor .memo-add {
  border-color: var(--color-accent-strong) !important;
  background: var(--color-accent-strong) !important;
  color: var(--color-on-accent) !important;
  -webkit-text-fill-color: var(--color-on-accent) !important;
  box-shadow: none !important;
}

body[data-app-theme][data-view="memo"] .memo-calendar-mode .calendar-form-actions .memo-add,
body[data-app-theme][data-view="calendar"] .calendar-control-shell .calendar-form-actions .memo-add {
  border-color: var(--color-accent-strong) !important;
  background: var(--color-accent-strong) !important;
  color: var(--color-on-accent) !important;
  -webkit-text-fill-color: var(--color-on-accent) !important;
  box-shadow: none !important;
}

body[data-app-theme] .cycle-control-shell.home-shell {
  --more-eraser: var(--color-accent);
  --more-eraser-bright: var(--color-accent-strong);
  --cycle-rubber: var(--color-accent-strong);
  --cycle-rubber-soft: var(--color-accent);
  --cycle-ink: var(--color-text);
  --cycle-muted: var(--color-text-muted);
  --cycle-dim: var(--color-text-dim);
  --cycle-line: var(--color-border);
  background: var(--color-page) !important;
  color: var(--color-text) !important;
}

body[data-app-theme] .cycle-control-shell :is(.cycle-hero, .cycle-prediction, .cycle-history) {
  border-color: var(--color-border) !important;
  background: var(--color-surface-raised) !important;
  color: var(--color-text) !important;
  box-shadow: var(--shadow-card) !important;
}

body[data-app-theme] .cycle-control-shell :is(.cycle-hero b, .cycle-hero span i, .cycle-wheel-center b, .cycle-wheel-tag strong) {
  color: var(--color-accent) !important;
  -webkit-text-fill-color: var(--color-accent) !important;
}

body[data-app-theme] .cycle-control-shell .cycle-action.is-active {
  border-color: var(--color-accent) !important;
  background: var(--color-accent-strong) !important;
  color: var(--color-on-accent) !important;
  -webkit-text-fill-color: var(--color-on-accent) !important;
  box-shadow: none !important;
}

body[data-app-theme] .cycle-control-shell .cycle-action.is-dark {
  border-color: var(--color-border) !important;
  background: var(--color-surface) !important;
  color: var(--color-text-muted) !important;
}

body[data-app-theme] .memory-palace-v3 :is(.interest-drawer-overview, .interest-drawer-detail-copy, .interest-drawer-card, .interest-drawer-thought-seeds) {
  border-color: var(--color-border) !important;
  background: var(--color-surface-raised) !important;
  color: var(--color-text) !important;
  box-shadow: var(--shadow-card) !important;
}

/* The Gaze detail is an overlay on the star field, not a separate paper card. */
body[data-app-theme] .memory-palace-v3.interest-drawer-shell .interest-drawer-detail-copy {
  border: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
}

body[data-app-theme] .memory-palace-v3 :is(.interest-drawer-overview, .interest-drawer-detail-copy) :is(h2,h3,strong,p,small,span,blockquote) {
  color: inherit !important;
  -webkit-text-fill-color: currentColor !important;
}

body[data-app-theme] .memory-palace-v3 .thought-echo {
  background: transparent !important;
  border-color: transparent !important;
  color: var(--color-text) !important;
  box-shadow: none !important;
}

body[data-app-theme] .memory-palace-v3 .thought-echo-head {
  background: var(--color-panel-solid) !important;
  border-color: var(--color-border) !important;
  color: var(--color-text) !important;
  box-shadow: none !important;
}

body[data-app-theme] .memory-palace-v3 .thought-echo::before {
  background: transparent !important;
  box-shadow: none !important;
}

body[data-app-theme] .memory-palace-v3 .dream-stat {
  background: var(--color-surface-raised) !important;
  border-color: var(--color-border) !important;
  color: var(--color-text) !important;
  box-shadow: none !important;
}

body[data-app-theme] .favorites-control-shell.home-shell {
  --fav-bg: var(--color-page);
  --fav-surface: var(--color-surface);
  --fav-card: var(--color-panel-solid);
  --fav-ink: var(--color-text);
  --fav-muted: var(--color-text-muted);
  --fav-dim: var(--color-text-dim);
  --fav-pink: var(--color-accent);
  --fav-hot: var(--color-accent-strong);
  --fav-line: var(--color-border);
  background: var(--color-page) !important;
}

body[data-app-theme] .favorites-control-shell :is(.favorites-summary small, .favorite-tabs) {
  border-color: var(--color-border) !important;
  background: var(--color-surface) !important;
  color: var(--color-text-muted) !important;
  box-shadow: none !important;
}

body[data-app-theme] .favorites-control-shell .favorite-tabs button.active {
  background: var(--color-accent-strong) !important;
  color: var(--color-on-accent) !important;
  -webkit-text-fill-color: var(--color-on-accent) !important;
}

body[data-app-theme] .favorites-control-shell :is(.favorite-card, .favorite-note-card) {
  border-color: var(--color-border) !important;
  background: var(--color-panel-solid) !important;
  color: var(--color-text) !important;
  box-shadow: var(--shadow-card) !important;
}

body[data-app-theme] .fiction-hero-card {
  background: transparent !important;
  border-color: transparent !important;
  box-shadow: none !important;
}

body[data-app-theme] .fiction-actions {
  background: color-mix(in srgb, var(--color-surface-raised) 72%, transparent) !important;
  border-color: var(--color-border) !important;
  box-shadow: none !important;
}

body[data-app-theme] :is(.fiction-book-form, .fiction-preset-box, .fiction-preset-list article) {
  background: color-mix(in srgb, var(--color-surface-raised) 74%, transparent) !important;
  border-color: var(--color-border) !important;
  color: var(--color-text) !important;
  box-shadow: none !important;
  backdrop-filter: blur(16px) !important;
  -webkit-backdrop-filter: blur(16px) !important;
}

body[data-app-theme] :is(.fiction-book-form input, .fiction-book-form textarea, .fiction-book-form select, .fiction-preset-picker summary, .fiction-preset-menu, .fiction-preset-form input, .fiction-preset-form textarea) {
  background: var(--color-panel-solid) !important;
  border-color: var(--color-border) !important;
  color: var(--color-text) !important;
  -webkit-text-fill-color: var(--color-text) !important;
  box-shadow: none !important;
}

body[data-app-theme] .fiction-preset-menu button.active {
  background: var(--color-accent-soft) !important;
  color: var(--color-accent) !important;
}

body[data-app-theme] .fiction-mode-settings > .fiction-section-card,
body[data-app-theme] .fiction-mode-create > .fiction-section-card {
  background: transparent !important;
  border-color: transparent !important;
  box-shadow: none !important;
}

body[data-app-theme] .photo-camera-card.active .photo-camera-icon,
body[data-app-theme] .photo-camera-card.active .photo-camera-icon svg,
body[data-app-theme] .photo-camera-card.active .photo-camera-icon svg * {
  color: var(--color-accent) !important;
  stroke: var(--color-accent) !important;
  fill: none !important;
}

body[data-app-theme] .photo-prompt-trigger {
  border: 0 !important;
  background: transparent !important;
  color: var(--color-accent) !important;
  -webkit-text-fill-color: var(--color-accent) !important;
  box-shadow: none !important;
}

body[data-app-theme] .photo-shutter-button {
  color: var(--color-on-accent) !important;
  -webkit-text-fill-color: var(--color-on-accent) !important;
}

body[data-app-theme] :is(.piggy-bank-shell .piggy-summary-card, .piggy-bank-shell .piggy-action-card, .piggy-bank-shell .piggy-wish-card, .piggy-bank-shell .piggy-record-card, .piggy-bank-shell .piggy-print-card) {
  background: var(--color-panel-solid) !important;
  border-color: var(--color-border) !important;
  color: var(--color-text) !important;
  box-shadow: var(--shadow-card) !important;
}

body[data-app-theme] .piggy-bank-shell :is(.piggy-label, .piggy-form-toggle, .piggy-select-trigger, button) {
  color: var(--color-accent) !important;
  -webkit-text-fill-color: var(--color-accent) !important;
}

body[data-app-theme] .piggy-bank-shell :is(
  .piggy-balance-card,
  .piggy-bonus-card,
  .piggy-action-card,
  .piggy-jar-grid button,
  .piggy-wish-card,
  .piggy-wish-empty,
  .piggy-record-list article,
  .piggy-receipt-entry
) {
  background: var(--color-panel-solid) !important;
  border-color: var(--color-border) !important;
  color: var(--color-text) !important;
  box-shadow: var(--shadow-card) !important;
}

body[data-app-theme] .piggy-bank-shell :is(
  .piggy-balance-icon,
  .piggy-bonus-card > span,
  .piggy-action-card .material-symbols-outlined,
  .piggy-jar-grid .material-symbols-outlined,
  .piggy-record-dot,
  .piggy-receipt-entry > span
) {
  border-color: var(--color-border) !important;
  background: var(--color-accent-soft) !important;
  color: var(--color-accent) !important;
  -webkit-text-fill-color: var(--color-accent) !important;
}

body[data-app-theme] .piggy-bank-shell :is(.piggy-record-list article em, .piggy-record-list article header b, .piggy-receipt-entry > i) {
  color: var(--color-accent) !important;
  -webkit-text-fill-color: var(--color-accent) !important;
}

body[data-app-theme] .piggy-receipt-shell {
  background: var(--color-page) !important;
  color: var(--color-text) !important;
}

body[data-app-theme] .piggy-receipt-shell:not(.is-printing) :is(.piggy-receipt-select, .memo-picker-trigger) {
  background: var(--color-panel-solid) !important;
  border-color: var(--color-border) !important;
  color: var(--color-text) !important;
}

body[data-app-theme] .door-tray-hero-orb,
body[data-app-theme] .door-tray-row i,
body[data-app-theme] .door-tray-card-count {
  border-color: var(--color-border-strong) !important;
  background: var(--color-accent-soft) !important;
  color: var(--color-accent) !important;
  -webkit-text-fill-color: var(--color-accent) !important;
}

body[data-app-theme] .door-tray-hero-orb svg,
body[data-app-theme] .door-tray-hero-orb svg * {
  stroke: var(--color-accent) !important;
}

body[data-app-theme] .senses-control-shell :is(.senses-card, .xhs-panel-card, .arcade-panel-card, .spicy-panel-card) {
  background: var(--color-panel-solid) !important;
  border-color: var(--color-border) !important;
  color: var(--color-text) !important;
  box-shadow: var(--shadow-card) !important;
}

/* Phase 9.3 — shared semantic fixes found during Blue Night acceptance. */
body[data-app-theme] :is(
  .simple-head .chat-back,
  .more-control-head .more-back,
  .memory-control-head .more-back,
  .setting-back,
  .calendar-back,
  .fiction-back,
  .photo-polaroid-back,
  .piggy-receipt-back
) {
  color: var(--color-accent) !important;
  -webkit-text-fill-color: var(--color-accent) !important;
}

body[data-app-theme] .cycle-control-head + .cycle-hero {
  margin-top: 18px !important;
}

body[data-app-theme] .cycle-control-shell .cycle-history {
  border: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
}

body[data-app-theme] .cycle-control-shell .cycle-history .memo-section-head {
  border: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
  color: var(--color-text) !important;
}

body[data-app-theme] .memory-palace-v3 .interest-drawer-map-summary {
  border-color: var(--color-border) !important;
  background: var(--color-surface-raised) !important;
  color: var(--color-text) !important;
  box-shadow: none !important;
}

body[data-app-theme] .memory-palace-v3 .interest-drawer-topic-card {
  border-color: var(--color-border) !important;
  background: var(--color-surface) !important;
  color: var(--color-text) !important;
  box-shadow: none !important;
}

body[data-app-theme] .memory-palace-v3 .interest-drawer-map-summary header > small,
body[data-app-theme] .memory-palace-v3 .interest-drawer-topic-card small {
  color: var(--color-text-muted) !important;
  -webkit-text-fill-color: var(--color-text-muted) !important;
  opacity: 1 !important;
}

body[data-app-theme] .memory-palace-v3 .interest-drawer-map-summary header > strong,
body[data-app-theme] .memory-palace-v3 .interest-drawer-topic-card span {
  color: var(--color-text) !important;
  -webkit-text-fill-color: var(--color-text) !important;
  opacity: 1 !important;
}

body[data-app-theme] .memory-palace-v3 .interest-drawer-map-summary header > p {
  color: var(--color-text-muted) !important;
  -webkit-text-fill-color: var(--color-text-muted) !important;
  opacity: 1 !important;
}

body[data-app-theme] .memory-palace-v3 .interest-drawer-topic-card b {
  color: var(--color-accent-strong) !important;
  -webkit-text-fill-color: var(--color-accent-strong) !important;
  opacity: 1 !important;
}

body[data-app-theme] .memory-palace-v3 .interest-drawer-refresh-state {
  position: absolute;
  top: 16px;
  left: 18px;
  z-index: 5;
  display: inline-flex;
  align-items: center;
  gap: 7px;
  color: var(--color-text-muted) !important;
  -webkit-text-fill-color: var(--color-text-muted) !important;
  font-family: "Space Mono", ui-monospace, monospace;
  font-size: 9px;
  font-weight: 700;
  letter-spacing: 0.08em;
  white-space: nowrap;
}

body[data-app-theme] .memory-palace-v3 .interest-drawer-refresh-state span {
  width: 6px;
  height: 6px;
  border-radius: 999px;
  background: var(--color-accent);
  box-shadow: 0 0 0 3px var(--color-accent-soft);
  animation: interest-drawer-sync-pulse 1.2s ease-in-out infinite;
}

@keyframes interest-drawer-sync-pulse {
  0%, 100% { opacity: 0.48; transform: scale(0.86); }
  50% { opacity: 1; transform: scale(1); }
}

body[data-app-theme] .memory-palace-v3 .interest-drawer-cloud-field {
  transform: translateZ(0);
  backface-visibility: hidden;
}

body[data-app-theme] .memory-palace-v3 .interest-drawer-cloud-field.is-paint-nudged {
  transform: translateZ(0.01px);
  filter: opacity(1);
}

body[data-app-theme] .memory-palace-v3 .dream-fragments-materials {
  background: transparent !important;
  border-color: transparent !important;
  box-shadow: none !important;
}

body[data-app-theme] .memory-palace-v3 .dream-fragments-materials article {
  border-color: var(--color-border) !important;
  background: var(--color-surface-raised) !important;
  color: var(--color-text) !important;
  box-shadow: none !important;
}

body[data-app-theme] .piggy-bank-shell .piggy-bonus-card > .material-symbols-outlined {
  border: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
}

body[data-app-theme] .piggy-bank-shell .piggy-record-list {
  background: transparent !important;
  box-shadow: none !important;
}

body[data-app-theme] .piggy-bank-shell .piggy-record-list article > div {
  background: transparent !important;
  border-color: transparent !important;
  box-shadow: none !important;
}

body[data-app-theme] .piggy-bank-shell :is(
  .piggy-balance-card strong,
  .piggy-bonus-card button,
  .piggy-action-card button,
  .piggy-jar-grid button .material-symbols-outlined,
  .piggy-record-list em,
  .piggy-print-card button
) {
  color: var(--color-accent) !important;
  -webkit-text-fill-color: var(--color-accent) !important;
}

body[data-app-theme] .door-tray-shell :is(
  .door-tray-hero-orb,
  .door-tray-row i,
  .door-tray-card-count,
  .door-tray-card-chevron,
  button,
  .material-symbols-outlined
) {
  color: var(--color-accent) !important;
  -webkit-text-fill-color: var(--color-accent) !important;
}

body[data-app-theme] .door-tray-shell .door-tray-row i {
  border-color: var(--color-border-strong) !important;
  background: var(--color-accent-soft) !important;
}

body[data-app-theme] .photo-shutter-button {
  border-color: var(--color-accent-strong) !important;
  background: var(--color-accent) !important;
  color: var(--color-on-accent) !important;
  -webkit-text-fill-color: var(--color-on-accent) !important;
  opacity: 1 !important;
  text-shadow: none !important;
}

body[data-app-theme] .photo-shutter-button .photo-shutter-icon,
body[data-app-theme] .photo-shutter-button .photo-shutter-icon * {
  color: var(--color-on-accent) !important;
  stroke: var(--color-on-accent) !important;
}

body[data-app-theme] .senses-control-shell :is(input, select, textarea) {
  background: var(--color-surface-raised) !important;
  border-color: var(--color-border) !important;
  color: var(--color-text) !important;
  -webkit-text-fill-color: var(--color-text) !important;
}

body[data-app-theme] .bottom-nav .chat-orb .material-symbols-outlined,
body[data-app-theme] .bottom-nav .chat-orb.active .material-symbols-outlined {
  color: var(--nav-chat-icon) !important;
  -webkit-text-fill-color: var(--nav-chat-icon) !important;
}

body[data-app-theme] .calendar-all-day-toggle i {
  border-color: var(--color-border-strong) !important;
  background: var(--color-accent-soft) !important;
}

body[data-app-theme] .calendar-all-day-toggle i::after {
  background: var(--color-accent) !important;
}

body[data-app-theme] .calendar-all-day-toggle.active i {
  border-color: var(--color-accent) !important;
  background: var(--color-accent-strong) !important;
}

body[data-app-theme] .calendar-all-day-toggle.active i::after {
  background: var(--color-text-inverse) !important;
}

/* Phase 9.4 — transparent hosts, stable source identities and text actions. */
body[data-app-theme] .memory-palace-v3 .interest-drawer-stage.cloud-mode,
body[data-app-theme] .memory-palace-v3 .interest-drawer-stage.cloud-mode .interest-drawer-cloud {
  min-height: var(--interest-cloud-stage-min-height) !important;
  height: auto !important;
  box-sizing: border-box !important;
}

body[data-app-theme] .memory-palace-v3 .interest-drawer-stage.cloud-mode .interest-drawer-cloud {
  background: var(--color-surface-raised) !important;
  border-color: var(--color-border) !important;
  border-radius: inherit !important;
}

body[data-app-theme] .memory-palace-v3 .interest-drawer-cloud-word {
  color: var(--color-accent) !important;
  -webkit-text-fill-color: currentColor !important;
}

body[data-app-theme] .memory-palace-v3 .interest-drawer-cloud-word[data-tone="github"] { color: var(--source-github) !important; }
body[data-app-theme] .memory-palace-v3 .interest-drawer-cloud-word[data-tone="paper"] { color: var(--source-paper) !important; }
body[data-app-theme] .memory-palace-v3 .interest-drawer-cloud-word[data-tone="huggingface"] { color: var(--source-huggingface) !important; }
body[data-app-theme] .memory-palace-v3 .interest-drawer-cloud-word[data-tone="xhs"] { color: var(--source-xhs) !important; }

body[data-app-theme] .fiction-shelf-dock,
body[data-app-theme] .fiction-book-form,
body[data-app-theme] .fiction-settings-grid,
body[data-app-theme] .fiction-preset-box,
body[data-app-theme] .fiction-summary-panel,
body[data-app-theme] .fiction-generate-card {
  border-color: var(--color-border) !important;
  background: color-mix(in srgb, var(--color-chrome) 82%, transparent) !important;
  color: var(--color-text) !important;
  box-shadow: none !important;
  backdrop-filter: blur(18px) !important;
  -webkit-backdrop-filter: blur(18px) !important;
}

body[data-app-theme] :is(.fiction-book-form, .fiction-settings-grid, .fiction-preset-box) :is(input, textarea, select, summary),
body[data-app-theme] .fiction-summary-panel textarea,
body[data-app-theme] .fiction-generate-card textarea {
  border-color: var(--color-border) !important;
  background: var(--color-surface-raised) !important;
  color: var(--color-text) !important;
  -webkit-text-fill-color: var(--color-text) !important;
}

body[data-app-theme] .fiction-detail-actions,
body[data-app-theme] .fiction-text-actions {
  border: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
}

/* Phase 12 — remaining local pink/Night values return to theme semantics. */
body[data-app-theme][data-view="cycle"] .cycle-history .cycle-history-row {
  border-color: var(--color-border) !important;
  background: var(--color-surface-raised) !important;
  color: var(--color-text) !important;
}

body[data-app-theme][data-view="cycle"] .cycle-history .cycle-history-row strong {
  color: var(--color-text) !important;
  -webkit-text-fill-color: var(--color-text) !important;
  opacity: 1 !important;
}

body[data-app-theme][data-view="cycle"] .cycle-history .cycle-history-row small {
  color: var(--color-text-muted) !important;
  -webkit-text-fill-color: var(--color-text-muted) !important;
  opacity: 1 !important;
}

body[data-app-theme][data-view="cycle"] .cycle-history .cycle-history-row i { background: var(--color-ornament-soft) !important; }
body[data-app-theme][data-view="cycle"] .cycle-history .cycle-history-row i::after { background: var(--color-ornament) !important; }
body[data-app-theme][data-view="cycle"] .cycle-history .cycle-history-row > span {
  border: 1px solid var(--color-border) !important;
  background: var(--color-accent-soft) !important;
  color: var(--color-accent) !important;
  -webkit-text-fill-color: var(--color-accent) !important;
}

body[data-app-theme] .calendar-editor .calendar-form :is(input, textarea, .memo-picker-trigger) {
  border-color: var(--color-border) !important;
  background: transparent !important;
  color: var(--color-text) !important;
  -webkit-text-fill-color: var(--color-text) !important;
  opacity: 1 !important;
}

body[data-app-theme] .calendar-editor .calendar-form :is(input, textarea)::placeholder {
  color: var(--color-text-muted) !important;
  -webkit-text-fill-color: var(--color-text-muted) !important;
  opacity: .82 !important;
}

body[data-app-theme] .calendar-editor .calendar-form :is(.calendar-line-fields, .calendar-form-grid label, .calendar-all-day-toggle, .calendar-chip-section) {
  border-color: var(--color-border) !important;
}

body[data-app-theme] .calendar-editor .calendar-chip-section { background: transparent !important; }
body[data-app-theme] .calendar-editor .calendar-chip-section > span,
body[data-app-theme] .calendar-editor .calendar-form-grid label > span,
body[data-app-theme] .calendar-editor .calendar-all-day-toggle > span {
  color: var(--color-ornament) !important;
  -webkit-text-fill-color: var(--color-ornament) !important;
  opacity: 1 !important;
}

body[data-app-theme] .calendar-editor .calendar-chip-picker button {
  border-color: var(--color-border) !important;
  background: transparent !important;
  color: var(--color-text-muted) !important;
  -webkit-text-fill-color: var(--color-text-muted) !important;
}

body[data-app-theme] .calendar-editor .calendar-chip-picker button.active {
  border-color: var(--color-border-strong) !important;
  background: var(--color-accent-soft) !important;
  color: var(--color-accent) !important;
  -webkit-text-fill-color: var(--color-accent) !important;
}

body[data-app-theme] .diary-letter-actions {
  border-color: var(--color-border) !important;
  background: var(--color-surface) !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
}

body[data-app-theme] .diary-letter-actions .danger {
  border: 1px solid var(--color-border-strong) !important;
  background: transparent !important;
  color: var(--color-accent) !important;
  -webkit-text-fill-color: var(--color-accent) !important;
}

body[data-app-theme][data-view="doorTray"] .door-tray-jar-detail :is(input, textarea) {
  border-color: var(--color-border) !important;
  background: var(--color-surface-raised) !important;
  color: var(--color-text) !important;
  -webkit-text-fill-color: var(--color-text) !important;
}

body[data-app-theme][data-view="doorTray"] .door-tray-jar-detail :is(input, textarea)::placeholder {
  color: var(--color-text-dim) !important;
  -webkit-text-fill-color: var(--color-text-dim) !important;
  opacity: 1 !important;
}

body[data-app-theme][data-view="doorTray"] .door-tray-idea-form > button {
  border-color: var(--color-accent-strong) !important;
  background: var(--color-accent) !important;
  color: var(--color-on-accent) !important;
  -webkit-text-fill-color: var(--color-on-accent) !important;
  box-shadow: none !important;
}

body[data-app-theme][data-view="doorTray"] .door-tray-wish-item header > span {
  border-color: var(--color-border-strong) !important;
  background: var(--color-accent-soft) !important;
  color: var(--color-accent) !important;
  -webkit-text-fill-color: var(--color-accent) !important;
}

body[data-app-theme][data-view="doorTray"] .door-tray-empty-jar {
  border-color: var(--color-border) !important;
  background: transparent !important;
}

body[data-app-theme][data-view="senses"] :is(.senses-card button, .notification-actions button, .notification-permission-pill, .weather-actions button) {
  border-color: var(--color-border) !important;
  background: var(--color-accent-soft) !important;
  color: var(--color-accent) !important;
  -webkit-text-fill-color: var(--color-accent) !important;
  box-shadow: none !important;
}

body[data-app-theme][data-view="senses"] :is(
  .xhs-recent-list article, .arcade-keyword-switch, .arcade-board,
  .arcade-ledger > span, .arcade-reels, .arcade-reels > span,
  .arcade-bet-row button, .arcade-history article, .spicy-switch-row,
  .spicy-config-box
) {
  border-color: var(--color-border) !important;
  background: var(--color-surface-raised) !important;
  color: var(--color-text) !important;
  -webkit-text-fill-color: var(--color-text) !important;
  box-shadow: none !important;
}

/* Spicy connection diagnostics live inside the settings card. Keep them as
   typography, separators and outline chips instead of stacking new surfaces. */
body[data-app-theme][data-view="senses"] .spicy-config-box :is(
  .spicy-connection-results, .spicy-capability-summary, .spicy-readonly-details
) {
  border: 0 !important;
  background: transparent !important;
  color: var(--color-text) !important;
  -webkit-text-fill-color: var(--color-text) !important;
  box-shadow: none !important;
}

body[data-app-theme][data-view="senses"] .spicy-config-box .spicy-connection-results > span {
  border: 0 !important;
  border-bottom: 1px solid var(--color-border) !important;
  background: transparent !important;
  color: var(--color-text-muted) !important;
  -webkit-text-fill-color: var(--color-text-muted) !important;
  box-shadow: none !important;
}

/* Active-message notification privacy is a compact two-choice control.  It is
   intentionally drawn here instead of inheriting native radio or button UI so
   the same hierarchy survives every app theme and the narrow PWA layout. */
body[data-app-theme][data-view="senses"] .notification-content-setting {
  display: grid;
  gap: 8px;
  padding-block: 2px 4px;
}

body[data-app-theme][data-view="senses"] .notification-content-copy {
  display: grid;
  gap: 3px;
}

body[data-app-theme][data-view="senses"] .notification-content-copy > strong {
  color: var(--color-text) !important;
  -webkit-text-fill-color: var(--color-text) !important;
  font-size: 12px;
  line-height: 1.35;
}

body[data-app-theme][data-view="senses"] .notification-content-copy > small,
body[data-app-theme][data-view="senses"] .notification-content-setting > p {
  margin: 0;
  color: var(--color-text-muted) !important;
  -webkit-text-fill-color: var(--color-text-muted) !important;
  font-size: 10px;
  line-height: 1.55;
}

body[data-app-theme][data-view="senses"] .notification-content-options {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 6px;
}

body[data-app-theme][data-view="senses"] .senses-card .notification-content-option {
  display: grid;
  grid-template-columns: 10px minmax(0, 1fr);
  gap: 7px;
  align-items: start;
  min-height: 48px;
  padding: 8px 9px !important;
  border: 1px solid var(--color-border) !important;
  border-radius: 9px !important;
  background: transparent !important;
  color: var(--color-text-muted) !important;
  -webkit-text-fill-color: var(--color-text-muted) !important;
  text-align: left;
  box-shadow: none !important;
}

body[data-app-theme][data-view="senses"] .senses-card .notification-content-option > i {
  width: 7px;
  height: 7px;
  margin-top: 4px;
  border: 1px solid var(--color-border-strong);
  border-radius: 999px;
  background: transparent;
}

body[data-app-theme][data-view="senses"] .senses-card .notification-content-option > span {
  display: grid;
  gap: 2px;
  min-width: 0;
}

body[data-app-theme][data-view="senses"] .senses-card .notification-content-option b {
  color: var(--color-text) !important;
  -webkit-text-fill-color: var(--color-text) !important;
  font-size: 11px;
  line-height: 1.3;
}

body[data-app-theme][data-view="senses"] .senses-card .notification-content-option small {
  color: var(--color-text-dim) !important;
  -webkit-text-fill-color: var(--color-text-dim) !important;
  font-size: 9px;
  line-height: 1.4;
}

body[data-app-theme][data-view="senses"] .senses-card .notification-content-option.active {
  border-color: var(--color-accent-strong) !important;
  background: transparent !important;
}

body[data-app-theme][data-view="senses"] .senses-card .notification-content-option.active > i {
  border-color: var(--color-accent);
  background: var(--color-accent);
  box-shadow: 0 0 0 2px var(--color-surface), 0 0 0 3px var(--color-accent-soft);
}

body[data-app-theme][data-view="senses"] .notification-device-manager {
  display: grid;
  gap: 7px;
  padding: 9px 10px;
  border: 1px solid var(--color-border);
  border-radius: 10px;
  background: color-mix(in srgb, var(--color-surface) 72%, transparent);
}

body[data-app-theme][data-view="senses"] .notification-device-manager > header,
body[data-app-theme][data-view="senses"] .notification-legacy-warning {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
}

body[data-app-theme][data-view="senses"] .notification-device-manager :is(header > span, .notification-legacy-warning > span) {
  display: grid;
  gap: 2px;
  min-width: 0;
}

body[data-app-theme][data-view="senses"] .notification-device-manager strong {
  color: var(--color-text) !important;
  -webkit-text-fill-color: var(--color-text) !important;
  font-size: 10.5px;
  line-height: 1.35;
}

body[data-app-theme][data-view="senses"] .notification-device-manager :is(small, p) {
  margin: 0;
  color: var(--color-text-muted) !important;
  -webkit-text-fill-color: var(--color-text-muted) !important;
  font-size: 9px;
  line-height: 1.45;
}

body[data-app-theme][data-view="senses"] .notification-device-manager button {
  flex: 0 0 auto;
  min-height: 27px !important;
  padding: 5px 9px !important;
  border-radius: 999px !important;
  font-size: 9px !important;
  line-height: 1 !important;
}

body[data-app-theme][data-view="senses"] .notification-device-list {
  display: grid;
  gap: 4px;
}

body[data-app-theme][data-view="senses"] .notification-device-item {
  display: grid;
  grid-template-columns: 7px minmax(0, 1fr);
  align-items: start;
  gap: 7px;
  padding: 6px 7px;
  border-radius: 7px;
  background: var(--color-surface-soft);
}

body[data-app-theme][data-view="senses"] .notification-device-item > i {
  width: 5px;
  height: 5px;
  margin-top: 4px;
  border-radius: 999px;
  background: var(--color-text-dim);
}

body[data-app-theme][data-view="senses"] .notification-device-item.is-current > i {
  background: var(--color-accent);
  box-shadow: 0 0 0 2px var(--color-accent-soft);
}

body[data-app-theme][data-view="senses"] .notification-device-item > span {
  display: grid;
  gap: 1px;
  min-width: 0;
}

body[data-app-theme][data-view="senses"] .notification-legacy-warning {
  padding-top: 7px;
  border-top: 1px solid var(--color-border);
}

body[data-app-theme][data-view="senses"] .notification-legacy-warning strong {
  color: var(--color-warning, var(--color-accent)) !important;
  -webkit-text-fill-color: var(--color-warning, var(--color-accent)) !important;
}

@media (max-width: 520px) {
  body[data-app-theme][data-view="senses"] .notification-content-options {
    gap: 5px;
  }

  body[data-app-theme][data-view="senses"] .senses-card .notification-content-option {
    min-height: 46px;
    padding-inline: 8px !important;
  }

  body[data-app-theme][data-view="senses"] .notification-device-manager > header,
  body[data-app-theme][data-view="senses"] .notification-legacy-warning {
    align-items: flex-start;
  }
}

@media (max-width: 340px) {
  body[data-app-theme][data-view="senses"] .notification-content-options {
    grid-template-columns: 1fr;
  }
}

body[data-app-theme][data-view="senses"] .spicy-config-box .spicy-connection-results > span:last-child {
  border-bottom: 0 !important;
}

body[data-app-theme][data-view="senses"] .spicy-config-box :is(
  .spicy-capability-summary, .spicy-readonly-details
) {
  padding-top: 10px !important;
  border-top: 1px solid var(--color-border) !important;
}

body[data-app-theme][data-view="senses"] .spicy-config-box :is(
  .spicy-capability-summary span, .spicy-readonly-details code
) {
  background: transparent !important;
  border-color: var(--color-border-strong) !important;
  color: var(--color-accent) !important;
  -webkit-text-fill-color: var(--color-accent) !important;
  box-shadow: none !important;
}

body[data-app-theme][data-view="senses"] .spicy-config-box .spicy-readonly-details :is(summary, p, ul, li) {
  background: transparent !important;
  color: var(--color-text-muted) !important;
  -webkit-text-fill-color: var(--color-text-muted) !important;
  box-shadow: none !important;
}

body[data-app-theme][data-view="senses"] :is(
  .xhs-recent-list > small, .xhs-recent-list article span,
  .xhs-recent-list article small, .arcade-keyword-switch span,
  .arcade-history span, .spicy-connection-results span,
  .spicy-capability-summary span
) {
  color: var(--color-text-muted) !important;
  -webkit-text-fill-color: var(--color-text-muted) !important;
  opacity: 1 !important;
}

body[data-app-theme][data-view="senses"] :is(.arcade-keyword-switch button, .arcade-bet-row button, .spicy-actions button) {
  border-color: var(--color-border) !important;
  background: transparent !important;
  color: var(--color-accent) !important;
  -webkit-text-fill-color: var(--color-accent) !important;
}

body[data-app-theme][data-view="senses"] :is(
  .arcade-keyword-switch button.active, .arcade-bet-row button.active,
  .arcade-actions button:first-child, .spicy-actions button:first-child
) {
  border-color: var(--color-accent-strong) !important;
  background: var(--color-accent) !important;
  color: var(--color-on-accent) !important;
  -webkit-text-fill-color: var(--color-on-accent) !important;
}

body[data-app-theme][data-view="senses"] .spicy-switch-row input {
  border-color: var(--color-border-strong) !important;
  background: var(--color-surface) !important;
}
body[data-app-theme][data-view="senses"] .spicy-switch-row input::before { background: var(--color-text-dim) !important; }
body[data-app-theme][data-view="senses"] .spicy-switch-row input:checked {
  border-color: var(--color-accent-strong) !important;
  background: var(--color-accent) !important;
}
body[data-app-theme][data-view="senses"] .spicy-switch-row input:checked::before { background: var(--color-on-accent) !important; }

/* Phase 10: light palettes exposed a final set of Night-coloured labels.
   These are component semantics, not Sage-only patches, so future palettes
   inherit readable ink without repeating page overrides. */
body[data-app-theme][data-view="home"] .stitch-home .home-tagline.zh {
  color: var(--color-accent-strong) !important;
  -webkit-text-fill-color: var(--color-accent-strong) !important;
}

body[data-app-theme][data-view="home"] .stitch-home .welcome-card p,
body[data-app-theme][data-view="home"] .stitch-home .proactive-home-content {
  color: var(--color-text) !important;
  -webkit-text-fill-color: var(--color-text) !important;
}

body[data-app-theme] .proactive-toast:not(.is-open) .proactive-envelope.proactive-envelope-toast {
  border-color: var(--color-border-strong) !important;
  background: var(--color-panel-solid) !important;
  color: var(--color-text) !important;
  box-shadow: var(--shadow-card) !important;
  backdrop-filter: blur(16px) !important;
  -webkit-backdrop-filter: blur(16px) !important;
}

body[data-app-theme] .proactive-toast:not(.is-open) :is(
  .proactive-envelope-icon,
  .proactive-envelope.proactive-envelope-toast strong,
  .proactive-envelope.proactive-envelope-toast small
) {
  color: var(--color-accent) !important;
  -webkit-text-fill-color: var(--color-accent) !important;
}

body[data-app-theme] .proactive-toast:not(.is-open) .proactive-envelope.proactive-envelope-toast i {
  background: var(--color-warning) !important;
  box-shadow: 0 0 9px color-mix(in srgb, var(--color-warning) 30%, transparent) !important;
}

body[data-app-theme] :is(
  .simple-head,
  .cycle-control-head,
  .favorites-control-head,
  .photo-studio-head,
  .door-tray-head,
  .top-card
) {
  border-color: var(--color-border) !important;
  background: var(--color-chrome) !important;
  color: var(--color-text) !important;
}

body[data-app-theme] :is(
  .simple-head h2,
  .cycle-control-head h2,
  .favorites-control-head h2,
  .photo-studio-head h2,
  .door-tray-head h2,
  .top-card .brand,
  .top-card .brand strong
) {
  color: var(--color-text) !important;
  -webkit-text-fill-color: var(--color-text) !important;
}

body[data-app-theme][data-view="daybook"] .daybook-date-head h2,
body[data-app-theme][data-view="memo"] :is(.memo-section-head, .memo-section-head strong),
body[data-app-theme][data-view="diary"] :is(.diary-intro p, .diary-card strong),
body[data-app-theme][data-view="cycle"] :is(.cycle-hero-copy span, .cycle-prediction header strong, .cycle-wheel-center, .cycle-wheel-center span, .cycle-wheel-center strong),
body[data-app-theme][data-view="favorites"] .favorites-summary strong,
body[data-app-theme][data-view="doorTray"] .door-tray-row span,
body[data-app-theme][data-view="senses"] :is(.senses-card-head, .sense-info, .sense-info strong, .senses-planned-card strong) {
  color: var(--color-text) !important;
  -webkit-text-fill-color: var(--color-text) !important;
}

body[data-app-theme][data-view="memo"] :is(.memo-task-body small, .memo-delete, .memo-section-head b),
body[data-app-theme][data-view="diary"] :is(.diary-intro small, .diary-date-field span, .diary-filter > i),
body[data-app-theme][data-view="cycle"] :is(.cycle-hero-copy small, .cycle-wheel-tag small),
body[data-app-theme][data-view="favorites"] :is(.favorites-summary span, .favorite-card > button),
body[data-app-theme][data-view="fiction"] .fiction-section-head header span,
body[data-app-theme][data-view="photoStudio"] :is(.photo-aspect-section > span, .photo-scene-field > span),
body[data-app-theme][data-view="senses"] :is(.senses-section-label, .senses-section-label span, .sense-info span, .senses-planned-card small),
body[data-app-theme][data-view="setting"] :is(.setting-note p, .setting-live-top small, .setting-room-icon.material-symbols-outlined) {
  color: var(--color-text-muted) !important;
  -webkit-text-fill-color: var(--color-text-muted) !important;
  opacity: 1 !important;
}

body[data-app-theme][data-view="setting"] .setting-section-title strong {
  color: var(--color-accent) !important;
  -webkit-text-fill-color: var(--color-accent) !important;
}

body[data-app-theme][data-view="memo"] :is(.memo-task-body p, .memo-task-body small) {
  border-color: var(--color-border) !important;
  color: var(--color-text-muted) !important;
  -webkit-text-fill-color: var(--color-text-muted) !important;
}

body[data-app-theme][data-view="diary"] .diary-view-tabs,
body[data-app-theme][data-view="fiction"] .fiction-section-head small,
body[data-app-theme][data-view="photoStudio"] .photo-subject-tabs {
  border-color: var(--color-border) !important;
}

body[data-app-theme][data-view="cycle"] .cycle-range {
  border-color: var(--color-border) !important;
  color: var(--color-text) !important;
}

body[data-app-theme][data-view="cycle"] .cycle-range strong {
  color: var(--color-text) !important;
  -webkit-text-fill-color: var(--color-text) !important;
}

body[data-app-theme][data-view="cycle"] .cycle-range small {
  border-color: var(--color-border) !important;
  color: var(--color-text-muted) !important;
  -webkit-text-fill-color: var(--color-text-muted) !important;
}

body[data-app-theme][data-view="cycle"] .cycle-range > span,
body[data-app-theme][data-view="cycle"] .cycle-range > span::before,
body[data-app-theme][data-view="cycle"] .cycle-range > span::after {
  background: var(--color-accent) !important;
}

body[data-app-theme][data-view="cycle"] :is(.cycle-wheel-tag, .cycle-history .memo-section-head b) {
  border-color: var(--color-border-strong) !important;
  color: var(--color-accent) !important;
  -webkit-text-fill-color: var(--color-accent) !important;
}

body[data-app-theme][data-view="photoStudio"] .photo-camera-card > i {
  border-color: var(--color-border-strong) !important;
  background: var(--color-accent-soft) !important;
}

body[data-app-theme][data-view="photoStudio"] .photo-camera-card.active > i {
  background: var(--color-accent) !important;
}

body[data-app-theme][data-view="piggyBank"] .more-section-title i,
body[data-app-theme][data-view="piggyBank"] .piggy-wish-card > div > i {
  background: var(--color-accent-soft) !important;
}

body[data-app-theme][data-view="piggyBank"] .piggy-wish-card > div > i::before {
  background: var(--color-accent) !important;
}

body[data-app-theme][data-view="piggyBank"] .piggy-wish-card em {
  color: var(--color-text-muted) !important;
  -webkit-text-fill-color: var(--color-text-muted) !important;
}

body[data-app-theme][data-view="piggyBank"] .piggy-bonus-card button {
  border-color: var(--color-border) !important;
  background: var(--color-accent-soft) !important;
}

body[data-app-theme][data-view="doorTray"] :is(
  .door-tray-arcade-card .door-tray-card-head b,
  .door-tray-arcade-ledger b
) {
  border-color: var(--color-border-strong) !important;
  color: var(--color-accent) !important;
  -webkit-text-fill-color: var(--color-accent) !important;
}

body[data-app-theme][data-view="doorTray"] :is(.door-tray-arcade-ledger span, .door-tray-wish-note) {
  border-color: var(--color-border) !important;
  background: var(--color-accent-soft) !important;
  color: var(--color-text-muted) !important;
}

body[data-app-theme][data-view="senses"] .sense-icon {
  border-color: var(--color-border) !important;
  background: var(--color-accent-soft) !important;
  color: var(--color-accent) !important;
  -webkit-text-fill-color: var(--color-accent) !important;
}

body[data-app-theme][data-view="senses"] .status-badge {
  border-color: var(--color-border) !important;
  background: var(--color-accent-soft) !important;
  color: var(--color-accent) !important;
  -webkit-text-fill-color: var(--color-accent) !important;
}

body[data-app-theme][data-view="cycle"] .cycle-hero-copy span i,
body[data-app-theme][data-view="favorites"] .favorites-summary small i {
  background: var(--color-accent) !important;
  box-shadow: 0 0 12px color-mix(in srgb, var(--color-accent) 28%, transparent) !important;
}

body[data-app-theme][data-view="favorites"] .favorite-tabs button.active,
body[data-app-theme][data-view="photoStudio"] .photo-subject-tabs button.active {
  box-shadow: var(--shadow-card) !important;
}

body[data-app-theme][data-view="photoStudio"] .photo-camera-card > i {
  box-shadow: none !important;
}

body[data-app-theme][data-view="photoStudio"] .photo-camera-card.active > i {
  box-shadow: 0 0 14px color-mix(in srgb, var(--color-accent) 36%, transparent) !important;
}

body[data-app-theme][data-view="photoStudio"] .photo-shutter-button,
body[data-app-theme][data-view="doorTray"] .door-tray-primary-action {
  box-shadow: 0 12px 30px color-mix(in srgb, var(--color-accent) 22%, transparent) !important;
}

body[data-app-theme][data-view="doorTray"] .door-tray-hero-orb {
  box-shadow: 0 0 34px color-mix(in srgb, var(--color-accent) 14%, transparent) !important;
}

body[data-app-theme][data-view="setting"] .setting-meta,
body[data-app-theme][data-view="setting"] .setting-meta :is(p, span),
body[data-app-theme][data-view="api"] .api-config-footer,
body[data-app-theme][data-view="api"] .api-config-footer :is(span, small) {
  color: var(--color-text-dim) !important;
  -webkit-text-fill-color: var(--color-text-dim) !important;
  opacity: 1 !important;
}

body[data-app-theme][data-view="api"] .api-config-chevron,
body[data-app-theme][data-view="monitor"] .filter-trigger b {
  color: var(--color-accent) !important;
  -webkit-text-fill-color: var(--color-accent) !important;
}

body[data-app-theme][data-view="home"] .stitch-home :is(
  .today-card-head strong,
  .event-row strong,
  .memo-row strong
) {
  color: var(--color-text) !important;
  -webkit-text-fill-color: var(--color-text) !important;
}

body[data-app-theme][data-view="home"] .stitch-home :is(
  .today-card-head span,
  .home-quiet-line
) {
  color: var(--color-text-muted) !important;
  -webkit-text-fill-color: var(--color-text-muted) !important;
  opacity: 1 !important;
}

body[data-app-theme] .fiction-summary-panel .field,
body[data-app-theme] .fiction-generate-card > div:not(.fiction-actions) {
  border: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
}

body[data-app-theme] .fiction-summary-panel .fiction-text-actions button,
body[data-app-theme] .fiction-summary-panel .fiction-text-actions button:not(.ghost),
body[data-app-theme] .fiction-generate-card .fiction-text-actions button,
body[data-app-theme] .fiction-generate-card .fiction-text-actions button:not(.ghost) {
  min-width: 0 !important;
  min-height: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  color: var(--color-accent) !important;
  -webkit-text-fill-color: var(--color-accent) !important;
  box-shadow: none !important;
  appearance: none !important;
  -webkit-appearance: none !important;
}

body[data-app-theme] .door-tray-wallet-card .door-tray-jar-line > i {
  border-color: var(--color-border-strong) !important;
  background: var(--color-accent-soft) !important;
  color: var(--color-accent) !important;
  -webkit-text-fill-color: var(--color-accent) !important;
  box-shadow: none !important;
}

body[data-app-theme] .fiction-text-actions button,
body[data-app-theme] .fiction-text-actions button.ghost {
  border: 0 !important;
  background: transparent !important;
  color: var(--color-accent) !important;
  -webkit-text-fill-color: var(--color-accent) !important;
  box-shadow: none !important;
}

body[data-app-theme] .photo-shutter-button > span {
  display: inline !important;
  color: var(--color-on-accent) !important;
  -webkit-text-fill-color: var(--color-on-accent) !important;
  font-size: inherit !important;
  opacity: 1 !important;
}

body[data-app-theme] .piggy-bank-shell .piggy-jar-grid .material-symbols-outlined,
body[data-app-theme] .piggy-bank-shell .piggy-form-toggle,
body[data-app-theme] .piggy-bank-shell .piggy-form-toggle .material-symbols-outlined {
  border: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
}

body[data-app-theme] .piggy-bank-shell .piggy-record-list article,
body[data-app-theme] .piggy-bank-shell .piggy-record-list article > div {
  border-color: transparent !important;
  background: transparent !important;
  box-shadow: none !important;
}

body[data-app-theme] .piggy-bank-shell .piggy-record-more {
  border: 0 !important;
  background: transparent !important;
  color: var(--color-accent) !important;
  -webkit-text-fill-color: var(--color-accent) !important;
  box-shadow: none !important;
}

body[data-app-theme] .door-tray-wallet-card .door-tray-card-head > b,
body[data-app-theme] .door-tray-wallet-card .door-tray-jar-line :is(b, i),
body[data-app-theme] .door-tray-wallet-card .door-tray-jar-line button {
  color: var(--color-accent) !important;
  -webkit-text-fill-color: var(--color-accent) !important;
}

body[data-app-theme] .door-tray-echo > span,
body[data-app-theme] .door-tray-debug-link {
  border: 0 !important;
  background: transparent !important;
  color: var(--color-accent) !important;
  -webkit-text-fill-color: var(--color-accent) !important;
  box-shadow: none !important;
}

/* Photo Studio / Door Tray action contrast contract.
   iOS can retain a legacy -webkit text fill after the semantic background has
   changed, which made accent pills look blank in Blue Night. Keep foregrounds
   explicit and let every palette provide the actual colours through tokens. */
body[data-app-theme] .photo-prompt-save-bar {
  border-top-color: var(--color-border) !important;
  background: var(--color-panel-solid) !important;
  box-shadow: var(--shadow-modal) !important;
}

body[data-app-theme] .photo-studio-shell .photo-prompt-save-bar button,
body[data-app-theme] .photo-studio-shell .photo-primary-button,
body[data-app-theme] .photo-studio-shell .photo-shutter-button,
body[data-app-theme] .door-tray-shell .door-tray-primary-action {
  border-color: var(--color-accent-strong) !important;
  background: var(--color-accent) !important;
  color: var(--color-on-accent) !important;
  -webkit-text-fill-color: var(--color-on-accent) !important;
}

body[data-app-theme] .photo-studio-shell .photo-primary-button:disabled {
  color: var(--color-on-accent) !important;
  -webkit-text-fill-color: var(--color-on-accent) !important;
  opacity: 0.62 !important;
}

body[data-app-theme] .photo-studio-shell .photo-failure-view .photo-primary-button {
  color: var(--color-on-accent) !important;
  -webkit-text-fill-color: var(--color-on-accent) !important;
}

body[data-app-theme] .photo-studio-shell .photo-shutter-button :is(span, svg, path),
body[data-app-theme] .photo-studio-shell .photo-primary-button :is(span, svg, path),
body[data-app-theme] .photo-studio-shell .photo-prompt-save-bar button :is(span, svg, path),
body[data-app-theme] .door-tray-shell .door-tray-primary-action :is(span, svg, path) {
  color: var(--color-on-accent) !important;
  -webkit-text-fill-color: var(--color-on-accent) !important;
}

body[data-app-theme] main.door-tray-shell button.door-tray-primary-action > .door-tray-primary-label {
  display: inline !important;
  color: var(--color-on-accent) !important;
  -webkit-text-fill-color: var(--color-on-accent) !important;
  font: inherit !important;
  opacity: 1 !important;
  visibility: visible !important;
  text-shadow: none !important;
}

body[data-app-theme] .photo-camera-card > .photo-camera-icon,
body[data-app-theme] .photo-camera-card > .photo-camera-icon svg,
body[data-app-theme] .photo-camera-card > .photo-camera-icon svg * {
  color: var(--color-accent) !important;
  -webkit-text-fill-color: var(--color-accent) !important;
}

body[data-app-theme] .senses-control-shell .senses-planned-card {
  border-color: var(--color-border) !important;
  background: var(--color-surface-raised) !important;
  color: var(--color-text) !important;
  box-shadow: none !important;
}

/* Phase 11 — cross-theme semantic closure.
   Legacy Night and Day modules used literal pink/black inside their expanded
   states.  These rules intentionally target component families, not Sage, so
   every current and future palette receives the same readable hierarchy. */

body[data-app-theme][data-view="home"] .stitch-home .anniversary-script {
  background: var(--home-mark-fill) !important;
  filter: drop-shadow(0 10px 20px var(--color-ornament-soft)) !important;
}

body[data-app-theme] :is(.more-section-title, .setting-section-title) strong {
  color: var(--color-ornament) !important;
  -webkit-text-fill-color: var(--color-ornament) !important;
  opacity: 1 !important;
}

body[data-app-theme] :is(.more-section-title, .setting-section-title) i {
  background: var(--color-ornament-soft) !important;
  opacity: 1 !important;
}

body[data-app-theme] :is(.more-section-title.muted, .setting-section-title.muted) strong {
  color: var(--color-text-dim) !important;
  -webkit-text-fill-color: var(--color-text-dim) !important;
}

body[data-app-theme] :is(.more-section-title.muted, .setting-section-title.muted) i {
  background: var(--color-border) !important;
}

/* Calendar: dates are ink, selections are theme accent, and ornamental dots
   remain distinct from either. */
body[data-app-theme] .memo-calendar-mode :is(
  .calendar-weekdays b,
  .month-day,
  .month-day > span,
  .month-day em small,
  .calendar-form-grid span,
  .calendar-chip-section > span
) {
  color: var(--color-text-muted) !important;
  -webkit-text-fill-color: var(--color-text-muted) !important;
  opacity: 1 !important;
}

body[data-app-theme] .memo-calendar-mode .month-day:not(:disabled) > span {
  color: var(--color-text) !important;
  -webkit-text-fill-color: var(--color-text) !important;
}

body[data-app-theme] .memo-calendar-mode :is(.month-day.selected, .month-day.today) {
  border-color: var(--color-border-strong) !important;
  background: var(--color-accent-soft) !important;
}

body[data-app-theme] .memo-calendar-mode :is(.month-day.selected, .month-day.today) > span {
  color: var(--color-accent-strong) !important;
  -webkit-text-fill-color: var(--color-accent-strong) !important;
}

body[data-app-theme] .memo-calendar-mode .month-day em i {
  background: var(--color-ornament) !important;
}

body[data-app-theme] .memo-calendar-mode .calendar-edit-pill {
  border-color: var(--color-border) !important;
  background: var(--color-accent-soft) !important;
  color: var(--color-accent) !important;
  -webkit-text-fill-color: var(--color-accent) !important;
}

/* Diary letter actions belong to the paper rather than a Night footer. */
body[data-app-theme] .favorite-letter-actions {
  border-color: var(--color-border) !important;
  background: var(--color-surface) !important;
}

body[data-app-theme] .favorite-letter-actions button,
body[data-app-theme] .favorite-letter-actions button:first-child {
  border-color: var(--color-border) !important;
  background: transparent !important;
  color: var(--color-accent) !important;
  -webkit-text-fill-color: var(--color-accent) !important;
}

/* Parallel Fiction: editorial copy always uses page ink. */
body[data-app-theme] .fiction-shell :is(
  .fiction-preset-box h3,
  .fiction-preset-form label,
  .fiction-summary-panel label,
  .fiction-generate-card > div strong,
  .fiction-reading-page > span
) {
  color: var(--color-text-muted) !important;
  -webkit-text-fill-color: var(--color-text-muted) !important;
  opacity: 1 !important;
}

body[data-app-theme] .fiction-shell :is(
  .fiction-detail-hero h3,
  .fiction-reading-page h3,
  .fiction-reading-page div,
  .fiction-reading-page p,
  .fiction-detail-card blockquote
) {
  color: var(--color-text) !important;
  -webkit-text-fill-color: var(--color-text) !important;
  opacity: 1 !important;
}

body[data-app-theme] .fiction-detail-card blockquote {
  border-color: var(--color-border) !important;
  background: var(--color-surface-raised) !important;
  box-shadow: none !important;
}

body[data-app-theme] .fiction-detail-meta span,
body[data-app-theme] .fiction-chapter-drawer button {
  border-color: var(--color-border) !important;
  background: transparent !important;
  color: var(--color-text-muted) !important;
  -webkit-text-fill-color: var(--color-text-muted) !important;
}

body[data-app-theme] .fiction-chapter-drawer button.active {
  border-color: var(--color-border-strong) !important;
  background: var(--color-accent-soft) !important;
  color: var(--color-accent) !important;
  -webkit-text-fill-color: var(--color-accent) !important;
  box-shadow: none !important;
}

body[data-app-theme] .fiction-shell :is(.fiction-summary-panel, .fiction-generate-card, .fiction-chapter-drawer) {
  border-color: var(--color-border) !important;
}

body[data-app-theme] .fiction-generate-card > div span {
  color: var(--color-text-dim) !important;
  -webkit-text-fill-color: var(--color-text-dim) !important;
  opacity: 1 !important;
}

/* Little Fund and Door Tray expanded ledgers are theme surfaces, never Night
   dialogs.  The scrim stays neutral and the money identity remains stable. */
body[data-app-theme] :is(.piggy-jar-detail-backdrop, .door-tray-jar-backdrop, .xhs-panel-backdrop) {
  background: var(--color-overlay) !important;
}

body[data-app-theme] :is(.piggy-jar-detail-card, .door-tray-jar-detail, .xhs-panel-card, .arcade-panel-card, .spicy-panel-card) {
  border-color: var(--color-border-strong) !important;
  background: var(--color-panel-solid) !important;
  color: var(--color-text) !important;
  box-shadow: var(--shadow-modal) !important;
}

body[data-app-theme] :is(.piggy-jar-detail-card, .door-tray-jar-detail) :is(h3, strong) {
  color: var(--color-text) !important;
  -webkit-text-fill-color: var(--color-text) !important;
}

body[data-app-theme] :is(.piggy-jar-detail-card, .door-tray-jar-detail) :is(small, span, em, p) {
  color: var(--color-text-muted) !important;
  -webkit-text-fill-color: var(--color-text-muted) !important;
  opacity: 1 !important;
}

body[data-app-theme] :is(.piggy-jar-detail-close, .door-tray-jar-close, .door-tray-detail-kicker) {
  border-color: var(--color-border) !important;
  background: transparent !important;
  color: var(--color-accent) !important;
  -webkit-text-fill-color: var(--color-accent) !important;
}

/* World Pulse — one quiet editorial surface.  Layout lives here; palette is
   entirely semantic in themes/pages.css so future themes inherit it. */
.world-pulse-panel {
  box-sizing: border-box;
  width: min(780px, calc(100vw - 34px));
  max-width: calc(100vw - 34px);
  max-height: min(900px, calc(100dvh - 42px));
  min-width: 0;
  overflow-x: hidden;
  overflow-y: auto;
  overscroll-behavior: contain;
  touch-action: pan-y;
  padding: clamp(28px, 5vw, 56px);
  border-radius: 34px;
}

.world-pulse-backdrop {
  box-sizing: border-box;
  max-width: 100vw;
  overflow: hidden;
  overscroll-behavior: none;
}

.world-pulse-panel > *,
.world-pulse-copy,
.world-pulse-copy > a,
.world-pulse-copy > p {
  min-width: 0;
  max-width: 100%;
}

.world-pulse-copy > a,
.world-pulse-copy > p {
  overflow-wrap: anywhere;
  word-break: break-word;
}

.world-pulse-sense-icon::before {
  content: "";
  display: block;
  width: 25px;
  height: 25px;
  background: currentColor;
  -webkit-mask: url("/assets/mcp-platforms/site-alt.svg") center / contain no-repeat;
  mask: url("/assets/mcp-platforms/site-alt.svg") center / contain no-repeat;
}

.world-pulse-head {
  position: relative;
  display: grid;
  justify-items: center;
  gap: 8px;
  padding: 10px 58px 32px;
  text-align: center;
}

.world-pulse-head > small,
.world-pulse-lane-head small,
.world-pulse-reserved small,
.world-pulse-meta small {
  font: 700 11px/1.2 var(--font-mono, ui-monospace, monospace);
  letter-spacing: .19em;
}

.world-pulse-head h3 {
  margin: 2px 0 0;
  font: 700 clamp(32px, 6vw, 54px)/1.06 var(--font-serif, Georgia, serif);
  letter-spacing: -.04em;
}

.world-pulse-head p {
  max-width: 34em;
  margin: 4px 0 0;
  font: 400 15px/1.8 var(--font-body, system-ui, sans-serif);
}

.world-pulse-orbit {
  position: relative;
  width: 58px;
  height: 34px;
  margin-bottom: 4px;
}

.world-pulse-orbit i {
  position: absolute;
  border: 1px solid;
  border-radius: 999px;
  transform: rotate(-18deg);
}

.world-pulse-orbit i:nth-child(1) { inset: 6px 0; }
.world-pulse-orbit i:nth-child(2) { width: 7px; height: 7px; right: 6px; top: 3px; }
.world-pulse-orbit i:nth-child(3) { width: 4px; height: 4px; left: 8px; bottom: 2px; }

.world-pulse-meta {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) auto;
  align-items: center;
  gap: 22px;
  padding: 18px 0;
  border-block: 1px solid;
}

.world-pulse-meta > div { display: grid; gap: 5px; min-width: 0; }
.world-pulse-meta strong { font: 600 13px/1.4 var(--font-body, system-ui, sans-serif); }
.world-pulse-meta button {
  min-height: 42px;
  padding: 0 18px;
  border: 1px solid;
  border-radius: 999px;
  font: 700 12px/1 var(--font-body, system-ui, sans-serif);
  letter-spacing: .08em;
}

.world-pulse-status {
  margin: 14px 0 0;
  padding: 10px 14px;
  border-radius: 14px;
  text-align: center;
  font: 500 12px/1.5 var(--font-body, system-ui, sans-serif);
}

.world-pulse-lanes {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 0;
  margin: 30px 0 0;
  border-bottom: 1px solid;
}

.world-pulse-lanes button {
  position: relative;
  display: grid;
  gap: 5px;
  min-width: 0;
  padding: 0 10px 16px;
  border: 0;
  background: transparent;
  text-align: left;
}

.world-pulse-lanes button::after {
  content: "";
  position: absolute;
  left: 10px;
  right: 10px;
  bottom: -1px;
  height: 2px;
  transform: scaleX(0);
  transform-origin: left;
  transition: transform .18s ease;
}

.world-pulse-lanes button.active::after { transform: scaleX(1); }
.world-pulse-lanes span { font: 700 13px/1.3 var(--font-body, system-ui, sans-serif); }
.world-pulse-lanes small { font: 400 10px/1.45 var(--font-body, system-ui, sans-serif); }

.world-pulse-reading { padding: 26px 0 0; }
.world-pulse-lane-head { display: flex; justify-content: space-between; gap: 20px; align-items: baseline; }
.world-pulse-lane-head span { font: 500 12px/1.4 var(--font-body, system-ui, sans-serif); }
.world-pulse-list { list-style: none; margin: 8px 0 0; padding: 0; }
.world-pulse-list li {
  display: grid;
  grid-template-columns: 34px minmax(0, 1fr);
  gap: 14px;
  padding: 22px 0;
  border-bottom: 1px solid;
}

.world-pulse-rank { padding-top: 3px; font: 500 10px/1.2 var(--font-mono, ui-monospace, monospace); letter-spacing: .12em; }
.world-pulse-copy { min-width: 0; }
.world-pulse-source { display: flex; flex-wrap: wrap; gap: 8px 12px; align-items: center; margin-bottom: 8px; }
.world-pulse-source span { font: 700 10px/1.2 var(--font-mono, ui-monospace, monospace); letter-spacing: .13em; text-transform: uppercase; }
.world-pulse-source i { font: 500 10px/1.2 var(--font-body, system-ui, sans-serif); font-style: normal; }
.world-pulse-copy > a { display: block; text-decoration: none; font: 650 clamp(17px, 2.7vw, 22px)/1.4 var(--font-serif, Georgia, serif); }
.world-pulse-copy > p { margin: 8px 0 0; font: 400 13px/1.75 var(--font-body, system-ui, sans-serif); }
.world-pulse-list li.is-stale { opacity: .72; }

.world-pulse-empty {
  display: grid;
  justify-items: center;
  gap: 8px;
  padding: 58px 20px;
  text-align: center;
  border-bottom: 1px solid;
}

.world-pulse-empty i { font: 400 34px/1 serif; font-style: normal; }
.world-pulse-empty strong { font: 650 17px/1.4 var(--font-serif, Georgia, serif); }
.world-pulse-empty p { max-width: 30em; margin: 0; font: 400 12px/1.7 var(--font-body, system-ui, sans-serif); }
.world-pulse-reserved { display: grid; gap: 7px; padding: 20px 0; border-bottom: 1px solid; }
.world-pulse-reserved p { margin: 0; font: 500 13px/1.5 var(--font-body, system-ui, sans-serif); }
.world-pulse-source-foot { display: flex; flex-wrap: wrap; gap: 10px 18px; padding: 18px 0 0; }
.world-pulse-source-foot span { display: inline-flex; align-items: center; gap: 7px; font: 500 10px/1.4 var(--font-body, system-ui, sans-serif); }
.world-pulse-source-foot i { width: 6px; height: 6px; border-radius: 50%; }
.world-pulse-boundary { display: flex; flex-wrap: wrap; gap: 8px 16px; margin-top: 28px; padding-top: 20px; border-top: 1px solid; }
.world-pulse-boundary > span { font: 600 10px/1.3 var(--font-mono, ui-monospace, monospace); letter-spacing: .08em; }
.world-pulse-boundary > p { flex: 1 0 100%; margin: 2px 0 0; font: 400 12px/1.65 var(--font-body, system-ui, sans-serif); }

@media (max-width: 680px) {
  .xhs-panel-backdrop {
    box-sizing: border-box;
    width: 100vw;
    max-width: 100vw;
    overflow-x: hidden;
    overscroll-behavior-x: none;
  }
  .xhs-panel-card {
    box-sizing: border-box;
    min-width: 0;
    max-width: 100%;
    overflow-x: hidden;
    overscroll-behavior-x: none;
    touch-action: pan-y;
  }
  .xhs-panel-card > * { min-width: 0; max-width: 100%; }
  .world-pulse-backdrop { width: 100vw; padding-inline: 10px; }
  .world-pulse-panel { width: 100%; max-width: 100%; max-height: calc(100dvh - 20px); padding: 30px 22px 34px; border-radius: 26px; }
  .world-pulse-head { padding-inline: 28px; }
  .world-pulse-meta { grid-template-columns: 1fr 1fr; gap: 16px; }
  .world-pulse-meta button { grid-column: 1 / -1; width: 100%; }
  .world-pulse-lanes { grid-template-columns: 1fr 1fr; border-bottom: 0; gap: 4px 10px; }
  .world-pulse-lanes button { padding: 12px 8px; border-bottom: 1px solid; }
  .world-pulse-lanes button::after { left: 8px; right: 8px; }
  .world-pulse-lanes small { display: none; }
  .world-pulse-list li { grid-template-columns: 26px minmax(0, 1fr); gap: 9px; }
}

body[data-app-theme] .piggy-jar-detail-list div,
body[data-app-theme] .door-tray-jar-detail :is(.door-tray-idea-form, .door-tray-wish-item) {
  border-color: var(--color-border) !important;
  background: var(--color-surface) !important;
}

body[data-app-theme] .piggy-jar-detail-list b {
  color: var(--piggy-expense) !important;
  -webkit-text-fill-color: var(--piggy-expense) !important;
}

body[data-app-theme] .door-tray-wish-item header span {
  border-color: var(--color-border-strong) !important;
  background: var(--color-accent-soft) !important;
  color: var(--color-accent) !important;
  -webkit-text-fill-color: var(--color-accent) !important;
}

/* Printed and unprinted receipts use theme ornament for interface chrome;
   the receipt paper itself keeps its independent paper contract. */
body[data-app-theme] .piggy-receipt-select h2,
body[data-app-theme] .piggy-receipt-shell .status-text,
body[data-app-theme] .piggy-receipt-shell :is(.piggy-receipt-text-actions button, .piggy-receipt-vault-link) {
  color: var(--color-ornament) !important;
  -webkit-text-fill-color: var(--color-ornament) !important;
  opacity: 1 !important;
}

body[data-app-theme] .piggy-receipt-select p,
body[data-app-theme] .piggy-receipt-date-picker .memo-picker-trigger small {
  color: var(--color-text-muted) !important;
  -webkit-text-fill-color: var(--color-text-muted) !important;
  opacity: 1 !important;
}

body[data-app-theme] .piggy-receipt-print-actions {
  border-color: var(--color-ornament-soft) !important;
}

body[data-app-theme] .piggy-receipt-print-actions button {
  color: var(--color-ornament) !important;
  -webkit-text-fill-color: var(--color-ornament) !important;
}

body[data-app-theme] .piggy-receipt-shell :is(.bloom-background, .light-slit) {
  background-color: transparent !important;
}

body[data-app-theme] .piggy-receipt-shell .bloom-background {
  background-image: radial-gradient(circle, var(--color-ornament-soft), transparent 70%) !important;
}

body[data-app-theme] .piggy-receipt-shell .light-slit {
  background: var(--color-ornament) !important;
  box-shadow: 0 0 15px var(--color-ornament-soft), 0 0 5px var(--color-ornament-soft) !important;
}

body[data-app-theme] .piggy-receipt-shell :is(.receipt-row .amt.plus, .receipt-summary .plus) {
  color: var(--piggy-income) !important;
  -webkit-text-fill-color: var(--piggy-income) !important;
}

body[data-app-theme] .piggy-receipt-shell :is(.receipt-row .amt.minus, .receipt-summary .minus) {
  color: var(--piggy-expense) !important;
  -webkit-text-fill-color: var(--piggy-expense) !important;
}

body[data-app-theme] .piggy-receipt-shell .red-stamp {
  border-color: var(--color-ornament) !important;
  color: var(--color-ornament) !important;
  -webkit-text-fill-color: var(--color-ornament) !important;
}

/* Sensory/MCP sheets share one form contract. */
body[data-app-theme][data-view="senses"] :is(
  .senses-form label span,
  .senses-form .senses-static-field > span,
  .xhs-paper-form label,
  .xhs-panel-card label,
  .xhs-panel-head small,
  .xhs-panel-head p
) {
  color: var(--color-text-muted) !important;
  -webkit-text-fill-color: var(--color-text-muted) !important;
  opacity: 1 !important;
}

body[data-app-theme][data-view="senses"] .xhs-sense-mode {
  border-color: var(--color-border) !important;
  background: var(--color-accent-soft) !important;
}

body[data-app-theme][data-view="senses"] .xhs-sense-mode span {
  color: var(--color-text-muted) !important;
  -webkit-text-fill-color: var(--color-text-muted) !important;
  opacity: 1 !important;
}

body[data-app-theme][data-view="senses"] :is(.xhs-panel-close, .xhs-panel-card button.xhs-panel-close) {
  border-color: var(--color-border) !important;
  background: transparent !important;
  color: var(--color-accent) !important;
  -webkit-text-fill-color: var(--color-accent) !important;
}

body[data-app-theme][data-view="senses"] :is(.xhs-panel-head h3, .xhs-panel-card h4, .arcade-panel-card h4, .spicy-panel-card h4) {
  color: var(--color-text) !important;
  -webkit-text-fill-color: var(--color-text) !important;
}

body[data-app-theme][data-view="senses"] :is(
  .xhs-panel-card input,
  .xhs-panel-card textarea,
  .xhs-panel-card select,
  .senses-picker-trigger,
  .senses-picker-panel
) {
  border-color: var(--color-border) !important;
  background: var(--color-surface-raised) !important;
  color: var(--color-text) !important;
  -webkit-text-fill-color: var(--color-text) !important;
}

/* Xiaohongshu is one continuous sheet: sections need breathing room, while
   only the actual controls receive a raised surface. This contract is shared
   by every palette so new themes cannot reintroduce stacked colour slabs. */
body[data-app-theme][data-view="senses"] .xhs-panel-card--xiaohongshu > :is(
  .xhs-sense-mode,
  .xhs-cookie-box,
  .xhs-paper-form,
  .xhs-recent-list
) {
  margin: 0 !important;
  border-color: var(--color-border) !important;
  background: transparent !important;
  box-shadow: none !important;
}

body[data-app-theme][data-view="senses"] .xhs-panel-card--xiaohongshu > .xhs-sense-mode ~ :is(
  .xhs-cookie-box,
  .xhs-paper-form,
  .xhs-recent-list
) {
  margin-top: 14px !important;
}

body[data-app-theme][data-view="senses"] :is(.xhs-cookie-actions button, .xhs-candidate-list button, .senses-picker-panel button) {
  border-color: var(--color-border) !important;
  background: transparent !important;
  color: var(--color-accent) !important;
  -webkit-text-fill-color: var(--color-accent) !important;
  box-shadow: none !important;
}

body[data-app-theme][data-view="senses"] :is(.xhs-cookie-actions button:first-child, .senses-picker-panel button.active) {
  border-color: var(--color-accent-strong) !important;
  background: var(--color-accent) !important;
  color: var(--color-on-accent) !important;
  -webkit-text-fill-color: var(--color-on-accent) !important;
}

body[data-app-theme][data-view="senses"] .senses-switch-row i::after {
  background: var(--color-surface-raised) !important;
}

body[data-app-theme][data-view="senses"] .senses-switch-row {
  border-color: var(--color-border) !important;
  color: var(--color-text) !important;
  -webkit-text-fill-color: var(--color-text) !important;
}

body[data-app-theme][data-view="senses"] .senses-picker-trigger b {
  color: var(--color-accent) !important;
  -webkit-text-fill-color: var(--color-accent) !important;
}

body[data-app-theme][data-view="senses"] .senses-switch-row[aria-pressed="true"] i::after {
  background: var(--color-on-accent) !important;
}

/* Morning Ritual recurring plans live inside Notifications and inherit every theme. */
body[data-app-theme] .wake-schedule-manager {
  display: grid;
  gap: 12px;
  margin-top: 16px;
  padding-top: 15px;
  border-top: 1px solid var(--color-border);
  color: var(--color-text);
}

body[data-app-theme] .wake-schedule-head,
body[data-app-theme] .wake-schedule-form-title {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
}

body[data-app-theme] .wake-schedule-head div { display: grid; gap: 3px; }
body[data-app-theme] .wake-schedule-head small { color: var(--color-accent) !important; font: 700 8px/1.2 "Space Mono", monospace; letter-spacing: .15em; }
body[data-app-theme] .wake-schedule-head strong { color: var(--color-text) !important; font-size: 14px; }
body[data-app-theme] .wake-schedule-head > span { color: var(--color-text-muted) !important; font-size: 9px; }
body[data-app-theme] .wake-schedule-head > span.is-online { color: var(--color-success, var(--color-accent)) !important; }
body[data-app-theme] .wake-schedule-head > span.is-offline { color: var(--color-danger, var(--color-accent)) !important; }

body[data-app-theme] .wake-execution-detail {
  overflow: hidden;
  border: 1px solid var(--color-border);
  border-radius: 12px;
  background: var(--color-surface-raised);
}
body[data-app-theme] .wake-execution-detail.is-failed { border-color: color-mix(in srgb, var(--color-danger, var(--color-accent)) 38%, var(--color-border)); }
body[data-app-theme] .wake-execution-detail > summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 11px 12px;
  color: var(--color-text);
  cursor: pointer;
  list-style: none;
}
body[data-app-theme] .wake-execution-detail > summary::-webkit-details-marker { display: none; }
body[data-app-theme] .wake-execution-detail > summary span { display: grid; gap: 3px; }
body[data-app-theme] .wake-execution-detail > summary small { color: var(--color-text-muted) !important; font: 700 7px/1.2 "Space Mono", monospace; letter-spacing: .13em; }
body[data-app-theme] .wake-execution-detail > summary strong { color: var(--color-text) !important; font-size: 11px; }
body[data-app-theme] .wake-execution-detail.is-failed > summary strong { color: var(--color-danger, var(--color-accent)) !important; }
body[data-app-theme] .wake-execution-detail > summary time { color: var(--color-text-muted); font: 8px/1.3 "Space Mono", monospace; }
body[data-app-theme] .wake-execution-body { display: grid; gap: 10px; padding: 0 12px 12px; border-top: 1px solid var(--color-border); }
body[data-app-theme] .wake-execution-body > p { margin: 10px 0 0; color: var(--color-text); font-size: 10px; line-height: 1.55; }
body[data-app-theme] .wake-execution-body > p.wake-execution-track { margin-top: -4px; color: var(--color-text-muted); font-size: 8px; }
body[data-app-theme] .wake-execution-timeline { display: grid; gap: 0; margin: 0; padding: 0; list-style: none; }
body[data-app-theme] .wake-execution-timeline li { position: relative; display: grid; grid-template-columns: 10px 1fr; gap: 8px; min-height: 34px; }
body[data-app-theme] .wake-execution-timeline li:not(:last-child)::before { position: absolute; top: 11px; bottom: -1px; left: 4px; width: 1px; background: var(--color-border); content: ""; }
body[data-app-theme] .wake-execution-timeline li > i { position: relative; z-index: 1; width: 7px; height: 7px; margin-top: 4px; border: 1px solid var(--color-border); border-radius: 50%; background: var(--color-surface); }
body[data-app-theme] .wake-execution-timeline li.is-done > i { border-color: var(--color-success, var(--color-accent)); background: var(--color-success, var(--color-accent)); }
body[data-app-theme] .wake-execution-timeline li.is-error > i { border-color: var(--color-danger, var(--color-accent)); background: var(--color-danger, var(--color-accent)); }
body[data-app-theme] .wake-execution-timeline li > span { display: grid; align-content: start; gap: 2px; }
body[data-app-theme] .wake-execution-timeline strong { color: var(--color-text) !important; font-size: 9px; }
body[data-app-theme] .wake-execution-timeline small { color: var(--color-text-muted) !important; font-size: 7.5px; line-height: 1.45; }
body[data-app-theme] .wake-execution-body > p.wake-execution-error,
body[data-app-theme] .wake-execution-body > p.wake-execution-fallback.is-missed { margin: 0; color: var(--color-danger, var(--color-accent)); font-size: 8px; }
body[data-app-theme] .wake-execution-body > p.wake-execution-fallback.is-sent { margin: 0; color: var(--color-success, var(--color-accent)); font-size: 8px; }
body[data-app-theme] .wake-execution-body > footer { display: flex; justify-content: space-between; gap: 8px; padding-top: 9px; border-top: 1px solid var(--color-border); color: var(--color-text-muted); font-size: 8px; }
body[data-app-theme] .wake-execution-body > footer small { color: inherit !important; font-size: inherit; }

body[data-app-theme] .wake-schedule-list { display: grid; gap: 8px; }
body[data-app-theme] .wake-schedule-item {
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 8px;
  padding: 11px;
  border: 1px solid var(--color-border);
  border-radius: 12px;
  background: var(--color-surface);
}
body[data-app-theme] .wake-schedule-item.is-paused { opacity: .62; }
body[data-app-theme] .wake-schedule-main { display: grid; grid-template-columns: auto 1fr; align-items: baseline; gap: 3px 9px; padding: 0; border: 0; background: transparent; color: var(--color-text); text-align: left; }
body[data-app-theme] .wake-schedule-main strong { grid-row: span 2; color: var(--color-text) !important; font: 700 18px/1 "Space Mono", monospace; }
body[data-app-theme] .wake-schedule-main span { color: var(--color-text) !important; font-size: 10px; font-weight: 700; }
body[data-app-theme] .wake-schedule-main small { overflow: hidden; color: var(--color-text-muted) !important; font-size: 9px; text-overflow: ellipsis; white-space: nowrap; }
body[data-app-theme] .wake-schedule-main em { grid-column: 1 / -1; color: var(--color-accent) !important; font-size: 8px; font-style: normal; }
body[data-app-theme] .wake-schedule-main em.is-error { color: var(--color-danger, var(--color-accent)) !important; line-height: 1.45; white-space: normal; }
body[data-app-theme] .wake-schedule-main em.is-stage { color: var(--color-text-muted) !important; }
body[data-app-theme] .wake-schedule-item-actions { display: flex; align-items: center; gap: 3px; }
body[data-app-theme] .wake-schedule-item-actions button,
body[data-app-theme] .wake-schedule-form-title button { padding: 4px 6px; border: 0 !important; background: transparent !important; color: var(--color-text-muted) !important; font-size: 8px; }

body[data-app-theme] .wake-schedule-form { display: grid; grid-template-columns: 104px 1fr; gap: 10px; padding: 12px; border: 1px solid var(--color-border); border-radius: 12px; background: var(--color-surface-raised); }
body[data-app-theme] .wake-schedule-form-title { grid-column: 1 / -1; }
body[data-app-theme] .wake-schedule-form-title strong { color: var(--color-text) !important; font-size: 10px; }
body[data-app-theme] .wake-schedule-time,
body[data-app-theme] .wake-schedule-request { display: grid; gap: 5px; }
body[data-app-theme] .wake-schedule-time span,
body[data-app-theme] .wake-schedule-request span { color: var(--color-text-muted) !important; font-size: 8px; }
body[data-app-theme] .wake-schedule-time input,
body[data-app-theme] .wake-schedule-request input { width: 100%; min-height: 38px; box-sizing: border-box; border: 1px solid var(--color-border) !important; border-radius: 9px; background: var(--color-surface) !important; color: var(--color-text) !important; font-size: 11px; }
body[data-app-theme] .wake-schedule-days { grid-column: 1 / -1; display: grid; grid-template-columns: repeat(7, minmax(30px, 1fr)) auto; gap: 5px; }
body[data-app-theme] .wake-schedule-days button { min-height: 30px; padding: 0; border: 1px solid var(--color-border) !important; border-radius: 999px; background: var(--color-surface) !important; color: var(--color-text-muted) !important; font-size: 9px; }
body[data-app-theme] .wake-schedule-days button.active { border-color: var(--color-accent-strong) !important; background: var(--color-accent-soft) !important; color: var(--color-accent) !important; }
body[data-app-theme] .wake-schedule-workdays { padding-inline: 9px !important; }
body[data-app-theme] .wake-schedule-save { align-self: end; min-height: 38px; border-radius: 999px !important; background: var(--color-accent-strong) !important; color: var(--color-on-accent, var(--color-text-inverse)) !important; }
body[data-app-theme] .wake-schedule-empty,
body[data-app-theme] .wake-schedule-status { margin: 0; color: var(--color-text-muted) !important; font-size: 9px; line-height: 1.5; }

body[data-app-theme] .nowhere-journey-monitor-card {
  grid-column: 1 / -1;
  color: var(--color-text) !important;
}

body[data-app-theme] .nowhere-journey-monitor-summary {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto 18px;
  align-items: center;
  gap: 10px;
  min-height: 76px;
  padding: 16px 18px;
  cursor: pointer;
  list-style: none;
}

body[data-app-theme] .nowhere-journey-monitor-summary::-webkit-details-marker { display: none; }

body[data-app-theme] .nowhere-journey-monitor-title {
  min-width: 0;
  display: grid;
  gap: 3px;
}

body[data-app-theme] .nowhere-journey-monitor-title strong {
  color: var(--color-text) !important;
  font-size: 15px;
  line-height: 1.25;
}

body[data-app-theme] .nowhere-journey-monitor-title small {
  overflow: hidden;
  color: var(--color-text-muted) !important;
  font-size: 9px;
  line-height: 1.45;
  text-overflow: ellipsis;
  white-space: nowrap;
}

body[data-app-theme] .nowhere-journey-monitor-chevron {
  color: var(--color-accent) !important;
  font-size: 18px;
  transition: transform .2s ease;
}

body[data-app-theme] .nowhere-journey-monitor-card[open] .nowhere-journey-monitor-chevron {
  transform: rotate(180deg);
}

body[data-app-theme] .nowhere-journey-monitor-body {
  display: grid;
  gap: 12px;
  padding: 0 18px 18px;
  border-top: 1px solid var(--color-border);
}

body[data-app-theme] .nowhere-journey-monitor-metrics {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  border: 1px solid var(--color-border);
  background: var(--color-surface);
}

body[data-app-theme] .nowhere-journey-monitor-metrics > span {
  min-width: 0;
  display: grid;
  justify-items: center;
  gap: 4px;
  padding: 10px 4px;
  border-right: 1px solid var(--color-border);
}

body[data-app-theme] .nowhere-journey-monitor-metrics > span:last-child { border-right: 0; }
body[data-app-theme] .nowhere-journey-monitor-metrics small { color: var(--color-text-muted) !important; font-family: var(--font-mono); font-size: 7px; letter-spacing: .08em; }
body[data-app-theme] .nowhere-journey-monitor-metrics strong { color: var(--color-text) !important; font-family: var(--font-mono); font-size: 14px; }

body[data-app-theme] .nowhere-journey-monitor-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px;
}

body[data-app-theme] .nowhere-journey-monitor-section {
  min-width: 0;
  display: grid;
  align-content: start;
  gap: 7px;
  padding: 12px;
  border: 1px solid var(--color-border);
  background: var(--color-surface);
}

body[data-app-theme] .nowhere-journey-monitor-section header {
  display: grid;
  gap: 3px;
  margin-bottom: 2px;
}

body[data-app-theme] .nowhere-journey-monitor-section header span {
  color: var(--color-accent) !important;
  font-family: var(--font-mono);
  font-size: 7px;
  letter-spacing: .12em;
}

body[data-app-theme] .nowhere-journey-monitor-section header strong {
  color: var(--color-text) !important;
  font-size: 11px;
}

body[data-app-theme] .nowhere-journey-monitor-section .monitor-backup-line {
  grid-template-columns: 70px minmax(0, 1fr);
  gap: 7px;
  padding-top: 5px;
  border-top: 1px solid var(--color-border);
  font-size: 8.5px;
}

body[data-app-theme] .nowhere-journey-monitor-section .monitor-backup-line b {
  color: var(--color-text-muted) !important;
  font-weight: 500;
}

body[data-app-theme] .nowhere-journey-monitor-section .monitor-backup-line span {
  color: var(--color-text) !important;
  overflow-wrap: anywhere;
}

body[data-app-theme] .nowhere-journey-monitor-section p {
  margin: 0;
  color: var(--color-text-muted) !important;
  font-size: 8px;
  line-height: 1.55;
}

body[data-app-theme] .nowhere-journey-monitor-failure {
  display: grid;
  gap: 4px;
  padding: 11px 12px;
  border: 1px solid var(--color-border);
  border-left: 3px solid var(--color-accent);
  background: var(--color-surface);
}

body[data-app-theme] .nowhere-journey-monitor-failure.has-failure { border-left-color: var(--color-error); }
body[data-app-theme] .nowhere-journey-monitor-failure > span { color: var(--color-accent) !important; font-family: var(--font-mono); font-size: 7px; letter-spacing: .1em; }
body[data-app-theme] .nowhere-journey-monitor-failure > strong { color: var(--color-text) !important; font-size: 9.5px; line-height: 1.5; }
body[data-app-theme] .nowhere-journey-monitor-failure > small { color: var(--color-text-muted) !important; font-size: 7.5px; line-height: 1.45; }

/* Monitor's taste report is a small diagnostic card on phones, not a second
   article page. Keep the hierarchy quiet enough that logs below remain the
   primary Monitor content. */
@media (max-width: 520px) {
  body[data-app-theme][data-view="monitor"] .nowhere-journey-monitor-summary {
    grid-template-columns: minmax(0, 1fr) auto 14px;
    gap: 7px;
    min-height: 66px;
    padding: 13px 14px;
  }

  body[data-app-theme][data-view="monitor"] .nowhere-journey-monitor-title strong { font-size: 12px; }
  body[data-app-theme][data-view="monitor"] .nowhere-journey-monitor-title small { font-size: 7.5px; }
  body[data-app-theme][data-view="monitor"] .nowhere-journey-monitor-summary .monitor-status-pill { min-height: 20px !important; padding-inline: 7px !important; font-size: 6.5px !important; }
  body[data-app-theme][data-view="monitor"] .nowhere-journey-monitor-chevron { font-size: 14px; }
  body[data-app-theme][data-view="monitor"] .nowhere-journey-monitor-body { gap: 9px; padding: 0 13px 13px; }
  body[data-app-theme][data-view="monitor"] .nowhere-journey-monitor-metrics small { font-size: 5.5px; letter-spacing: .03em; }
  body[data-app-theme][data-view="monitor"] .nowhere-journey-monitor-metrics strong { font-size: 11px; }
  body[data-app-theme][data-view="monitor"] .nowhere-journey-monitor-metrics > span { padding: 8px 2px; }
  body[data-app-theme][data-view="monitor"] .nowhere-journey-monitor-grid { grid-template-columns: 1fr; gap: 7px; }
  body[data-app-theme][data-view="monitor"] .nowhere-journey-monitor-section { gap: 6px; padding: 10px; }
  body[data-app-theme][data-view="monitor"] .nowhere-journey-monitor-section header strong { font-size: 10px; }
  body[data-app-theme][data-view="monitor"] .nowhere-journey-monitor-section .monitor-backup-line { grid-template-columns: 66px minmax(0, 1fr); font-size: 8px; }

  body[data-app-theme][data-view="monitor"] .music-taste-monitor-card {
    gap: 9px !important;
    padding: 14px !important;
  }

  body[data-app-theme][data-view="monitor"] .music-taste-monitor-card .monitor-card-head {
    align-items: flex-start !important;
    gap: 8px !important;
  }

  body[data-app-theme][data-view="monitor"] .music-taste-monitor-card .monitor-card-label {
    font-size: 7px !important;
    letter-spacing: .14em !important;
  }

  body[data-app-theme][data-view="monitor"] .music-taste-monitor-card .monitor-card-head strong {
    margin-top: 2px !important;
    font-size: 11px !important;
    line-height: 1.35 !important;
  }

  body[data-app-theme][data-view="monitor"] .music-taste-monitor-card .monitor-status-pill {
    min-height: 20px !important;
    flex: 0 0 auto;
    padding-inline: 8px !important;
    font-size: 7px !important;
  }

  body[data-app-theme][data-view="monitor"] .music-taste-stats {
    gap: 6px !important;
  }

  body[data-app-theme][data-view="monitor"] .music-taste-stats span {
    display: inline-flex !important;
    align-items: baseline;
    gap: 4px !important;
    padding: 5px 8px !important;
  }

  body[data-app-theme][data-view="monitor"] .music-taste-stats b { font-size: 13px !important; }
  body[data-app-theme][data-view="monitor"] .music-taste-stats small,
  body[data-app-theme][data-view="monitor"] .music-taste-monitor-card footer,
  body[data-app-theme][data-view="monitor"] .music-taste-overview > small { font-size: 7.5px !important; }
  body[data-app-theme][data-view="monitor"] .music-taste-overview { gap: 6px !important; padding-left: 9px !important; }
  body[data-app-theme][data-view="monitor"] .music-taste-summary { font-size: 10px !important; line-height: 1.55 !important; }
  body[data-app-theme][data-view="monitor"] .music-taste-artists { gap: 4px !important; }
  body[data-app-theme][data-view="monitor"] .music-taste-artists span { padding: 3px 6px !important; font-size: 7.5px !important; }
  body[data-app-theme][data-view="monitor"] .music-taste-reasons { border-radius: 10px !important; }
  body[data-app-theme][data-view="monitor"] .music-taste-reasons summary { gap: 6px !important; padding: 8px 9px !important; }
  body[data-app-theme][data-view="monitor"] .music-taste-reasons summary > span { font-size: 8.5px !important; }
  body[data-app-theme][data-view="monitor"] .music-taste-reasons summary > small { max-width: 110px; font-size: 7px !important; }
  body[data-app-theme][data-view="monitor"] .music-taste-reasons summary > i { font-size: 14px !important; }
  body[data-app-theme][data-view="monitor"] .music-taste-reason-list { padding: 0 9px 8px !important; }
  body[data-app-theme][data-view="monitor"] .music-taste-reasons article { gap: 3px !important; padding: 7px 0 !important; }
  body[data-app-theme][data-view="monitor"] .music-taste-reasons article strong { font-size: 9px !important; }
  body[data-app-theme][data-view="monitor"] .music-taste-reasons article span { font-size: 7.5px !important; }
  body[data-app-theme][data-view="monitor"] .music-taste-reasons article p { font-size: 8.5px !important; line-height: 1.45 !important; }
}

@media (max-width: 520px) {
  body[data-app-theme] .wake-schedule-form { grid-template-columns: 88px 1fr; padding: 10px; }
  body[data-app-theme] .wake-schedule-days { grid-template-columns: repeat(7, 1fr); }
  body[data-app-theme] .wake-schedule-workdays { grid-column: 1 / -1; }
  body[data-app-theme] .wake-schedule-request,
  body[data-app-theme] .wake-schedule-save { grid-column: 1 / -1; }
  body[data-app-theme] .wake-schedule-item { grid-template-columns: 1fr; }
  body[data-app-theme] .wake-schedule-item-actions { justify-content: flex-end; }
  body[data-app-theme] .wake-execution-detail > summary { align-items: flex-start; }
  body[data-app-theme] .wake-execution-detail > summary time { max-width: 120px; text-align: right; }
  body[data-app-theme] .wake-execution-body > footer { display: grid; }
}

body[data-app-theme] .fiction-summary-panel,
body[data-app-theme] .fiction-generate-card {
  border-color: transparent !important;
  background: transparent !important;
  box-shadow: none !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
}

/* Phase 13 — Senses is a clean settings document, not a stack of tinted
   cards. Outlines and spacing carry hierarchy; fills are reserved for state. */
body[data-app-theme][data-view="senses"] .senses-control-shell :is(
  .senses-card, .senses-card-head, .senses-card-body, .sense-icon,
  .senses-switch-row, .senses-status-pill, .wake-schedule-item,
  .wake-schedule-main, .wake-schedule-item-actions
) {
  background: transparent !important;
  box-shadow: none !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
}

body[data-app-theme][data-view="senses"] .senses-control-shell .senses-card {
  border-color: var(--color-border) !important;
}

body[data-app-theme][data-view="senses"] .senses-control-shell .senses-card-body,
body[data-app-theme][data-view="senses"] .senses-control-shell .senses-switch-row,
body[data-app-theme][data-view="senses"] .senses-control-shell .wake-schedule-manager,
body[data-app-theme][data-view="senses"] .senses-control-shell .wake-schedule-item {
  border-color: var(--color-border) !important;
}

body[data-app-theme][data-view="senses"] .senses-control-shell :is(
  .senses-actions button, .wake-schedule-item-actions button,
  .weather-actions button, .notification-actions button
) {
  border: 1px solid var(--color-border) !important;
  background: transparent !important;
  color: var(--color-accent) !important;
  -webkit-text-fill-color: var(--color-accent) !important;
  box-shadow: none !important;
}

body[data-app-theme][data-view="senses"] .senses-control-shell .senses-status-pill {
  border: 1px solid var(--color-border) !important;
  color: var(--color-accent) !important;
  -webkit-text-fill-color: var(--color-accent) !important;
  opacity: 1 !important;
}

body[data-app-theme][data-view="senses"] .senses-control-shell :is(
  .senses-form input[type="text"], .senses-form input[type="password"],
  .senses-form input:not([type]), .senses-static-pill,
  .senses-picker-trigger, .wake-schedule-form
) {
  border-color: var(--color-border) !important;
  background: transparent !important;
  color: var(--color-text) !important;
  -webkit-text-fill-color: var(--color-text) !important;
  box-shadow: none !important;
}

body[data-app-theme][data-view="senses"] .senses-control-shell .wake-schedule-item {
  border-radius: 0 !important;
  border-inline: 0 !important;
}

/* Calendar group captions are labels, not pink capsules. */
body[data-app-theme][data-view="memo"] .memo-calendar-mode .calendar-chip-section > span {
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  color: var(--color-ornament) !important;
  -webkit-text-fill-color: var(--color-ornament) !important;
  box-shadow: none !important;
}

/* Daybook and More must inherit the active theme instead of the legacy
   blush palette. The date is an active landmark; the Chinese intro is
   supporting copy and therefore stays quieter than the page title. */
body[data-app-theme][data-view="daybook"] .daybook-date-head h1 {
  color: var(--color-accent) !important;
  -webkit-text-fill-color: var(--color-accent) !important;
  opacity: 1 !important;
}

body[data-app-theme][data-view="more"] .more-poem p {
  color: var(--color-text-muted) !important;
  -webkit-text-fill-color: var(--color-text-muted) !important;
  opacity: 1 !important;
}

/* Phase 14 — component contracts that must survive every future palette. */

/* A cloud stage owns exactly one rounded fill. Its field and toolbar are
   transparent children, so translucent theme colours cannot double-stack and
   stop above the filters. */
body[data-app-theme] .memory-palace-v3.interest-drawer-shell .interest-drawer-stage.cloud-mode,
body[data-app-theme] .memory-palace-v3.interest-drawer-shell .interest-drawer-stage.cloud-mode .interest-drawer-stage-backdrop {
  background: var(--surface-continuous-stage) !important;
}

body[data-app-theme] .memory-palace-v3.interest-drawer-shell .interest-drawer-stage.cloud-mode :is(
  .interest-drawer-cloud,
  .interest-drawer-cloud-field,
  .interest-drawer-stage-tools
) {
  border-color: transparent !important;
  background: transparent !important;
  box-shadow: none !important;
}

body[data-app-theme] .memory-palace-v3.interest-drawer-shell .interest-drawer-stage.cloud-mode .interest-drawer-cloud {
  border-radius: 0 !important;
}

/* Sticky diary actions use the same opaque chrome as the bottom navigation;
   underlying letter copy must never shine through the delete area. */
body[data-app-theme] .diary-letter-actions {
  border-color: var(--color-border) !important;
  background: var(--surface-sticky-chrome) !important;
  box-shadow: 0 -10px 26px color-mix(in srgb, var(--color-page) 38%, transparent) !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
}

/* Home paper, notification paper and saved-note detail are the same object in
   three contexts, so they share one surface contract. */
body[data-app-theme] :is(
  .proactive-paper,
  .favorite-note-modal-paper,
  .stitch-home .proactive-paper-home
) {
  border-color: var(--color-border-strong) !important;
  background: var(--surface-note-paper) !important;
  color: var(--color-text) !important;
  box-shadow: var(--shadow-card) !important;
}

body[data-app-theme] :is(
  .proactive-paper,
  .favorite-note-modal-paper,
  .stitch-home .proactive-paper-home
) :is(p, small, em) {
  color: var(--color-text) !important;
  -webkit-text-fill-color: var(--color-text) !important;
  opacity: 1 !important;
}

body[data-app-theme] :is(
  .proactive-paper,
  .favorite-note-modal-paper,
  .stitch-home .proactive-paper-home
) :is(.proactive-paper-close, .favorite-note-paper-close) {
  border-color: var(--color-border) !important;
  background: transparent !important;
  color: var(--color-accent) !important;
  -webkit-text-fill-color: var(--color-accent) !important;
}

/* Ledger entries are rows separated by rules, not cards nested in a card. */
body[data-app-theme] .piggy-jar-detail-list div {
  border-color: var(--color-border) !important;
  background: var(--surface-detail-row) !important;
  box-shadow: none !important;
}

/* API state badges use semantic state colours and a transparent capsule;
   readiness can no longer inherit the legacy Night-pink paint. */
body[data-app-theme] .api-status {
  background: transparent !important;
  box-shadow: none !important;
  opacity: 1 !important;
}

body[data-app-theme] .api-status-ready {
  border-color: color-mix(in srgb, var(--color-success) 48%, transparent) !important;
  color: var(--color-success) !important;
  -webkit-text-fill-color: var(--color-success) !important;
}

body[data-app-theme] :is(.api-status-optional, .api-status-soon) {
  border-color: var(--color-border-strong) !important;
  color: var(--color-text-muted) !important;
  -webkit-text-fill-color: var(--color-text-muted) !important;
}

body[data-app-theme] .api-status-missing {
  border-color: color-mix(in srgb, var(--color-error) 52%, transparent) !important;
  color: var(--color-error) !important;
  -webkit-text-fill-color: var(--color-error) !important;
}

/* McDonald's official MCP: one continuous configuration sheet. Secrets stay
   write-only and visual state comes exclusively from semantic theme tokens. */
body[data-app-theme][data-view="senses"] .mcdonalds-panel-backdrop {
  box-sizing: border-box;
  width: 100vw;
  max-width: 100vw;
  overflow: hidden;
  overscroll-behavior: contain;
}

body[data-app-theme][data-view="senses"] .mcdonalds-panel-card {
  box-sizing: border-box;
  width: min(720px, calc(100vw - 32px));
  max-width: 720px;
  max-height: min(860px, calc(100dvh - 32px));
  overflow-x: hidden;
  overflow-y: auto;
  overscroll-behavior: contain;
  touch-action: pan-y;
  border-color: var(--color-border-strong) !important;
  background: var(--color-panel-solid) !important;
  color: var(--color-text) !important;
  box-shadow: var(--shadow-modal) !important;
}

.mcdonalds-panel-head {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  align-items: center;
  gap: 14px;
  padding: 4px 42px 24px 0;
  border-bottom: 1px solid var(--color-border);
}

.mcdonalds-panel-head .sense-icon {
  display: grid;
  place-items: center;
  width: 52px;
  height: 52px;
  border: 1px solid var(--color-border);
  border-radius: 17px;
  background: var(--color-surface);
  font-size: 25px;
}

.mcdonalds-panel-head h3 { margin: 3px 0; }
.mcdonalds-panel-head p { margin: 0; }

.mcdonalds-ready {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 30px;
  padding: 0 12px;
  border: 1px solid var(--color-border-strong);
  border-radius: 999px;
  background: transparent;
  color: var(--color-text-muted);
  font: 700 10px/1 var(--font-mono, ui-monospace, monospace);
  letter-spacing: .12em;
}

.mcdonalds-ready.is-ready { border-color: var(--color-success); color: var(--color-success); }
.mcdonalds-ready.is-error { border-color: var(--color-error); color: var(--color-error); }

.mcdonalds-config-sheet {
  display: grid;
  gap: 18px;
  padding: 24px 0;
  border-bottom: 1px solid var(--color-border);
  background: transparent !important;
}

.mcdonalds-config-sheet > label:not(.mcdonalds-enable-row) {
  display: grid;
  gap: 9px;
}

.mcdonalds-config-sheet input[type="password"] {
  box-sizing: border-box;
  width: 100%;
  min-width: 0;
  min-height: 52px;
  padding: 0 16px;
  border: 1px solid var(--color-border);
  border-radius: 16px;
  outline: 0;
}

.mcdonalds-config-sheet input[type="password"]:focus {
  border-color: var(--color-accent);
  box-shadow: 0 0 0 3px var(--color-accent-soft);
}

.mcdonalds-enable-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
}

.mcdonalds-enable-row input {
  width: 44px;
  height: 24px;
  accent-color: var(--color-accent);
}

.mcdonalds-token-note {
  padding: 0 0 0 15px;
  border-left: 2px solid var(--color-ornament);
  background: transparent !important;
}

.mcdonalds-token-note strong { color: var(--color-text); }
.mcdonalds-token-note p { margin: 5px 0 0; color: var(--color-text-muted); line-height: 1.65; }

.mcdonalds-actions { display: flex; flex-wrap: wrap; gap: 10px; }
.mcdonalds-actions button {
  min-height: 42px;
  padding: 0 18px;
  border: 1px solid var(--color-border-strong) !important;
  border-radius: 999px;
  background: transparent !important;
  color: var(--color-accent) !important;
  -webkit-text-fill-color: var(--color-accent) !important;
  box-shadow: none !important;
}

.mcdonalds-actions button.send {
  border-color: var(--color-accent) !important;
  background: var(--color-accent) !important;
  color: var(--color-on-accent) !important;
  -webkit-text-fill-color: var(--color-on-accent) !important;
}

.mcdonalds-actions button:disabled { opacity: .55; }
.mcdonalds-connection-status { margin: 0; color: var(--color-text-muted); line-height: 1.55; }
.mcdonalds-connection-status.is-ready { color: var(--color-success); }
.mcdonalds-connection-status.is-error { color: var(--color-error); }

.mcdonalds-capabilities { padding: 24px 0 4px; background: transparent !important; }
.mcdonalds-capabilities > small { color: var(--color-ornament); letter-spacing: .12em; }
.mcdonalds-capabilities > div { display: flex; flex-wrap: wrap; gap: 8px; margin: 14px 0; }
.mcdonalds-capabilities span {
  max-width: 100%;
  overflow-wrap: anywhere;
  padding: 7px 10px;
  border: 1px solid var(--color-border);
  border-radius: 999px;
  background: transparent;
  color: var(--color-text-muted);
  font: 600 10px/1.3 var(--font-mono, ui-monospace, monospace);
}
.mcdonalds-capabilities p { margin: 0; color: var(--color-text-muted); line-height: 1.65; }

.mcdonalds-boundary {
  display: flex;
  flex-wrap: wrap;
  gap: 7px 16px;
  margin-top: 24px;
  padding-top: 18px;
  border-top: 1px solid var(--color-border);
  color: var(--color-text-muted);
  font: 600 10px/1.4 var(--font-mono, ui-monospace, monospace);
  letter-spacing: .05em;
}

.nowhere-config-sheet input[type="text"] {
  box-sizing: border-box;
  width: 100%;
  min-width: 0;
  min-height: 46px;
  padding: 0 14px;
  border: 1px solid var(--color-border);
  border-radius: 14px;
  outline: 0;
  background: var(--color-surface);
  color: var(--color-text);
  font: 600 12px/1.35 var(--font-mono, ui-monospace, monospace);
}

.nowhere-config-sheet input[type="text"]:focus {
  border-color: var(--color-accent);
  box-shadow: 0 0 0 3px var(--color-accent-soft);
}

.nowhere-auto-wander-row > span {
  min-width: 0;
  display: grid;
  gap: 5px;
}

.nowhere-auto-wander-row > span b {
  color: var(--color-text);
  font-size: 12px;
  line-height: 1.35;
}

.nowhere-auto-wander-row > span small {
  color: var(--color-text-muted);
  font: 600 9px/1.45 var(--font-mono, ui-monospace, monospace);
}

.nowhere-audit-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px;
  padding-top: 20px;
}

.nowhere-audit-grid > div {
  min-width: 0;
  display: grid;
  gap: 5px;
  padding: 12px;
  border: 1px solid var(--color-border);
  background: var(--color-surface);
}

.nowhere-audit-grid small {
  color: var(--color-ornament);
  font: 700 9px/1.2 var(--font-mono, ui-monospace, monospace);
  letter-spacing: .12em;
}

.nowhere-audit-grid strong {
  overflow: hidden;
  color: var(--color-text);
  font: 700 12px/1.35 var(--font-mono, ui-monospace, monospace);
  text-overflow: ellipsis;
  white-space: nowrap;
}

.nowhere-boundary a {
  color: var(--color-accent);
  text-decoration: none;
}

.nowhere-boundary a:hover { text-decoration: underline; }

@media (max-width: 680px) {
  body[data-app-theme][data-view="senses"] .mcdonalds-panel-backdrop { padding: 10px; }
  body[data-app-theme][data-view="senses"] .mcdonalds-panel-card {
    width: 100%;
    max-width: 100%;
    max-height: calc(100dvh - 20px);
    padding: 26px 20px 30px;
    border-radius: 26px;
  }
  .mcdonalds-panel-head { grid-template-columns: auto minmax(0, 1fr); padding-right: 28px; }
  .mcdonalds-ready { grid-column: 2; justify-self: start; }
  .mcdonalds-actions button { flex: 1 1 130px; }
  .nowhere-audit-grid { grid-template-columns: 1fr 1fr; }
}

/* Nowhere Phase 1: Kiki-only invitation, bounded short journey, no automatic return routes. */
.journey-door-card {
  --journey-action: var(--color-accent);
  --journey-action-strong: var(--color-accent-strong);
  --journey-on-action: var(--color-on-accent);
  --journey-ornament: var(--color-ornament);
  box-sizing: border-box;
  min-width: 0;
  grid-column: 1 / -1;
  padding: clamp(20px, 4vw, 30px);
  border: 1px solid var(--color-border-strong);
  background:
    radial-gradient(circle at 90% 8%, color-mix(in srgb, var(--journey-ornament) 10%, transparent), transparent 36%),
    var(--color-panel-solid);
  box-shadow: inset 3px 0 var(--journey-ornament);
}

.journey-invite-form,
.journey-invitation-summary,
.journey-away-card,
.journey-return-card {
  min-width: 0;
  display: grid;
  gap: 20px;
}

.journey-invite-form > header,
.journey-invitation-summary > header,
.journey-return-card > header {
  min-width: 0;
  display: grid;
  gap: 8px;
}

.journey-invite-form > header small,
.journey-invitation-summary > header small,
.journey-return-card > header small,
.journey-action-timeline small {
  color: var(--journey-ornament);
  font: 700 8px/1.25 var(--font-mono, ui-monospace, monospace);
  letter-spacing: .12em;
}

.journey-invite-form > header strong,
.journey-invitation-summary > header strong,
.journey-return-card > header strong,
.journey-away-card > strong {
  color: var(--color-text);
  font: 600 17px/1.45 var(--font-serif, serif);
}

.journey-invite-form > header p,
.journey-invitation-summary > p,
.journey-away-card > p,
.journey-place-summary,
.journey-return-card blockquote p {
  margin: 0;
  color: var(--color-text-muted);
  font-size: 12px;
  line-height: 1.75;
}

.journey-invite-form > label,
.journey-optional-row > label {
  min-width: 0;
  display: grid;
  gap: 9px;
  color: var(--color-text-muted);
  font-size: 11px;
}

.journey-invite-form :is(input[type="text"], input:not([type]), textarea, select),
.journey-optional-row :is(input, select) {
  box-sizing: border-box;
  width: 100%;
  min-width: 0;
  min-height: 44px;
  padding: 11px 13px;
  border: 1px solid var(--color-border);
  border-radius: 0;
  outline: 0;
  appearance: none;
  background: var(--color-surface);
  color: var(--color-text);
  font: 500 12px/1.45 var(--font-mono, ui-monospace, monospace);
}

.journey-invite-form textarea { min-height: 92px; resize: vertical; }
.journey-invite-form :is(input, textarea, select):focus { border-color: var(--journey-action); }

.journey-mode-field,
.journey-budget-field {
  min-width: 0;
  display: grid;
  gap: 9px;
  margin: 0;
  padding: 0;
  border: 0;
}

.journey-mode-field legend,
.journey-budget-field legend {
  box-sizing: border-box;
  float: none;
  width: 100%;
  max-width: 100%;
  margin: 0;
  padding: 0;
  color: var(--color-text-muted);
  font-size: 11px;
  line-height: 1.4;
  overflow-wrap: normal;
  word-break: keep-all;
  white-space: normal;
}

.journey-choice-grid {
  min-width: 0;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 10px;
}

.journey-mode-field label,
.journey-budget-field label {
  min-width: 0;
  position: relative;
  display: grid;
  min-height: 66px;
  padding: 12px 13px;
  border: 1px solid var(--color-border);
  background: var(--color-surface);
  cursor: pointer;
}

.journey-mode-field label.active,
.journey-budget-field label.active {
  border-color: var(--journey-action);
  background: color-mix(in srgb, var(--journey-action) 9%, var(--color-surface));
  box-shadow: inset 3px 0 var(--journey-action);
}

.journey-mode-field label.is-disabled { opacity: .42; cursor: default; }
.journey-mode-field input,
.journey-budget-field input { position: absolute; opacity: 0; pointer-events: none; }
.journey-mode-field span,
.journey-budget-field span { min-width: 0; display: grid; gap: 7px; color: var(--color-text); font-size: 11px; }
.journey-mode-field small,
.journey-budget-field small { overflow: hidden; color: var(--color-text-subtle); font-size: 8px; line-height: 1.35; text-overflow: ellipsis; }
.journey-budget-field label { min-height: 58px; text-align: center; }
.journey-budget-field span { place-content: center; font: 700 17px/1 var(--font-mono, monospace); }
.journey-budget-field small { font: 500 8px/1.35 var(--font-mono, monospace); }

.journey-optional-row { min-width: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }

.journey-hard-boundary {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1px;
  margin-top: 2px;
  border: 1px solid var(--color-border);
  background: var(--color-border);
}

.journey-hard-boundary span {
  min-width: 0;
  display: grid;
  gap: 7px;
  padding: 13px 10px;
  background: var(--color-surface);
  color: var(--color-text-subtle);
  font-size: 8px;
  line-height: 1.4;
}

.journey-hard-boundary b { color: var(--journey-ornament); font: 700 8px/1.2 var(--font-mono, monospace); }

.journey-build-invite,
.journey-confirm,
.journey-locked button {
  min-height: 46px;
  padding: 0 14px;
  border: 1px solid var(--journey-action-strong);
  border-radius: 0;
  background: var(--journey-action-strong);
  color: var(--journey-on-action);
  -webkit-text-fill-color: var(--journey-on-action);
  font: 700 11px/1 var(--font-mono, monospace);
}

.journey-build-invite:disabled,
.journey-confirm:disabled { opacity: .52; }

.journey-locked {
  display: grid;
  gap: 9px;
  padding: 15px;
  border: 1px solid var(--color-border);
  background: var(--color-surface);
}

.journey-locked strong { color: var(--color-text); font-size: 12px; }
.journey-locked p { margin: 0; color: var(--color-text-muted); font-size: 10px; line-height: 1.55; }
.journey-locked button {
  justify-self: start;
  min-height: 36px;
  background: transparent;
  color: var(--journey-action);
  -webkit-text-fill-color: var(--journey-action);
}
.journey-form-error,
.journey-failure { margin: 0; color: var(--color-error); font-size: 10px; line-height: 1.55; }

.journey-invitation-summary > header span,
.journey-return-card > header time {
  color: var(--journey-ornament);
  font: 600 9px/1.4 var(--font-mono, monospace);
}

.journey-boundary-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 1px;
  border: 1px solid var(--color-border);
  background: var(--color-border);
}

.journey-boundary-grid span {
  min-width: 0;
  display: grid;
  gap: 6px;
  padding: 12px 9px;
  background: var(--color-surface);
  color: var(--color-text-subtle);
  border-right: 1px solid var(--color-border);
  font-size: 8px;
}

.journey-boundary-grid span:last-child { border-right: 0; }
.journey-boundary-grid b { color: var(--journey-ornament); font: 700 14px/1 var(--font-mono, monospace); }
.journey-invitation-summary > footer { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 10px; padding-top: 2px; }
.journey-invitation-summary > footer button:last-child,
.journey-away-card > button,
.journey-return-card > footer button {
  min-height: 40px;
  padding: 0 12px;
  border: 1px solid var(--color-border-strong);
  border-radius: 0;
  background: transparent;
  color: var(--color-text-muted);
  font: 600 10px/1 var(--font-mono, monospace);
}

.journey-away-card {
  justify-items: start;
  padding: 8px;
}

.journey-away-orb {
  width: 12px;
  height: 12px;
  background: var(--journey-ornament);
  box-shadow: 0 0 0 4px var(--color-accent-soft), 0 0 18px var(--journey-ornament);
  animation: journey-away-pulse 1.8s steps(2, end) infinite;
}

.journey-away-card > small { color: var(--journey-ornament); font: 700 8px/1.2 var(--font-mono, monospace); letter-spacing: .1em; }
.journey-away-card > div { color: var(--color-text-subtle); font: 700 9px/1.2 var(--font-mono, monospace); }

@keyframes journey-away-pulse {
  0%, 100% { opacity: .55; }
  50% { opacity: 1; }
}

.journey-action-timeline { display: grid; gap: 12px; }
.journey-action-timeline > article {
  min-width: 0;
  display: grid;
  grid-template-columns: 34px minmax(0, 1fr);
  gap: 12px;
  padding: 14px;
  border: 1px solid var(--color-border);
  background: var(--color-surface);
}
.journey-action-timeline > article > span { color: var(--journey-ornament); font: 700 13px/1 var(--font-mono, monospace); }
.journey-action-timeline > article > div { min-width: 0; display: grid; gap: 6px; }
.journey-action-timeline strong { color: var(--color-text); font-size: 11px; }
.journey-action-timeline p,
.journey-empty { margin: 0; color: var(--color-text-muted); font-size: 10px; line-height: 1.6; }
.journey-subject-note {
  margin: 0;
  padding: 10px 12px;
  border-left: 2px solid var(--journey-ornament);
  color: var(--color-text-muted);
  background: var(--color-surface);
  font-size: 9px;
  line-height: 1.55;
}
.journey-return-card blockquote { margin: 0; padding: 18px 19px; border: 1px solid var(--color-border); box-shadow: inset 2px 0 var(--journey-ornament); }
.journey-return-card > footer { display: grid; gap: 10px; padding-top: 2px; }
.journey-return-card > footer button { justify-self: start; color: var(--journey-action); border-color: var(--journey-action); }
.journey-return-card > footer span { color: var(--color-text-subtle); font-size: 8px; line-height: 1.45; }

/* Nowhere Phase 2B: history, journey reader, per-action provenance, and reversible navigation. */
.journey-recent-card,
.journey-reader-detail,
.journey-source-detail,
.journey-reader-empty {
  min-width: 0;
  display: grid;
  gap: 18px;
}

.journey-recent-card > header {
  min-width: 0;
  display: grid;
  gap: 7px;
}

.journey-recent-card > header small,
.journey-reader-hero small,
.journey-reader-keepsakes small,
.journey-return-routes small,
.journey-source-detail > header small,
.journey-source-detail > aside small,
.journey-mobile-intro > small,
.journey-history-list > header small {
  color: var(--journey-ornament, var(--color-ornament));
  font: 700 8px/1.25 var(--font-mono, ui-monospace, monospace);
  letter-spacing: .12em;
}

.journey-recent-card > header strong,
.journey-mobile-intro > strong,
.journey-reader-empty > strong {
  color: var(--color-text);
  font: 600 18px/1.45 var(--font-serif, serif);
}

.journey-recent-card > header span {
  color: var(--journey-action, var(--color-accent));
  font: 700 9px/1.4 var(--font-mono, ui-monospace, monospace);
}

.journey-recent-card > p,
.journey-reader-empty > p,
.journey-mobile-intro > p {
  margin: 0;
  color: var(--color-text-muted);
  font-size: 11px;
  line-height: 1.7;
}

.journey-recent-card > div {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  gap: 7px 14px;
  padding: 11px 0;
  color: var(--color-text-subtle);
  border-block: 1px solid var(--color-border);
  font: 600 9px/1.4 var(--font-mono, ui-monospace, monospace);
}

.journey-recent-card > footer,
.journey-reader-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 9px;
}

.journey-recent-card > footer button,
.journey-reader-actions button,
.journey-mobile-intro > button,
.journey-history-more {
  box-sizing: border-box;
  min-height: 40px;
  padding: 0 13px;
  color: var(--color-text-muted);
  border: 1px solid var(--color-border-strong);
  border-radius: 0;
  background: transparent;
  font: 600 9px/1.15 var(--font-mono, ui-monospace, monospace);
}

.journey-recent-card > footer .journey-confirm,
.journey-reader-actions .journey-confirm {
  color: var(--journey-on-action, var(--color-on-accent));
  border-color: var(--journey-action-strong, var(--color-accent-strong));
  background: var(--journey-action-strong, var(--color-accent-strong));
}

.journey-mobile-shell {
  --journey-action: var(--color-accent);
  --journey-action-strong: var(--color-accent-strong);
  --journey-on-action: var(--color-on-accent);
  --journey-ornament: var(--color-ornament);
  box-sizing: border-box;
  min-width: 0;
  padding-bottom: calc(108px + env(safe-area-inset-bottom, 0px));
}

.journey-mobile-head {
  position: sticky;
  top: 0;
  z-index: 4;
  background: color-mix(in srgb, var(--color-background) 94%, transparent);
  backdrop-filter: blur(12px);
}

.journey-mobile-intro {
  min-width: 0;
  display: grid;
  gap: 10px;
  margin: 14px 0 18px;
  padding: 20px;
  border: 1px solid var(--color-border-strong);
  background:
    radial-gradient(circle at 92% 10%, color-mix(in srgb, var(--journey-ornament) 10%, transparent), transparent 38%),
    var(--color-panel-solid);
  box-shadow: inset 3px 0 var(--journey-ornament);
}

.journey-mobile-intro > button { justify-self: start; color: var(--journey-action); border-color: var(--journey-action); }

.journey-history-list {
  min-width: 0;
  display: grid;
  gap: 12px;
}

.journey-history-list > header {
  min-width: 0;
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: 12px;
  padding-bottom: 9px;
  border-bottom: 1px solid var(--color-border-strong);
}

.journey-history-list > header > div { min-width: 0; display: grid; gap: 4px; }
.journey-history-list > header strong { color: var(--color-text); font: 600 16px/1.35 var(--font-serif, serif); }
.journey-history-list > header > span { color: var(--journey-ornament, var(--color-ornament)); font: 700 18px/1 var(--font-mono, monospace); }
.journey-history-stack { min-width: 0; display: grid; gap: 10px; }

.journey-history-card {
  box-sizing: border-box;
  min-width: 0;
  width: 100%;
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 6px 12px;
  padding: 16px 15px;
  color: var(--color-text);
  text-align: left;
  border: 1px solid var(--color-border);
  border-radius: 0;
  background: var(--color-surface);
  box-shadow: inset 2px 0 color-mix(in srgb, var(--journey-ornament, var(--color-ornament)) 54%, transparent);
}

.journey-history-card:is(:hover, :focus-visible),
.journey-history-card.is-selected {
  border-color: var(--journey-action, var(--color-accent));
  background: color-mix(in srgb, var(--journey-action, var(--color-accent)) 7%, var(--color-surface));
  box-shadow: inset 3px 0 var(--journey-action, var(--color-accent));
}

.journey-history-card > span,
.journey-history-card > strong,
.journey-history-card > small { min-width: 0; grid-column: 1; }
.journey-history-card > span { color: var(--journey-ornament, var(--color-ornament)); font: 700 8px/1.35 var(--font-mono, monospace); text-transform: uppercase; }
.journey-history-card > strong { overflow: hidden; color: var(--color-text); font: 600 13px/1.45 var(--font-serif, serif); text-overflow: ellipsis; white-space: nowrap; }
.journey-history-card > small { color: var(--color-text-subtle); font: 500 8px/1.4 var(--font-mono, monospace); }
.journey-history-card > i { grid-column: 2; grid-row: 1 / 4; align-self: center; color: var(--journey-action, var(--color-accent)); font: normal 16px/1 var(--font-mono, monospace); }
.journey-history-more { width: 100%; color: var(--journey-action, var(--color-accent)); border-color: var(--journey-action, var(--color-accent)); }

.journey-reader-detail {
  padding: clamp(18px, 4vw, 28px);
  border: 1px solid var(--color-border-strong);
  background:
    radial-gradient(circle at 92% 5%, color-mix(in srgb, var(--journey-ornament) 9%, transparent), transparent 32%),
    var(--color-panel-solid);
  box-shadow: inset 3px 0 var(--journey-ornament);
}

.journey-reader-hero {
  min-width: 0;
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: start;
  gap: 14px;
  padding-bottom: 16px;
  border-bottom: 1px solid var(--color-border-strong);
}

.journey-reader-hero > div { min-width: 0; display: grid; gap: 7px; }
.journey-reader-hero strong { overflow-wrap: anywhere; color: var(--color-text); font: 600 clamp(16px, 4.2vw, 19px)/1.45 var(--font-serif, serif); }
.journey-reader-hero p { margin: 0; color: var(--color-text-muted); font-size: 10px; line-height: 1.65; }
.journey-reader-hero > span { max-width: 112px; padding: 6px 8px; color: var(--journey-action); border: 1px solid var(--color-border); font: 700 8px/1.4 var(--font-mono, monospace); text-align: center; }

.journey-reader-meta {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  border: 1px solid var(--color-border);
  background: var(--color-border);
  gap: 1px;
}

.journey-reader-meta > span {
  min-width: 0;
  display: grid;
  gap: 6px;
  padding: 11px;
  color: var(--color-text-subtle);
  background: var(--color-surface);
  font: 500 8px/1.4 var(--font-mono, monospace);
}

.journey-reader-meta b { overflow-wrap: anywhere; color: var(--journey-ornament); font-size: 9px; }
.journey-reader-timeline { min-width: 0; display: grid; gap: 12px; }

.journey-reader-stop {
  box-sizing: border-box;
  min-width: 0;
  width: 100%;
  display: grid;
  grid-template-columns: 34px minmax(0, 1fr);
  gap: 13px;
  padding: 15px;
  color: var(--color-text);
  text-align: left;
  border: 1px solid var(--color-border);
  border-radius: 0;
  background: var(--color-surface);
}

.journey-reader-stop:is(:hover, :focus-visible) {
  border-color: var(--journey-action);
  background: color-mix(in srgb, var(--journey-action) 6%, var(--color-surface));
}

.journey-reader-stop > span { color: var(--journey-ornament); font: 700 13px/1.2 var(--font-mono, monospace); }
.journey-reader-stop > div { min-width: 0; display: grid; gap: 6px; }
.journey-reader-stop small { color: var(--journey-ornament); font: 700 8px/1.25 var(--font-mono, monospace); letter-spacing: .1em; }
.journey-reader-stop strong { color: var(--color-text); font-size: 12px; line-height: 1.4; }
.journey-reader-stop p { margin: 0; overflow-wrap: anywhere; color: var(--color-text-muted); font-size: 10px; line-height: 1.65; }
.journey-reader-stop i { color: var(--journey-action); font: normal 8px/1.35 var(--font-mono, monospace); }
.journey-reader-stop.is-failed { border-color: color-mix(in srgb, var(--color-error) 55%, var(--color-border)); }

.journey-reader-keepsakes {
  min-width: 0;
  display: grid;
  gap: 11px;
}

.journey-reader-keepsakes > :is(article, blockquote) {
  min-width: 0;
  display: grid;
  gap: 8px;
  margin: 0;
  padding: 17px;
  border: 1px solid var(--color-border);
  background: var(--color-surface);
}

.journey-reader-keepsakes > blockquote { box-shadow: inset 2px 0 var(--journey-ornament); }
.journey-reader-keepsakes strong { color: var(--color-text); font: 600 12px/1.5 var(--font-serif, serif); }
.journey-reader-keepsakes p { margin: 0; overflow-wrap: anywhere; color: var(--color-text-muted); font-size: 10px; line-height: 1.75; }

.journey-return-routes {
  min-width: 0;
  display: grid;
  gap: 11px;
  padding: 16px;
  border: 1px solid var(--color-border);
  background: color-mix(in srgb, var(--color-surface) 92%, var(--journey-ornament) 8%);
}

.journey-return-routes > header { display: grid; gap: 5px; }
.journey-return-routes > header strong { color: var(--color-text); font-size: 12px; }
.journey-return-routes > div { display: flex; flex-wrap: wrap; gap: 7px; }
.journey-return-routes > div span { padding: 6px 8px; color: var(--color-text-subtle); border: 1px solid var(--color-border); font: 600 8px/1.2 var(--font-mono, monospace); }
.journey-return-routes > div span.is-kept { color: var(--journey-ornament); border-color: var(--journey-ornament); }
.journey-return-routes > div span.is-shared { color: var(--journey-action); border-color: var(--journey-action); }
.journey-return-routes > p { margin: 0; color: var(--color-text-subtle); font-size: 9px; line-height: 1.55; }
.journey-return-routes > p.journey-return-reflection-copy {
  padding: 10px 12px;
  border-left: 2px solid var(--journey-action);
  background: color-mix(in srgb, var(--journey-action) 7%, transparent);
  color: var(--color-text-muted);
  font-size: 10px;
  line-height: 1.65;
}
.journey-return-routes > button {
  justify-self: start;
  min-height: 34px;
  padding: 0 11px;
  border: 1px solid var(--journey-action);
  border-radius: 0;
  background: transparent;
  color: var(--journey-action);
  font: 700 9px/1.2 var(--font-mono, ui-monospace, monospace);
}

.journey-return-actions {
  min-width: 0;
  display: grid;
  gap: 13px;
  padding: 17px;
  border: 1px solid var(--color-border);
  background: var(--color-surface);
}

.journey-return-actions > header { min-width: 0; display: grid; gap: 6px; }
.journey-return-actions > header small,
.journey-return-actions > article small {
  color: var(--journey-ornament);
  font: 700 8px/1.25 var(--font-mono, ui-monospace, monospace);
  letter-spacing: .1em;
}
.journey-return-actions > header strong { color: var(--color-text); font: 600 14px/1.4 var(--font-serif, serif); }
.journey-return-actions > header p { margin: 0; color: var(--color-text-subtle); font-size: 9px; line-height: 1.55; }
.journey-return-actions > div { min-width: 0; display: grid; gap: 10px; }
.journey-return-actions article {
  min-width: 0;
  display: grid;
  gap: 8px;
  padding: 14px;
  border: 1px solid var(--color-border);
  background: var(--color-panel-solid);
}
.journey-return-actions article.is-kept {
  border-color: var(--journey-action);
  box-shadow: inset 2px 0 var(--journey-action);
}
.journey-return-actions article > strong { color: var(--color-text); font-size: 12px; line-height: 1.4; }
.journey-return-actions article > p { margin: 0; color: var(--color-text-muted); font-size: 9px; line-height: 1.6; }
.journey-return-actions article > blockquote {
  margin: 0;
  padding: 9px 10px;
  border: 0;
  border-left: 2px solid var(--journey-ornament);
  background: color-mix(in srgb, var(--journey-ornament) 7%, transparent);
  color: var(--color-text-muted);
  font-size: 9px;
  line-height: 1.6;
}
.journey-return-actions article > button {
  justify-self: start;
  min-height: 36px;
  padding: 0 11px;
  color: var(--journey-action);
  border: 1px solid var(--journey-action);
  border-radius: 0;
  background: transparent;
  font: 600 9px/1.2 var(--font-mono, ui-monospace, monospace);
}
.journey-return-actions article > button:disabled {
  color: var(--color-text-subtle);
  border-color: var(--color-border);
  opacity: .72;
}

.journey-reader-detail.is-desktop .journey-return-actions > div {
  grid-template-columns: repeat(3, minmax(0, 1fr));
  align-items: stretch;
}

.journey-reader-detail.is-desktop .journey-return-actions article {
  grid-template-rows: auto auto minmax(44px, 1fr) auto auto;
}

.journey-source-detail {
  padding: clamp(18px, 4vw, 28px);
  border: 1px solid var(--color-border-strong);
  background: var(--color-panel-solid);
  box-shadow: inset 3px 0 var(--journey-action);
}

.journey-source-detail > header { min-width: 0; display: grid; gap: 8px; padding-bottom: 15px; border-bottom: 1px solid var(--color-border-strong); }
.journey-source-detail > header strong { color: var(--color-text); font: 600 18px/1.45 var(--font-serif, serif); }
.journey-source-detail > header p { margin: 0; overflow-wrap: anywhere; color: var(--color-text-muted); font-size: 11px; line-height: 1.7; }
.journey-source-detail > dl { min-width: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1px; margin: 0; border: 1px solid var(--color-border); background: var(--color-border); }
.journey-source-detail > dl > div { min-width: 0; display: grid; gap: 6px; padding: 12px; background: var(--color-surface); }
.journey-source-detail dt { color: var(--color-text-subtle); font: 600 8px/1.2 var(--font-mono, monospace); }
.journey-source-detail dd { margin: 0; overflow-wrap: anywhere; color: var(--color-text); font: 600 9px/1.5 var(--font-mono, monospace); }
.journey-source-detail > aside { display: grid; gap: 7px; padding: 14px; border-left: 2px solid var(--journey-ornament); background: var(--color-surface); }
.journey-source-detail > aside p { margin: 0; color: var(--color-text-muted); font-size: 10px; line-height: 1.65; }
.journey-source-detail > a { justify-self: start; color: var(--journey-action); font: 700 9px/1.4 var(--font-mono, monospace); text-decoration: none; }
.journey-reader-empty { align-content: center; min-height: 230px; padding: 24px; text-align: center; border: 1px dashed var(--color-border-strong); }

@media (max-width: 520px) {
  .journey-door-card { padding: 20px 16px 22px; }
  .journey-invite-form,
  .journey-invitation-summary,
  .journey-away-card,
  .journey-return-card { gap: 18px; }
  .journey-mode-field .journey-choice-grid,
  .journey-hard-boundary { grid-template-columns: 1fr; }
  .journey-budget-field .journey-choice-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .journey-optional-row { grid-template-columns: 1fr; }
  .journey-boundary-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .journey-boundary-grid span:nth-child(2) { border-right: 0; }
  .journey-boundary-grid span:nth-child(-n+2) { border-bottom: 1px solid var(--color-border); }
  .journey-reader-hero { grid-template-columns: 1fr; }
  .journey-reader-hero > span { justify-self: start; }
  .journey-source-detail > dl { grid-template-columns: 1fr; }
  .journey-recent-card > footer,
  .journey-reader-actions { display: grid; grid-template-columns: 1fr; }
  .journey-recent-card > footer button,
  .journey-reader-actions button { width: 100%; }
  .journey-return-routes > div {
    display: grid;
    grid-template-columns: 1fr 1fr;
  }
  .journey-return-routes > div span { min-width: 0; }
}

@media (prefers-reduced-motion: reduce) {
  .journey-away-orb { animation: none; }
}

/* Phase 3E — durable place drafts. Structural rules live here; the final
   palette contract in themes/pages.css owns every visible colour. */
.more-real-world-list {
  margin-bottom: 12px;
}

.places-draft-section {
  display: grid;
  gap: 12px;
  margin: 2px 0 16px;
}

.places-section-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 0 4px;
}

.places-section-head > span {
  min-width: 0;
  display: grid;
  gap: 3px;
}

.places-section-head small {
  font: 700 8px/1.2 var(--font-mono, "Space Mono", monospace);
  letter-spacing: .14em;
}

.places-section-head strong {
  font-size: 15px;
  line-height: 1.25;
}

.places-section-head b {
  min-width: 24px;
  height: 24px;
  display: inline-grid;
  place-items: center;
  border: 1px solid var(--color-border-strong);
  border-radius: 999px;
  font: 700 10px/1 var(--font-mono, "Space Mono", monospace);
}

.places-draft-list {
  display: grid;
  gap: 12px;
}

.place-draft-card {
  width: 100%;
  min-width: 0;
  box-sizing: border-box;
  display: grid;
  gap: 14px;
  padding: 16px;
  border: 1px solid var(--color-border);
  border-radius: 18px;
  overflow: hidden;
}

.place-draft-card[data-context="chat"] {
  width: min(100%, 520px);
  margin: 2px 0;
}

.place-draft-head {
  min-width: 0;
  display: grid;
  grid-template-columns: 28px minmax(0, 1fr) auto;
  align-items: center;
  gap: 10px;
}

.place-draft-head > .material-symbols-outlined {
  font-size: 23px;
}

.place-draft-head > span:nth-child(2) {
  min-width: 0;
  display: grid;
  gap: 2px;
}

.place-draft-head small {
  font: 700 8px/1.2 var(--font-mono, "Space Mono", monospace);
  letter-spacing: .12em;
}

.place-draft-head strong {
  min-width: 0;
  overflow-wrap: anywhere;
  font-size: 15px;
  line-height: 1.3;
}

.place-draft-head b {
  min-width: max-content;
  padding: 5px 8px;
  border: 1px solid var(--color-border-strong);
  border-radius: 999px;
  font: 700 9px/1 var(--font-mono, "Space Mono", monospace);
  white-space: nowrap;
}

.place-draft-copy {
  min-width: 0;
  display: grid;
  gap: 5px;
}

.place-draft-copy h3,
.place-draft-copy p,
.place-draft-saved-name,
.place-draft-card.is-terminal > p {
  margin: 0;
  overflow-wrap: anywhere;
}

.place-draft-copy h3,
.place-draft-saved-name {
  font: 600 19px/1.35 var(--font-serif, "Literata", "Songti SC", serif);
}

.place-draft-copy p,
.place-draft-card.is-terminal > p {
  font-size: 12px;
  line-height: 1.65;
}

.place-draft-tags {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin-top: 3px;
}

.place-draft-tags span {
  padding: 4px 7px;
  border: 1px solid var(--color-border-strong);
  border-radius: 999px;
  font-size: 9px;
  line-height: 1.2;
}

.place-draft-meta {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1px;
  margin: 0;
  border: 1px solid var(--color-border);
  border-radius: 12px;
  overflow: hidden;
  background: var(--color-border);
}

.place-draft-meta > div {
  min-width: 0;
  display: grid;
  gap: 4px;
  padding: 10px;
  background: var(--color-panel-solid);
}

.place-draft-meta dt {
  font: 700 8px/1.2 var(--font-mono, "Space Mono", monospace);
}

.place-draft-meta dd {
  margin: 0;
  overflow-wrap: anywhere;
  color: var(--color-text);
  font-size: 11px;
  line-height: 1.35;
}

.place-draft-duplicates {
  display: grid;
  gap: 6px;
  padding-top: 12px;
  border-top: 1px solid var(--color-border);
}

.place-draft-duplicates strong {
  font-size: 13px;
}

.place-draft-duplicates p {
  margin: 0;
  font-size: 11px;
  line-height: 1.55;
}

.place-draft-duplicates > div,
.place-draft-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  align-items: center;
}

.place-draft-actions button,
.place-draft-duplicates button,
.place-draft-source {
  min-height: 36px;
  box-sizing: border-box;
  padding: 8px 11px;
  border: 1px solid var(--color-border-strong);
  border-radius: 10px;
  font: 600 11px/1.25 var(--font-sans, Inter, sans-serif);
}

.place-draft-secondary-actions {
  padding-top: 2px;
}

.place-draft-source {
  justify-self: start;
  min-height: 0;
  padding: 2px 0;
  border: 0;
  border-radius: 0;
  font-size: 10px;
}

.place-draft-edit {
  display: grid;
  gap: 11px;
}

.place-draft-edit > label {
  min-width: 0;
  display: grid;
  gap: 5px;
}

.place-draft-edit > label > span {
  font-size: 11px;
  font-weight: 600;
}

.place-draft-edit :is(input, textarea, select) {
  width: 100%;
  min-width: 0;
  min-height: 40px;
  box-sizing: border-box;
  padding: 9px 11px;
  border: 1px solid var(--color-border);
  border-radius: 10px;
  font: 400 13px/1.45 var(--font-sans, Inter, sans-serif);
}

.place-draft-edit textarea {
  min-height: 84px;
  resize: vertical;
}

.place-draft-edit > p {
  margin: 0;
  font-size: 10px;
  line-height: 1.5;
}

@media (max-width: 520px) {
  .place-draft-card {
    gap: 12px;
    padding: 14px;
    border-radius: 16px;
  }

  .place-draft-meta {
    grid-template-columns: 1fr;
  }

  .place-draft-actions,
  .place-draft-duplicates > div {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .place-draft-actions button,
  .place-draft-duplicates button {
    width: 100%;
  }

  .place-draft-duplicates button.secondary {
    grid-column: 1 / -1;
  }

  .life-writing-draft-card[data-context="chat"] {
    gap: 10px;
  }

  .life-writing-draft-card[data-context="chat"] > p,
  .life-writing-draft-card[data-context="chat"] .place-draft-copy p {
    margin: 0;
    font-size: 11px;
    line-height: 1.55;
  }

  .life-writing-draft-card[data-context="chat"] .place-draft-meta dd {
    font-size: 10px;
    line-height: 1.35;
  }
}

.life-writing-surprise-notes-card {
  display: grid;
  gap: 16px;
  padding: 20px;
}

.memo-control-shell > .life-writing-surprise-notes-card {
  margin: 0 0 34px;
}

.life-writing-surprise-notes-card .surprise-notes-head {
  align-items: flex-start;
}

.surprise-notes-title {
  min-width: 0;
  display: grid;
  gap: 5px;
}

.surprise-notes-title strong {
  font: 650 15px/1.3 var(--font-sans, Inter, sans-serif);
  letter-spacing: .01em;
}

.surprise-notes-switch {
  flex: 0 0 auto;
  position: relative;
  cursor: pointer;
}

.surprise-notes-switch input {
  position: absolute;
  width: 1px;
  height: 1px;
  overflow: hidden;
  opacity: 0;
  pointer-events: none;
}

.surprise-notes-switch:has(input:focus-visible) {
  outline: 2px solid var(--color-accent);
  outline-offset: 2px;
}

.life-writing-surprise-notes-card .surprise-notes-intro {
  margin: 0;
  max-width: 52ch;
  font-size: 11px;
  line-height: 1.7;
}

.surprise-notes-metrics {
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 8px;
}

.surprise-notes-metrics .monitor-metric {
  padding: 10px;
}

.surprise-notes-metrics .monitor-metric small {
  margin-bottom: 6px;
}

.surprise-notes-metrics .monitor-metric strong {
  font-size: 14px;
}

.surprise-notes-metrics .monitor-metric strong em {
  font-size: 9px;
  font-style: normal;
  font-weight: 500;
}

.surprise-notes-audit {
  display: grid;
  grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr);
  gap: 8px;
}

.surprise-notes-audit > span {
  min-width: 0;
  display: grid;
  gap: 5px;
  padding: 10px;
  border: 1px solid var(--color-border);
  border-radius: 10px;
}

.surprise-notes-audit small {
  font-size: 8px;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.surprise-notes-audit strong {
  min-width: 0;
  overflow-wrap: anywhere;
  font-size: 10px;
  line-height: 1.45;
  font-weight: 600;
}

.surprise-notes-foot {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding-top: 12px;
  border-top: 1px solid var(--color-border);
  font-size: 9px;
  line-height: 1.5;
}

@media (max-width: 520px) {
  .life-writing-surprise-notes-card {
    gap: 14px;
    padding: 18px;
  }

  .surprise-notes-title strong {
    font-size: 14px;
  }

  .surprise-notes-foot {
    font-size: 8px;
  }

  .surprise-notes-audit {
    grid-template-columns: 1fr;
  }
}
