/* A small listening panel that follows the rest of the mailbox palette. */
#dt-sound-toggle {
    --dt-icon: url('../icons/sound.svg');
    width: 40px;
    height: 40px;
    flex: 0 0 40px;
    color: var(--dt-muted);
    border: 1px solid transparent;
    border-radius: 6px;
    background: transparent;
    box-shadow: none;
    touch-action: manipulation;
}
#dt-sound-toggle.is-muted { --dt-icon: url('../icons/sound-off.svg'); }
#dt-sound-toggle[aria-expanded='true'],
html body #dt-sound-toggle:hover {
    color: var(--dt-accent) !important;
    background: var(--dt-selected) !important;
    border-color: var(--dt-line) !important;
}
body > #dt-sound-toggle {
    position: fixed;
    right: max(22px, env(safe-area-inset-right));
    bottom: max(22px, env(safe-area-inset-bottom));
    z-index: 1050;
    width: 44px;
    height: 44px;
    background: var(--dt-panel);
    border-color: var(--dt-line);
    box-shadow: 0 4px 18px #0002;
}
#dt-sound-panel {
    box-sizing: border-box;
    position: fixed;
    left: var(--dt-sound-left, 12px);
    top: var(--dt-sound-top, 68px);
    width: var(--dt-sound-width, 328px);
    max-width: calc(100vw - 24px);
    max-height: min(620px, calc(100dvh - var(--dt-sound-top, 68px) - 12px));
    z-index: 1250;
    overflow-y: auto;
    overscroll-behavior: contain;
    padding: 20px;
    border: 1px solid var(--dt-line);
    border-radius: 9px;
    background: var(--dt-panel);
    color: var(--dt-text);
    box-shadow: 0 14px 40px #0003;
    font: 14px/1.55 'DM Sans', Arial, sans-serif;
    text-align: left;
    color-scheme: light;
}
#dt-sound-panel[hidden] { display: none !important; }
html.dark-mode #dt-sound-panel { color-scheme: dark; box-shadow: 0 16px 44px #0007; }
#dt-sound-panel header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    margin: -6px -6px 16px 0;
    padding: 0;
    background: transparent;
    border: 0;
}
#dt-sound-panel h2 {
    margin: 0;
    padding: 0;
    color: var(--dt-text);
    font: 26px/1.25 'DM Serif Display', Georgia, serif;
    letter-spacing: -.02em;
}
#dt-sound-panel .dt-sound-close {
    position: relative;
    flex: 0 0 40px;
    width: 40px;
    height: 40px;
    padding: 0;
    border: 0;
    border-radius: 5px;
    background: transparent;
    color: var(--dt-muted);
    font: 26px/1 Arial, sans-serif;
    cursor: pointer;
}
#dt-sound-panel label {
    color: var(--dt-text);
    font: inherit;
    cursor: pointer;
    margin: 0;
}
#dt-sound-panel label:has(#dt-sound-enabled) {
    display: flex;
    align-items: center;
    gap: 11px;
    min-height: 44px;
    margin-bottom: 18px;
    padding-bottom: 16px;
    border-bottom: 1px solid var(--dt-line);
}
#dt-sound-panel input[role='switch'] {
    appearance: none;
    -webkit-appearance: none;
    position: relative;
    flex: 0 0 38px;
    width: 38px;
    height: 23px;
    margin: 0;
    border: 1px solid var(--dt-active-border, var(--dt-line));
    border-radius: 20px;
    background: var(--dt-selected);
    cursor: pointer;
    transition: background-color .15s ease;
}
#dt-sound-panel input[role='switch']::before {
    content: '';
    position: absolute;
    top: 3px;
    left: 3px;
    width: 15px;
    height: 15px;
    border-radius: 50%;
    background: var(--dt-muted);
    transform: translateX(0);
    transition: transform .15s ease, background-color .15s ease;
}
#dt-sound-panel input[role='switch']:checked { background: var(--dt-toggle-track, #94613b); border-color: transparent; }
#dt-sound-panel input[role='switch']:checked::before { background: var(--dt-toggle-knob, #fff6e8); transform: translateX(15px); }
#dt-sound-panel label[for='dt-sound-volume'] { display: inline-block; }
#dt-sound-panel .dt-sound-volume-value { float: right; color: var(--dt-muted); font-variant-numeric: tabular-nums; }
#dt-sound-volume {
    display: block;
    width: 100%;
    height: 30px;
    margin: 6px 0 16px;
    padding: 0;
    border: 0;
    background: transparent;
    accent-color: var(--dt-accent);
    cursor: pointer;
}
#dt-sound-panel .dt-sound-samples { display: grid; gap: 6px; }
#dt-sound-panel .dt-sound-row { display: grid; grid-template-columns: minmax(0, 1fr) 40px; gap: 8px; align-items: center; }
#dt-sound-panel .dt-sound-row label {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    min-height: 44px;
    min-width: 0;
    font-size: 14px;
}
#dt-sound-panel .dt-sound-row label span { overflow-wrap: anywhere; }
#dt-sound-panel .dt-sound-samples button {
    display: flex;
    align-items: center;
    gap: 8px;
    justify-content: center;
    min-width: 0;
    min-height: 44px;
    padding: 10px;
    border: 1px solid var(--dt-line);
    border-radius: 5px;
    background: var(--dt-side);
    color: var(--dt-text);
    font: 13px/1.4 'DM Sans', Arial, sans-serif;
    text-align: left;
    white-space: normal;
    overflow-wrap: anywhere;
    cursor: pointer;
    touch-action: manipulation;
}
#dt-sound-panel .dt-sound-samples button::before {
    content: '';
    display: block;
    flex: 0 0 0;
    width: 0;
    height: 0;
    border: 4px solid transparent;
    border-right: 0;
    border-left: 6px solid currentColor;
    color: var(--dt-accent);
}
html body #dt-sound-panel button:is(:hover, :active) {
    background: var(--dt-selected);
    color: var(--dt-accent);
    border-color: var(--dt-active-border, var(--dt-line));
}
#dt-sound-panel :is(button, input):focus-visible,
html body #dt-sound-toggle:focus-visible {
    outline: 2px solid var(--dt-accent) !important;
    outline-offset: 3px;
    box-shadow: none !important;
}
#dt-sound-panel :is(button, input):disabled { opacity: .5; cursor: not-allowed; }
html body #dt-sound-panel button:focus {
    outline: 2px solid var(--dt-accent) !important;
    outline-offset: 2px;
    box-shadow: none !important;
}
#dt-sound-status {
    margin: 16px 0 0;
    min-height: 21px;
    color: var(--dt-muted);
    font-size: 12px;
    line-height: 1.6;
    overflow-wrap: anywhere;
}
/* The sign-in page intentionally uses the dark palette in either saved theme. */
body.task-login :is(#dt-sound-toggle, #dt-sound-panel) {
    --dt-panel: #1a1612;
    --dt-side: #15120f;
    --dt-text: #ede6dc;
    --dt-muted: #b1a08b;
    --dt-line: #332b22;
    --dt-accent: #dba573;
    --dt-selected: #302419;
    --dt-active-border: #58422d;
    --dt-toggle-track: #ff8e44;
    --dt-toggle-knob: #fff0dd;
    color-scheme: dark;
}
@media (max-width: 767px) {
    #dt-topbar #dt-sound-toggle { width: 38px; height: 40px; flex-basis: 38px; }
    body > #dt-sound-toggle { right: 14px; bottom: calc(78px + env(safe-area-inset-bottom)); }
    body.task-login > #dt-sound-toggle { bottom: calc(16px + env(safe-area-inset-bottom)); }
    #dt-sound-panel { padding: 17px; }
}
@media (prefers-reduced-motion: reduce) {
    #dt-sound-panel input[role='switch'], #dt-sound-panel input[role='switch']::before { transition: none; }
}
