/* D03 melody identity: shared salmon palette for card and editor. */
:root{--melody:#e8ad98;--melody-paper:#fffaf7;--melody-soft:#faece5;--melody-wash:#f6dfd4;--melody-action:#edb9a6;--melody-border:#d6a793;--melody-accent:#a15d49;--melody-ink:#663f34;--melody-muted:#896658}
.query-group .placement-melody .block[data-type=melody]{background:linear-gradient(145deg,#fcf1eb,#f5ded3);border-color:var(--melody-border);color:var(--melody-ink);box-shadow:0 3px 14px #86513b09}
.material[data-type=melody],.recent-chip[data-type=melody]{color:var(--melody-ink);border-color:var(--melody-border);background:var(--melody-soft)}
.material[data-type=melody] .material-symbol,.material[data-type=melody] .material-plus{color:var(--melody-accent)}
.block[data-type=melody] .block-top,.block[data-type=melody] .block-type,.block[data-type=melody] .block-top button{color:var(--melody-ink)}
:is(.block[data-type=melody],#melody-editor-surface) .shared-recording{color:var(--melody-ink)}
:is(.block[data-type=melody],#melody-editor-surface) .shared-record-start:not(.melody-retry-cue){background:var(--melody-action);border-color:#cd967e;color:#61382c;box-shadow:0 3px 12px #a15d4914}
:is(.block[data-type=melody],#melody-editor-surface) .start-microphone{background:#fff8f2;color:#98563f}
:is(.block[data-type=melody],#melody-editor-surface) .recording-state.active{background:var(--melody-paper);border-color:var(--melody-border);color:var(--melody-ink)}
:is(.block[data-type=melody],#melody-editor-surface) .capture-orbit{background:var(--melody-wash);border-color:var(--melody-border);color:var(--melody-accent)}
:is(.block[data-type=melody],#melody-editor-surface) .capture-orbit:before,:is(.block[data-type=melody],#melody-editor-surface) .capture-orbit:after{border-color:#c1846c}
:is(.block[data-type=melody],#melody-editor-surface) [data-phase=paused] .capture-orbit{background:#eee2dc;border-color:#cab4a6;color:#866c5e}
:is(.block[data-type=melody],#melody-editor-surface) .capture-pause-badge{background:var(--melody-paper);border-color:var(--melody-border);color:var(--melody-accent)}
:is(.block[data-type=melody],#melody-editor-surface) :is(.capture-time,.capture-hint,.capture-actions button){color:var(--melody-muted)}
:is(.block[data-type=melody],#melody-editor-surface) .capture-actions .melody-finish{background:var(--melody-action);border-color:var(--melody-border);color:var(--melody-ink)}
:is(.block[data-type=melody],#melody-editor-surface) .audio-waveform__bars{color:#d7a48f}
:is(.block[data-type=melody],#melody-editor-surface) .audio-waveform__played{color:var(--melody-accent)}
.block[data-type=melody] :is(.melody-input-alternatives button,.melody-edit){background:var(--melody-paper);border-color:var(--melody-border);color:var(--melody-ink)}
.block[data-type=melody] :is(.audio-player,.melody-preview){background:#fffcf9;border-color:#dfc2b4}
.block[data-type=melody] .audio-play{background:var(--melody-accent);border-color:var(--melody-accent);color:#fffaf7}
.block[data-type=melody] :is(.audio-time,.audio-label,.melody-preview-head small,.melody-in-search,.melody-scale,.melody-pitches,.melody-aux-status){color:var(--melody-muted)}
.block[data-type=melody] .melody-note{background:#d9967d;border-color:#a7644c;color:#603c30}
.block[data-type=melody] .melody-roll{background:repeating-linear-gradient(to bottom,transparent 0,transparent 21px,#d9baa82b 21px,#d9baa82b 22px);border-color:#dfc2b4}
.block[data-type=melody] .melody-footer{border-color:#d4a68e55}
.block[data-type=melody] .record-again:not(.melody-retry-cue){color:var(--melody-ink)}
.block[data-type=melody] .melody-options{background:#fff5ef;border-color:var(--melody-border)}
.block[data-type=melody] .melody-options>summary{color:var(--melody-ink);border-color:#e8cfc2}
.block[data-type=melody] .melody-options>summary:hover{background:var(--melody-wash)}
.block[data-type=melody] :is(.lyrics-language,.melody-replace-file){background:#fffbf8;border-color:#e3c7b8;color:var(--melody-ink)}
.block[data-type=melody] .option-icon{color:var(--melody-accent)}
.block[data-type=melody] .lyrics-language select{color:var(--melody-ink);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='m6 9 6 6 6-6' fill='none' stroke='%23875b48' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E")}
.block[data-type=melody] :is(.melody-processing,.melody-processing small){color:var(--melody-muted)}
.block[data-type=melody] .analysis-spinner{border-color:#e7c5b5;border-top-color:var(--melody-accent)}
.block[data-type=melody] .lyrics-actions button[data-accept-lyrics]{background:var(--melody-action);border-color:var(--melody-border);color:var(--melody-ink)}
.block[data-type=melody] :is(button,select,input,summary):focus-visible{outline-color:var(--melody-accent)}
.block[data-type=melody] .audio-waveform:focus-within{outline-color:var(--melody-accent)}
#melody-editor-dialog{background:var(--melody-paper);border-color:var(--melody-border);color:var(--melody-ink)}
#melody-editor-dialog::backdrop{background:#3c302d80;backdrop-filter:blur(3px)}
#melody-editor-dialog .melody-dialog-head{background:#fcf1eb;border-color:#e4cbbd;color:var(--melody-ink)}
#melody-editor-dialog .melody-heading-symbol{color:var(--melody-accent)}
#melody-editor-dialog .melody-dialog-actions .primary{background:var(--melody-action);border-color:var(--melody-border);color:var(--melody-ink)}
#melody-editor-dialog .melody-dialog-actions .secondary{background:var(--melody-paper);border-color:var(--melody-border);color:var(--melody-ink)}
#melody-editor-dialog #melody-editor-close{color:var(--melody-muted)}
#melody-editor-surface{--violet:#a15d49;--ink:#523e35;--line:#e4d1c5;--paper:#fffaf7;--accent:#bb7359;background:#fcf8f4;color:var(--ink)}
#melody-editor-surface .editor-capture{background:linear-gradient(145deg,#fcf1eb,#f5ded3);border-color:var(--melody-border)}
#melody-editor-surface .capture-processing{color:var(--melody-muted)}
#melody-editor-surface .capture-processing:before{border-color:#e7c5b5;border-top-color:var(--melody-accent)}
#melody-editor-surface .transport{background:#fcf8f4f5}
#melody-editor-surface .recording-actions{background:var(--melody-soft);border-color:var(--melody-border)}
#melody-editor-surface .wave-base{stroke:#d9ac99}#melody-editor-surface .wave-played{stroke:var(--melody-accent)}
#melody-editor-surface .volume-control{color:var(--melody-muted)}
#melody-editor-surface .volume-control input[type=range]::-webkit-slider-runnable-track{background:linear-gradient(to right,#b5785e 0 var(--volume,100%),#ead7cc var(--volume,100%) 100%)}
#melody-editor-surface .volume-control input[type=range]::-webkit-slider-thumb{border-color:#b5785e;background:#fffaf7}
#melody-editor-surface .volume-control input[type=range]::-moz-range-progress{background:#b5785e}
#melody-editor-surface .volume-control input[type=range]::-moz-range-thumb{border-color:#b5785e;background:#fffaf7}
#melody-editor-surface :is(.clear-notes,#remove){color:#a44238}
/* Error feedback keeps its established yellow meaning in either palette. */
#melody-editor-surface button.melody-retry-cue{background:#ffe178;color:#674b0f;border-color:#ddb12d}

/* Small controls and active feedback follow the same melody identity. */
.block[data-type=melody] .options-toggle{background:var(--melody-wash);color:var(--melody-accent)}
.block[data-type=melody] .melody-preview-head,.block[data-type=melody] .melody-preview-head .block-note{color:var(--melody-ink)}
:is(.block[data-type=melody],#melody-editor-surface) .recording-state[data-phase=capturing] .capture-orbit{box-shadow:0 0 calc(var(--mic-level,0)*20px) #a15d4940}
:is(.block[data-type=melody],#melody-editor-surface) button.capture-orbit:hover:not(:disabled){background:var(--melody-action)}
:is(.block[data-type=melody],#melody-editor-surface) .audio-waveform__status{background:var(--melody-soft);color:var(--melody-muted)}
.block[data-type=melody] .lyrics-suggestions{background:var(--melody-paper);border-color:var(--melody-border);color:var(--melody-ink)}
.block[data-type=melody] .lyrics-suggestions>summary{color:var(--melody-ink)}
.block[data-type=melody] .lyrics-suggestions summary small{color:var(--melody-muted)}
.block[data-type=melody] .lyrics-discovery-icon{background:var(--melody-wash);color:var(--melody-accent)}
.block[data-type=melody] .lyrics-lines textarea{border-color:var(--melody-border)}
.block[data-type=melody] .lyrics-lines input{accent-color:var(--melody-accent)}

/* Interaction feedback: color changes never move controls or override warnings. */
:is(.block[data-type=melody],#melody-editor-surface) .shared-record-start:not(:disabled):not(.melody-retry-cue):hover{background:#e7ac94;border-color:var(--melody-accent)}
.block[data-type=melody] :is(.melody-input-alternatives button,.melody-edit,.melody-replace-file):not(:disabled):hover{background:var(--melody-soft);border-color:var(--melody-accent)}
.block[data-type=melody] .audio-play:not(:disabled):hover{background:#824834;border-color:#824834}
.block[data-type=melody] .record-again:not(:disabled):not(.melody-retry-cue):hover{color:#824834;text-decoration:underline;text-underline-offset:3px}
#melody-editor-dialog .melody-dialog-actions button:not(:disabled):hover{background:var(--melody-wash);border-color:var(--melody-accent)}
#melody-editor-dialog :is(button,summary):focus-visible,#melody-editor-surface :is(button,input,select,summary,.note,.incipit):focus-visible{outline:2px solid var(--melody-accent);outline-offset:3px}
#melody-editor-surface .volume-control input[type=range]::-moz-range-track{background:#ead7cc}
/* The same accent identifies selection, sounding notes and held keys. */
#melody-editor-surface :is(.note.selected,.note.played.selected){background:linear-gradient(90deg,#e8b6a1,#f5d4c5);border-color:var(--melody-accent);box-shadow:0 0 0 2px #a15d4922}
#melody-editor-surface .key.active{background:linear-gradient(#f3cbb9,#e9ac92);border-color:var(--melody-accent);color:var(--melody-ink)}
#melody-editor-surface .key.black.active{background:linear-gradient(#a15d49,#c77f66);border-color:#824834;color:#fffaf7}
#melody-editor-surface .fall-note.active{background:linear-gradient(90deg,#dfa58d,#f3cbb9);border-color:var(--melody-accent)}
