/* Shared materials use the application's single theme switch. No permanent filter loops. */
:root{--glass-panel:rgba(249,250,253,.78);--glass-solid:#f8f9fc;--glass-sheen:rgba(255,255,255,.76);--glass-low:rgba(255,255,255,.10);--glass-well:rgba(224,228,237,.46);--glass-ink:#1d2028;--glass-muted:#636976;--glass-scrim:rgba(29,34,45,.20);--glass-shadow:rgba(25,35,55,.17);--glass-action:#242834;--glass-action-ink:#fff;--glass-danger:#bd3649;--glass-focus:#698bd4;--card-continuous-radius:30px;color-scheme:light}
html[data-theme="dark"]{--glass-panel:rgba(34,37,45,.82);--glass-solid:#252830;--glass-sheen:rgba(255,255,255,.11);--glass-low:rgba(255,255,255,.025);--glass-well:rgba(255,255,255,.075);--glass-ink:#f3f4f8;--glass-muted:#b1b5c1;--glass-scrim:rgba(0,0,0,.43);--glass-shadow:rgba(0,0,0,.4);--glass-action:#edf0f7;--glass-action-ink:#202430;--glass-danger:#ff8b9b;--glass-focus:#9db8ff;color-scheme:dark}
/* Common dialogs inherit paired day/night material values. Full-page record readers are excluded. */
.center-backdrop:not(.record-collection){background:var(--glass-scrim)}
.center-backdrop:not(.record-collection)>.center-card{border-radius:var(--card-continuous-radius);color:var(--glass-ink)}
.cnc-glass-modal,.cnc-glass-modal.center-backdrop,#payActBackdrop.canoe-transfer-detail{align-items:center;justify-content:center;padding:20px max(18px,env(safe-area-inset-right)) max(20px,env(safe-area-inset-bottom));background:var(--glass-scrim);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}
.cnc-glass-modal>.center-card,.cnc-glass-modal>.sheet,#payActBackdrop.canoe-transfer-detail .center-card{position:relative;box-sizing:border-box;width:min(100%,390px);max-width:390px;max-height:calc(100dvh - 64px);overflow:auto;overscroll-behavior:contain;padding:28px 24px 24px;border:0!important;border-radius:34px;background:linear-gradient(145deg,var(--glass-sheen),var(--glass-low) 35%,transparent 72%),var(--glass-panel)!important;color:var(--glass-ink);box-shadow:0 24px 70px -16px var(--glass-shadow),inset 0 8px 24px -15px var(--glass-sheen)!important;-webkit-backdrop-filter:blur(24px) saturate(1.45);backdrop-filter:blur(24px) saturate(1.45);transform:translateY(12px) scale(.97);transition:transform .28s cubic-bezier(.2,.8,.2,1),opacity .2s ease;text-align:left}
.cnc-glass-modal.show>.center-card,.cnc-glass-modal.show>.sheet,#payActBackdrop.canoe-transfer-detail.show .center-card{transform:none}
.cnc-glass-modal .cc-title,.cnc-glass-modal .sheet-title{margin:0;padding:0;font-size:22px;font-weight:650;line-height:1.3;letter-spacing:-.035em;color:var(--glass-ink);border:0;background:none}
.cnc-glass-modal .cc-sub{font-size:13px;line-height:1.7;color:var(--glass-muted);margin:10px 0 22px;padding:0}
.cnc-glass-modal .pad-body{padding:0;margin-top:20px}.cnc-glass-modal .pad-hint,.cnc-glass-modal .pad-dur{color:var(--glass-muted);font-size:12px;line-height:1.6}
.cnc-glass-modal :is(.pad-input,.pad-select){box-sizing:border-box;width:100%;border:0!important;border-radius:20px;background:var(--glass-well)!important;color:var(--glass-ink)!important;padding:16px;font-size:16px;line-height:1.55;box-shadow:none!important}
.cnc-glass-modal input::placeholder,.cnc-glass-modal textarea::placeholder{color:var(--glass-muted);opacity:.85}
.cnc-glass-modal :is(input,textarea,select,button):focus-visible{outline:2px solid var(--glass-focus);outline-offset:3px}
.cnc-glass-modal :is(.save-btn,.tsb-btn,.pay-btn){min-height:46px;border:0!important;border-radius:22px;background:var(--glass-action);color:var(--glass-action-ink);box-shadow:none;font-size:15px;font-weight:600;transition:transform .17s ease,opacity .17s ease}
.cnc-glass-modal :is(.save-btn,.tsb-btn,.pay-btn):active{transform:scale(.97)}
.cnc-glass-modal :is(.tsb-btn.ghost,.pay-btn.ghost){background:var(--glass-well);color:var(--glass-ink)}
.cnc-glass-modal button:disabled{opacity:.45}.cnc-glass-modal .danger{color:var(--glass-danger)}
.cnc-glass-modal .sheet-handle{display:none}.cnc-glass-modal .img-pick-row{gap:12px;margin-top:22px}.cnc-glass-modal .img-pick-btn{min-height:140px;border:0;border-radius:24px;padding:20px 12px;background:var(--glass-well);color:var(--glass-ink);box-shadow:none}.cnc-glass-modal .img-pick-btn>span:last-child{color:var(--glass-muted);font-size:11px;line-height:1.6}.cnc-glass-modal .img-pick-ico{color:var(--glass-ink);background:transparent}.cnc-glass-modal .img-pick-ico svg{stroke-width:1.4}
#payPadBackdrop .pad-amount{width:100%;box-sizing:border-box;padding:22px 0 16px;border:0;border-radius:0;background:transparent;color:var(--glass-ink);font-size:48px;font-weight:600;letter-spacing:-.055em;text-align:center;box-shadow:none;font-variant-numeric:tabular-nums}
#payPadBackdrop .pad-amount::placeholder{color:var(--glass-muted);opacity:.55}#payPadBackdrop .save-btn{width:100%;margin-top:18px}
#voiceRecBackdrop .voice-rec-btn{width:84px;height:84px;border:0;border-radius:50%;background:linear-gradient(145deg,var(--glass-sheen),transparent),var(--glass-well);color:var(--glass-ink);box-shadow:0 12px 30px -12px var(--glass-shadow);margin:12px auto 8px}#voiceRecBackdrop .voice-rec-btn svg{width:32px;height:32px;stroke-width:1.4}#voiceRecBackdrop .voice-rec-btn.on{background:#dd5268;color:white;animation:cnc-record-breathe 1.6s ease-in-out infinite}#voiceRecBackdrop .voice-rec-time{font-size:32px;font-variant-numeric:tabular-nums;color:var(--glass-ink);font-weight:500}#voiceRecBackdrop .voice-rec-status{color:var(--glass-muted)}
@keyframes cnc-record-breathe{50%{box-shadow:0 0 0 10px #dd526817}}
/* Transfer details remain centered; preserve receipt actions and particle animation. */
#payActBackdrop.canoe-transfer-detail .center-card:before{display:none}#payActBackdrop.canoe-transfer-detail .cc-title{display:none}
#payActBackdrop.canoe-transfer-detail .pay-hero.tr{min-height:0;padding:28px 0 20px;align-items:center;text-align:center;color:var(--glass-ink)!important;background:transparent!important}
#payActBackdrop.canoe-transfer-detail .pay-hero.tr:before{position:static;content:'转账';font-size:13px;font-weight:500;letter-spacing:.1em;color:var(--glass-muted)!important;order:0;margin-bottom:20px}
#payActBackdrop.canoe-transfer-detail .pay-hero.tr:after{display:none}
#payActBackdrop.canoe-transfer-detail .pay-hero-avatar{width:44px;height:44px;margin:0 0 10px;order:1}
#payActBackdrop.canoe-transfer-detail .pay-hero-who{color:var(--glass-muted);margin:0 0 12px;order:2;position:static}
#payActBackdrop.canoe-transfer-detail .pay-hero-amt{color:var(--glass-ink)!important;font-size:48px;letter-spacing:-.055em;margin:0;order:3;font-variant-numeric:tabular-nums}
#payActBackdrop.canoe-transfer-detail .pay-hero-amt:before{display:none}
#payActBackdrop.canoe-transfer-detail .pay-hero-note,#payActBackdrop.canoe-transfer-detail .pay-hero-state{color:var(--glass-muted)!important;font-size:13px;margin-top:12px;order:4}
#payActBackdrop.canoe-transfer-detail .pay-meta{margin:0;padding:16px 0;background:transparent;border:0}#payActBackdrop.canoe-transfer-detail .pay-meta div{padding:7px 0;box-shadow:none}#payActBackdrop.canoe-transfer-detail .pay-meta span{color:var(--glass-muted)!important}#payActBackdrop.canoe-transfer-detail .pay-meta b{color:var(--glass-ink)!important}
#payActBackdrop.canoe-transfer-detail .pay-btns{display:flex;gap:10px;margin:12px 0 0}#payActBackdrop.canoe-transfer-detail .pay-btn{background:var(--glass-action)!important;color:var(--glass-action-ink)!important;border-radius:22px;padding:14px;min-height:48px;flex:1}#payActBackdrop.canoe-transfer-detail .pay-btn.ghost{background:var(--glass-well)!important;color:var(--glass-ink)!important}#payActBackdrop.canoe-transfer-detail .pay-close{margin:12px 0 0;background:transparent!important;color:var(--glass-muted)!important;width:100%;border:0}
@supports(corner-shape:superellipse(2)){
 .center-card,.cnc-glass-modal>.sheet,.cnc-glass-modal .img-pick-btn,.cnc-glass-modal :is(.pad-input,.pad-select,.save-btn,.tsb-btn,.pay-btn),.lf-sheet,.lf-record-link{corner-shape:superellipse(2)}
}
@supports not ((backdrop-filter:blur(1px)) or (-webkit-backdrop-filter:blur(1px))){.cnc-glass-modal>.center-card,.cnc-glass-modal>.sheet,#payActBackdrop.canoe-transfer-detail .center-card{background:var(--glass-solid)!important}}
@media(prefers-reduced-transparency:reduce){.cnc-glass-modal>.center-card,.cnc-glass-modal>.sheet,#payActBackdrop.canoe-transfer-detail .center-card{background:var(--glass-solid)!important;backdrop-filter:none;-webkit-backdrop-filter:none}}
@media(prefers-reduced-motion:reduce){.cnc-glass-modal *{animation:none!important;transition:none!important}}
/* Global default dialog theme; specific authored themes retain their own specificity. */
:where(.center-backdrop:not(.record-collection))>.center-card{background:var(--glass-panel);color:var(--glass-ink)}
:where(.center-backdrop) :is(.cc-sub,.pad-hint){color:var(--glass-muted)}
html[data-theme="dark"] .center-backdrop:not(.record-collection)>.center-card:not(.memo-card){background-color:var(--glass-solid);color:var(--glass-ink)}
/* Games share the app theme without recoloring the physical board pieces. */
html[data-theme="dark"] #loveFlight{background:radial-gradient(ellipse at 10% 15%,#412c3b,transparent 65%),#181b24;color:var(--glass-ink)}
html[data-theme="dark"] #loveFlight :is(header button,.lf-view-tools button,.lf-game-footer button,.lf-score span,.lf-secondary,.lf-plane-picker button,select){background:var(--glass-well);color:var(--glass-ink)}
html[data-theme="dark"] #loveFlight .lf-sheet{background:var(--glass-solid);color:var(--glass-ink)}
html[data-theme="dark"] #loveFlight :is(.lf-note,.lf-heading p,.lf-sheet small,.lf-game-footer span){color:var(--glass-muted)}
html[data-theme="dark"] #loveFlight :is(.lf-record-link,.lf-sheet textarea){background:var(--glass-well);color:var(--glass-ink)}
html[data-theme="dark"] #loveFlight .lf-primary{background:#d4b9ca;color:#29202a;box-shadow:none}
html[data-theme="dark"] #gomokuGame{background:radial-gradient(ellipse at top,#293a30,transparent 65%),#161d19;color:var(--glass-ink)}
html[data-theme="dark"] #gomokuGame :is(button,select,.gm-conversation,.gm-messages p,#gmInput,.gm-celebration>div){background:var(--glass-solid);color:var(--glass-ink)}
html[data-theme="dark"] #gomokuGame :is(.gm-heading p,.gm-note,.gm-auto-setting,.gm-messages small,.gm-celebration p){color:var(--glass-muted)}
@media(prefers-reduced-motion:reduce){#loveFlight .lf-sheet{animation:none}}
