/* ── CastingView — Speaker-to-voice assignment grid ──────────────────── */ .casting-view { border: 1px solid color-mix(in srgb, var(--chrome-border, #3c3836) 60%, transparent); border-radius: 12px; background: color-mix(in srgb, var(--chrome-bg, #282828) 50%, transparent); padding: 12px 14px; } .casting-view__header { display: flex; align-items: center; justify-content: space-between; margin-bottom: 10px; } .casting-view__title { display: flex; align-items: center; gap: 6px; margin: 0; font-size: var(--text-sm, 13px); font-weight: 600; color: var(--chrome-fg, #ebdbb2); } .casting-view__actions { display: flex; align-items: center; gap: 8px; } .casting-view__auto-btn { display: inline-flex; align-items: center; gap: 4px; padding: 4px 10px; border-radius: 8px; border: 1px solid color-mix(in srgb, #d3869b 30%, transparent); background: color-mix(in srgb, #d3869b 8%, transparent); color: #d3869b; font-size: var(--text-xs, 11px); font-weight: 500; cursor: pointer; transition: all 0.15s; } .casting-view__auto-btn:hover { background: color-mix(in srgb, #d3869b 15%, transparent); } .casting-view__badge { display: inline-flex; align-items: center; gap: 3px; font-size: var(--text-2xs, 10px); color: #8ec07c; font-weight: 500; } /* ── Grid ───────────────────────────────────────────────────────────── */ .casting-view__grid { display: flex; flex-direction: column; gap: 6px; } .casting-row { display: flex; align-items: center; gap: 10px; padding: 8px 10px; border-radius: 10px; background: color-mix(in srgb, var(--chrome-bg, #282828) 80%, transparent); border: 1px solid transparent; transition: border-color 0.2s, background 0.2s; } .casting-row--assigned { border-color: color-mix(in srgb, #8ec07c 20%, transparent); background: color-mix(in srgb, #8ec07c 3%, var(--chrome-bg, #282828)); } .casting-row__speaker { display: flex; align-items: center; gap: 8px; min-width: 120px; } .casting-row__avatar { width: 28px; height: 28px; border-radius: 50%; background: linear-gradient(135deg, #d3869b, #b16286); color: #1d2021; display: flex; align-items: center; justify-content: center; font-size: 10px; font-weight: 700; flex-shrink: 0; } .casting-row__info { display: flex; flex-direction: column; } .casting-row__name { font-size: var(--text-sm, 13px); font-weight: 500; color: var(--chrome-fg, #ebdbb2); } .casting-row__meta { font-size: var(--text-2xs, 10px); color: var(--chrome-fg-dim, #665c54); } .casting-row__arrow { color: var(--chrome-fg-dim, #665c54); font-size: 14px; flex-shrink: 0; } /* ── Voice picker ───────────────────────────────────────────────────── */ .casting-row__voice { position: relative; flex: 1; } .casting-row__picker { display: flex; align-items: center; gap: 6px; width: 100%; padding: 5px 10px; border-radius: 8px; border: 1px solid color-mix(in srgb, var(--chrome-border, #3c3836) 80%, transparent); background: color-mix(in srgb, var(--chrome-bg, #282828) 60%, transparent); color: var(--chrome-fg, #ebdbb2); font-size: var(--text-xs, 11px); cursor: pointer; transition: border-color 0.15s; text-align: left; } .casting-row__picker:hover { border-color: color-mix(in srgb, #d3869b 40%, transparent); } .casting-row__unassigned { color: var(--chrome-fg-dim, #665c54); font-style: italic; } .casting-row__preview { background: none; border: none; color: var(--chrome-fg-muted, #a89984); cursor: pointer; padding: 4px; border-radius: 6px; display: flex; align-items: center; justify-content: center; transition: color 0.15s, background 0.15s; } .casting-row__preview:hover { color: #f3a5b6; background: color-mix(in srgb, #f3a5b6 10%, transparent); } /* ── Dropdown ───────────────────────────────────────────────────────── */ .casting-dropdown { position: absolute; top: calc(100% + 4px); left: 0; right: 0; z-index: 100; background: color-mix(in srgb, var(--chrome-bg, #282828) 96%, transparent); backdrop-filter: blur(16px); border: 1px solid var(--chrome-border, #3c3836); border-radius: 10px; padding: 4px; max-height: 200px; overflow-y: auto; box-shadow: 0 8px 32px rgba(0, 0, 0, 0.4); animation: casting-drop 0.15s ease-out; } @keyframes casting-drop { from { opacity: 0; transform: translateY(-4px); } to { opacity: 1; transform: translateY(0); } } .casting-dropdown__item { display: flex; align-items: center; gap: 6px; width: 100%; padding: 6px 8px; border-radius: 7px; border: none; background: none; color: var(--chrome-fg, #ebdbb2); font-size: var(--text-xs, 11px); cursor: pointer; text-align: left; transition: background 0.1s; } .casting-dropdown__item:hover { background: color-mix(in srgb, var(--chrome-fg, #ebdbb2) 8%, transparent); } .casting-dropdown__item.is-active { color: #8ec07c; } .casting-dropdown__tag { margin-left: auto; font-size: var(--text-2xs, 10px); color: var(--chrome-fg-dim, #665c54); background: color-mix(in srgb, var(--chrome-fg-dim, #665c54) 12%, transparent); padding: 1px 5px; border-radius: 4px; } .casting-dropdown__divider { height: 1px; background: color-mix(in srgb, var(--chrome-border, #3c3836) 50%, transparent); margin: 3px 6px; } .casting-dropdown__empty { padding: 8px; font-size: var(--text-xs, 11px); color: var(--chrome-fg-dim, #665c54); text-align: center; font-style: italic; }