/* 所有页面共用一个设置入口；原生 dialog 提供模态焦点与背景隔离。 */
.settings-launcher { position: fixed; z-index: 10020; top: max(10px, env(safe-area-inset-top)); right: var(--theme-launcher-right); display: inline-flex; align-items: center; justify-content: center; width: var(--theme-launcher-width); height: 44px; margin: 0; padding: 0; border: 1px solid var(--theme-line); border-radius: 50%; background: var(--theme-surface); color: var(--theme-primary); box-shadow: 0 3px 12px rgba(var(--theme-ink-rgb), .1); font-size: 13px; font-weight: 600; line-height: 1; touch-action: manipulation; }
.settings-launcher svg { width: 19px; height: 19px; flex-shrink: 0; }
.settings-launcher:hover { background: var(--theme-soft); }
.settings-launcher:focus-visible { outline: 3px solid var(--theme-primary); outline-offset: 3px; }
.global-settings.account-page { display: none; position: fixed; inset: 0; width: min(740px, calc(100vw - max(24px, env(safe-area-inset-left)) - max(24px, env(safe-area-inset-right)))); height: fit-content; max-height: calc(100dvh - max(16px, env(safe-area-inset-top)) - max(16px, env(safe-area-inset-bottom))); margin: auto; padding: 0; border: 1px solid var(--theme-line); border-radius: 20px; overflow: hidden; background: var(--theme-surface); box-shadow: 0 24px 90px rgba(7, 20, 29, .3); }
.global-settings[open] { display: flex; flex-direction: column; }
.global-settings::backdrop { background: rgba(15, 26, 33, .48); backdrop-filter: blur(5px); -webkit-backdrop-filter: blur(5px); }
.global-settings-head { display: flex; align-items: center; justify-content: space-between; gap: 20px; flex: 0 0 auto; padding: 20px 24px 14px; }
.global-settings-head h2 { font-size: 25px; line-height: 1.25; outline: none; }
.global-settings-head p { margin-top: 6px !important; font-size: 12px; color: var(--theme-muted); }
.global-settings .settings-close { width: 44px; height: 44px; padding: 0; flex: 0 0 auto; border: 1px solid var(--theme-line); border-radius: 50%; background: var(--theme-soft); color: var(--theme-text); font-size: 27px; line-height: 1; }
.settings-tabs { display: flex; flex: 0 0 auto; gap: 5px; margin: 0 24px; padding: 4px; border-radius: 12px; background: var(--theme-soft); }
.global-settings .settings-tabs button { flex: 1; min-height: 44px; padding: 8px 12px; border: 0; border-radius: 9px; background: transparent; color: var(--theme-secondary); font-size: 13px; white-space: nowrap; }
.global-settings .settings-tabs button[aria-pressed="true"] { background: var(--theme-surface); color: var(--theme-primary); font-weight: 700; box-shadow: 0 2px 6px rgba(var(--theme-ink-rgb), .08); }
.settings-content { flex: 1 1 auto; min-height: 0; overflow: auto; padding: 20px 24px; overscroll-behavior: contain; touch-action: pan-y; -webkit-overflow-scrolling: touch; }
.settings-preferences { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.global-settings .settings-preference { display: flex; align-items: center; justify-content: space-between; gap: 14px; width: 100%; min-height: 80px; padding: 15px 17px; text-align: left; border: 1px solid var(--theme-line); border-radius: 12px; background: var(--theme-canvas); color: var(--theme-text); }
.settings-preference strong, .settings-preference small { display: block; }
.settings-preference strong { font-size: 14px; font-weight: 600; }
.settings-preference small { margin-top: 5px; font-size: 11px; color: var(--theme-muted); }
.settings-switch { position: relative; width: 42px; height: 24px; flex: 0 0 auto; border-radius: 20px; background: var(--theme-line); border: 1px solid rgba(var(--theme-ink-rgb), .16); }
.settings-switch::after { content: ''; position: absolute; top: 3px; left: 3px; width: 16px; height: 16px; border-radius: 50%; background: var(--theme-surface); box-shadow: 0 1px 3px rgba(0, 0, 0, .15); }
.settings-switch.on { background: var(--theme-primary); }
.settings-switch.on::after { left: 21px; }
.settings-credits { display: inline-flex; align-items: center; min-height: 44px; margin-top: 6px; font-size: 12px; color: var(--theme-secondary) !important; text-decoration: underline !important; text-underline-offset: 3px; }
.settings-note { color: var(--theme-muted); margin-bottom: 14px !important; font-size: 13px; }
.global-settings .theme-options { padding: 0; overflow: visible; }
.global-settings .theme-option input { min-height: 0; padding: 0; }
.global-settings .account-settings-panel { padding: 0; margin: 0; border: 0; border-radius: 0; }
.global-settings .account-settings-panel .account-eyebrow { display: none; }
.global-settings .account-settings-panel h2 { font-size: 20px; }
.global-settings .password-form { width: 100%; grid-template-columns: 1fr 1fr; gap: 13px 16px; margin: 16px 0 0; }
.global-settings .password-form h3, .global-settings .password-form > label:first-of-type, .global-settings .password-form > p, .global-settings .password-form > button { grid-column: 1 / -1; }
.global-settings .password-form input { font-size: 16px; }
.settings-reset { padding-top: 18px; margin-top: 22px; border-top: 1px solid var(--theme-line); font-size: 13px; }
.settings-reset p { margin: 8px 0 14px !important; color: var(--theme-secondary); }
.settings-reset > div { display: flex; gap: 12px; }
.global-settings .settings-reset .account-link { color: var(--theme-danger); }
.global-settings .settings-danger { min-height: 44px; border: 1px solid var(--theme-danger); padding: 9px 18px; border-radius: 10px; color: var(--theme-danger); background: rgba(var(--theme-danger-rgb), .08); }
.global-settings-footer { flex: 0 0 auto; padding: 15px 24px; border-top: 1px solid var(--theme-line); background: var(--theme-canvas); }
.settings-footer-main { display: flex; align-items: center; justify-content: space-between; gap: 18px; }
.settings-footer-main > div { min-width: 0; }
.settings-footer-main strong, .settings-footer-main span { display: block; }
.settings-footer-main strong { font-size: 13px; overflow: hidden; white-space: nowrap; text-overflow: ellipsis; }
.settings-footer-main span { color: var(--theme-muted); font-size: 11px; }
.global-settings .settings-signout { flex-shrink: 0; min-height: 44px; padding: 10px 17px; border: 1px solid rgba(var(--theme-danger-rgb), .4); border-radius: 10px; background: var(--theme-surface); color: var(--theme-danger); font-weight: 600; }
.settings-exit-note { margin-top: 8px !important; font-size: 11px; color: var(--theme-muted); }
.settings-error { margin-top: 8px !important; color: var(--theme-danger); font-size: 12px; }
body.settings-open #app * { animation-play-state: paused !important; }
@media (max-height: 500px) {
  .global-settings-head { padding: 10px 20px 8px; }
  .global-settings-head h2 { font-size: 21px; }
  .global-settings-head p { display: none; }
  .settings-tabs { margin: 0 20px; padding: 3px; }
  .global-settings .settings-tabs button { min-height: 40px; padding-block: 6px; }
  .settings-content { padding: 12px 20px; }
  .settings-preferences { gap: 8px; }
  .global-settings .settings-preference { min-height: 62px; padding: 9px 13px; }
  .settings-preference small { margin-top: 3px; }
  .global-settings-footer { padding: 9px 20px; }
  .settings-exit-note { margin-top: 4px !important; }
  .settings-credits { min-height: 36px; margin-top: 4px; }
}
@media (max-width: 599px) {
  .global-settings.account-page { width: calc(100vw - 24px); border-radius: 16px; }
  .global-settings-head { padding-inline: 16px; }
  .settings-tabs { margin-inline: 16px; gap: 2px; }
  .global-settings .settings-tabs button { padding-inline: 6px; font-size: 12px; }
  .settings-content { padding: 16px; }
  .settings-preferences, .global-settings .password-form { grid-template-columns: 1fr; }
  .global-settings .settings-preference { min-height: 70px; }
  .global-settings-footer { padding-inline: 16px; }
}
@media (max-width: 599px) and (orientation: landscape) {
  .settings-preferences { grid-template-columns: 1fr 1fr; }
}
@media (max-height: 350px) {
  .settings-exit-note, .settings-preference small { display: none; }
  .global-settings .settings-preference { min-height: 48px; }
  .global-settings-head { padding-block: 4px; }
  .settings-content { padding-block: 10px; }
}
