/* 从 be014714 的材质实验提取按钮色值；日间场景和播放外框保持现有尺寸。 */
:root { --material-green:#315b50; --material-hover:#3c685c; --material-pressed:#25473f; --material-line:#a5b2a5; --material-soft:#e5ebe2; --material-paper:#fffdf7; }
:root { --green:var(--material-green); --v2-jade:var(--material-green); --material-ease:cubic-bezier(.2,.7,.2,1); }
:is(.v2-header-actions .library-entry,.v2-header-actions .import-entry,.dock-utility,.fullscreen-button,.dock-organize>button,.score-track-entry,.tempo-trigger,.tempo-adjust>button,.panel-pagination button,.panel-filter button) { border-radius:10px; color:var(--material-green); }
:is(.v2-header-actions .library-entry,.v2-header-actions .import-entry,.score-track-entry,.tempo-trigger,.tempo-adjust>button,.panel-pagination button,.panel-filter button) { min-height:44px; border:1px solid var(--material-line); background:var(--material-paper); box-shadow:inset 0 1px #fff,0 2px 4px #173c300d; transition:background-color 180ms var(--material-ease),border-color 180ms var(--material-ease),box-shadow 180ms var(--material-ease); }
.v2-header-actions :is(.library-entry,.import-entry) { padding:8px 10px; font-size:13px; }
.v2-header-actions { gap:8px; }
:is(.dock-organize,.dock-player,.section-nav) { border-radius:14px; backdrop-filter:none; background:var(--material-paper); border-color:var(--material-line); box-shadow:inset 0 1px #fff,0 6px 20px #253c3017; }
:is(.dock-utility,.fullscreen-button) { transition:background-color 180ms var(--material-ease),border-color 180ms var(--material-ease),box-shadow 180ms var(--material-ease); }
.dock-player :is(.dock-utility,.fullscreen-button,[data-original])[aria-pressed=true],.panel-filter button[aria-pressed=true],.score-track-entry[aria-expanded=true] { border-color:var(--material-line); border-radius:10px; background:var(--material-soft); color:var(--material-green); box-shadow:inset 0 0 0 1px var(--material-line); }
:is(.v2-header-actions .library-entry,.v2-header-actions .import-entry,.score-track-entry,.tempo-adjust>button,.dock-utility,.fullscreen-button):active:not(:disabled) { background:var(--material-soft); box-shadow:inset 0 2px 4px #173c3029; }
.play-toggle { background:var(--material-green)!important; background-image:linear-gradient(#ffffff0d,#00000006)!important; }
.play-toggle:active:not(:disabled) { background:var(--material-pressed)!important; }
:is(.play-toggle>.play-glyph,.stop-button>span,.v2-local-play>.play-glyph) { scale:1; transform-origin:center; transition:scale 220ms cubic-bezier(.2,.8,.25,1.25),opacity 180ms ease; }
@media(hover:hover) {
  :is(.v2-header-actions .library-entry,.v2-header-actions .import-entry,.score-track-entry,.tempo-trigger,.tempo-adjust>button,.panel-pagination button,.panel-filter button,.dock-utility,.fullscreen-button):hover:not(:disabled):not(:active) { background:var(--material-soft); border-color:var(--material-line); box-shadow:inset 0 1px #fff,0 3px 7px #173c3015; filter:none; }
  .play-toggle:hover:not(:disabled) { background-color:var(--material-hover)!important; }
  .stop-button:hover:not(:disabled) { background:var(--material-soft)!important; }
  :is(.play-toggle,.v2-local-play):hover:not(:disabled):not([aria-disabled=true]):not([data-waiting=true])>.play-glyph,.stop-button:hover:not(:disabled):not([aria-disabled=true])>span { scale:1.2; }
}
.play-toggle[data-waiting=true][data-count-in=false]::after { inset:6px; border-width:1.5px; animation-duration:850ms; }
.play-toggle[data-waiting=true][data-count-in=false]>.play-glyph { opacity:.25; }
:is(.play-toggle,.v2-local-play):active:not(:disabled):not([aria-disabled=true]):not([data-waiting=true])>.play-glyph,.stop-button:active:not(:disabled):not([aria-disabled=true])>span { scale:.92; transition-duration:90ms; }
.v2-favorite { border-radius:9px; transition:background-color 180ms ease,color 180ms ease; }
.v2-favorite[aria-pressed=true] { background:#fff3dc; color:#996815; box-shadow:inset 0 0 0 1px #b77a1826; }
.v2-favorite .icon { transition:scale 120ms ease; transform-origin:center; }
.v2-favorite:active:not(:disabled) .icon { scale:.88; }
.v2-favorite[data-feedback=true] .icon { animation:v2-star-on 320ms ease-out; }
.v2-favorite[data-feedback=false] .icon { animation:v2-star-off 200ms ease-out; }
@keyframes v2-star-on { 0% { scale:.78; rotate:-12deg; } 55% { scale:1.22; rotate:5deg; } 100% { scale:1; rotate:0deg; } }
@keyframes v2-star-off { from { scale:1.12; } to { scale:1; } }
#appearance-panel { width:min(520px,calc(100vw - 32px)); max-height:calc(100dvh - 32px); overflow:auto; padding:30px; border:1px solid var(--material-line); border-radius:16px; background:var(--material-paper); color:#253b32; box-shadow:0 2px 8px #182b2214,0 24px 70px #182b2233; }
#appearance-panel::backdrop { background:#1a2b2459; }
#appearance-panel h2 { font:600 26px/1.35 "Songti SC","STSong",serif; margin:0 0 8px; }
#appearance-panel p { font-size:13px; color:#52665f; line-height:1.7; }
.appearance-palettes { display:grid; gap:10px; margin:20px 0; }
.appearance-palettes button { display:flex; align-items:center; gap:14px; width:100%; text-align:left; min-height:68px; padding:12px; border:1px solid var(--material-line); border-radius:10px; background:var(--material-paper); color:var(--material-green); }
.appearance-palettes [aria-checked=true] { outline:2px solid var(--material-green); outline-offset:1px; }
.appearance-palettes [aria-checked=true]::after { content:'✓'; margin-left:auto; }
.appearance-swatch { width:36px; height:36px; border-radius:9px; background:#315b50; box-shadow:inset 0 1px #ffffff30; flex:none; }
[data-palette=mountain]>.appearance-swatch { background:#5d7e7a; }
.appearance-option { display:flex; align-items:center; justify-content:space-between; gap:12px; margin:14px 0; font-size:13px; }
.appearance-option input { appearance:none; width:60px; height:32px; min-height:0; padding:0; border:1px solid var(--material-line); border-radius:20px; background:var(--material-soft); box-shadow:inset 0 1px 3px #173c3018; cursor:pointer; transition:background-color 350ms var(--material-ease),border-color 350ms var(--material-ease); }
.appearance-option input::after { content:''; display:block; width:24px; height:24px; margin:3px; border-radius:50%; background:var(--material-paper); box-shadow:0 1px 4px #143c3030,inset 0 1px #fff; transition:translate 350ms cubic-bezier(.34,1.56,.64,1); }
.appearance-option input:checked { background:var(--material-green); }
.appearance-option input:checked::after { translate:28px 0; }
.appearance-option input[data-animated=true]:checked::after { animation:appearance-jelly-on 350ms var(--material-ease); }
.appearance-option input[data-animated=true]:not(:checked)::after { animation:appearance-jelly-off 350ms var(--material-ease); }
@keyframes appearance-jelly-on { 0%,100% { scale:1; } 42% { scale:1.5 .86; } 76% { scale:.9 1.06; } }
@keyframes appearance-jelly-off { 0%,100% { scale:1; } 42% { scale:1.5 .86; } 76% { scale:.9 1.06; } }
.appearance-option:has(input:focus-visible),.score-track-entry:focus-visible { outline:2px solid var(--material-green); outline-offset:3px; }
#appearance-panel [data-appearance-close] { display:block; margin:18px 0 0 auto; background:var(--material-green); color:#fffefa; }
:root[data-night=true] { color-scheme:dark; --material-green:#a2c3ba; --material-hover:#b1cec6; --material-pressed:#8facaa; --material-line:#465556; --material-soft:#3a4c4a; --material-paper:#303a3e; --ink:#dbe3e2; --muted:#aab9b6; --v2-bg:#141b1e; --v2-paper:#252d30; --paper:var(--v2-paper); background:var(--v2-bg); }
:root[data-night=true] :where(.tempo-panel,.score-track-panel,.library-panel,.import-panel,.score-switch nav,.account-menu>nav,.v2-song-info>div,.transpose-popover,.collect-layer,.v2-practice-menu,.v2-follow-return),:root[data-night=true] :is(#appearance-panel,#account-panel) { background:var(--material-paper)!important; border-color:var(--material-line)!important; color:var(--ink); box-shadow:inset 0 1px #d9edeb0d,0 12px 32px #00000040; }
:root[data-night=true] .workbench-v2 { background:radial-gradient(ellipse at 100% 0%,#5d7e7a20,transparent 64%),radial-gradient(ellipse at 0% 95%,#5d7e7a10,transparent 62%),var(--v2-bg); }
:root[data-night=true] .workbench-v2 :is(.v2-score-stage,.v2-pages) { background:transparent; }
:root[data-night=true] .v2-paper { background:var(--v2-paper)!important; border-color:#526165; color:var(--ink); box-shadow:inset 0 1px #d9edeb0a,0 8px 24px #00000026; }
:root[data-night=true] .workbench-v2-header { background:linear-gradient(105deg,#20292c,#263235)!important; border-color:var(--material-line); color:var(--ink); }
:root[data-night=true] :is(.dock-organize,.dock-player,.section-nav) { background:#253034!important; border-color:var(--material-line); color:var(--ink); }
:root[data-night=true] .score-track-panel>header { background:var(--material-paper); }
:root[data-night=true] :is(.score-track-panel,.library-panel) { box-shadow:inset 1px 0 #d9edeb12,-5px 0 14px #0000002b,-18px 0 38px #00000040; }
:root[data-night=true] :is(.library-entry,.import-entry,.new-score-entry,.score-track-entry,.tempo-trigger) { box-shadow:inset 0 1px #d9edeb14,0 2px 5px #00000020; }
:root[data-night=true] :is(.paper-rhythm,.v2-paper figcaption,.panel-tabs button,.track-tabs button,.panel-context-label) { color:var(--muted); }
:root[data-night=true] .panel-search::placeholder { color:var(--muted); opacity:1; }
:root[data-night=true] .dock-player .metronome-tone { background:var(--material-soft); color:var(--ink); }
:root[data-night=true] .dock-player .metronome-tone:hover { background:#465c58; color:var(--ink); }
:root[data-night=true] .brand-lockup img { filter:brightness(1.45); }
:root[data-night=true] :is(.gtp-paper-heading strong,.score-switch summary>strong,.tempo-trigger strong,.panel-song-select strong,.account-identity strong) { color:var(--ink); }
:root[data-night=true] :is(p,small,.score-credits b,.score-switch nav a,.transpose-summary,.account-menu>nav button,.track-mobile-label,.track-volume) { color:var(--muted); }
:root[data-night=true] :is(input:not([type=range]):not([type=checkbox]),select,.appearance-palettes button) { background:var(--material-paper); color:var(--ink); border-color:var(--material-line); }
:root[data-night=true] :is(.panel-tabs,.track-tabs) [aria-selected=true] { background:var(--material-soft); color:var(--ink); border-color:var(--material-green); }
:root[data-night=true] .track-display-items { background:#263034; border-color:var(--material-line); }
:root[data-night=true] .track-display-items label:has(input:checked) { background:var(--material-soft); color:var(--ink); border-color:#799593; }
:root[data-night=true] :is(.bpm-control,.v2-score-title,.v2-score-facts,.track-group,.panel-filter,.panel-song,.panel-version) { border-color:var(--material-line); }
:root[data-night=true] :is(.score-switch nav a:hover,.score-switch summary:hover,.panel-search,.tempo-scale) { background:var(--material-soft); }
:root[data-night=true] :is(.play-toggle,#appearance-panel [data-appearance-close]) { color:#19271f!important; }
:root[data-night=true] .stop-button { background:var(--material-paper)!important; }
:root[data-night=true] .v2-favorite[aria-pressed=true] { background:#3d392c; color:#c5aa77; }
:root[data-night=true] .page-turner button,:root[data-night=true] .page-turner output { background:var(--material-paper); color:var(--ink); }
/* 只重着结构谱面的墨色；原始图片不做反色，透明命中区域和播放标记不改。 */
:root[data-night=true] .gtp-paper-music [fill="#191917"] { fill:var(--ink); }
:root[data-night=true] .gtp-paper-music [fill="#696761"] { fill:var(--muted); }
:root[data-night=true] .gtp-paper-music [stroke="#191917"] { stroke:#a0b0af; }
:root[data-night=true] .gtp-paper-music [stroke="#fffefa"] { stroke:var(--v2-paper); }
:root[data-night=true] .gtp-paper-music path[stroke="white"] { stroke:var(--v2-paper); }
:root[data-night=true] .gtp-paper-music text[paint-order="stroke fill"] { stroke:var(--v2-paper)!important; }
/* 自动替补沿用来源色相；native 输出大写，来源标签输出小写。只换墨色，不重新绘谱。 */
:root[data-night=true] .gtp-paper-music [fill="#79574d" i] { fill:#d4b6aa; }
:root[data-night=true] .gtp-paper-music [stroke="#79574d" i] { stroke:#d4b6aa; }
:root[data-night=true] .gtp-paper-music [fill="#4e6478" i] { fill:#b0c6df; }
:root[data-night=true] .gtp-paper-music [stroke="#4e6478" i] { stroke:#b0c6df; }
:root[data-night=true] .gtp-paper-music [fill="#6b5d7a" i] { fill:#c5b5d5; }
:root[data-night=true] .gtp-paper-music [stroke="#6b5d7a" i] { stroke:#c5b5d5; }
:root[data-night=true] .gtp-paper-music [fill="#596b4d" i] { fill:#bdcfae; }
:root[data-night=true] .gtp-paper-music [stroke="#596b4d" i] { stroke:#bdcfae; }
:root[data-night=true] .gtp-paper-music [fill="#79633c" i] { fill:#d7c393; }
:root[data-night=true] .gtp-paper-music [stroke="#79633c" i] { stroke:#d7c393; }
:root[data-night=true] .gtp-paper-music [fill="#506d6c" i] { fill:#aacfc9; }
:root[data-night=true] .gtp-paper-music [stroke="#506d6c" i] { stroke:#aacfc9; }
.gtp-paper-music .harmony-unresolved { cursor:help; }
:root[data-night=true] .gtp-paper-music [fill="#5f7e78" i] { fill:#9db5ad; }
:root[data-night=true] .gtp-paper-music [stroke="#5f7e78" i] { stroke:#9db5ad; }
:root[data-night=true] .gtp-paper-music [fill="#7d8581" i] { fill:#a0aaa5; }
@media screen { :root[data-night=true] .gtp-paper-music [data-fangcun-technique]:not([data-monochrome] *) { color:var(--material-green)!important; } }
.harmony-status-hint { position:fixed; margin:0; max-width:min(320px,calc(100vw - 16px)); padding:10px 14px; border:1px solid var(--material-line); border-radius:10px; background:var(--material-paper); color:var(--ink); box-shadow:0 6px 18px #172c2420; font-size:13px; }
.gtp-paper-heading .harmony-disclosure { border:0; min-height:0; padding:0 4px; background:transparent; color:#5f7e78; font:inherit; font-size:1.8cqw; line-height:1.2; cursor:help; }
.gtp-paper-heading:has(.harmony-disclosure)>strong,.gtp-paper-heading:has(.harmony-disclosure) .paper-metadata { line-height:1.1; }
:root[data-night=true] .gtp-paper-heading .harmony-disclosure { color:#9db5ad; }
:root[data-reduced-motion=true] :is(.play-toggle>.play-glyph,.stop-button>span,.v2-local-play>.play-glyph,.v2-favorite .icon,.appearance-option input::after) { scale:1!important; rotate:0deg!important; animation:none!important; transition:none!important; }
:root[data-reduced-motion=true] .play-toggle.v2-count-pulse,:root[data-reduced-motion=true] :is(.play-toggle,.v2-local-play)[data-waiting=true]::after { animation:none!important; }
:root[data-reduced-motion=true] :is(.workbench-v2,.workbench-v2-header) * { animation:none!important; transition:none!important; scroll-behavior:auto!important; }
@media(prefers-reduced-motion:reduce) {
  :is(.play-toggle>.play-glyph,.stop-button>span,.v2-local-play>.play-glyph,.v2-favorite .icon,.appearance-option input::after) { scale:1!important; rotate:0deg!important; animation:none!important; transition:none!important; }
}
@media(max-width:600px) { #appearance-panel { padding:22px; } .v2-header-actions :is(.library-entry,.import-entry) { padding:6px; } }

.appearance-engraving { margin:20px 0; padding:12px; border:1px solid var(--material-line); border-radius:10px; }
.appearance-engraving legend { font-size:13px; }
.appearance-engraving label { display:flex; align-items:flex-start; gap:10px; padding:10px 0; font-size:14px; cursor:pointer; }
.appearance-engraving input { width:18px; height:18px; min-height:0; padding:0; margin:3px 0 0; flex:none; accent-color:var(--material-green); }
.appearance-engraving small { display:block; margin-top:5px; color:var(--muted); font-size:12px; line-height:1.6; }
