/* Shared structure, three authored worlds. No gameplay selectors are replaced. */
body[data-theme] { background: var(--color-bg-main); background-image: none; }
body[data-theme] #app::before, body[data-theme]::before { display: none; }
body[data-theme] #app .view { padding: 22px; padding-bottom: var(--page-padding-bottom); animation-duration: var(--motion-page); }
body[data-theme] #app .view > .page-header { background: var(--color-bg-main); margin: -22px -22px 22px; padding: 30px 22px 20px; border-radius: 0; min-height: 110px; border-bottom: 1px solid var(--color-border); }
body[data-theme] #app .page-title { font-family: var(--font-display); color: var(--color-text-main); font-size: var(--type-page); letter-spacing: -.4px; font-weight: 600; line-height: 1.4; }
body[data-theme="twilight"] #app .page-title { font-weight: 500; letter-spacing: 1px; }
body[data-theme] #app .page-subtitle { color: var(--color-text-muted); font-size: var(--type-meta); line-height: 1.7; }
body[data-theme] #app .section-title { font-size: var(--type-section); font-family: var(--font-display); }
body[data-theme] #app :is(.card, .empty-state) { border-radius: var(--radius-lg); }
body[data-theme] :is(button, a, input, textarea, select, summary):focus-visible { outline: 2px solid var(--color-primary); outline-offset: 3px; }
body[data-theme] :is(.btn, .filter-btn, .segmented-control__btn, .page-back-btn, .collection-milestones-toggle, .collection-milestone-filter, .collection-milestones-more, .gacha-theme-details-btn, .section-toggle, .form-select) { min-height: 44px; font-size: var(--type-button); }
body[data-theme] :is(#app, #modal-body) .btn--primary,
body[data-theme] #view-gacha :is(.gacha-btn, .btn--pull, .btn--ten-pull),
body[data-theme] :is(.default-summon-btn, .expedition-confirm-button, .expedition-dispatch-button, .quest-claim-button) { background: var(--color-primary); color: var(--color-text-inverse); box-shadow: none; border-color: var(--color-primary); }
body[data-theme] :is(.btn, .filter-btn, .theme-card, .collection-card__name-btn) { transition: background-color var(--motion-feedback), border-color var(--motion-feedback), transform var(--motion-feedback); }
body[data-theme] .btn:active:not(:disabled) { transform: translateY(1px); }
body[data-theme] :is(.form-input, .form-textarea, .form-select, select, input[type="date"]) { color-scheme: inherit; }
body[data-theme] .qn-icon { font-size: 0; line-height: 1; vertical-align: middle; display: inline-flex; align-items: center; justify-content: center; flex: none; }
body[data-theme] .qn-icon svg { width: 20px; height: 20px; fill: none; stroke: currentColor; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; }
body[data-theme] .qn-inline-icon { margin: 0 3px; }
body[data-theme] .qn-inline-icon svg { width: 16px; height: 16px; }
body[data-theme] .stars { gap: 3px; }
body[data-theme] .star svg { width: 13px; height: 13px; }
body[data-theme] .star { color: var(--color-text-muted); }
body[data-theme] .star--filled { color: var(--color-accent); }
body[data-theme] .star--filled svg { fill: currentColor; }
body[data-theme] .bottom-nav { background: var(--color-bg-main); padding-top: 8px; border-color: var(--color-border); box-shadow: 0 -4px 18px #00000008; }
body[data-theme] .nav-item { font-size: 0.6875rem; color: var(--color-text-muted); min-height: 48px; border: 0; }
body[data-theme] .nav-item.active { color: var(--color-text-main); border: 0; }
body[data-theme] .nav-item.active::before { top: -8px; background: var(--color-primary); }
body[data-theme] .nav-item > .qn-icon svg { width: 23px; height: 23px; }
body[data-theme] #app #view-tasks.active { padding: 0 0 var(--page-padding-bottom); }
body[data-theme] #app #view-tasks > .page-header--tasks { position: absolute; right: 14px; top: 8px; padding: 0; margin: 0; border: 0; background: transparent; min-height: 44px; }
body[data-theme] #view-tasks #btn-global-mailbox { color: var(--qn-scene-text); background: transparent; }
body[data-theme] .mailbox-entry-btn__gift { color: var(--qn-scene-accent); background: var(--qn-scene); border: 1px solid var(--qn-scene-accent); width: 18px; height: 18px; top: -2px; right: -2px; font-size: 0; box-shadow: none; display: grid; place-items: center; }
body[data-theme] .mailbox-entry-btn__gift[hidden] { display: none; }
body[data-theme] .mailbox-entry-btn__gift .qn-icon { margin: 0; }
body[data-theme] .mailbox-entry-btn__gift svg { width: 12px; height: 12px; }
body[data-theme] .twilight-masthead { height: 58px; padding: 0 22px; gap: 12px; }
body[data-theme] .twilight-wordmark { color: var(--qn-scene-text); font: 600 1.25rem/1.2 var(--font-body); letter-spacing: -.6px; gap: 8px; }
body[data-theme] .qn-brand-mark { border-radius: 7px; flex: none; }
body[data-theme] .qn-world-name { font-size: 0.625rem; letter-spacing: .3px; color: var(--qn-scene-muted); margin-left: auto; margin-right: 42px; }
/* Reserve the complete notebook corner behind the following sheet. A 3px
   overlap leaves most of its 24px corners painted against the page background. */
body[data-theme] #twilight-home { background: var(--qn-scene); color: var(--qn-scene-text); padding-bottom: var(--radius-xl); }
body[data-theme] .twilight-scene { height: 260px; }
body[data-theme] .twilight-companion-art { width: 100%; height: 100%; right: 0; top: 0; object-fit: cover; object-position: center; opacity: 1; mask-image: none; -webkit-mask-image: none; }
body[data-theme] .twilight-scene--catalog .twilight-companion-art { width: 66%; right: 0; object-position: center; mask-image: linear-gradient(90deg,transparent,#000 25%); -webkit-mask-image: linear-gradient(90deg,transparent,#000 25%); }
body[data-theme] .twilight-scene-shade { inset: 0; background: linear-gradient(90deg, color-mix(in srgb,var(--qn-scene-shade) 80%,transparent),transparent 63%),linear-gradient(0deg,var(--qn-scene),transparent 42%); }
body[data-theme="sweet"] .twilight-scene-shade { background: linear-gradient(90deg,#f5e8ded9,transparent 60%),linear-gradient(0deg,var(--qn-scene),transparent 40%); }
body[data-theme] .twilight-greeting { padding: 12px 22px 0; }
body[data-theme] .twilight-eyebrow { font-size: var(--type-caption); line-height: 1.7; letter-spacing: .8px; color: var(--qn-scene-muted); }
body[data-theme] .twilight-greeting h1 { font: 600 var(--type-display)/1.35 var(--font-display); letter-spacing: -.4px; margin-top: 9px; color: var(--qn-scene-text); }
body[data-theme="twilight"] .twilight-greeting h1 { font-weight: 400; line-height: 1.45; letter-spacing: 1px; }
body[data-theme] .twilight-greeting > p:last-child { display: none; }
body[data-theme] .twilight-companion-caption { left: 22px; right: 22px; bottom: 6px; padding-right: 58px; }
body[data-theme] .twilight-companion-caption .twilight-eyebrow { font-size: 0.625rem; color: var(--qn-scene-muted); }
body[data-theme] .twilight-pet-name { color: var(--qn-scene-text); font-size: 1.125rem; font-weight: 600; line-height: 1.4; overflow-wrap: anywhere; gap: 7px; }
body[data-theme] .twilight-rarity { color: var(--qn-scene-accent); border-color: color-mix(in srgb,var(--qn-scene-accent) 50%,transparent); }
body[data-theme] .twilight-companion-caption > p { font-size: 0.6875rem; color: var(--qn-scene-muted); line-height: 1.5; }
body[data-theme] .qn-companion-feed { position: absolute; right: 0; bottom: 2px; display: flex; align-items: center; justify-content: center; flex-direction: column; gap: 4px; width: 48px; min-height: 48px; border: 1px solid color-mix(in srgb,var(--qn-scene-muted) 35%,transparent); border-radius: 12px; background: color-mix(in srgb,var(--qn-scene) 80%,transparent); color: var(--qn-scene-text); font-size: 0.6875rem; }
body[data-theme] .twilight-companion-footer { display: flex; align-items: center; gap: 12px; margin: 8px 22px 0; }
body[data-theme] .twilight-companion-footer .twilight-voice { flex: 1; min-width: 0; margin: 0; }
body[data-theme] .twilight-companion-footer .twilight-pet-touch { position: static; flex: none; height: 44px; width: auto; max-width: 148px; padding: 0; align-items: center; color: var(--qn-scene-text); }
body[data-theme] .twilight-pet-touch span:first-child { color: #f4eee1; background: #101a2bdb; font-size: 0.625rem; padding: 7px 9px; }
body[data-theme] .twilight-pet-touch > .qn-icon { display: none; }
body[data-theme] .twilight-voice { margin: 8px 22px 0; min-height: 34px; gap: 8px; }
body[data-theme] .twilight-voice p { font-size: 0.75rem; color: var(--qn-scene-text); line-height: 1.65; padding-top: 3px; }
body[data-theme] .twilight-voice > span { font-size: 1.875rem; }
body[data-theme] .twilight-journey { padding: 12px 22px 22px; }
body[data-theme] .twilight-journey-label > span, body[data-theme] .twilight-journey-label small { color: var(--qn-scene-muted); font-size: 0.6875rem; }
body[data-theme] .twilight-journey-label strong { font-size: 0.9375rem; font-weight: 600; }
body[data-theme] .twilight-journey-track { background: color-mix(in srgb,var(--qn-scene-muted) 25%,transparent); height: 4px; }
body[data-theme] .twilight-journey-track > span, body[data-theme] .twilight-journey-track i { transition-duration: var(--motion-growth); }
body[data-theme] .twilight-bond { font-size: 0.6875rem; color: var(--qn-scene-muted); margin-top: 12px; }
body[data-theme] #twilight-chapter-heading { padding: 20px 22px 8px; margin-top: calc(-1 * var(--radius-xl)); background: var(--color-bg-main); border-radius: var(--radius-xl) var(--radius-xl) 0 0; }
body[data-theme] .twilight-chapter-heading::after { display: none; }
body[data-theme] .twilight-chapter-heading p { font-size: 0.625rem; letter-spacing: 1px; }
body[data-theme] .twilight-chapter-heading h2 { font-size: var(--type-section); letter-spacing: -.3px; font-weight: 600; }
body[data-theme] .twilight-add-task { background: var(--color-primary); color: var(--color-text-inverse); border-radius: var(--radius-sm); }
body[data-theme] #view-tasks :is(#task-view-tabs,#task-category-filters,#task-view-content,.stats-bar,#habit-summary,#home-hub) { margin-inline: 22px; }
body[data-theme] #view-tasks .twilight-task-card { grid-template-columns: 36px minmax(0,1fr) 28px; gap: 8px; padding: 17px 0; border-radius: 0; }
body[data-theme] #view-tasks .task-card__title { font-size: var(--type-quest); line-height: 1.65; letter-spacing: 0; }
body[data-theme] #view-tasks .task-card__meta { font-size: var(--type-caption); flex-wrap: wrap; gap: 8px; }
body[data-theme] #view-tasks .task-card__rewards { font-size: var(--type-reward); gap: 10px; margin-top: 9px; }
body[data-theme] #view-tasks .task-card__rewards > span { color: var(--color-accent); }
body[data-theme] #view-tasks .task-card__rewards > span:last-child { color: var(--color-success); }
body[data-theme] #view-tasks .task-check { color: var(--color-text-inverse); }
body[data-theme] #view-tasks .task-check::before { border-color: var(--color-text-muted); }
body[data-theme] #view-tasks .stat-label { font-size: 0.6875rem; }
body[data-theme] #view-tasks .stat-value { font: 600 1.375rem/1.4 var(--font-body); }
body[data-theme] #view-tasks .task-card__done-info { color: var(--color-text-muted); font-size: 0.6875rem; }
body[data-theme] .subtask-check { min-width: 44px; min-height: 44px; }
body[data-theme] #app .filter-btn.active { background: var(--color-primary); color: var(--color-text-inverse); }
body[data-theme] #view-tasks #task-category-filters .filter-btn.active { background: var(--color-bg-card-soft); color: var(--color-primary); }
/* Collection uses the real companion and gives actual artwork breathing room. */
body[data-theme] #view-collection.active { display: flex; flex-direction: column; }
body[data-theme] #view-collection .page-header { order: 0; }
body[data-theme] #app #collection-companion { order: 1; margin: 0 0 16px; min-height: 130px; padding: 18px; display: flex; gap: 16px; align-items: center; overflow: hidden; position: relative; background: var(--qn-scene); border-radius: var(--radius-lg); }
body[data-theme] #collection-companion > * { position: relative; z-index: 1; }
body[data-theme] #collection-companion .pet-image-frame { width: 96px; height: 96px; border: 0; border-radius: 16px; box-shadow: none; }
body[data-theme] #collection-companion .collection-companion__label { color: var(--qn-scene-muted); font-size: 0.6875rem; margin-bottom: 6px; }
body[data-theme] #collection-companion .collection-companion__name { color: var(--qn-scene-text); font: 600 1.25rem/1.5 var(--font-display); overflow-wrap: anywhere; }
body[data-theme] #collection-companion .bond-badge { color: var(--qn-scene-muted); background: transparent; }
body[data-theme] #collection-companion > .badge { position: absolute; right: 14px; top: 14px; font-size: 0.625rem; }
body[data-theme] #app #collection-progress-summary { order: 2; padding: 0 0 16px; margin: 0; border: 0; border-radius: 0; background: transparent; }
body[data-theme] .collection-summary__title { font-size: 0.9375rem !important; font-family: var(--font-body) !important; }
body[data-theme] .collection-summary__next { font-size: 0.75rem; }
body[data-theme] .collection-summary__rarities { gap: 5px; margin-top: 10px; }
body[data-theme] .collection-rarity-chip { font-size: 0.625rem; padding: 4px 6px; }
body[data-theme] #app #collection-milestones-panel { order: 3; padding: 0; margin: 0 0 12px; border: 0; border-block: 1px solid var(--color-border); border-radius: 0; }
body[data-theme] .collection-milestones-toggle { padding: 12px 0; flex-wrap: wrap; gap: 6px; }
body[data-theme] .collection-milestones-toggle__meta { font-size: 0.6875rem; color: var(--color-text-muted); }
body[data-theme] #collection-series-filters { order: 4; margin-bottom: 4px; }
body[data-theme] #collection-filters { order: 5; margin-bottom: 6px; }
body[data-theme] .collection-browse-hint { order: 6; font-size: 0.6875rem; color: var(--color-text-muted); margin: 6px 0 14px; }
body[data-theme] #collection-grid { order: 7; }
body[data-theme] #app #collection-companion .qn-collection-art { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: center 40%; z-index: 0; }
body[data-theme] #app #collection-companion::after { content: ''; position: absolute; inset: 0; background: linear-gradient(90deg,var(--qn-scene),color-mix(in srgb,var(--qn-scene) 85%,transparent) 33%,transparent 73%); pointer-events: none; }
body[data-theme] #app #collection-companion .qn-collection-copy { max-width: 58%; z-index: 1; }
body[data-theme] .qn-collection-bond { color: var(--qn-scene-muted); font-size: 0.6875rem; display: flex; gap: 5px; align-items: center; margin-top: 8px; }
body[data-theme] .qn-collection-bond svg { width: 13px; height: 13px; }
body[data-theme] #app #collection-companion .qn-collection-image { position: absolute; right: 10px; bottom: 8px; width: 44px; height: 44px; border: 0; border-radius: 10px; background: #101a2bcc; color: #f4eee1; z-index: 2; }
body[data-theme] #app .collection-milestones-toggle { padding: 10px 0; background: transparent; border: 0; border-radius: 0; }
body[data-theme] #view-collection .collection-card { border-radius: var(--radius-lg) var(--radius-lg) 0 0; }
body[data-theme] #view-collection .collection-card__image, body[data-theme] #view-collection .collection-card .pet-image-frame { border-radius: var(--radius-lg); }
body[data-theme] #view-collection .collection-card__name { color: var(--color-text-main); font-family: var(--font-display); font-size: 1rem; }
body[data-theme] #view-collection .collection-card__name-btn { min-height: 44px; text-align: left; }
/* Source pool/rate/price/reveal data stay untouched. */
body[data-theme] #view-gacha .gacha-panel { border-radius: var(--radius-lg); }
body[data-theme] #view-gacha .twilight-gacha-scene { height: 255px; border-radius: var(--radius-lg) var(--radius-lg) 0 0; padding: 25px 20px; }
body[data-theme] .twilight-gacha-art img { opacity: 1; }
body[data-theme] .twilight-gacha-art div { background: linear-gradient(90deg,color-mix(in srgb,var(--qn-scene-shade) 90%,transparent),transparent 72%),linear-gradient(0deg,var(--qn-scene-shade),transparent 40%); }
body[data-theme] .twilight-gacha-scene h2 { font: 600 1.5625rem/1.4 var(--font-display); margin-top: 16px; }
body[data-theme] .twilight-gacha-scene > p:not(.twilight-eyebrow) { max-width: 170px; font-size: 0.75rem; color: var(--qn-scene-text); }
body[data-theme] .twilight-gacha-caption { color: var(--qn-scene-muted); font-size: 0.6875rem; margin-top: 42px; }
body[data-theme] .gacha-pool-switcher { padding: 0 0 16px; }
body[data-theme] #view-gacha .gacha-pool { color: var(--color-text-main); font-size: 1.125rem; }
body[data-theme] #view-gacha .gacha-stardust__value { color: var(--color-accent); font-size: 1.375rem; }
body[data-theme] #view-gacha .gacha-pity { margin-top: 12px; }
body[data-theme] .gacha-btn, body[data-theme] .default-summon-btn { min-height: 48px; }
body[data-theme] #view-expedition .expedition-area-card { border-radius: var(--radius-lg); }
body[data-theme] #view-expedition .expedition-area-card__art { height: 156px; }
body[data-theme] #view-expedition .expedition-area-card__title { font-family: var(--font-display); }
body[data-theme] #view-expedition .expedition-area-card__status { background: var(--color-bg-card); color: var(--color-text-main); font-size: 0.6875rem; }
body[data-theme] #view-expedition .expedition-dispatch-button { color: var(--color-text-inverse); }
/* A real scene preview replaces generic palette tiles. */
body[data-theme] #app .theme-picker { grid-template-columns: 1fr; gap: 14px; }
body[data-theme] #app .theme-card { padding: 0; overflow: hidden; border-radius: var(--radius-lg); background: var(--color-bg-card); border: 1px solid var(--color-border); text-align: left; }
body[data-theme] #app .theme-card--active { border: 2px solid var(--color-primary); background: var(--color-bg-card); }
body[data-theme] .qn-theme-preview { width: 100%; height: 135px; display: block; object-fit: cover; }
body[data-theme] .theme-card__header { padding: 14px 16px 0; }
body[data-theme] #app .theme-card__title { font-family: var(--font-display); font-size: 1.125rem; }
body[data-theme] #app .theme-card__desc { padding: 0 16px 16px; font-size: 0.75rem; color: var(--color-text-muted); }
body[data-theme] #app .theme-card__badge { background: var(--color-primary); color: var(--color-text-inverse); font-size: 0.6875rem; }
body[data-theme] #app .more-menu-icon { background: var(--color-bg-card-soft); color: var(--color-primary); }
body[data-theme] .page-back-btn { color: var(--color-text-main) !important; border-color: var(--color-border) !important; }
body[data-theme] .modal-title { font-family: var(--font-display); color: var(--color-text-main); }
body[data-theme] .toast--success { color: var(--color-success); }
body[data-theme] :is(.toast--reward, .reward-toast) { background: var(--color-bg-elevated); color: var(--color-text-main); border-color: var(--color-accent); }
body[data-theme] :is(.toast--warning, .toast--error) { color: var(--color-danger); }
body[data-theme] .toast--info { color: var(--color-secondary); }
body[data-theme] .twilight-is-reacting .twilight-companion-art { animation-duration: var(--motion-emotion); }
@media (max-width: 350px) {
  body[data-theme] #app .view { padding-inline: 18px; }
  body[data-theme] #app .view > .page-header { margin-inline: -18px; padding-inline: 18px; }
  body[data-theme] #app #view-tasks > .page-header--tasks { margin: 0; padding: 0; }
  body[data-theme] .twilight-masthead { height: 54px; padding-inline: 18px; }
  body[data-theme] .qn-world-name { font-size: 0.5625rem; margin-right: 35px; }
  body[data-theme] .twilight-wordmark { font-size: 1.125rem; }
  body[data-theme] .twilight-scene { height: 218px; }
  body[data-theme] .twilight-greeting { padding: 10px 18px 0; }
  body[data-theme] .twilight-greeting h1 { font-size: 1.625rem; }
  body[data-theme] .twilight-companion-caption { left: 18px; right: 18px; }
  body[data-theme] .twilight-pet-touch { right: 12px; top: 35px; width: 135px; height: 100px; }
  body[data-theme] .twilight-companion-art { width: 100%; height: 100%; right: 0; top: 0; }
  body[data-theme] .twilight-voice { margin-inline: 18px; }
  body[data-theme] .twilight-journey { padding: 8px 18px 18px; }
  body[data-theme] #twilight-chapter-heading { padding-inline: 18px; padding-top: 16px; }
  body[data-theme] #view-tasks :is(#task-view-tabs,#task-category-filters,#task-view-content,.stats-bar,#habit-summary,#home-hub) { margin-inline: 18px; }
  body[data-theme] #view-tasks .task-card__rewards { gap: 7px; font-size: 0.6875rem; }
  body[data-theme] #view-tasks .twilight-task-card { grid-template-columns: 30px minmax(0,1fr) 28px; gap: 6px; }
  body[data-theme] #view-collection .collection-grid { gap: 12px; }
  body[data-theme] #collection-companion { padding: 14px; gap: 12px; min-height: 114px; }
  body[data-theme] #collection-companion .pet-image-frame { width: 78px; height: 78px; }
  body[data-theme] #collection-companion .collection-companion__name { font-size: 1.0625rem; }
}
@media (max-height: 740px) and (max-width: 500px) {
  body[data-theme] .twilight-masthead { height: 46px; }
  body[data-theme] .twilight-scene { height: 140px; }
  body[data-theme] .twilight-companion-art { width: 100%; height: 100%; right: 0; top: 0; }
  body[data-theme] .twilight-greeting { padding-top: 6px; }
  body[data-theme] .twilight-greeting h1 { font-size: 1.5rem; margin-top: 6px; }
  body[data-theme] .twilight-pet-touch { top: 30px; height: 68px; }
  body[data-theme] .twilight-companion-caption { bottom: 3px; }
  body[data-theme] .twilight-voice { margin-top: 6px; }
  body[data-theme] .twilight-journey { padding-top: 6px; padding-bottom: 16px; }
}
@media (prefers-reduced-motion: reduce) {
  body[data-theme] *, body[data-theme] *::before, body[data-theme] *::after { animation: none !important; transition: none !important; scroll-behavior: auto !important; }
}
body[data-theme].reduce-motion *, body[data-theme].reduce-motion *::before, body[data-theme].reduce-motion *::after { animation: none !important; transition: none !important; scroll-behavior: auto !important; }
/* Update actions share each world's surfaces, type and touch target scale. */
.app-update-controls { margin-top: 16px; }
.app-update-status { margin: 0 0 12px; font-size: 0.875rem; line-height: 1.6; overflow-wrap: anywhere; }
.app-update-actions { display: flex; flex-wrap: wrap; gap: 8px; }
.app-update-actions .btn { min-height: 44px; white-space: normal; flex: 1 1 130px; }
.app-icon-entry { display: flex; width: 100%; align-items: center; gap: 12px; padding: 14px 0; margin-top: 14px; border: 0; border-top: 1px solid var(--border); background: transparent; color: var(--text); text-align: left; cursor: pointer; min-height: 72px; }
.app-icon-entry img { border-radius: 12px; flex-shrink: 0; }
.app-icon-entry > span:first-of-type { flex: 1; min-width: 0; }
.app-icon-entry strong, .app-icon-entry small { display: block; }
.app-icon-entry small { margin-top: 3px; line-height: 1.5; }
.app-icon-entry:focus-visible { outline: 2px solid var(--accent); outline-offset: 4px; }
.app-icon-guide { line-height: 1.7; }
.app-icon-guide > img { display: block; border-radius: 22px; margin: 0 auto 20px; }
.app-icon-guide ol { padding-left: 24px; }
.app-icon-guide li { margin-bottom: 12px; }
.app-icon-url { min-height: 44px; display: flex; align-items: center; justify-content: center; }
.app-icon-address { overflow-wrap: anywhere; font-size: 0.8rem; }
.update-banner { display: block; width: calc(100% - 32px); max-height: calc(100dvh - var(--nav-height) - var(--safe-bottom) - 40px); overflow-y: auto; }
.update-banner .app-update-status { margin-top: 6px; }
body.modal-open .update-banner { visibility: hidden; pointer-events: none; }
