.voxo-vb-page {
    --voxo-vb-bg: #f5f7fb;
    --voxo-vb-card: #ffffff;
    --voxo-vb-text: #172033;
    --voxo-vb-muted: #687389;
    --voxo-vb-border: #dfe4ee;
    --voxo-vb-primary: #075de8;
    --voxo-vb-primary-dark: #0649b8;
    --voxo-vb-accent: #16bdd9;
    --voxo-vb-success: #178a55;
    --voxo-vb-warning: #ad6b00;
    --voxo-vb-danger: #b52d42;
    --voxo-vb-shadow: 0 20px 55px rgba(28, 39, 65, 0.09);
}

main:has(.voxo-vb-page),
.wp-site-blocks:has(.voxo-vb-page) main {
    width: 100% !important;
    max-width: none !important;
    margin: 0 !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
}

.wp-block-post-content:has(.voxo-vb-page),
.entry-content:has(.voxo-vb-page) {
    width: 100% !important;
    max-width: none !important;
    margin: 0 !important;
    padding: 0 !important;
}

.voxo-vb-page,
.voxo-vb-page * {
    box-sizing: border-box;
}

.voxo-vb-page {
    position: relative;
    width: 100%;
    max-width: none;
    margin: 0;
    padding: 42px 20px 72px;
    overflow-x: clip;
    background:
        radial-gradient(circle at 8% 4%, rgba(7, 93, 232, 0.10), transparent 28%),
        radial-gradient(circle at 92% 2%, rgba(22, 189, 217, 0.10), transparent 30%),
        var(--voxo-vb-bg);
    color: var(--voxo-vb-text);
    font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}

.voxo-vb-shell {
    width: min(1480px, 100%);
    margin: 0 auto;
}

.voxo-vb-hero {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 24px;
    padding: 34px;
    border: 1px solid rgba(255, 255, 255, 0.8);
    border-radius: 28px;
    background: linear-gradient(135deg, #0b2444 0%, #0d3c67 55%, #0b5674 100%);
    color: #fff;
    box-shadow: var(--voxo-vb-shadow);
}

.voxo-vb-hero h1 {
    margin: 8px 0 10px;
    font-size: clamp(30px, 4vw, 50px);
    line-height: 1.02;
    color: #fff;
}

.voxo-vb-hero p {
    max-width: 760px;
    margin: 0;
    color: rgba(255, 255, 255, 0.78);
    font-size: 17px;
}

.voxo-vb-kicker {
    display: inline-flex;
    align-items: center;
    min-height: 30px;
    padding: 5px 11px;
    border: 1px solid rgba(255, 255, 255, 0.18);
    border-radius: 999px;
    color: #c9f5ff;
    font-size: 12px;
    font-weight: 800;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.voxo-vb-hero-formats {
    position: relative;
    display: flex;
    align-items: flex-end;
    justify-content: center;
    gap: 16px;
    flex: 0 0 auto;
    min-width: 292px;
    padding: 18px;
    border: 1px solid rgba(178, 230, 245, 0.28);
    border-radius: 22px;
    background: rgba(5, 28, 55, 0.28);
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.08);
}

.voxo-vb-format-card {
    display: grid;
    place-items: center;
    gap: 5px;
    padding: 0;
    border: 2px solid rgba(255, 255, 255, 0.42);
    background: rgba(255, 255, 255, 0.07);
    color: rgba(255, 255, 255, 0.84);
    font: inherit;
    cursor: pointer;
    appearance: none;
    -webkit-appearance: none;
    transition: border-color .2s ease, background .2s ease, box-shadow .2s ease, transform .2s ease, filter .2s ease;
}

.voxo-vb-format-card:hover {
    border-color: rgba(114, 230, 245, .82);
    filter: brightness(1.08);
}

.voxo-vb-format-card:focus-visible {
    outline: 3px solid rgba(114, 230, 245, .42);
    outline-offset: 4px;
}

.voxo-vb-format-card span {
    font-size: 19px;
    font-weight: 950;
    line-height: 1;
}

.voxo-vb-format-card small {
    color: rgba(215, 242, 250, 0.72);
    font-size: 9px;
    font-weight: 850;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.voxo-vb-format-card-vertical {
    width: 70px;
    aspect-ratio: 9 / 16;
    border-radius: 16px;
}

.voxo-vb-format-card-landscape {
    width: 142px;
    aspect-ratio: 16 / 9;
    border-radius: 15px;
}

.voxo-vb-format-card-vertical,
.is-landscape-project .voxo-vb-format-card-landscape {
    border-color: #72e6f5;
    background: linear-gradient(145deg, rgba(7, 93, 232, .34), rgba(22, 189, 217, .22));
    box-shadow: 0 12px 26px rgba(0, 24, 54, .28), 0 0 0 4px rgba(82, 216, 237, .08);
    color: #fff;
    transform: translateY(-3px);
}

.is-landscape-project .voxo-vb-format-card-vertical {
    border-color: rgba(255, 255, 255, 0.42);
    background: rgba(255, 255, 255, 0.07);
    box-shadow: none;
    color: rgba(255, 255, 255, 0.84);
    transform: none;
}

.voxo-vb-current-format {
    position: absolute;
    width: 1px;
    height: 1px;
    overflow: hidden;
    clip: rect(0 0 0 0);
    clip-path: inset(50%);
    white-space: nowrap;
}

.voxo-vb-notice {
    margin: 18px 0 24px;
    padding: 14px 18px;
    border: 1px solid #c8e8f5;
    border-radius: 14px;
    background: #eefaff;
    color: #245f84;
    font-size: 14px;
}

.voxo-vb-layout {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 390px;
    gap: 24px;
    align-items: start;
}

.voxo-vb-main {
    display: grid;
    gap: 22px;
    min-width: 0;
}

.voxo-vb-panel,
.voxo-vb-preview-panel {
    border: 1px solid var(--voxo-vb-border);
    border-radius: 22px;
    background: var(--voxo-vb-card);
    box-shadow: 0 14px 40px rgba(28, 39, 65, 0.06);
}

.voxo-vb-panel {
    padding: 24px;
}

.voxo-vb-preview-panel {
    position: sticky;
    top: 18px;
    padding: 20px;
}

.voxo-vb-panel-head,
.voxo-vb-preview-head,
.voxo-vb-subtitle-row,
.voxo-vb-final-actions,
.voxo-vb-preview-controls,
.voxo-vb-scene-options,
.voxo-vb-scene-actions,
.voxo-vb-switch-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 14px;
}

.voxo-vb-panel-head {
    margin-bottom: 22px;
}

.voxo-vb-panel-head > div,
.voxo-vb-preview-head > div {
    display: flex;
    align-items: center;
    gap: 11px;
}

.voxo-vb-panel h2,
.voxo-vb-preview-panel h2,
.voxo-vb-scene h3 {
    margin: 0;
    color: var(--voxo-vb-text);
}

.voxo-vb-panel h2,
.voxo-vb-preview-panel h2 {
    font-size: 21px;
}

.voxo-vb-step {
    display: inline-grid;
    min-width: 32px;
    min-height: 32px;
    place-items: center;
    padding: 0 8px;
    border-radius: 10px;
    background: #eaf7ff;
    color: #075de8;
    font-size: 12px;
    font-weight: 900;
    text-transform: uppercase;
}

.voxo-vb-status-pill {
    display: inline-flex;
    padding: 7px 11px;
    border-radius: 999px;
    background: #fff3e0;
    color: var(--voxo-vb-warning);
    font-size: 12px;
    font-weight: 800;
}

.voxo-vb-status-pill.is-ready {
    background: #e8f7ef;
    color: var(--voxo-vb-success);
}

.voxo-vb-settings-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(155px, 1fr));
    gap: 14px;
}

.voxo-vb-field {
    display: grid;
    gap: 7px;
    margin: 0;
}

.voxo-vb-field > span,
.voxo-vb-scene-duration-box > span {
    color: #384258;
    font-size: 13px;
    font-weight: 800;
}

.voxo-vb-field small,
.voxo-vb-helper,
.voxo-vb-scene-duration-box small {
    color: var(--voxo-vb-muted);
    font-size: 12px;
}

.voxo-vb-field select,
.voxo-vb-field textarea,
.voxo-vb-field input[type="range"] {
    width: 100%;
}

.voxo-vb-field select,
.voxo-vb-field textarea {
    min-height: 46px;
    border: 1px solid var(--voxo-vb-border);
    border-radius: 12px;
    background: #fff;
    color: var(--voxo-vb-text);
    font: inherit;
    outline: none;
    transition: border-color 0.2s ease, box-shadow 0.2s ease;
}

.voxo-vb-field select {
    padding: 0 12px;
}

.voxo-vb-field textarea {
    padding: 12px;
    resize: vertical;
}

.voxo-vb-field select:focus,
.voxo-vb-field textarea:focus {
    border-color: #168eea;
    box-shadow: 0 0 0 3px rgba(7, 93, 232, 0.13);
}

.voxo-vb-field select:disabled {
    background: #f2f4f8;
    color: #7b8497;
}

.voxo-vb-duration-summary {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 12px;
    margin-top: 18px;
}

.voxo-vb-duration-summary > div {
    display: grid;
    gap: 5px;
    padding: 14px;
    border-radius: 14px;
    background: #f7f8fb;
}

.voxo-vb-duration-summary span {
    color: var(--voxo-vb-muted);
    font-size: 12px;
}

.voxo-vb-duration-summary strong {
    font-size: 16px;
}

.voxo-vb-scenes {
    display: grid;
    gap: 14px;
}

.voxo-vb-scene {
    overflow: hidden;
    border: 1px solid var(--voxo-vb-border);
    border-radius: 16px;
    background: #fff;
}

.voxo-vb-scene.is-active {
    border-color: #16bdd9;
    box-shadow: 0 0 0 3px rgba(22, 189, 217, 0.10);
}

.voxo-vb-scene.is-ready .voxo-vb-scene-meta {
    color: var(--voxo-vb-success);
}

.voxo-vb-scene-header {
    display: grid;
    grid-template-columns: 1fr auto auto;
    gap: 12px;
    align-items: center;
    width: 100%;
    min-height: 58px;
    padding: 0 16px;
    border: 0;
    background: #fbfcfe;
    color: var(--voxo-vb-text);
    text-align: left;
    cursor: pointer;
}

.voxo-vb-scene-number {
    font-weight: 900;
}

.voxo-vb-scene-meta {
    color: var(--voxo-vb-muted);
    font-size: 12px;
    font-weight: 800;
}

.voxo-vb-chevron {
    transition: transform 0.2s ease;
}

.voxo-vb-scene.is-collapsed .voxo-vb-chevron {
    transform: rotate(-90deg);
}

.voxo-vb-scene.is-collapsed .voxo-vb-scene-body {
    display: none;
}

.voxo-vb-scene-body {
    padding: 18px;
    border-top: 1px solid var(--voxo-vb-border);
}

.voxo-vb-scene-grid {
    display: grid;
    grid-template-columns: minmax(210px, 0.7fr) minmax(0, 1.8fr);
    gap: 20px;
}

.voxo-vb-upload-column,
.voxo-vb-content-column {
    min-width: 0;
}

.voxo-vb-content-column {
    display: grid;
    gap: 16px;
}

.voxo-vb-subtitle-row {
    margin-bottom: 9px;
}

.voxo-vb-subtitle-row h3 {
    font-size: 14px;
}

.voxo-vb-subtitle-row span {
    color: var(--voxo-vb-muted);
    font-size: 11px;
    font-weight: 700;
}

.voxo-vb-dropzone {
    position: relative;
    display: grid;
    place-items: center;
    aspect-ratio: 9 / 16;
    max-height: 330px;
    overflow: hidden;
    border: 1.5px dashed #b9c0ce;
    border-radius: 14px;
    background: #f7f8fb;
    cursor: pointer;
}

.voxo-vb-dropzone:hover,
.voxo-vb-dropzone.is-dragover {
    border-color: var(--voxo-vb-accent);
    background: #eefaff;
}

.voxo-vb-dropzone input,
.voxo-vb-audio-upload input {
    position: absolute;
    width: 1px;
    height: 1px;
    opacity: 0;
    pointer-events: none;
}

.voxo-vb-dropzone img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.voxo-vb-dropzone-content {
    display: grid;
    gap: 5px;
    padding: 16px;
    text-align: center;
}

.voxo-vb-dropzone-content strong {
    color: #075de8;
}

.voxo-vb-dropzone-content small {
    color: var(--voxo-vb-muted);
}

.voxo-vb-link-btn {
    margin-top: 8px;
    padding: 0;
    border: 0;
    background: transparent;
    color: var(--voxo-vb-danger);
    font-size: 12px;
    font-weight: 800;
    cursor: pointer;
}

.voxo-vb-audio-box {
    padding: 14px;
    border: 1px solid var(--voxo-vb-border);
    border-radius: 14px;
    background: #fafbfe;
}

.voxo-vb-audio-upload {
    position: relative;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 40px;
    padding: 0 14px;
    border: 1px solid #c9cfda;
    border-radius: 10px;
    background: #fff;
    color: #3c465c;
    font-size: 13px;
    font-weight: 800;
    cursor: pointer;
}

.voxo-vb-audio-box audio {
    width: 100%;
    margin-top: 10px;
}

.voxo-vb-scene-options {
    align-items: stretch;
}

.voxo-vb-scene-options > * {
    flex: 1 1 0;
}

.voxo-vb-scene-duration-box {
    display: grid;
    gap: 5px;
    padding: 12px 14px;
    border: 1px solid var(--voxo-vb-border);
    border-radius: 12px;
    background: #f7f8fb;
}

.voxo-vb-scene-duration-box strong {
    font-size: 18px;
}

.voxo-vb-inline-message {
    color: var(--voxo-vb-muted);
    font-size: 12px;
}

.voxo-vb-btn,
.voxo-vb-icon-btn {
    border: 0;
    border-radius: 11px;
    font: inherit;
    font-weight: 850;
    cursor: pointer;
    transition: transform 0.15s ease, opacity 0.15s ease, background 0.15s ease;
}

.voxo-vb-btn {
    min-height: 42px;
    padding: 0 16px;
}

.voxo-vb-btn:hover:not(:disabled),
.voxo-vb-icon-btn:hover:not(:disabled) {
    transform: translateY(-1px);
}

.voxo-vb-btn:disabled,
.voxo-vb-icon-btn:disabled {
    opacity: 0.48;
    cursor: not-allowed;
}

.voxo-vb-btn-primary {
    background: var(--voxo-vb-primary);
    color: #fff;
}

.voxo-vb-btn-primary:hover:not(:disabled) {
    background: var(--voxo-vb-primary-dark);
}

.voxo-vb-btn-secondary {
    border: 1px solid #cfd5df;
    background: #fff;
    color: #313b50;
}

.voxo-vb-btn-ghost {
    min-height: 36px;
    padding: 0 10px;
    background: #eef0f5;
    color: #364056;
}

.voxo-vb-preview-head {
    margin-bottom: 16px;
}

.voxo-vb-preview-head > span {
    color: var(--voxo-vb-muted);
    font-size: 12px;
    font-weight: 800;
}

.voxo-vb-phone-wrap {
    display: flex;
    justify-content: center;
    padding: 8px 0 16px;
}

.voxo-vb-phone {
    position: relative;
    width: min(100%, 310px);
    aspect-ratio: 9 / 16;
    overflow: hidden;
    border: 8px solid #181b26;
    border-radius: 28px;
    background: linear-gradient(145deg, #252a3b, #11131d);
    box-shadow: 0 18px 42px rgba(17, 20, 31, 0.25);
}

.voxo-vb-preview-empty {
    position: absolute;
    inset: 0;
    display: grid;
    place-content: center;
    gap: 7px;
    padding: 30px;
    color: rgba(255, 255, 255, 0.78);
    text-align: center;
}

.voxo-vb-preview-empty span {
    font-size: 30px;
    font-weight: 900;
}

.voxo-vb-preview-empty small {
    color: rgba(255, 255, 255, 0.55);
}

.voxo-vb-preview-image {
    position: absolute;
    inset: -4%;
    width: 108%;
    height: 108%;
    object-fit: cover;
    transform-origin: center;
}

.voxo-vb-preview-image.effect-zoom-in.is-playing {
    animation: voxoZoomIn var(--voxo-scene-duration, 6s) linear forwards;
}

.voxo-vb-preview-image.effect-zoom-out.is-playing {
    animation: voxoZoomOut var(--voxo-scene-duration, 6s) linear forwards;
}

.voxo-vb-preview-image.effect-pan-left.is-playing {
    animation: voxoPanLeft var(--voxo-scene-duration, 6s) linear forwards;
}

.voxo-vb-preview-image.effect-pan-right.is-playing {
    animation: voxoPanRight var(--voxo-scene-duration, 6s) linear forwards;
}

@keyframes voxoZoomIn {
    from { transform: scale(1); }
    to { transform: scale(1.12); }
}

@keyframes voxoZoomOut {
    from { transform: scale(1.14); }
    to { transform: scale(1); }
}

@keyframes voxoPanLeft {
    from { transform: scale(1.12) translateX(2.8%); }
    to { transform: scale(1.12) translateX(-2.8%); }
}

@keyframes voxoPanRight {
    from { transform: scale(1.12) translateX(-2.8%); }
    to { transform: scale(1.12) translateX(2.8%); }
}

.voxo-vb-caption-safe-area {
    position: absolute;
    left: 8%;
    right: 8%;
    z-index: 5;
    display: flex;
    justify-content: center;
    pointer-events: none;
}

.voxo-vb-caption-safe-area.position-lower { bottom: 20%; }
.voxo-vb-caption-safe-area.position-middle { top: 48%; transform: translateY(-50%); }
.voxo-vb-caption-safe-area.position-upper { top: 17%; }

.voxo-vb-caption-line {
    max-width: 100%;
    padding: 3px 6px;
    color: #fff;
    font-size: calc(var(--voxo-caption-size, 40) * 0.58px);
    font-weight: 950;
    line-height: 1.12;
    letter-spacing: -0.02em;
    text-align: center;
    text-transform: uppercase;
    text-shadow: 0 2px 1px rgba(0,0,0,0.95), 2px 0 1px rgba(0,0,0,0.95), -2px 0 1px rgba(0,0,0,0.95), 0 -2px 1px rgba(0,0,0,0.95);
}

.voxo-vb-caption-line.style-box {
    padding: 7px 10px;
    border-radius: 9px;
    background: rgba(0, 0, 0, 0.72);
    text-shadow: none;
}

.voxo-vb-caption-word {
    display: inline-block;
    margin: 0 0.09em;
    transition: color 0.1s ease, transform 0.1s ease, opacity 0.1s ease;
}

.voxo-vb-caption-word.is-active {
    color: #ffd834;
    transform: scale(1.13);
}

.voxo-vb-caption-line.style-cyan .voxo-vb-caption-word.is-active { color: #38e8ff; }
.voxo-vb-caption-line.style-pink .voxo-vb-caption-word.is-active { color: #ff5fc7; }
.voxo-vb-caption-line.style-classic .voxo-vb-caption-word.is-active { color: #fff; transform: none; }

.voxo-vb-preview-progress {
    position: absolute;
    left: 8%;
    right: 8%;
    bottom: 4%;
    z-index: 7;
    height: 4px;
    overflow: hidden;
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.28);
}

.voxo-vb-preview-progress span {
    display: block;
    width: 0;
    height: 100%;
    border-radius: inherit;
    background: #fff;
}

.voxo-vb-preview-controls {
    justify-content: flex-start;
    margin-bottom: 18px;
}

.voxo-vb-icon-btn {
    width: 44px;
    height: 44px;
    background: var(--voxo-vb-primary);
    color: #fff;
}

.voxo-vb-time {
    display: flex;
    gap: 5px;
    min-width: 88px;
    color: #4f596e;
    font-variant-numeric: tabular-nums;
    font-size: 12px;
}

.voxo-vb-caption-settings {
    display: grid;
    gap: 13px;
    padding-top: 16px;
    border-top: 1px solid var(--voxo-vb-border);
}

.voxo-vb-caption-settings h3 {
    margin: 0;
    font-size: 15px;
}

.voxo-vb-switch-row {
    color: #384258;
    font-size: 13px;
    font-weight: 800;
}

.voxo-vb-switch-row input {
    width: 20px;
    height: 20px;
    accent-color: var(--voxo-vb-primary);
}

.voxo-vb-checklist {
    display: grid;
    gap: 10px;
}

.voxo-vb-check-item {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 12px 14px;
    border-radius: 12px;
    background: #f7f8fb;
    color: #4b556b;
    font-size: 13px;
}

.voxo-vb-check-item::before {
    content: "○";
    color: #8d96a8;
    font-size: 18px;
}

.voxo-vb-check-item.is-ok {
    background: #eaf8f1;
    color: #176f48;
}

.voxo-vb-check-item.is-ok::before {
    content: "✓";
    color: var(--voxo-vb-success);
    font-weight: 900;
}

.voxo-vb-final-actions {
    justify-content: flex-end;
    margin-top: 18px;
}

.voxo-vb-helper {
    margin: 10px 0 0;
    text-align: right;
}

.voxo-vb-toast {
    position: fixed;
    right: 22px;
    bottom: 22px;
    z-index: 99999;
    max-width: min(380px, calc(100vw - 44px));
    padding: 13px 16px;
    border-radius: 12px;
    background: #1c2231;
    color: #fff;
    box-shadow: 0 18px 45px rgba(0, 0, 0, 0.23);
    font-size: 13px;
    animation: voxoToastIn 0.2s ease;
}

.voxo-vb-toast.is-error {
    background: #9f263a;
}

@keyframes voxoToastIn {
    from { opacity: 0; transform: translateY(8px); }
    to { opacity: 1; transform: translateY(0); }
}

@media (max-width: 1120px) {
    .voxo-vb-layout {
        grid-template-columns: 1fr;
    }

    .voxo-vb-preview-panel {
        position: static;
    }

    .voxo-vb-phone {
        width: min(100%, 340px);
    }
}

@media (max-width: 820px) {
    .voxo-vb-page {
        padding: 24px 12px 54px;
    }

    .voxo-vb-hero {
        padding: 24px;
    }

    .voxo-vb-hero-formats {
        width: 100%;
        min-width: 0;
        justify-content: flex-start;
    }

    .voxo-vb-settings-grid,
    .voxo-vb-duration-summary {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .voxo-vb-scene-grid {
        grid-template-columns: 1fr;
    }

    .voxo-vb-dropzone {
        max-width: 250px;
        margin: 0 auto;
    }
}

@media (max-width: 540px) {
    .voxo-vb-panel,
    .voxo-vb-preview-panel {
        padding: 16px;
        border-radius: 16px;
    }

    .voxo-vb-panel-head,
    .voxo-vb-scene-options,
    .voxo-vb-scene-actions,
    .voxo-vb-final-actions {
        align-items: stretch;
        flex-direction: column;
    }

    .voxo-vb-settings-grid,
    .voxo-vb-duration-summary {
        grid-template-columns: 1fr;
    }

    .voxo-vb-scene-header {
        grid-template-columns: 1fr auto;
    }

    .voxo-vb-scene-meta {
        grid-column: 1 / 2;
        grid-row: 2;
    }

    .voxo-vb-chevron {
        grid-column: 2;
        grid-row: 1 / 3;
    }

    .voxo-vb-final-actions .voxo-vb-btn,
    .voxo-vb-scene-actions .voxo-vb-btn {
        width: 100%;
    }

    .voxo-vb-helper {
        text-align: left;
    }
}

/* ============================================================
   V0.2 — CONTA, VOZES E GERAÇÃO DE NARRAÇÃO
   ============================================================ */
.voxo-vb-account-bar {
    display: grid;
    grid-template-columns: minmax(240px, 1.15fr) minmax(260px, 1.6fr) auto;
    gap: 18px;
    align-items: center;
    margin: 0 0 24px;
    padding: 17px 18px;
    border: 1px solid #d9deea;
    border-radius: 18px;
    background: rgba(255, 255, 255, 0.92);
    box-shadow: 0 12px 32px rgba(28, 39, 65, 0.06);
}

.voxo-vb-account-bar.is-premium {
    border-color: #bfead6;
    background: linear-gradient(135deg, #f5fff9, #ffffff);
}

.voxo-vb-account-bar.is-guest {
    border-color: #eadfc1;
    background: linear-gradient(135deg, #fffaf0, #ffffff);
}

.voxo-vb-account-bar.has-error {
    border-color: #f0c6ce;
}

.voxo-vb-account-main {
    display: grid;
    gap: 4px;
    min-width: 0;
}

.voxo-vb-account-main strong {
    color: var(--voxo-vb-text);
    font-size: 15px;
}

.voxo-vb-account-main small {
    color: var(--voxo-vb-muted);
    font-size: 12px;
    line-height: 1.45;
}

.voxo-vb-account-plan {
    display: inline-flex;
    width: max-content;
    max-width: 100%;
    padding: 5px 9px;
    border-radius: 999px;
    background: #eaf7ff;
    color: #075de8;
    font-size: 11px;
    font-weight: 900;
    text-transform: uppercase;
}

.voxo-vb-account-bar.is-premium .voxo-vb-account-plan {
    background: #dff7ea;
    color: #137347;
}

.voxo-vb-account-bar.is-guest .voxo-vb-account-plan {
    background: #fff0cf;
    color: #8b5a00;
}

.voxo-vb-account-balances {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    min-width: 0;
}

.voxo-vb-balance-chip {
    display: inline-grid;
    gap: 2px;
    min-width: 118px;
    padding: 8px 10px;
    border: 1px solid #e1e5ed;
    border-radius: 11px;
    background: #f8f9fc;
    color: #687389;
    font-size: 10px;
    line-height: 1.25;
}

.voxo-vb-balance-chip strong {
    overflow: hidden;
    color: #303a50;
    font-size: 11px;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.voxo-vb-balance-empty {
    color: var(--voxo-vb-muted);
    font-size: 12px;
}

.voxo-vb-account-action {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 42px;
    padding: 0 15px;
    border-radius: 11px;
    background: #23293a;
    color: #fff !important;
    font-size: 12px;
    font-weight: 850;
    text-decoration: none !important;
    white-space: nowrap;
}

.voxo-vb-account-action:hover {
    background: #111624;
    color: #fff !important;
}

.voxo-vb-voice-box {
    padding: 15px;
    border: 1px solid #cfe8f6;
    border-radius: 15px;
    background: linear-gradient(145deg, #f5fbff, #ffffff);
}

.voxo-vb-voice-grid {
    display: grid;
    grid-template-columns: minmax(145px, 0.75fr) minmax(210px, 1.25fr);
    gap: 12px;
}

.voxo-vb-voice-actions {
    display: flex;
    justify-content: flex-end;
    gap: 10px;
    margin-top: 12px;
}

.voxo-vb-voice-actions .voxo-vb-btn-primary {
    min-width: 170px;
}

.voxo-vb-voice-message {
    min-height: 18px;
    margin: 10px 0 0;
    color: var(--voxo-vb-muted);
    font-size: 11px;
    line-height: 1.45;
}

.voxo-vb-audio-meta {
    margin-top: 8px;
    padding: 8px 10px;
    border-radius: 9px;
    background: #eef7ff;
    color: #31526d;
    font-size: 11px;
    font-weight: 700;
}

@media (max-width: 1120px) {
    .voxo-vb-account-bar {
        grid-template-columns: minmax(220px, 1fr) minmax(240px, 1.3fr) auto;
    }
}

@media (max-width: 820px) {
    .voxo-vb-account-bar {
        grid-template-columns: 1fr;
        align-items: stretch;
    }

    .voxo-vb-account-action {
        width: 100%;
    }
}

@media (max-width: 620px) {
    .voxo-vb-voice-grid {
        grid-template-columns: 1fr;
    }

    .voxo-vb-voice-actions {
        align-items: stretch;
        flex-direction: column;
    }

    .voxo-vb-voice-actions .voxo-vb-btn {
        width: 100%;
    }
}


/* ============================================================
   V0.2.2 — CORREÇÃO DE LARGURA, ENCAIXE E CABEÇALHO FIXO
   ============================================================ */

/* Impede que o tema limite o aplicativo à largura estreita do post. */
body:has(.voxo-vb-page) {
    overflow-x: clip;
}

main:has(.voxo-vb-page),
.wp-site-blocks > main:has(.voxo-vb-page),
main:has(.voxo-vb-page) .wp-block-post-content,
main:has(.voxo-vb-page) .entry-content,
main:has(.voxo-vb-page) .site-content,
main:has(.voxo-vb-page) .content-area,
main:has(.voxo-vb-page) .site-main,
main:has(.voxo-vb-page) .wp-block-group:has(.voxo-vb-page),
main:has(.voxo-vb-page) .wp-block-group__inner-container:has(.voxo-vb-page),
main:has(.voxo-vb-page) .alignwide:has(.voxo-vb-page),
main:has(.voxo-vb-page) .alignfull:has(.voxo-vb-page) {
    width: 100% !important;
    max-width: none !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
}

main:has(.voxo-vb-page) {
    padding-top: 0 !important;
    padding-bottom: 0 !important;
}

/* Fallback de largura total para temas que mantêm outro ancestral estreito. */
.voxo-vb-page {
    width: 100vw !important;
    max-width: 100vw !important;
    margin-left: calc(50% - 50vw) !important;
    margin-right: calc(50% - 50vw) !important;
    padding: 30px 20px 72px;
}

.voxo-vb-shell {
    width: min(1380px, 100%) !important;
    max-width: 1380px !important;
}

.voxo-vb-layout {
    grid-template-columns: minmax(0, 1fr) minmax(320px, 370px);
    gap: 26px;
}

.voxo-vb-main,
.voxo-vb-panel,
.voxo-vb-preview-panel,
.voxo-vb-scene,
.voxo-vb-scene-body,
.voxo-vb-scene-grid,
.voxo-vb-content-column,
.voxo-vb-upload-column {
    min-width: 0;
}

.voxo-vb-panel-head,
.voxo-vb-preview-head,
.voxo-vb-hero {
    flex-wrap: wrap;
}

.voxo-vb-scene-grid {
    grid-template-columns: minmax(190px, 230px) minmax(0, 1fr);
}

.voxo-vb-preview-panel {
    top: 126px;
    max-width: 100%;
}

body.admin-bar .voxo-vb-preview-panel {
    top: 158px;
}

.voxo-vb-phone {
    width: min(100%, 300px);
}

/* Mantém os controles dentro do painel, mesmo com textos maiores do tema. */
.voxo-vb-scene-options,
.voxo-vb-scene-actions,
.voxo-vb-final-actions,
.voxo-vb-voice-actions {
    flex-wrap: wrap;
}

.voxo-vb-field,
.voxo-vb-field select,
.voxo-vb-field textarea,
.voxo-vb-btn {
    min-width: 0;
}

@media (max-width: 1180px) {
    .voxo-vb-layout {
        grid-template-columns: minmax(0, 1fr) minmax(290px, 330px);
        gap: 20px;
    }

    .voxo-vb-scene-grid {
        grid-template-columns: minmax(170px, 210px) minmax(0, 1fr);
        gap: 16px;
    }

    .voxo-vb-phone {
        width: min(100%, 280px);
    }
}

@media (max-width: 980px) {
    .voxo-vb-layout {
        grid-template-columns: 1fr;
    }

    .voxo-vb-preview-panel {
        position: static;
        width: min(100%, 520px);
        margin: 0 auto;
    }

    .voxo-vb-phone {
        width: min(100%, 320px);
    }
}

@media (max-width: 760px) {
    .voxo-vb-page {
        width: 100% !important;
        max-width: 100% !important;
        margin-left: 0 !important;
        margin-right: 0 !important;
        padding: 22px 12px 54px;
    }

    .voxo-vb-scene-grid {
        grid-template-columns: 1fr;
    }
}

/* ============================================================
   V0.3 — VOZ ÚNICA, RENDERIZAÇÃO E NOVOS ESTILOS
   ============================================================ */
.voxo-vb-hidden-controls {
    display: initial;
}

.voxo-vb-project-voice {
    margin-top: 18px;
    padding: 16px;
    border: 1px solid #cfe8f6;
    border-radius: 16px;
    background: linear-gradient(145deg, #f5fbff, #ffffff);
}

.voxo-vb-project-voice-grid {
    display: grid;
    grid-template-columns: minmax(170px, .8fr) minmax(230px, 1.25fr) auto;
    gap: 12px;
    align-items: end;
}

.voxo-vb-project-voice-grid .voxo-vb-btn {
    white-space: nowrap;
}

.voxo-vb-scene-options {
    display: grid;
    grid-template-columns: minmax(170px, 1fr) minmax(160px, .85fr) minmax(150px, .8fr);
    gap: 12px;
}

.voxo-vb-render-status,
.voxo-vb-render-output {
    margin-top: 18px;
    padding: 16px;
    border: 1px solid var(--voxo-vb-border);
    border-radius: 15px;
    background: #f8f9fc;
}

.voxo-vb-render-status-row,
.voxo-vb-render-output-actions {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
}

.voxo-vb-render-status-row strong {
    color: var(--voxo-vb-text);
}

.voxo-vb-render-status-row span,
.voxo-vb-render-status small {
    color: var(--voxo-vb-muted);
    font-size: 12px;
}

.voxo-vb-render-progress {
    height: 9px;
    margin: 11px 0 9px;
    overflow: hidden;
    border-radius: 999px;
    background: #e5e8ef;
}

.voxo-vb-render-progress span {
    display: block;
    width: 0;
    height: 100%;
    border-radius: inherit;
    background: linear-gradient(110deg, #075de8 0%, #128fd3 28%, #16bdd9 52%, #55d9e8 72%, #075de8 100%);
    background-size: 220% 100%;
    transition: width .28s ease;
}

.voxo-vb-render-progress span.is-active {
    animation: voxoRenderFlow 1.15s linear infinite;
}

@keyframes voxoRenderFlow {
    from { background-position: 100% 0; }
    to { background-position: -120% 0; }
}

.voxo-vb-render-metrics {
    display: flex;
    flex-wrap: wrap;
    gap: 8px 18px;
    margin-top: 11px;
    padding-top: 11px;
    border-top: 1px solid #e5e8ef;
    color: var(--voxo-vb-muted);
    font-size: 11px;
}

.voxo-vb-render-metrics strong {
    color: #313b50;
    font-size: 11px;
}

.voxo-vb-render-output video {
    display: block;
    width: min(100%, 420px);
    max-height: 70vh;
    margin: 0 auto 16px;
    border-radius: 16px;
    background: #11131d;
    box-shadow: 0 14px 34px rgba(17, 20, 31, .18);
}

.voxo-vb-render-output-actions {
    justify-content: center;
    flex-wrap: wrap;
}

.voxo-vb-render-output-actions a.voxo-vb-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    text-decoration: none !important;
}

.voxo-vb-preview-image {
    inset: -10%;
    width: 120%;
    height: 120%;
}

.voxo-vb-preview-image.effect-pan-up.is-playing {
    animation: voxoPanUp var(--voxo-scene-duration, 6s) linear forwards;
}

.voxo-vb-preview-image.effect-pan-down.is-playing {
    animation: voxoPanDown var(--voxo-scene-duration, 6s) linear forwards;
}

@keyframes voxoZoomIn {
    from { transform: scale(1); }
    to { transform: scale(var(--voxo-zoom-max, 1.16)); }
}

@keyframes voxoZoomOut {
    from { transform: scale(var(--voxo-zoom-max, 1.16)); }
    to { transform: scale(1); }
}

@keyframes voxoPanLeft {
    from { transform: scale(var(--voxo-zoom-max, 1.16)) translateX(var(--voxo-pan-distance, 6%)); }
    to { transform: scale(var(--voxo-zoom-max, 1.16)) translateX(calc(-1 * var(--voxo-pan-distance, 6%))); }
}

@keyframes voxoPanRight {
    from { transform: scale(var(--voxo-zoom-max, 1.16)) translateX(calc(-1 * var(--voxo-pan-distance, 6%))); }
    to { transform: scale(var(--voxo-zoom-max, 1.16)) translateX(var(--voxo-pan-distance, 6%)); }
}

@keyframes voxoPanUp {
    from { transform: scale(var(--voxo-zoom-max, 1.16)) translateY(var(--voxo-pan-distance, 6%)); }
    to { transform: scale(var(--voxo-zoom-max, 1.16)) translateY(calc(-1 * var(--voxo-pan-distance, 6%))); }
}

@keyframes voxoPanDown {
    from { transform: scale(var(--voxo-zoom-max, 1.16)) translateY(calc(-1 * var(--voxo-pan-distance, 6%))); }
    to { transform: scale(var(--voxo-zoom-max, 1.16)) translateY(var(--voxo-pan-distance, 6%)); }
}

.voxo-vb-caption-line.style-green .voxo-vb-caption-word.is-active { color: #59f28c; }
.voxo-vb-caption-line.style-orange .voxo-vb-caption-word.is-active { color: #ff9b38; }
.voxo-vb-caption-line.style-purple .voxo-vb-caption-word.is-active { color: #b78bff; }

.voxo-vb-caption-line.style-pop .voxo-vb-caption-word.is-active {
    color: #ffd52f;
    transform: scale(1.28) rotate(-1deg);
}

.voxo-vb-caption-line.style-karaoke .voxo-vb-caption-word.is-active {
    padding: .05em .23em;
    border-radius: .28em;
    background: #ffd52f;
    color: #141414;
    transform: scale(1.1);
    text-shadow: none;
}

.voxo-vb-caption-line.style-neon .voxo-vb-caption-word.is-active {
    color: #fff;
    text-shadow: 0 0 6px #c26bff, 0 0 14px #a855f7, 0 0 24px #7c3aed;
    transform: scale(1.15);
}

.voxo-vb-caption-line.style-word-box .voxo-vb-caption-word {
    padding: .05em .18em;
    border-radius: .22em;
    background: rgba(0, 0, 0, .35);
}

.voxo-vb-caption-line.style-word-box .voxo-vb-caption-word.is-active {
    background: #e83c52;
    color: #fff;
    transform: scale(1.12);
}

.voxo-vb-caption-line.style-outline {
    text-shadow: 0 3px 0 #000, 3px 0 0 #000, -3px 0 0 #000, 0 -3px 0 #000, 2px 2px 0 #000, -2px -2px 0 #000;
}

.voxo-vb-caption-line.style-outline .voxo-vb-caption-word.is-active,
.voxo-vb-caption-line.style-shadow .voxo-vb-caption-word.is-active {
    color: #fff;
    transform: none;
}

.voxo-vb-caption-line.style-shadow {
    text-shadow: 0 5px 10px rgba(0, 0, 0, .95), 0 2px 2px rgba(0, 0, 0, .9);
}

@media (max-width: 980px) {
    .voxo-vb-project-voice-grid,
    .voxo-vb-scene-options {
        grid-template-columns: 1fr;
    }

    .voxo-vb-project-voice-grid .voxo-vb-btn {
        width: 100%;
    }
}

@media (max-width: 540px) {
    .voxo-vb-render-status-row,
    .voxo-vb-render-output-actions {
        align-items: stretch;
        flex-direction: column;
    }

    .voxo-vb-render-output-actions .voxo-vb-btn {
        width: 100%;
    }
}


/* ============================================================
   V0.3.1 — VOZ POR CENA E CHAMADA FINAL
   ============================================================ */
.voxo-vb-ending-box {
    margin-top: 18px;
    padding: 16px;
    border: 1px solid #f0cbd1;
    border-radius: 16px;
    background: linear-gradient(145deg, #fff8f9, #ffffff);
}

.voxo-vb-ending-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    margin-bottom: 14px;
}

.voxo-vb-ending-head h3 { margin: 0 0 3px; font-size: 15px; }
.voxo-vb-ending-head small { color: var(--voxo-vb-muted); }
.voxo-vb-ending-switch { flex: 0 0 auto; }

.voxo-vb-ending-grid {
    display: grid;
    grid-template-columns: minmax(180px, .8fr) minmax(280px, 1.7fr) minmax(130px, .55fr);
    gap: 12px;
    align-items: end;
    transition: opacity .2s ease;
}

.voxo-vb-ending-grid.is-disabled { opacity: .48; }
.voxo-vb-ending-text-field textarea { min-height: 82px; }

.voxo-vb-ending-preview {
    position: absolute;
    inset: 0;
    z-index: 4;
    display: grid;
    place-items: center;
    padding: 18% 10%;
    background: linear-gradient(180deg, rgba(4,7,16,.35), rgba(4,7,16,.72));
    text-align: center;
    pointer-events: none;
}

.voxo-vb-ending-preview[hidden] { display: none !important; }

.voxo-vb-ending-preview span {
    max-width: 100%;
    color: #fff;
    font-size: clamp(23px, 3vw, 32px);
    font-weight: 950;
    line-height: 1.08;
    text-transform: uppercase;
    text-shadow: 0 3px 0 #000, 3px 0 0 #000, -3px 0 0 #000, 0 -3px 0 #000;
    animation: voxoEndingPop .42s ease both;
}

.voxo-vb-ending-preview span::after {
    content: '';
    display: block;
    width: 42%;
    height: 5px;
    margin: 18px auto 0;
    border-radius: 999px;
    background: linear-gradient(90deg, #075de8, #16bdd9);
}

@keyframes voxoEndingPop {
    from { opacity: 0; transform: translateY(14px) scale(.94); }
    to { opacity: 1; transform: translateY(0) scale(1); }
}

@media (max-width: 980px) {
    .voxo-vb-ending-grid { grid-template-columns: 1fr; }
}

@media (max-width: 540px) {
    .voxo-vb-ending-head { align-items: stretch; flex-direction: column; }
    .voxo-vb-ending-switch { justify-content: space-between; }
}

/* ============================================================
   V0.4 — RESULTADO E DIAGNÓSTICO ADMINISTRATIVO
   ============================================================ */
.voxo-vb-render-result-summary {
    margin: 12px 0 0;
    color: var(--voxo-vb-muted);
    font-size: 12px;
    font-weight: 700;
    text-align: center;
}

.voxo-vb-diagnostic {
    margin-top: 16px;
    padding: 14px;
    border: 1px dashed #bcc5d5;
    border-radius: 14px;
    background: #f8fafc;
}

.voxo-vb-diagnostic summary {
    color: #334155;
    font-weight: 850;
    cursor: pointer;
}

.voxo-vb-diagnostic p {
    margin: 8px 0;
    color: var(--voxo-vb-muted);
    font-size: 12px;
}

.voxo-vb-diagnostic textarea {
    width: 100%;
    margin: 0 0 10px;
    padding: 10px;
    border: 1px solid #d8dee9;
    border-radius: 10px;
    background: #fff;
    color: #263247;
    font: 11px/1.45 ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
    resize: vertical;
}

/* ============================================================
   V0.5 — PLANOS, TRANSIÇÕES, CHAMADA NARRADA E NOVAS LEGENDAS
   ============================================================ */
.voxo-vb-ending-voice {
    margin-top: 16px;
    padding: 15px;
    border: 1px solid #cfe8f6;
    border-radius: 15px;
    background: linear-gradient(145deg, #f5fbff, #ffffff);
}

.voxo-vb-ending-voice audio {
    width: 100%;
    margin-top: 12px;
}

.voxo-vb-field select option:disabled {
    color: #8c94a5;
}

.voxo-vb-caption-line.style-red .voxo-vb-caption-word.is-active { color: #ff4d5f; }

.voxo-vb-caption-line.style-marker .voxo-vb-caption-word.is-active {
    padding: 0 .16em;
    border-radius: .16em;
    background: #ffd52f;
    color: #111;
    text-shadow: none;
    transform: scale(1.08);
}

.voxo-vb-caption-line.style-pill .voxo-vb-caption-word.is-active {
    padding: .04em .22em;
    border-radius: 999px;
    background: #4f46e5;
    color: #fff;
    text-shadow: none;
    transform: scale(1.08);
}

.voxo-vb-caption-line.style-impact {
    font-weight: 1000;
    letter-spacing: -.035em;
}

.voxo-vb-caption-line.style-impact .voxo-vb-caption-word.is-active {
    color: #ffd52f;
    transform: scale(1.18);
}

.voxo-vb-caption-line.style-comic .voxo-vb-caption-word.is-active {
    padding: .02em .16em;
    border-radius: .12em;
    background: #e83c52;
    color: #fff;
    transform: rotate(-2deg) scale(1.12);
}

.voxo-vb-caption-line.style-minimal {
    font-weight: 800;
    letter-spacing: 0;
    text-transform: none;
    text-shadow: 0 2px 8px rgba(0,0,0,.8);
}

.voxo-vb-caption-line.style-minimal .voxo-vb-caption-word.is-active {
    color: #fff;
    transform: none;
}

.voxo-vb-preview-image.effect-pan-diag-tl-br.is-playing {
    animation: voxoPanDiagTlBr var(--voxo-scene-duration, 6s) linear forwards;
}
.voxo-vb-preview-image.effect-pan-diag-tr-bl.is-playing {
    animation: voxoPanDiagTrBl var(--voxo-scene-duration, 6s) linear forwards;
}
.voxo-vb-preview-image.effect-pan-diag-bl-tr.is-playing {
    animation: voxoPanDiagBlTr var(--voxo-scene-duration, 6s) linear forwards;
}
.voxo-vb-preview-image.effect-pan-diag-br-tl.is-playing {
    animation: voxoPanDiagBrTl var(--voxo-scene-duration, 6s) linear forwards;
}

@keyframes voxoPanDiagTlBr {
    from { transform: scale(var(--voxo-zoom-max, 1.16)) translate(calc(var(--voxo-pan-distance, 6%) * -1), calc(var(--voxo-pan-distance, 6%) * -1)); }
    to { transform: scale(var(--voxo-zoom-max, 1.16)) translate(var(--voxo-pan-distance, 6%), var(--voxo-pan-distance, 6%)); }
}
@keyframes voxoPanDiagTrBl {
    from { transform: scale(var(--voxo-zoom-max, 1.16)) translate(var(--voxo-pan-distance, 6%), calc(var(--voxo-pan-distance, 6%) * -1)); }
    to { transform: scale(var(--voxo-zoom-max, 1.16)) translate(calc(var(--voxo-pan-distance, 6%) * -1), var(--voxo-pan-distance, 6%)); }
}
@keyframes voxoPanDiagBlTr {
    from { transform: scale(var(--voxo-zoom-max, 1.16)) translate(calc(var(--voxo-pan-distance, 6%) * -1), var(--voxo-pan-distance, 6%)); }
    to { transform: scale(var(--voxo-zoom-max, 1.16)) translate(var(--voxo-pan-distance, 6%), calc(var(--voxo-pan-distance, 6%) * -1)); }
}
@keyframes voxoPanDiagBrTl {
    from { transform: scale(var(--voxo-zoom-max, 1.16)) translate(var(--voxo-pan-distance, 6%), var(--voxo-pan-distance, 6%)); }
    to { transform: scale(var(--voxo-zoom-max, 1.16)) translate(calc(var(--voxo-pan-distance, 6%) * -1), calc(var(--voxo-pan-distance, 6%) * -1)); }
}

.voxo-vb-preview-stage,
.voxo-vb-phone {
    transition: opacity .18s ease, transform .18s ease, filter .18s ease;
}
.voxo-vb-phone.is-scene-transition.transition-out.transition-fade { opacity: .12; }
.voxo-vb-phone.is-scene-transition.transition-in.transition-fade { opacity: 1; }
.voxo-vb-phone.is-scene-transition.transition-out.transition-slide { opacity: .25; transform: translateX(-7%); }
.voxo-vb-phone.is-scene-transition.transition-in.transition-slide { opacity: 1; transform: translateX(0); }
.voxo-vb-phone.is-scene-transition.transition-out.transition-zoom { opacity: .2; transform: scale(1.06); }
.voxo-vb-phone.is-scene-transition.transition-in.transition-zoom { opacity: 1; transform: scale(1); }
.voxo-vb-phone.is-scene-transition.transition-out.transition-pixel { opacity: .25; filter: blur(7px) contrast(1.5); }
.voxo-vb-phone.is-scene-transition.transition-in.transition-pixel { opacity: 1; filter: none; }

@media (max-width: 820px) {
    .voxo-vb-ending-voice .voxo-vb-voice-grid { grid-template-columns: 1fr; }
}


/* ============================================================
   V0.6 — SALVAMENTO AUTOMÁTICO E HISTÓRICO LOCAL
   ============================================================ */
.voxo-vb-project-memory {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 18px;
    margin: -6px 0 24px;
    padding: 15px 18px;
    border: 1px solid #dce2ec;
    border-radius: 16px;
    background: rgba(255,255,255,.9);
    box-shadow: 0 10px 28px rgba(28,39,65,.05);
}
.voxo-vb-project-memory.is-saved { border-color: #bfe9d4; background: #f7fffa; }
.voxo-vb-project-memory.is-saving { border-color: #bfe7f5; background: #f2fbff; }
.voxo-vb-project-memory.has-error { border-color: #efc7ce; background: #fff8f9; }
.voxo-vb-project-memory-main { display:grid; gap:3px; min-width:0; }
.voxo-vb-project-memory-main strong { color:var(--voxo-vb-text); font-size:14px; }
.voxo-vb-project-memory-main small { color:var(--voxo-vb-muted); font-size:12px; line-height:1.4; }
.voxo-vb-save-indicator {
    display:inline-flex;
    width:max-content;
    max-width:100%;
    padding:4px 8px;
    border-radius:999px;
    background:#eef0f5;
    color:#586276;
    font-size:10px;
    font-weight:900;
    text-transform:uppercase;
}
.voxo-vb-project-memory.is-saved .voxo-vb-save-indicator { background:#def6e9; color:#147146; }
.voxo-vb-project-memory.is-saving .voxo-vb-save-indicator { background:#e4f7ff; color:#075da8; }
.voxo-vb-project-memory.has-error .voxo-vb-save-indicator { background:#fde7eb; color:#9f263a; }
.voxo-vb-project-memory-actions { display:flex; align-items:center; gap:9px; flex:0 0 auto; }
.voxo-vb-history-panel { overflow:hidden; }
.voxo-vb-history-intro { margin:-8px 0 18px; color:var(--voxo-vb-muted); font-size:13px; }
.voxo-vb-history-storage { color:var(--voxo-vb-muted); font-size:11px; font-weight:800; }
.voxo-vb-history-list { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; }
.voxo-vb-history-card { overflow:hidden; border:1px solid var(--voxo-vb-border); border-radius:15px; background:#fafbfe; }
.voxo-vb-history-card video { display:block; width:100%; aspect-ratio:9/16; max-height:300px; background:#10131c; object-fit:contain; }
.voxo-vb-history-card-body { display:grid; gap:12px; padding:13px; }
.voxo-vb-history-card-body > div:first-child { display:flex; align-items:flex-start; justify-content:space-between; gap:10px; }
.voxo-vb-history-card-body strong { color:var(--voxo-vb-text); }
.voxo-vb-history-card-body span { color:var(--voxo-vb-muted); font-size:11px; }
.voxo-vb-history-card dl { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; margin:0; }
.voxo-vb-history-card dl div { padding:8px 9px; border-radius:9px; background:#fff; }
.voxo-vb-history-card dt { color:var(--voxo-vb-muted); font-size:10px; }
.voxo-vb-history-card dd { margin:2px 0 0; color:#303a50; font-size:12px; font-weight:800; }
.voxo-vb-history-actions { display:flex; gap:8px; }
.voxo-vb-history-actions .voxo-vb-btn { flex:1 1 0; text-align:center; text-decoration:none; }
.voxo-vb-history-empty { display:grid; gap:4px; padding:24px; border:1px dashed #cdd3df; border-radius:14px; background:#fafbfe; text-align:center; }
.voxo-vb-history-empty strong { color:#3c465c; }
.voxo-vb-history-empty span { color:var(--voxo-vb-muted); font-size:12px; }
@media (max-width:820px) {
    .voxo-vb-project-memory { align-items:stretch; flex-direction:column; }
    .voxo-vb-project-memory-actions { width:100%; }
    .voxo-vb-project-memory-actions .voxo-vb-btn { flex:1 1 0; }
    .voxo-vb-history-list { grid-template-columns:1fr; }
}
@media (max-width:480px) {
    .voxo-vb-project-memory-actions { flex-direction:column; }
    .voxo-vb-project-memory-actions .voxo-vb-btn { width:100%; }
    .voxo-vb-history-actions { flex-direction:column; }
}

/* ============================================================
   V0.7 — LARGURA, CATÁLOGO COMPLETO E EFEITOS ADICIONAIS
   ============================================================ */
.voxo-vb-settings-grid {
    grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
    align-items: start;
}

.voxo-vb-settings-grid .voxo-vb-field,
.voxo-vb-scene-options .voxo-vb-field,
.voxo-vb-scene-options .voxo-vb-scene-duration-box {
    min-width: 0;
}

.voxo-vb-settings-grid select,
.voxo-vb-scene-options select {
    width: 100%;
    min-width: 0;
    padding-left: 13px;
    padding-right: 32px;
    font-size: 14px;
}

.voxo-vb-scene-options {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
    align-items: stretch;
}

.voxo-vb-scene-options > * {
    width: 100%;
}

/* Legendas novas */
.voxo-vb-caption-line.style-lime .voxo-vb-caption-word.is-active { color: #c9ff43; }
.voxo-vb-caption-line.style-gold .voxo-vb-caption-word.is-active { color: #ffc857; }
.voxo-vb-caption-line.style-underline .voxo-vb-caption-word.is-active {
    color: #ffd52f;
    text-decoration: underline;
    text-decoration-thickness: .13em;
    text-underline-offset: .13em;
    transform: scale(1.08);
}
.voxo-vb-caption-line.style-glow .voxo-vb-caption-word.is-active {
    color: #fff;
    text-shadow: 0 0 8px #38e8ff, 0 0 18px #38e8ff, 0 2px 2px #000;
    transform: scale(1.12);
}
.voxo-vb-caption-line.style-red-box .voxo-vb-caption-word.is-active {
    padding: .03em .2em;
    border-radius: .13em;
    background: #e83c52;
    color: #fff;
    text-shadow: none;
    transform: scale(1.09);
}
.voxo-vb-caption-line.style-black-yellow .voxo-vb-caption-word.is-active {
    padding: .03em .2em;
    border-radius: .12em;
    background: #ffd52f;
    color: #111;
    text-shadow: none;
    transform: scale(1.08);
}

/* Aparências visuais da prévia */
.voxo-vb-preview-image.filter-none { filter: none; }
.voxo-vb-preview-image.filter-cinematic { filter: contrast(1.12) brightness(.97) saturate(.92); }
.voxo-vb-preview-image.filter-vivid { filter: contrast(1.08) brightness(1.01) saturate(1.25); }
.voxo-vb-preview-image.filter-soft { filter: contrast(.94) brightness(1.035) saturate(.9); }
.voxo-vb-preview-image.filter-warm { filter: sepia(.12) saturate(1.08) hue-rotate(-7deg); }
.voxo-vb-preview-image.filter-cool { filter: saturate(.93) hue-rotate(9deg) brightness(.98); }
.voxo-vb-preview-image.filter-bw { filter: grayscale(1); }
.voxo-vb-preview-image.filter-sepia { filter: sepia(.85) contrast(1.02); }
.voxo-vb-preview-image.filter-vintage { filter: sepia(.2) contrast(.94) saturate(.78) brightness(1.025); }
.voxo-vb-preview-image.filter-suspense { filter: contrast(1.18) brightness(.945) saturate(.74); }
.voxo-vb-preview-image.filter-horror { filter: contrast(1.24) brightness(.925) saturate(.56) sepia(.08); }
.voxo-vb-preview-image.filter-night { filter: contrast(1.12) brightness(.91) saturate(.72) hue-rotate(12deg); }
.voxo-vb-preview-image.filter-faded { filter: contrast(.84) brightness(1.055) saturate(.72); }
.voxo-vb-preview-image.filter-sharp { filter: contrast(1.04); }
.voxo-vb-preview-image.filter-vignette { filter: contrast(1.05) brightness(.96); }

/* Zoom com foco */
.voxo-vb-preview-image.effect-zoom-in-top.is-playing,
.voxo-vb-preview-image.effect-zoom-in-bottom.is-playing,
.voxo-vb-preview-image.effect-zoom-in-left.is-playing,
.voxo-vb-preview-image.effect-zoom-in-right.is-playing {
    animation: voxoZoomIn var(--voxo-scene-duration, 6s) linear forwards;
}
.voxo-vb-preview-image.effect-zoom-out-top.is-playing,
.voxo-vb-preview-image.effect-zoom-out-bottom.is-playing,
.voxo-vb-preview-image.effect-zoom-out-left.is-playing,
.voxo-vb-preview-image.effect-zoom-out-right.is-playing {
    animation: voxoZoomOut var(--voxo-scene-duration, 6s) linear forwards;
}
.voxo-vb-preview-image.effect-zoom-in-top,
.voxo-vb-preview-image.effect-zoom-out-top { transform-origin: 50% 8%; }
.voxo-vb-preview-image.effect-zoom-in-bottom,
.voxo-vb-preview-image.effect-zoom-out-bottom { transform-origin: 50% 92%; }
.voxo-vb-preview-image.effect-zoom-in-left,
.voxo-vb-preview-image.effect-zoom-out-left { transform-origin: 8% 50%; }
.voxo-vb-preview-image.effect-zoom-in-right,
.voxo-vb-preview-image.effect-zoom-out-right { transform-origin: 92% 50%; }

/* Combinações de zoom e movimento */
.voxo-vb-preview-image.effect-zoom-pan-left.is-playing { animation: voxoZoomPanLeft var(--voxo-scene-duration, 6s) linear forwards; }
.voxo-vb-preview-image.effect-zoom-pan-right.is-playing { animation: voxoZoomPanRight var(--voxo-scene-duration, 6s) linear forwards; }
.voxo-vb-preview-image.effect-zoom-pan-up.is-playing { animation: voxoZoomPanUp var(--voxo-scene-duration, 6s) linear forwards; }
.voxo-vb-preview-image.effect-zoom-pan-down.is-playing { animation: voxoZoomPanDown var(--voxo-scene-duration, 6s) linear forwards; }
.voxo-vb-preview-image.effect-zoom-pan-diag-tl-br.is-playing { animation: voxoZoomPanTlBr var(--voxo-scene-duration, 6s) linear forwards; }
.voxo-vb-preview-image.effect-zoom-pan-diag-tr-bl.is-playing { animation: voxoZoomPanTrBl var(--voxo-scene-duration, 6s) linear forwards; }
.voxo-vb-preview-image.effect-zoom-pan-diag-bl-tr.is-playing { animation: voxoZoomPanBlTr var(--voxo-scene-duration, 6s) linear forwards; }
.voxo-vb-preview-image.effect-zoom-pan-diag-br-tl.is-playing { animation: voxoZoomPanBrTl var(--voxo-scene-duration, 6s) linear forwards; }

@keyframes voxoZoomPanLeft {
    from { transform: scale(1.02) translateX(var(--voxo-pan-distance, 6%)); }
    to { transform: scale(var(--voxo-zoom-max, 1.16)) translateX(calc(var(--voxo-pan-distance, 6%) * -1)); }
}
@keyframes voxoZoomPanRight {
    from { transform: scale(1.02) translateX(calc(var(--voxo-pan-distance, 6%) * -1)); }
    to { transform: scale(var(--voxo-zoom-max, 1.16)) translateX(var(--voxo-pan-distance, 6%)); }
}
@keyframes voxoZoomPanUp {
    from { transform: scale(1.02) translateY(var(--voxo-pan-distance, 6%)); }
    to { transform: scale(var(--voxo-zoom-max, 1.16)) translateY(calc(var(--voxo-pan-distance, 6%) * -1)); }
}
@keyframes voxoZoomPanDown {
    from { transform: scale(1.02) translateY(calc(var(--voxo-pan-distance, 6%) * -1)); }
    to { transform: scale(var(--voxo-zoom-max, 1.16)) translateY(var(--voxo-pan-distance, 6%)); }
}
@keyframes voxoZoomPanTlBr {
    from { transform: scale(1.02) translate(calc(var(--voxo-pan-distance, 6%) * -1), calc(var(--voxo-pan-distance, 6%) * -1)); }
    to { transform: scale(var(--voxo-zoom-max, 1.16)) translate(var(--voxo-pan-distance, 6%), var(--voxo-pan-distance, 6%)); }
}
@keyframes voxoZoomPanTrBl {
    from { transform: scale(1.02) translate(var(--voxo-pan-distance, 6%), calc(var(--voxo-pan-distance, 6%) * -1)); }
    to { transform: scale(var(--voxo-zoom-max, 1.16)) translate(calc(var(--voxo-pan-distance, 6%) * -1), var(--voxo-pan-distance, 6%)); }
}
@keyframes voxoZoomPanBlTr {
    from { transform: scale(1.02) translate(calc(var(--voxo-pan-distance, 6%) * -1), var(--voxo-pan-distance, 6%)); }
    to { transform: scale(var(--voxo-zoom-max, 1.16)) translate(var(--voxo-pan-distance, 6%), calc(var(--voxo-pan-distance, 6%) * -1)); }
}
@keyframes voxoZoomPanBrTl {
    from { transform: scale(1.02) translate(var(--voxo-pan-distance, 6%), var(--voxo-pan-distance, 6%)); }
    to { transform: scale(var(--voxo-zoom-max, 1.16)) translate(calc(var(--voxo-pan-distance, 6%) * -1), calc(var(--voxo-pan-distance, 6%) * -1)); }
}

.voxo-vb-preview-image.effect-breathe.is-playing { animation: voxoBreathe var(--voxo-scene-duration, 6s) ease-in-out forwards; }
.voxo-vb-preview-image.effect-float-horizontal.is-playing { animation: voxoFloatHorizontal var(--voxo-scene-duration, 6s) ease-in-out forwards; }
.voxo-vb-preview-image.effect-float-vertical.is-playing { animation: voxoFloatVertical var(--voxo-scene-duration, 6s) ease-in-out forwards; }
.voxo-vb-preview-image.effect-impact.is-playing { animation: voxoImpact var(--voxo-scene-duration, 6s) ease-out forwards; }
@keyframes voxoBreathe { 0%,100% { transform: scale(1.02); } 50% { transform: scale(var(--voxo-zoom-max, 1.12)); } }
@keyframes voxoFloatHorizontal { 0% { transform: scale(var(--voxo-zoom-max, 1.13)) translateX(-3%); } 50% { transform: scale(var(--voxo-zoom-max, 1.13)) translateX(3%); } 100% { transform: scale(var(--voxo-zoom-max, 1.13)) translateX(-3%); } }
@keyframes voxoFloatVertical { 0% { transform: scale(var(--voxo-zoom-max, 1.13)) translateY(-3%); } 50% { transform: scale(var(--voxo-zoom-max, 1.13)) translateY(3%); } 100% { transform: scale(var(--voxo-zoom-max, 1.13)) translateY(-3%); } }
@keyframes voxoImpact { 0% { transform: scale(1); } 20%,100% { transform: scale(var(--voxo-zoom-max, 1.16)); } }

/* Prévia aproximada das famílias de transição */
.voxo-vb-phone.is-scene-transition { transition-duration: .18s; }
.voxo-vb-phone.is-scene-transition.transition-fade-black.transition-out { opacity: .08; filter: brightness(0); }
.voxo-vb-phone.is-scene-transition.transition-fade-black.transition-in { opacity: 1; filter: none; }
.voxo-vb-phone.is-scene-transition.transition-fade-white.transition-out { opacity: .1; filter: brightness(3); }
.voxo-vb-phone.is-scene-transition.transition-fade-white.transition-in { opacity: 1; filter: none; }
.voxo-vb-phone.is-scene-transition.transition-slide-left.transition-out { opacity: .25; transform: translateX(-10%); }
.voxo-vb-phone.is-scene-transition.transition-slide-right.transition-out { opacity: .25; transform: translateX(10%); }
.voxo-vb-phone.is-scene-transition.transition-slide-up.transition-out { opacity: .25; transform: translateY(-8%); }
.voxo-vb-phone.is-scene-transition.transition-slide-down.transition-out { opacity: .25; transform: translateY(8%); }
.voxo-vb-phone.is-scene-transition.transition-slide-left.transition-in,
.voxo-vb-phone.is-scene-transition.transition-slide-right.transition-in,
.voxo-vb-phone.is-scene-transition.transition-slide-up.transition-in,
.voxo-vb-phone.is-scene-transition.transition-slide-down.transition-in { opacity: 1; transform: translate(0); }
.voxo-vb-phone.is-scene-transition.transition-blur.transition-out { opacity: .2; filter: blur(12px); }
.voxo-vb-phone.is-scene-transition.transition-blur.transition-in { opacity: 1; filter: none; }
.voxo-vb-phone.is-scene-transition.transition-grayscale.transition-out { opacity: .15; filter: grayscale(1); }
.voxo-vb-phone.is-scene-transition.transition-grayscale.transition-in { opacity: 1; filter: none; }
.voxo-vb-phone.is-scene-transition.transition-shape.transition-out { opacity: .15; transform: scale(.72); border-radius: 50%; }
.voxo-vb-phone.is-scene-transition.transition-shape.transition-in { opacity: 1; transform: scale(1); border-radius: 28px; }
.voxo-vb-phone.is-scene-transition.transition-squeeze-h.transition-out { opacity: .2; transform: scaleX(.08); }
.voxo-vb-phone.is-scene-transition.transition-squeeze-v.transition-out { opacity: .2; transform: scaleY(.08); }
.voxo-vb-phone.is-scene-transition.transition-squeeze-h.transition-in,
.voxo-vb-phone.is-scene-transition.transition-squeeze-v.transition-in { opacity: 1; transform: scale(1); }
.voxo-vb-phone.is-scene-transition[class*="transition-slice-"] .voxo-vb-preview-image,
.voxo-vb-phone.is-scene-transition[class*="transition-wind-"] .voxo-vb-preview-image { filter: blur(4px) contrast(1.08); }
.voxo-vb-phone.is-scene-transition.transition-diag-tl.transition-out { opacity: .15; transform: translate(-7%,-7%); }
.voxo-vb-phone.is-scene-transition.transition-diag-tr.transition-out { opacity: .15; transform: translate(7%,-7%); }
.voxo-vb-phone.is-scene-transition.transition-diag-bl.transition-out { opacity: .15; transform: translate(-7%,7%); }
.voxo-vb-phone.is-scene-transition.transition-diag-br.transition-out { opacity: .15; transform: translate(7%,7%); }
.voxo-vb-phone.is-scene-transition[class*="transition-diag-"] .transition-in { opacity: 1; transform: none; }

@media (max-width: 1180px) {
    .voxo-vb-settings-grid { grid-template-columns: repeat(3, minmax(0, 1fr)) !important; }
}
@media (max-width: 900px) {
    .voxo-vb-settings-grid { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; }
}
@media (max-width: 620px) {
    .voxo-vb-settings-grid,
    .voxo-vb-scene-options { grid-template-columns: 1fr !important; }
}

/* v0.8.9 — diagnóstico experimental do motor multithread (somente administradores) */
.voxo-vb-engine-test{
    margin-top:18px;
    padding:18px;
    border:1px solid #dbe4f0;
    border-radius:16px;
    background:#f8fbff;
    display:grid;
    gap:14px;
}
.voxo-vb-engine-test strong{display:block;color:#0f2748;font-size:16px;margin-bottom:4px}
.voxo-vb-engine-test p{margin:0;color:#5b6b82;line-height:1.55}
.voxo-vb-engine-test-actions{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.voxo-vb-engine-test-actions span{font-size:13px;font-weight:700;color:#52647d}
.voxo-vb-engine-test textarea{width:100%;min-height:230px;resize:vertical;font:12px/1.5 Consolas,Monaco,monospace;background:#0b1220;color:#dbeafe;border:1px solid #20304b;border-radius:12px;padding:12px}
@media(max-width:640px){.voxo-vb-engine-test-actions{align-items:stretch;flex-direction:column}.voxo-vb-engine-test-actions .voxo-vb-btn{width:100%}}

/* v0.9.0 — efeitos nativos, diretor automático e cota diária */
.voxo-vb-video-quota{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-height:36px;
    padding:8px 12px;
    border-radius:999px;
    border:1px solid #cfe0ef;
    background:#f7fbff;
    color:#24435f;
    font-size:12px;
    font-weight:800;
    white-space:nowrap;
}
.voxo-vb-video-quota.is-limit{background:#fff1f2;border-color:#fecdd3;color:#be123c}
.voxo-vb-video-quota.is-unlimited{background:#ecfdf5;border-color:#a7f3d0;color:#047857}
.voxo-vb-preset-actions{
    display:flex;
    align-items:center;
    flex-wrap:wrap;
    gap:10px;
    margin:14px 0 18px;
    padding:14px;
    border:1px solid #dce8f3;
    border-radius:14px;
    background:#f8fbff;
}
.voxo-vb-preset-actions small{color:#607087;font-weight:600}
.voxo-vb-project-switch{
    min-height:74px;
    padding:12px 14px;
    border:1px solid #dce4ef;
    border-radius:12px;
    background:#fff;
}

/* Prévia aproximada dos novos filtros nativos */
.voxo-vb-preview-image.filter-grain{filter:contrast(1.04) saturate(.94)}
.voxo-vb-preview-image.filter-scanlines{filter:contrast(1.08) saturate(.92)}
.voxo-vb-preview-image.filter-negative{filter:invert(1)}
.voxo-vb-preview-image.filter-pixel{filter:contrast(1.08)}
.voxo-vb-preview-image.impact-flash-white.is-playing{animation:voxoImpactFlashWhite var(--voxo-scene-duration,6s) linear forwards, var(--voxo-active-animation,none)}
.voxo-vb-preview-image.impact-flash-black.is-playing{animation:voxoImpactFlashBlack var(--voxo-scene-duration,6s) linear forwards, var(--voxo-active-animation,none)}
.voxo-vb-preview-image.impact-pulse.is-playing{animation:voxoImpactPulse var(--voxo-scene-duration,6s) ease-out forwards}
.voxo-vb-preview-image.impact-shake.is-playing{animation:voxoImpactShake var(--voxo-scene-duration,6s) linear forwards}
.voxo-vb-preview-image.impact-zoom-punch.is-playing{animation:voxoImpactPunch var(--voxo-scene-duration,6s) ease-out forwards}
.voxo-vb-preview-image.impact-glitch.is-playing{animation:voxoImpactGlitch var(--voxo-scene-duration,6s) steps(2,end) forwards}
.voxo-vb-preview-image.impact-strobe.is-playing{animation:voxoImpactStrobe var(--voxo-scene-duration,6s) steps(2,end) forwards}
@keyframes voxoImpactFlashWhite{0%,14%,18%,100%{filter:inherit}15%,16%{filter:brightness(2.6)}}
@keyframes voxoImpactFlashBlack{0%,14%,18%,100%{filter:inherit}15%,16%{filter:brightness(.12)}}
@keyframes voxoImpactPulse{0%,14%,22%,100%{opacity:1}17%{opacity:.74}}
@keyframes voxoImpactShake{0%,14%,20%,100%{translate:0 0}15%{translate:-5px 3px}16%{translate:5px -3px}17%{translate:-3px -2px}18%{translate:3px 2px}}
@keyframes voxoImpactPunch{0%,14%,22%,100%{scale:1}17%{scale:1.08}}
@keyframes voxoImpactGlitch{0%,14%,20%,100%{filter:inherit;translate:0}15%{filter:hue-rotate(70deg) contrast(1.5);translate:-5px 0}17%{filter:hue-rotate(-45deg) contrast(1.35);translate:5px 0}}
@keyframes voxoImpactStrobe{0%,14%,20%,100%{filter:inherit}15%{filter:brightness(2.8)}16%{filter:brightness(.15)}17%{filter:brightness(2.2)}18%{filter:brightness(.3)}}

.voxo-vb-phone.is-scene-transition.transition-glitch.transition-out{opacity:.18;filter:hue-rotate(65deg) contrast(1.7);transform:translateX(-4%)}
.voxo-vb-phone.is-scene-transition.transition-glitch.transition-in{opacity:1;filter:none;transform:none}
.voxo-vb-phone.is-scene-transition.transition-negative.transition-out{opacity:.18;filter:invert(1) contrast(1.4)}
.voxo-vb-phone.is-scene-transition.transition-negative.transition-in{opacity:1;filter:none}

@media(max-width:720px){
    .voxo-vb-video-quota{width:100%;white-space:normal;text-align:center}
    .voxo-vb-preset-actions{align-items:stretch;flex-direction:column}
    .voxo-vb-preset-actions .voxo-vb-btn{width:100%}
}

/* v0.9.0 — prévias aproximadas do catálogo nativo ampliado */
.voxo-vb-preview-image.filter-high-contrast{filter:contrast(1.32) brightness(.955) saturate(1.08)}
.voxo-vb-preview-image.filter-matte{filter:contrast(.84) brightness(1.055) saturate(.82)}
.voxo-vb-preview-image.filter-teal-orange{filter:contrast(1.08) saturate(1.1) sepia(.08) hue-rotate(-7deg)}
.voxo-vb-preview-image.filter-noir{filter:grayscale(1) contrast(1.3) brightness(.945)}
.voxo-vb-preview-image.filter-dream{filter:contrast(.9) brightness(1.055) saturate(.88) blur(.6px)}
.voxo-vb-preview-image.filter-cyan{filter:contrast(1.08) saturate(1.05) hue-rotate(18deg)}
.voxo-vb-preview-image.filter-red{filter:contrast(1.1) saturate(1.22) sepia(.16) hue-rotate(-18deg)}
.voxo-vb-preview-image.filter-green{filter:contrast(1.08) saturate(1.12) hue-rotate(48deg)}
.voxo-vb-preview-image.filter-purple{filter:contrast(1.1) saturate(1.2) hue-rotate(32deg)}
.voxo-vb-preview-image.filter-neon{filter:contrast(1.24) brightness(.975) saturate(1.38)}
.voxo-vb-preview-image.filter-chromatic{filter:contrast(1.08) saturate(1.12)}
.voxo-vb-preview-image.filter-comic{filter:contrast(1.32) saturate(1.28)}
.voxo-vb-preview-image.filter-emboss{filter:grayscale(.55) contrast(1.42)}
.voxo-vb-preview-image.filter-mirror{transform:scaleX(-1)}
.voxo-vb-preview-image.filter-blur{filter:blur(1.2px)}
.voxo-vb-preview-image.filter-old-film{filter:sepia(.5) contrast(.92) brightness(1.025) saturate(.74)}

.voxo-vb-preview-image.impact-flash-red.is-playing{animation:voxoImpactFlashRed var(--voxo-scene-duration,6s) linear forwards}
.voxo-vb-preview-image.impact-flash-blue.is-playing{animation:voxoImpactFlashBlue var(--voxo-scene-duration,6s) linear forwards}
.voxo-vb-preview-image.impact-negative-pulse.is-playing{animation:voxoImpactNegative var(--voxo-scene-duration,6s) linear forwards}
.voxo-vb-preview-image.impact-gray-pulse.is-playing{animation:voxoImpactGray var(--voxo-scene-duration,6s) linear forwards}
.voxo-vb-preview-image.impact-rgb-burst.is-playing{animation:voxoImpactRgb var(--voxo-scene-duration,6s) steps(2,end) forwards}
.voxo-vb-preview-image.impact-blur-punch.is-playing{animation:voxoImpactBlur var(--voxo-scene-duration,6s) linear forwards}
.voxo-vb-preview-image.impact-pixel-burst.is-playing{animation:voxoImpactPixel var(--voxo-scene-duration,6s) steps(2,end) forwards}
.voxo-vb-preview-image.impact-shake-horizontal.is-playing{animation:voxoImpactShakeHorizontal var(--voxo-scene-duration,6s) linear forwards}
.voxo-vb-preview-image.impact-shake-vertical.is-playing{animation:voxoImpactShakeVertical var(--voxo-scene-duration,6s) linear forwards}
.voxo-vb-preview-image.impact-flicker.is-playing{animation:voxoImpactFlicker var(--voxo-scene-duration,6s) steps(2,end) forwards}
@keyframes voxoImpactFlashRed{0%,14%,18%,100%{filter:inherit}15%,16%{filter:sepia(.8) saturate(4) hue-rotate(-25deg) brightness(1.35)}}
@keyframes voxoImpactFlashBlue{0%,14%,18%,100%{filter:inherit}15%,16%{filter:sepia(.5) saturate(3) hue-rotate(150deg) brightness(1.3)}}
@keyframes voxoImpactNegative{0%,14%,18%,100%{filter:inherit}15%,16%{filter:invert(1)}}
@keyframes voxoImpactGray{0%,14%,22%,100%{filter:inherit}16%,19%{filter:grayscale(1) contrast(1.2)}}
@keyframes voxoImpactRgb{0%,14%,21%,100%{filter:inherit;translate:0}15%{filter:hue-rotate(85deg) contrast(1.6);translate:-6px 0}17%{filter:hue-rotate(-75deg) contrast(1.5);translate:6px 0}}
@keyframes voxoImpactBlur{0%,14%,22%,100%{filter:inherit}17%{filter:blur(5px) brightness(1.12)}}
@keyframes voxoImpactPixel{0%,14%,21%,100%{filter:inherit}16%,18%{filter:contrast(1.65) saturate(.5)}}
@keyframes voxoImpactShakeHorizontal{0%,14%,21%,100%{translate:0}15%{translate:-8px 0}16%{translate:8px 0}17%{translate:-5px 0}18%{translate:5px 0}}
@keyframes voxoImpactShakeVertical{0%,14%,21%,100%{translate:0}15%{translate:0 -7px}16%{translate:0 7px}17%{translate:0 -4px}18%{translate:0 4px}}
@keyframes voxoImpactFlicker{0%,14%,20%,100%{filter:inherit}15%{filter:brightness(1.9)}16%{filter:brightness(.55)}18%{filter:brightness(1.5)}}

.voxo-vb-phone.is-scene-transition.transition-shake.transition-out{opacity:.25;transform:translate(-7px,4px)}
.voxo-vb-phone.is-scene-transition.transition-shake.transition-in{opacity:1;transform:none}
.voxo-vb-phone.is-scene-transition.transition-digital.transition-out{opacity:.18;filter:contrast(1.8) saturate(.4)}
.voxo-vb-phone.is-scene-transition.transition-digital.transition-in{opacity:1;filter:none}
.voxo-vb-phone.is-scene-transition.transition-warm-flash.transition-out{opacity:.18;filter:sepia(.8) saturate(2.2) brightness(1.7)}
.voxo-vb-phone.is-scene-transition.transition-cool-flash.transition-out{opacity:.18;filter:hue-rotate(150deg) saturate(1.8) brightness(1.55)}
.voxo-vb-phone.is-scene-transition.transition-warm-flash.transition-in,
.voxo-vb-phone.is-scene-transition.transition-cool-flash.transition-in{opacity:1;filter:none}


/* ============================================================
   V0.9.1 — PRÉVIA VISUAL COMPLETA E IMPACTOS REAIS
   ============================================================ */
.voxo-vb-preview-visual{
    position:absolute;
    inset:0;
    z-index:1;
    overflow:hidden;
    pointer-events:none;
    transform-origin:center;
    isolation:isolate;
}
.voxo-vb-preview-visual[hidden]{display:none!important}
.voxo-vb-preview-visual .voxo-vb-preview-image{z-index:1}
.voxo-vb-preview-fx-overlay{
    position:absolute;
    inset:0;
    z-index:2;
    opacity:0;
    pointer-events:none;
    mix-blend-mode:normal;
}

/* A aparência fica na imagem; o espelho fica no contêiner para não cancelar o movimento. */
.voxo-vb-preview-image.filter-mirror{transform:none}
.voxo-vb-preview-visual.visual-filter-mirror{scale:-1 1}

/* Prévia visível para todo o catálogo de aparências. */
.voxo-vb-preview-image.filter-sharp{filter:contrast(1.08) saturate(1.03) brightness(1.01)}
.voxo-vb-preview-image.filter-vignette{filter:contrast(1.08) brightness(.94)}
.voxo-vb-preview-image.filter-grain{filter:contrast(1.08) saturate(.88)}
.voxo-vb-preview-image.filter-scanlines{filter:contrast(1.14) saturate(.84) brightness(.96)}
.voxo-vb-preview-image.filter-pixel{filter:contrast(1.16) saturate(.86)}
.voxo-vb-preview-image.filter-teal-orange{filter:contrast(1.14) saturate(1.18) sepia(.18) hue-rotate(-11deg)}
.voxo-vb-preview-image.filter-cyan{filter:contrast(1.14) saturate(1.18) sepia(.12) hue-rotate(145deg)}
.voxo-vb-preview-image.filter-red{filter:contrast(1.16) saturate(1.46) sepia(.28) hue-rotate(-29deg)}
.voxo-vb-preview-image.filter-green{filter:contrast(1.14) saturate(1.35) sepia(.16) hue-rotate(52deg)}
.voxo-vb-preview-image.filter-purple{filter:contrast(1.15) saturate(1.42) sepia(.18) hue-rotate(33deg)}
.voxo-vb-preview-image.filter-neon{filter:contrast(1.38) brightness(1.03) saturate(1.65)}
.voxo-vb-preview-image.filter-chromatic{filter:contrast(1.16) saturate(1.34) drop-shadow(4px 0 0 rgba(255,0,70,.48)) drop-shadow(-4px 0 0 rgba(0,220,255,.48))}
.voxo-vb-preview-image.filter-comic{filter:contrast(1.55) saturate(1.48) brightness(1.02)}
.voxo-vb-preview-image.filter-emboss{filter:grayscale(.72) contrast(1.75) brightness(1.12) drop-shadow(2px 2px 0 rgba(0,0,0,.52))}
.voxo-vb-preview-image.filter-old-film{filter:sepia(.72) contrast(1.02) brightness(.96) saturate(.62)}

.voxo-vb-preview-fx-overlay.overlay-vignette{
    opacity:1;
    background:radial-gradient(circle at center, transparent 42%, rgba(0,0,0,.22) 69%, rgba(0,0,0,.78) 100%);
}
.voxo-vb-preview-fx-overlay.overlay-grain,
.voxo-vb-preview-fx-overlay.overlay-old-film{
    opacity:.34;
    background-image:
        radial-gradient(circle at 18% 23%, rgba(255,255,255,.65) 0 1px, transparent 1.5px),
        radial-gradient(circle at 73% 63%, rgba(0,0,0,.75) 0 1px, transparent 1.5px),
        radial-gradient(circle at 42% 84%, rgba(255,255,255,.5) 0 1px, transparent 1.4px);
    background-size:7px 9px,9px 8px,11px 10px;
    animation:voxoPreviewGrain .22s steps(2,end) infinite;
    mix-blend-mode:overlay;
}
.voxo-vb-preview-fx-overlay.overlay-scanlines{
    opacity:.7;
    background:repeating-linear-gradient(to bottom, transparent 0 3px, rgba(0,0,0,.32) 3px 4px);
    mix-blend-mode:multiply;
}
.voxo-vb-preview-fx-overlay.overlay-pixel{
    opacity:.34;
    background-image:
        linear-gradient(to right, rgba(0,0,0,.38) 1px, transparent 1px),
        linear-gradient(to bottom, rgba(0,0,0,.38) 1px, transparent 1px);
    background-size:9px 9px;
    image-rendering:pixelated;
}
.voxo-vb-preview-fx-overlay.overlay-chromatic{
    opacity:.32;
    background:linear-gradient(90deg, rgba(255,0,60,.24), transparent 20% 80%, rgba(0,220,255,.24));
    mix-blend-mode:screen;
}
.voxo-vb-preview-fx-overlay.overlay-comic{
    opacity:.38;
    background:repeating-radial-gradient(circle at 0 0, rgba(0,0,0,.62) 0 1px, transparent 1px 5px);
    mix-blend-mode:multiply;
}
.voxo-vb-preview-fx-overlay.overlay-emboss{
    opacity:.26;
    background:linear-gradient(135deg, rgba(255,255,255,.72), transparent 46%, rgba(0,0,0,.72));
    mix-blend-mode:overlay;
}
.voxo-vb-preview-fx-overlay.overlay-neon{
    opacity:.34;
    box-shadow:inset 0 0 28px rgba(0,238,255,.48), inset 0 0 55px rgba(255,0,220,.22);
    mix-blend-mode:screen;
}
.voxo-vb-preview-fx-overlay.overlay-old-film::before{
    content:"";
    position:absolute;
    inset:0;
    background:linear-gradient(90deg, transparent 0 13%, rgba(255,255,255,.18) 14%, transparent 15% 73%, rgba(0,0,0,.24) 74%, transparent 75%);
    animation:voxoPreviewOldFilm 1.7s steps(2,end) infinite;
}
@keyframes voxoPreviewGrain{0%{transform:translate(0,0)}25%{transform:translate(-2%,1%)}50%{transform:translate(1%,-2%)}75%{transform:translate(2%,2%)}100%{transform:translate(-1%,-1%)}}
@keyframes voxoPreviewOldFilm{0%,100%{transform:translateX(-18%);opacity:.5}50%{transform:translateX(18%);opacity:.9}}

/* O impacto é aplicado no contêiner e não substitui a animação de movimento da imagem. */
.voxo-vb-preview-image[class*="impact-"]{animation-name:unset!important}
.voxo-vb-preview-visual.impact-active.impact-flash-white{animation:voxoPreviewImpactFlashWhite .55s ease-out both}
.voxo-vb-preview-visual.impact-active.impact-flash-black{animation:voxoPreviewImpactFlashBlack .55s ease-out both}
.voxo-vb-preview-visual.impact-active.impact-pulse{animation:voxoPreviewImpactPulse .62s ease-out both}
.voxo-vb-preview-visual.impact-active.impact-shake{animation:voxoPreviewImpactShake .58s linear both}
.voxo-vb-preview-visual.impact-active.impact-zoom-punch{animation:voxoPreviewImpactPunch .62s ease-out both}
.voxo-vb-preview-visual.impact-active.impact-glitch{animation:voxoPreviewImpactGlitch .62s steps(2,end) both}
.voxo-vb-preview-visual.impact-active.impact-strobe{animation:voxoPreviewImpactStrobe .64s steps(2,end) both}
.voxo-vb-preview-visual.impact-active.impact-flash-red{animation:voxoPreviewImpactRed .55s ease-out both}
.voxo-vb-preview-visual.impact-active.impact-flash-blue{animation:voxoPreviewImpactBlue .55s ease-out both}
.voxo-vb-preview-visual.impact-active.impact-negative-pulse{animation:voxoPreviewImpactNegative .56s linear both}
.voxo-vb-preview-visual.impact-active.impact-gray-pulse{animation:voxoPreviewImpactGray .62s linear both}
.voxo-vb-preview-visual.impact-active.impact-rgb-burst{animation:voxoPreviewImpactRgb .64s steps(2,end) both}
.voxo-vb-preview-visual.impact-active.impact-blur-punch{animation:voxoPreviewImpactBlur .62s linear both}
.voxo-vb-preview-visual.impact-active.impact-pixel-burst{animation:voxoPreviewImpactPixel .64s steps(2,end) both}
.voxo-vb-preview-visual.impact-active.impact-shake-horizontal{animation:voxoPreviewImpactShakeH .58s linear both}
.voxo-vb-preview-visual.impact-active.impact-shake-vertical{animation:voxoPreviewImpactShakeV .58s linear both}
.voxo-vb-preview-visual.impact-active.impact-flicker{animation:voxoPreviewImpactFlicker .68s steps(2,end) both}
@keyframes voxoPreviewImpactFlashWhite{0%,100%{filter:none}18%{filter:brightness(3.3)}42%{filter:brightness(1.18)}}
@keyframes voxoPreviewImpactFlashBlack{0%,100%{filter:none}18%{filter:brightness(.08)}42%{filter:brightness(.72)}}
@keyframes voxoPreviewImpactPulse{0%,100%{filter:none;transform:scale(1)}35%{filter:brightness(1.5) saturate(1.25);transform:scale(1.025)}}
@keyframes voxoPreviewImpactShake{0%,100%{transform:translate(0)}15%{transform:translate(-9px,6px)}30%{transform:translate(10px,-6px)}45%{transform:translate(-7px,-4px)}60%{transform:translate(6px,4px)}75%{transform:translate(-3px,2px)}}
@keyframes voxoPreviewImpactPunch{0%,100%{transform:scale(1)}30%{transform:scale(1.115)}58%{transform:scale(.992)}}
@keyframes voxoPreviewImpactGlitch{0%,100%{filter:none;transform:translate(0)}18%{filter:hue-rotate(85deg) contrast(1.75);transform:translate(-8px,0)}38%{filter:hue-rotate(-75deg) contrast(1.55);transform:translate(8px,0)}60%{filter:saturate(1.6);transform:translate(-3px,2px)}}
@keyframes voxoPreviewImpactStrobe{0%,100%{filter:none}15%{filter:brightness(3)}28%{filter:brightness(.08)}42%{filter:brightness(2.5)}56%{filter:brightness(.2)}72%{filter:brightness(1.8)}}
@keyframes voxoPreviewImpactRed{0%,100%{filter:none}22%{filter:sepia(1) saturate(5) hue-rotate(-35deg) brightness(1.55)}}
@keyframes voxoPreviewImpactBlue{0%,100%{filter:none}22%{filter:sepia(.8) saturate(4.5) hue-rotate(155deg) brightness(1.5)}}
@keyframes voxoPreviewImpactNegative{0%,100%{filter:none}22%,46%{filter:invert(1) contrast(1.3)}}
@keyframes voxoPreviewImpactGray{0%,100%{filter:none}25%,55%{filter:grayscale(1) contrast(1.35)}}
@keyframes voxoPreviewImpactRgb{0%,100%{filter:none;transform:translate(0)}20%{filter:hue-rotate(100deg) contrast(1.8);transform:translate(-9px,0)}42%{filter:hue-rotate(-95deg) contrast(1.7);transform:translate(9px,0)}}
@keyframes voxoPreviewImpactBlur{0%,100%{filter:none;transform:scale(1)}32%{filter:blur(6px) brightness(1.28);transform:scale(1.055)}}
@keyframes voxoPreviewImpactPixel{0%,100%{filter:none}22%,48%{filter:contrast(2) saturate(.3) blur(1px)}}
@keyframes voxoPreviewImpactShakeH{0%,100%{transform:translateX(0)}18%{transform:translateX(-12px)}34%{transform:translateX(12px)}50%{transform:translateX(-8px)}66%{transform:translateX(7px)}}
@keyframes voxoPreviewImpactShakeV{0%,100%{transform:translateY(0)}18%{transform:translateY(-11px)}34%{transform:translateY(11px)}50%{transform:translateY(-7px)}66%{transform:translateY(6px)}}
@keyframes voxoPreviewImpactFlicker{0%,100%{filter:none}14%{filter:brightness(2.5)}27%{filter:brightness(.35)}42%{filter:brightness(1.9)}58%{filter:brightness(.58)}75%{filter:brightness(1.35)}}


/* =========================================================
   V0.9.3 — SISTEMA VISUAL OTIMIZADO
   ========================================================= */
/* A demonstração curta usa a mesma animação da reprodução, sem depender do áudio. */
.voxo-vb-preview-image.is-playing { will-change: transform, filter; }
.voxo-vb-preview-visual.impact-active { will-change: transform, filter; }

/* Aparências de prévia reforçadas para opções que antes eram visualmente sutis. */
.voxo-vb-preview-image.filter-cinematic{filter:contrast(1.16) brightness(.965) saturate(.9)}
.voxo-vb-preview-image.filter-vivid{filter:contrast(1.12) brightness(1.02) saturate(1.34)}
.voxo-vb-preview-image.filter-soft{filter:contrast(.9) brightness(1.045) saturate(.86) blur(.45px)}
.voxo-vb-preview-image.filter-warm{filter:sepia(.2) saturate(1.18) hue-rotate(-10deg) brightness(1.02)}
.voxo-vb-preview-image.filter-cool{filter:saturate(.9) hue-rotate(14deg) brightness(.96) contrast(1.08)}
.voxo-vb-preview-image.filter-sepia{filter:sepia(.92) contrast(1.06) saturate(.82)}
.voxo-vb-preview-image.filter-vintage{filter:sepia(.32) contrast(.9) saturate(.72) brightness(1.035)}
.voxo-vb-preview-image.filter-faded{filter:contrast(.78) brightness(1.08) saturate(.64)}
.voxo-vb-preview-image.filter-suspense{filter:contrast(1.24) brightness(.9) saturate(.64) hue-rotate(8deg)}
.voxo-vb-preview-image.filter-horror{filter:contrast(1.32) brightness(.87) saturate(.46) sepia(.16)}
.voxo-vb-preview-image.filter-night{filter:contrast(1.18) brightness(.84) saturate(.62) hue-rotate(18deg)}
.voxo-vb-preview-image.filter-high-contrast{filter:contrast(1.42) brightness(.94) saturate(1.12)}
.voxo-vb-preview-image.filter-matte{filter:contrast(.78) brightness(1.08) saturate(.76)}
.voxo-vb-preview-image.filter-noir{filter:grayscale(1) contrast(1.42) brightness(.9)}
.voxo-vb-preview-image.filter-dream{filter:contrast(.86) brightness(1.08) saturate(.82) blur(1px)}
.voxo-vb-preview-image.filter-blur{filter:blur(2px) brightness(.98)}

/* Cada família de transição possui uma prévia própria e não herda fade preto genérico. */
.voxo-vb-phone.is-scene-transition.transition-zoom.transition-out{opacity:.35;transform:scale(1.12);filter:blur(1px)}
.voxo-vb-phone.is-scene-transition.transition-zoom.transition-in{opacity:1;transform:scale(1);filter:none}
.voxo-vb-phone.is-scene-transition.transition-pixel.transition-out{opacity:.35;filter:contrast(1.8) saturate(.3) blur(2px);transform:scale(.985)}
.voxo-vb-phone.is-scene-transition.transition-pixel.transition-in{opacity:1;filter:none;transform:none}

.voxo-vb-phone.is-scene-transition.transition-fade.transition-out{opacity:.12}
.voxo-vb-phone.is-scene-transition.transition-fade.transition-in{opacity:1}

/* ============================================================
   V0.10.0 — IMAGEM OU VÍDEO POR CENA
   Mantém os vídeos sem filtros ou movimentos artificiais e usa
   somente transições leves entre mídias.
   ============================================================ */
.voxo-vb-media-picker {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px;
    margin-bottom: 10px;
}

.voxo-vb-media-picker-btn {
    position: relative;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 39px;
    padding: 0 10px;
    border: 1px solid #c9cfda;
    border-radius: 10px;
    background: #fff;
    color: #3c465c;
    font-size: 12px;
    font-weight: 850;
    text-align: center;
    cursor: pointer;
    transition: border-color .18s ease, background .18s ease, color .18s ease;
}

.voxo-vb-media-picker-btn:hover {
    border-color: var(--voxo-vb-accent);
    background: #eefaff;
    color: #075de8;
}

.voxo-vb-media-picker-btn input {
    position: absolute;
    width: 1px;
    height: 1px;
    opacity: 0;
    pointer-events: none;
}

.voxo-vb-media-dropzone img,
.voxo-vb-media-dropzone video {
    width: 100%;
    height: 100%;
    object-fit: cover;
    background: #0e1119;
}

.voxo-vb-video-effect-note {
    margin: 10px 0 0;
    padding: 10px 11px;
    border: 1px solid #c9d9ff;
    border-radius: 10px;
    background: #f3f7ff;
    color: #40506f;
    font-size: 11px;
    font-weight: 700;
    line-height: 1.45;
}

.voxo-vb-scene.is-video-scene {
    border-color: #a9c6ff;
    box-shadow: 0 9px 28px rgba(54, 102, 196, .09);
}

.voxo-vb-scene.is-video-scene .voxo-vb-image-only-control {
    opacity: .52;
}

.voxo-vb-scene.is-video-scene .voxo-vb-image-only-control select {
    cursor: not-allowed;
}

.voxo-vb-preview-video {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    background: #0e1119;
    transform: translateZ(0);
    backface-visibility: hidden;
}

@media (max-width: 620px) {
    .voxo-vb-media-picker {
        grid-template-columns: 1fr;
    }
}

/* ============================================================
   V0.10.1 — BASE DE ÁUDIO ORIGINAL EM VÍDEOS
   Detecta a faixa de áudio do clipe e permite escolher entre
   manter o som original ou usar a narração do VoxoLayer.
   ============================================================ */
.voxo-vb-video-audio-choice {
    margin-bottom: 14px;
    padding: 14px;
    border: 1px solid #b8cdf9;
    border-radius: 13px;
    background: linear-gradient(145deg, #f5f8ff, #eef4ff);
}

.voxo-vb-video-audio-choice .voxo-vb-subtitle-row {
    margin-bottom: 10px;
}

.voxo-vb-video-audio-choice [data-video-audio-detection] {
    color: #3563b8;
    font-size: 11px;
    font-weight: 850;
}

.voxo-vb-video-audio-message {
    margin: 9px 0 0;
    color: #53617a;
    font-size: 11px;
    font-weight: 650;
    line-height: 1.5;
}

.voxo-vb-video-original-audio {
    display: grid;
    gap: 5px;
    margin-bottom: 14px;
    padding: 13px 14px;
    border: 1px solid #8fd7b2;
    border-radius: 12px;
    background: #effbf5;
    color: #24573d;
}

.voxo-vb-video-original-audio strong {
    font-size: 13px;
    font-weight: 900;
}

.voxo-vb-video-original-audio span {
    font-size: 11px;
    font-weight: 650;
    line-height: 1.5;
}


/* ============================================================
   V0.11.0 — MIXAGEM E LEGENDAS PREPARADAS ANTES DA CRIAÇÃO
   ============================================================ */
.voxo-vb-audio-mixer,
.voxo-vb-caption-preparation {
    margin-bottom: 14px;
    padding: 14px;
    border: 1px solid #d7e3f5;
    border-radius: 13px;
    background: #fbfdff;
}

.voxo-vb-audio-mixer {
    border-color: #c9d8fb;
    background: linear-gradient(145deg, #f7f9ff, #f1f5ff);
}

.voxo-vb-audio-mixer small,
.voxo-vb-caption-preparation p,
.voxo-vb-caption-pending-actions small {
    color: #5e6c84;
    font-size: 11px;
    font-weight: 650;
    line-height: 1.5;
}

.voxo-vb-volume-row,
.voxo-vb-caption-rate-row,
.voxo-vb-caption-adjust-row {
    display: grid;
    grid-template-columns: minmax(130px, 1fr) minmax(160px, 2fr) 54px;
    align-items: center;
    gap: 10px;
    margin-top: 11px;
}

.voxo-vb-volume-row span,
.voxo-vb-caption-rate-row span,
.voxo-vb-caption-adjust-row > span {
    color: #263650;
    font-size: 12px;
    font-weight: 800;
}

.voxo-vb-volume-row input,
.voxo-vb-caption-rate-row input {
    width: 100%;
}

.voxo-vb-volume-row output,
.voxo-vb-caption-rate-row output,
.voxo-vb-caption-adjust-row output {
    color: #274d8a;
    font-size: 12px;
    font-weight: 900;
    text-align: right;
}

.voxo-vb-caption-preparation [data-caption-status] {
    color: #6a5acd;
    font-size: 11px;
    font-weight: 900;
}

.voxo-vb-caption-preparation.is-ready {
    border-color: #9dd9b9;
    background: #f2fbf6;
}

.voxo-vb-caption-preparation.is-ready [data-caption-status] {
    color: #078247;
}

.voxo-vb-caption-preparation.is-stale,
.voxo-vb-caption-preparation.is-error {
    border-color: #f2c98f;
    background: #fffaf1;
}

.voxo-vb-caption-preparation.is-preparing {
    border-color: #aebff5;
    background: #f5f7ff;
}

.voxo-vb-caption-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 9px;
    margin-top: 11px;
}

.voxo-vb-caption-adjust {
    margin-top: 12px;
    padding-top: 12px;
    border-top: 1px solid #dce5f2;
}

.voxo-vb-caption-adjust-row {
    grid-template-columns: minmax(120px, 1fr) 62px 70px 62px;
}

.voxo-vb-mini-btn {
    min-height: 34px;
    padding: 6px 9px;
    border: 1px solid #c9d5e8;
    border-radius: 9px;
    background: #fff;
    color: #1d3f70;
    font-size: 12px;
    font-weight: 900;
    cursor: pointer;
}

.voxo-vb-mini-btn:hover {
    border-color: #7ea3df;
    background: #f3f7ff;
}

.voxo-vb-caption-pending-actions {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    flex-wrap: wrap;
    gap: 10px;
    margin: 12px 0 4px;
}

.voxo-vb-preview-video {
    transform-origin: center center;
    transition: transform 80ms linear;
    will-change: transform;
}

@media (max-width: 620px) {
    .voxo-vb-volume-row,
    .voxo-vb-caption-rate-row {
        grid-template-columns: 1fr 54px;
    }
    .voxo-vb-volume-row span,
    .voxo-vb-caption-rate-row span {
        grid-column: 1 / -1;
    }
    .voxo-vb-caption-adjust-row {
        grid-template-columns: 1fr 58px 66px 58px;
    }
    .voxo-vb-caption-actions .voxo-vb-btn,
    .voxo-vb-caption-pending-actions .voxo-vb-btn {
        width: 100%;
    }
    .voxo-vb-caption-pending-actions {
        justify-content: stretch;
    }
}

.voxo-vb-audio-mixer[hidden],
.voxo-vb-video-original-audio[hidden],
.voxo-vb-caption-adjust[hidden],
.voxo-vb-caption-pending-actions[hidden] {
    display: none !important;
}


/* ============================================================
   V0.12.0 — FORMATOS 9:16/16:9, VÍDEOS LONGOS E LEGENDADOR
   ============================================================ */
.voxo-vb-mode-picker {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 16px;
    margin: 0 0 22px;
}

.voxo-vb-mode-card {
    display: grid;
    gap: 8px;
    padding: 20px;
    border: 1px solid #dbe3f2;
    border-radius: 18px;
    background: #fff;
    box-shadow: 0 10px 30px rgba(28, 39, 65, .05);
}

.voxo-vb-mode-card.is-active {
    border-color: #16bdd9;
    background: linear-gradient(145deg, #ffffff, #eefaff);
    box-shadow: 0 12px 32px rgba(7, 93, 232, .11);
}

.voxo-vb-mode-card > span {
    color: #075de8;
    font-size: 11px;
    font-weight: 900;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.voxo-vb-mode-card > strong { color: #17233b; font-size: 18px; }
.voxo-vb-mode-card > small { min-height: 40px; color: #66738a; line-height: 1.5; }
.voxo-vb-mode-card .voxo-vb-btn { justify-self: start; margin-top: 4px; }

.voxo-vb-ending-media {
    display: grid;
    gap: 12px;
    margin: 16px 0;
    padding: 15px;
    border: 1px solid #d9e3f2;
    border-radius: 14px;
    background: #f8fbff;
}

.voxo-vb-ending-media > div:first-child { display: grid; gap: 4px; }
.voxo-vb-ending-media strong { color: #223451; font-size: 13px; }
.voxo-vb-ending-media small,
.voxo-vb-ending-media > span { color: #66748b; font-size: 11px; line-height: 1.55; }
.voxo-vb-ending-media-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; }
.voxo-vb-ending-media img {
    width: min(100%, 340px);
    max-height: 220px;
    object-fit: cover;
    border-radius: 12px;
    border: 1px solid #d7dfec;
}

.voxo-vb-phone.is-landscape,
.is-landscape-project .voxo-vb-phone {
    width: min(100%, 560px);
    aspect-ratio: 16 / 9;
    border-width: 7px;
    border-radius: 22px;
}

.is-landscape-project .voxo-vb-preview-panel {
    position: sticky;
    width: min(100%, 620px);
}

.is-landscape-project .voxo-vb-layout {
    grid-template-columns: minmax(0, 1fr) minmax(470px, 620px);
}

.is-landscape-project .voxo-vb-preview-empty span { font-size: 24px; }

.voxo-vb-caption-studio[hidden] { display: none !important; }
.voxo-vb-caption-studio { display: grid; gap: 18px; }

.is-caption-studio-mode .voxo-vb-layout,
.is-caption-studio-mode .voxo-vb-project-memory { display: none !important; }

.voxo-vb-caption-studio-head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 18px;
    padding: 24px;
    border: 1px solid #c4e3f2;
    border-radius: 22px;
    background: linear-gradient(135deg, #092744, #0d4c72);
    color: #fff;
    box-shadow: 0 16px 44px rgba(20, 31, 62, .16);
}

.voxo-vb-caption-studio-head > div { max-width: 800px; }
.voxo-vb-caption-studio-head h2 { margin: 5px 0 8px; color: #fff; font-size: clamp(23px, 3vw, 34px); line-height: 1.15; }
.voxo-vb-caption-studio-head p { margin: 0; color: rgba(255,255,255,.76); line-height: 1.55; }
.voxo-vb-caption-studio-head .voxo-vb-kicker { color: #9fc6ff; }
.voxo-vb-caption-studio-head .voxo-vb-btn-ghost { background: rgba(255,255,255,.12); color: #fff; border-color: rgba(255,255,255,.24); }

.voxo-vb-full-caption-quota {
    padding: 13px 16px;
    border: 1px solid #d2dff3;
    border-radius: 13px;
    background: #f5f9ff;
    color: #2e4e7e;
    font-size: 12px;
    font-weight: 800;
}
.voxo-vb-full-caption-quota.is-premium { border-color: #b7e1c8; background: #f0fbf5; color: #087543; }
.voxo-vb-full-caption-quota.is-blocked { border-color: #f0c7a4; background: #fff8f1; color: #9a4d12; }

.voxo-vb-caption-studio-layout {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(320px, 470px);
    gap: 24px;
    align-items: start;
}
.voxo-vb-caption-studio-main { display: grid; gap: 20px; min-width: 0; }
.voxo-vb-caption-studio-preview {
    position: sticky;
    top: 126px;
    display: grid;
    gap: 14px;
    padding: 20px;
    border: 1px solid var(--voxo-vb-border);
    border-radius: 22px;
    background: #fff;
    box-shadow: 0 14px 40px rgba(28, 39, 65, .07);
}
body.admin-bar .voxo-vb-caption-studio-preview { top: 158px; }
.voxo-vb-caption-studio-preview > small { color: #68758a; font-size: 11px; line-height: 1.5; }

.voxo-vb-full-caption-upload {
    display: grid;
    grid-template-columns: max-content minmax(0, 1fr);
    align-items: center;
    gap: 14px;
    margin-bottom: 16px;
    padding: 16px;
    border: 1px dashed #afc1dd;
    border-radius: 15px;
    background: #f8fbff;
}
.voxo-vb-full-caption-upload p { margin: 0; color: #53647e; font-size: 12px; overflow-wrap: anywhere; }
.voxo-vb-full-caption-upload-button input { position: absolute; opacity: 0; pointer-events: none; }
.voxo-vb-full-caption-settings-grid { margin-bottom: 16px; }
.voxo-vb-full-caption-text-field textarea { min-height: 210px; }

.voxo-vb-full-caption-generate-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    margin-top: 16px;
    padding: 15px;
    border: 1px solid #d9e3f2;
    border-radius: 14px;
    background: #fbfdff;
}
.voxo-vb-full-caption-generate-row > div { display: grid; gap: 4px; }
.voxo-vb-full-caption-generate-row strong { color: #223450; font-size: 13px; }
.voxo-vb-full-caption-generate-row small,
.voxo-vb-full-caption-style-note { color: #637088; font-size: 11px; line-height: 1.55; }
.voxo-vb-full-caption-adjust { display: grid; gap: 12px; margin-top: 14px; }

.voxo-vb-full-caption-stage {
    position: relative;
    width: min(100%, 320px);
    aspect-ratio: 9 / 16;
    justify-self: center;
    overflow: hidden;
    border: 8px solid #171b27;
    border-radius: 26px;
    background: #070a12;
    box-shadow: 0 18px 42px rgba(17,20,31,.24);
}
.voxo-vb-full-caption-stage.is-landscape {
    width: min(100%, 560px);
    aspect-ratio: 16 / 9;
    border-width: 7px;
    border-radius: 20px;
}
.voxo-vb-full-caption-stage video { width: 100%; height: 100%; object-fit: cover; background: #000; }
.voxo-vb-full-caption-stage .voxo-vb-caption-safe-area { pointer-events: none; }

.voxo-vb-caption-studio .voxo-vb-render-output video { max-height: 620px; object-fit: contain; background: #060912; }

@media (max-width: 1280px) {
    .is-landscape-project .voxo-vb-layout { grid-template-columns: minmax(0, 1fr); }
    .is-landscape-project .voxo-vb-preview-panel { position: static; width: 100%; max-width: none; }
    .voxo-vb-caption-studio-layout { grid-template-columns: minmax(0, 1fr); }
    .voxo-vb-caption-studio-preview { position: static; }
}

@media (max-width: 760px) {
    .voxo-vb-mode-picker { grid-template-columns: 1fr; }
    .voxo-vb-caption-studio-head { flex-direction: column; }
    .voxo-vb-caption-studio-head .voxo-vb-btn { width: 100%; }
    .voxo-vb-full-caption-upload { grid-template-columns: 1fr; }
    .voxo-vb-full-caption-generate-row { align-items: stretch; flex-direction: column; }
    .voxo-vb-full-caption-generate-row .voxo-vb-btn { width: 100%; }
    .voxo-vb-phone.is-landscape,
    .is-landscape-project .voxo-vb-phone,
    .voxo-vb-full-caption-stage.is-landscape { width: 100%; }
}



@media (max-width: 560px) {
    .voxo-vb-hero-formats {
        gap: 12px;
        padding: 14px;
    }

    .voxo-vb-format-card-vertical {
        width: 58px;
    }

    .voxo-vb-format-card-landscape {
        width: 116px;
    }

    .voxo-vb-format-card span {
        font-size: 16px;
    }
}

/* ============================================================
   V0.12.1 — CORREÇÃO DA PRÉVIA DO LEGENDADOR DE VÍDEO PRONTO
   O JavaScript usa as classes is-upper/is-middle/is-lower neste
   player isolado. As regras abaixo posicionam a camada de legenda
   sobre o vídeo sem alterar a renderização final ou o montador.
   ============================================================ */
.voxo-vb-full-caption-stage > video {
    position: relative;
    z-index: 1;
    display: block;
}
.voxo-vb-full-caption-stage > .voxo-vb-caption-safe-area {
    z-index: 6;
}
.voxo-vb-full-caption-stage > .voxo-vb-caption-safe-area.is-lower {
    top: auto;
    bottom: 20%;
    transform: none;
}
.voxo-vb-full-caption-stage > .voxo-vb-caption-safe-area.is-middle {
    top: 50%;
    bottom: auto;
    transform: translateY(-50%);
}
.voxo-vb-full-caption-stage > .voxo-vb-caption-safe-area.is-upper {
    top: 17%;
    bottom: auto;
    transform: none;
}

/* ============================================================
   V0.14.1 — CORREÇÃO DA COR NA PRÉVIA
   O tipo define o desenho; a cor é aplicada por variáveis CSS.
   As mesmas combinações são usadas no montador por cenas e no
   legendador de vídeo pronto, sem refazer a voz-guia.
   ============================================================ */
.voxo-vb-caption-safe-area {
    --voxo-caption-primary: #ffd52f;
    --voxo-caption-primary-soft: #fff09a;
    --voxo-caption-primary-dark: #c79600;
    --voxo-caption-on-primary: #111;
    --voxo-caption-primary-a18: rgba(255,213,47,.18);
    --voxo-caption-primary-a38: rgba(255,213,47,.38);
    --voxo-caption-primary-a72: rgba(255,213,47,.72);
    --voxo-caption-gradient: linear-gradient(90deg,#fff09a,#ffd52f,#c79600);
}

/* Dinâmicas essenciais */
.voxo-vb-caption-line.style-dynamic .voxo-vb-caption-word.is-active {
    color: var(--voxo-caption-primary);
    transform: scale(1.13);
}
.voxo-vb-caption-line.style-pop .voxo-vb-caption-word.is-active {
    color: var(--voxo-caption-primary);
    transform: scale(1.28) rotate(-1deg);
    text-shadow: 0 0 12px var(--voxo-caption-primary-a72), 0 2px 2px #000;
}
.voxo-vb-caption-line.style-karaoke .voxo-vb-caption-word.is-active,
.voxo-vb-caption-line.style-marker .voxo-vb-caption-word.is-active {
    color: var(--voxo-caption-on-primary);
    background: var(--voxo-caption-primary);
    text-shadow: none;
}
.voxo-vb-caption-line.style-karaoke .voxo-vb-caption-word.is-active {
    padding: .05em .23em;
    border-radius: .28em;
    transform: scale(1.10);
}
.voxo-vb-caption-line.style-marker .voxo-vb-caption-word.is-active {
    padding: .01em .16em;
    border-radius: .10em;
    transform: scale(1.08) rotate(-1deg);
}
.voxo-vb-caption-line.style-underline .voxo-vb-caption-word.is-active {
    color: var(--voxo-caption-primary);
    text-decoration: underline;
    text-decoration-color: var(--voxo-caption-primary);
    text-decoration-thickness: .13em;
    text-underline-offset: .13em;
    transform: scale(1.08);
}
.voxo-vb-caption-line.style-pill .voxo-vb-caption-word.is-active {
    padding: .04em .25em;
    border-radius: 999px;
    background: var(--voxo-caption-primary);
    color: var(--voxo-caption-on-primary);
    text-shadow: none;
    transform: scale(1.09);
}
.voxo-vb-caption-line.style-impact {
    font-weight: 1000;
    letter-spacing: -.035em;
}
.voxo-vb-caption-line.style-impact .voxo-vb-caption-word.is-active {
    color: var(--voxo-caption-primary);
    transform: scale(1.20);
    text-shadow: 0 3px 0 #000, 3px 0 0 #000, -3px 0 0 #000, 0 -3px 0 #000;
}
.voxo-vb-caption-line.style-comic .voxo-vb-caption-word {
    color: var(--voxo-caption-primary-soft);
}
.voxo-vb-caption-line.style-comic .voxo-vb-caption-word.is-active {
    padding: .02em .17em;
    border: .08em solid #000;
    border-radius: .14em;
    background: var(--voxo-caption-primary);
    color: var(--voxo-caption-on-primary);
    text-shadow: none;
    transform: rotate(-2deg) scale(1.12);
}

/* Caixas e marcações */
.voxo-vb-caption-line.style-word-box .voxo-vb-caption-word {
    padding: .05em .18em;
    border-radius: .22em;
    background: rgba(0,0,0,.38);
}
.voxo-vb-caption-line.style-word-box .voxo-vb-caption-word.is-active,
.voxo-vb-caption-line.style-active-box .voxo-vb-caption-word.is-active {
    background: var(--voxo-caption-primary);
    color: var(--voxo-caption-on-primary);
    text-shadow: none;
    transform: scale(1.10);
}
.voxo-vb-caption-line.style-active-box .voxo-vb-caption-word.is-active {
    padding: .04em .20em;
    border-radius: .20em;
}
.voxo-vb-caption-line.style-highlight .voxo-vb-caption-word.is-active {
    padding: 0 .15em;
    border-radius: .08em;
    background: var(--voxo-caption-primary-a72);
    color: var(--voxo-caption-on-primary);
    text-shadow: none;
    transform: scale(1.06);
}
.voxo-vb-caption-line.style-sticker .voxo-vb-caption-word.is-active {
    padding: .05em .22em;
    border: .08em solid #fff;
    border-radius: .24em;
    background: var(--voxo-caption-primary);
    color: var(--voxo-caption-on-primary);
    text-shadow: 0 2px 0 rgba(0,0,0,.35);
    box-shadow: 0 .12em 0 #111, 0 .18em .3em rgba(0,0,0,.4);
    transform: scale(1.12) rotate(-1deg);
}

/* Neon, brilho e energia */
.voxo-vb-caption-line.style-neon .voxo-vb-caption-word.is-active {
    color: #fff;
    text-shadow: 0 0 6px var(--voxo-caption-primary-soft), 0 0 14px var(--voxo-caption-primary), 0 0 26px var(--voxo-caption-primary-dark);
    transform: scale(1.15);
}
.voxo-vb-caption-line.style-glow .voxo-vb-caption-word.is-active {
    color: var(--voxo-caption-primary-soft);
    text-shadow: 0 0 8px var(--voxo-caption-primary), 0 0 19px var(--voxo-caption-primary), 0 0 32px var(--voxo-caption-primary-dark), 0 2px 2px #000;
    transform: scale(1.12);
}
.voxo-vb-caption-line.style-spotlight .voxo-vb-caption-word { opacity: .42; }
.voxo-vb-caption-line.style-spotlight .voxo-vb-caption-word.is-active {
    opacity: 1;
    color: var(--voxo-caption-primary);
    text-shadow: 0 0 16px var(--voxo-caption-primary-a72), 0 2px 2px #000;
    transform: scale(1.15);
}
.voxo-vb-caption-line.style-pulse .voxo-vb-caption-word.is-active {
    color: var(--voxo-caption-primary);
    text-shadow: 0 0 18px var(--voxo-caption-primary), 0 2px 2px #000;
    transform: scale(1.22);
}
.voxo-vb-caption-line.style-gradient .voxo-vb-caption-word.is-active {
    background: var(--voxo-caption-gradient);
    color: transparent;
    -webkit-background-clip: text;
    background-clip: text;
    -webkit-text-stroke: .02em #000;
    transform: scale(1.13);
}
.voxo-vb-caption-line.style-split-tone .voxo-vb-caption-word {
    color: var(--voxo-caption-primary-soft);
}
.voxo-vb-caption-line.style-split-tone .voxo-vb-caption-word.is-active {
    color: var(--voxo-caption-primary);
    transform: scale(1.12);
}

/* Clássicas com cor configurável */
.voxo-vb-caption-line.style-classic .voxo-vb-caption-word,
.voxo-vb-caption-line.style-outline .voxo-vb-caption-word,
.voxo-vb-caption-line.style-double-outline .voxo-vb-caption-word,
.voxo-vb-caption-line.style-shadow .voxo-vb-caption-word,
.voxo-vb-caption-line.style-minimal .voxo-vb-caption-word,
.voxo-vb-caption-line.style-three-d .voxo-vb-caption-word,
.voxo-vb-caption-line.style-serif .voxo-vb-caption-word,
.voxo-vb-caption-line.style-mono .voxo-vb-caption-word,
.voxo-vb-caption-line.style-rounded .voxo-vb-caption-word,
.voxo-vb-caption-line.style-condensed .voxo-vb-caption-word {
    color: var(--voxo-caption-primary);
    transform: none;
}
.voxo-vb-caption-line.style-classic {
    text-shadow: 0 2px 1px #000, 2px 0 1px #000, -2px 0 1px #000, 0 -2px 1px #000;
}
.voxo-vb-caption-line.style-outline {
    text-shadow: 0 4px 0 #000, 4px 0 0 #000, -4px 0 0 #000, 0 -4px 0 #000, 3px 3px 0 #000, -3px -3px 0 #000;
}
.voxo-vb-caption-line.style-double-outline {
    text-shadow: 0 5px 0 #000, 5px 0 0 #000, -5px 0 0 #000, 0 -5px 0 #000, 0 7px 0 var(--voxo-caption-primary-dark);
}
.voxo-vb-caption-line.style-shadow {
    text-shadow: 0 .14em .20em rgba(0,0,0,.96), 0 .04em .03em #000;
}
.voxo-vb-caption-line.style-box {
    padding: .18em .34em;
    border: .06em solid var(--voxo-caption-primary-dark);
    border-radius: .24em;
    background: var(--voxo-caption-primary);
    text-shadow: none;
}
.voxo-vb-caption-line.style-box .voxo-vb-caption-word,
.voxo-vb-caption-line.style-label .voxo-vb-caption-word {
    color: var(--voxo-caption-on-primary);
    transform: none;
}
.voxo-vb-caption-line.style-glass {
    padding: .18em .36em;
    border: .05em solid var(--voxo-caption-primary-a72);
    border-radius: .34em;
    background: rgba(8,13,24,.52);
    box-shadow: inset 0 1px 0 rgba(255,255,255,.16), 0 .16em .5em rgba(0,0,0,.36);
    backdrop-filter: blur(8px);
}
.voxo-vb-caption-line.style-glass .voxo-vb-caption-word {
    color: var(--voxo-caption-primary-soft);
    transform: none;
}
.voxo-vb-caption-line.style-subtitle-bar {
    position: relative;
    padding: .20em .42em .20em .56em;
    border-radius: .10em;
    background: rgba(0,0,0,.86);
    text-shadow: none;
}
.voxo-vb-caption-line.style-subtitle-bar::before {
    content: '';
    position: absolute;
    inset: 0 auto 0 0;
    width: .12em;
    border-radius: inherit;
    background: var(--voxo-caption-primary);
}
.voxo-vb-caption-line.style-subtitle-bar .voxo-vb-caption-word {
    color: var(--voxo-caption-primary);
    transform: none;
}
.voxo-vb-caption-line.style-minimal {
    font-weight: 800;
    letter-spacing: 0;
    text-transform: none;
    text-shadow: 0 2px 8px rgba(0,0,0,.82);
}
.voxo-vb-caption-line.style-cinematic {
    padding: .20em .42em;
    border: .04em solid var(--voxo-caption-primary-a38);
    border-radius: .18em;
    background: rgba(0,0,0,.58);
    font-family: Georgia, 'Times New Roman', serif;
    font-style: italic;
    font-weight: 800;
    letter-spacing: .02em;
    text-transform: none;
}
.voxo-vb-caption-line.style-cinematic .voxo-vb-caption-word {
    color: var(--voxo-caption-primary-soft);
    transform: none;
}
.voxo-vb-caption-line.style-label {
    padding: .18em .38em;
    border: .06em solid var(--voxo-caption-primary-dark);
    border-radius: .20em;
    background: var(--voxo-caption-primary);
    text-shadow: none;
}
.voxo-vb-caption-line.style-three-d {
    text-shadow: 1px 1px 0 var(--voxo-caption-primary-dark), 2px 2px 0 var(--voxo-caption-primary-dark), 3px 3px 0 var(--voxo-caption-primary-dark), 4px 4px 0 var(--voxo-caption-primary-dark), 0 7px 12px rgba(0,0,0,.55);
}

/* Tipográficas */
.voxo-vb-caption-line.style-serif {
    font-family: Georgia, 'Times New Roman', serif;
    font-weight: 800;
    text-transform: none;
}
.voxo-vb-caption-line.style-mono {
    font-family: 'Courier New', Courier, monospace;
    font-weight: 800;
    letter-spacing: -.04em;
}
.voxo-vb-caption-line.style-rounded {
    font-family: 'Arial Rounded MT Bold', Arial, Helvetica, sans-serif;
    letter-spacing: -.015em;
}
.voxo-vb-caption-line.style-condensed {
    font-family: 'Arial Narrow', 'Roboto Condensed', Arial, Helvetica, sans-serif;
    letter-spacing: -.055em;
}

/* A grade recebe o novo campo Cor sem apertar os controles. */
.voxo-vb-caption-settings {
    grid-template-columns: 1fr;
}
.voxo-vb-caption-studio .voxo-vb-settings-grid {
    grid-template-columns: repeat(4,minmax(0,1fr)) !important;
}
@media (max-width: 980px) {
    .voxo-vb-caption-studio .voxo-vb-settings-grid { grid-template-columns: repeat(2,minmax(0,1fr)) !important; }
}
@media (max-width: 560px) {
    .voxo-vb-caption-studio .voxo-vb-settings-grid { grid-template-columns: 1fr !important; }
}

/* Garante que modelos estáticos mantenham a cor escolhida também
   durante o estado ativo, sobrescrevendo regras legadas. */
.voxo-vb-caption-line.style-classic .voxo-vb-caption-word.is-active,
.voxo-vb-caption-line.style-outline .voxo-vb-caption-word.is-active,
.voxo-vb-caption-line.style-double-outline .voxo-vb-caption-word.is-active,
.voxo-vb-caption-line.style-shadow .voxo-vb-caption-word.is-active,
.voxo-vb-caption-line.style-minimal .voxo-vb-caption-word.is-active,
.voxo-vb-caption-line.style-three-d .voxo-vb-caption-word.is-active,
.voxo-vb-caption-line.style-serif .voxo-vb-caption-word.is-active,
.voxo-vb-caption-line.style-mono .voxo-vb-caption-word.is-active,
.voxo-vb-caption-line.style-rounded .voxo-vb-caption-word.is-active,
.voxo-vb-caption-line.style-condensed .voxo-vb-caption-word.is-active {
    color: var(--voxo-caption-primary);
    transform: none;
}
.voxo-vb-caption-line.style-box .voxo-vb-caption-word.is-active,
.voxo-vb-caption-line.style-label .voxo-vb-caption-word.is-active {
    color: var(--voxo-caption-on-primary);
    transform: none;
}
.voxo-vb-caption-line.style-glass .voxo-vb-caption-word.is-active,
.voxo-vb-caption-line.style-cinematic .voxo-vb-caption-word.is-active,
.voxo-vb-caption-line.style-subtitle-bar .voxo-vb-caption-word.is-active {
    color: var(--voxo-caption-primary-soft);
    transform: none;
}
.voxo-vb-caption-line.style-subtitle-bar .voxo-vb-caption-word.is-active {
    color: var(--voxo-caption-primary);
    transform: none;
}

/* Contraste automático para cores muito escuras, como preto e índigo. */
.voxo-vb-caption-safe-area {
    --voxo-caption-outline: #000;
    --voxo-caption-outline-inverse: #fff;
}
.voxo-vb-caption-line.style-dynamic .voxo-vb-caption-word.is-active,
.voxo-vb-caption-line.style-split-tone .voxo-vb-caption-word.is-active,
.voxo-vb-caption-line.style-pulse .voxo-vb-caption-word.is-active {
    text-shadow: 0 2px 1px var(--voxo-caption-outline), 2px 0 1px var(--voxo-caption-outline), -2px 0 1px var(--voxo-caption-outline), 0 -2px 1px var(--voxo-caption-outline);
}
.voxo-vb-caption-line.style-pop .voxo-vb-caption-word.is-active,
.voxo-vb-caption-line.style-impact .voxo-vb-caption-word.is-active {
    -webkit-text-stroke: .035em var(--voxo-caption-outline);
}
.voxo-vb-caption-line.style-classic,
.voxo-vb-caption-line.style-serif,
.voxo-vb-caption-line.style-mono,
.voxo-vb-caption-line.style-rounded,
.voxo-vb-caption-line.style-condensed {
    text-shadow: 0 2px 1px var(--voxo-caption-outline), 2px 0 1px var(--voxo-caption-outline), -2px 0 1px var(--voxo-caption-outline), 0 -2px 1px var(--voxo-caption-outline);
}
.voxo-vb-caption-line.style-outline {
    text-shadow: 0 4px 0 var(--voxo-caption-outline), 4px 0 0 var(--voxo-caption-outline), -4px 0 0 var(--voxo-caption-outline), 0 -4px 0 var(--voxo-caption-outline), 3px 3px 0 var(--voxo-caption-outline), -3px -3px 0 var(--voxo-caption-outline);
}
.voxo-vb-caption-line.style-double-outline {
    text-shadow: 0 5px 0 var(--voxo-caption-outline), 5px 0 0 var(--voxo-caption-outline), -5px 0 0 var(--voxo-caption-outline), 0 -5px 0 var(--voxo-caption-outline), 0 7px 0 var(--voxo-caption-primary-dark);
}

/* ============================================================
   V0.15.4 — AUTOMAÇÃO, PRÉVIA INTEGRAL E LEGENDAS EM MASSA
   ============================================================ */
.voxo-vb-bulk-narration {
    margin-top: 18px;
    overflow: hidden;
    border: 1px solid #cfe4f2;
    border-radius: 18px;
    background: linear-gradient(180deg, #fbfdff, #f3faff);
    box-shadow: 0 12px 34px rgba(43, 56, 91, .06);
}

.voxo-vb-bulk-narration > summary {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    padding: 17px 19px;
    cursor: pointer;
    list-style: none;
    user-select: none;
}

.voxo-vb-bulk-narration > summary::-webkit-details-marker { display: none; }
.voxo-vb-bulk-narration > summary > span:first-child { display: grid; gap: 4px; }
.voxo-vb-bulk-narration > summary strong { color: #25344f; font-size: 15px; }
.voxo-vb-bulk-narration > summary small { color: #65738b; font-size: 11px; line-height: 1.45; }

.voxo-vb-bulk-narration-badge {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 5px 9px;
    border-radius: 999px;
    background: #e8f7ff;
    color: #0873ca;
    font-size: 10px;
    font-weight: 950;
    letter-spacing: .08em;
}

.voxo-vb-bulk-narration[open] > summary {
    border-bottom: 1px solid #dfe4f2;
    background: rgba(255,255,255,.78);
}

.voxo-vb-bulk-narration-body {
    display: grid;
    gap: 16px;
    padding: 18px;
}

.voxo-vb-bulk-narration-section {
    display: grid;
    gap: 14px;
    padding: 16px;
    border: 1px solid #e1e6f1;
    border-radius: 15px;
    background: #fff;
}

.voxo-vb-bulk-narration-section .voxo-vb-subtitle-row {
    align-items: flex-start;
}

.voxo-vb-bulk-narration-section .voxo-vb-subtitle-row > div {
    display: grid;
    gap: 4px;
}

.voxo-vb-bulk-narration-section .voxo-vb-subtitle-row h3 {
    margin: 0;
    color: #283750;
    font-size: 14px;
}

.voxo-vb-bulk-narration-section .voxo-vb-subtitle-row small,
.voxo-vb-bulk-narration-note {
    margin: 0;
    color: #68758c;
    font-size: 11px;
    line-height: 1.55;
}

.voxo-vb-bulk-narration-text-field textarea {
    min-height: 210px;
    resize: vertical;
    line-height: 1.55;
}

.voxo-vb-bulk-voice-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 12px;
}

.voxo-vb-bulk-narration-actions {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 10px;
}

.voxo-vb-btn-danger {
    border-color: #efb2bc !important;
    background: #fff3f5 !important;
    color: #a52239 !important;
    -webkit-text-fill-color: #a52239 !important;
}

.voxo-vb-bulk-progress {
    display: grid;
    gap: 8px;
    padding: 13px 14px;
    border: 1px solid #dce2f1;
    border-radius: 13px;
    background: #f8f9fd;
}

.voxo-vb-bulk-progress > div:first-child {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    color: #34435d;
    font-size: 12px;
}

.voxo-vb-bulk-progress small {
    color: #68758c;
    font-size: 11px;
    line-height: 1.45;
}

@media (max-width: 820px) {
    .voxo-vb-bulk-voice-grid { grid-template-columns: 1fr; }
    .voxo-vb-bulk-narration > summary { align-items: flex-start; }
    .voxo-vb-bulk-narration-actions { align-items: stretch; flex-direction: column; }
    .voxo-vb-bulk-narration-actions .voxo-vb-btn { width: 100%; }
}


/* V0.15.4 — processamento resiliente de legendas em massa */
.voxo-vb-bulk-caption-section {
    border-color: #cfe6f5;
    background: linear-gradient(180deg, #ffffff, #f5fbff);
}

.voxo-vb-bulk-caption-section [data-project-caption-status] {
    color: #0873ca;
    font-weight: 850;
}

.voxo-vb-bulk-caption-section .voxo-vb-render-progress > span {
    background: linear-gradient(90deg, #075de8, #16bdd9);
}


/* ============================================================
   V0.15.5 — PARIDADE DE LEGENDAS E TRANSIÇÕES EM TEMPO REAL
   ============================================================ */
.voxo-vb-phone{
    isolation:isolate;
    contain:paint;
}
.voxo-vb-preview-transition-ghost{
    position:absolute;
    inset:0;
    z-index:8;
    overflow:hidden;
    border-radius:inherit;
    pointer-events:none;
    transform-origin:center center;
    background:#0b1220;
    will-change:transform,opacity,filter;
}
.voxo-vb-preview-transition-ghost .voxo-vb-preview-visual{
    position:absolute;
    inset:0;
    display:block !important;
}
.voxo-vb-preview-transition-ghost .voxo-vb-preview-image{
    width:100%;
    height:100%;
    object-fit:cover;
    transform:none !important;
    animation:none !important;
}
.voxo-vb-preview-transition-ghost .voxo-vb-caption-safe-area,
.voxo-vb-preview-transition-ghost .voxo-vb-ending-preview{
    z-index:3;
}
.voxo-vb-preview-visual,
.voxo-vb-caption-safe-area,
.voxo-vb-ending-preview{
    transform-origin:center center;
    will-change:transform,opacity,filter;
}

/* V0.15.6 — clareza do controle global de legendas */
.voxo-vb-caption-toggle-note {
    display:block;
    margin:-3px 0 12px;
    color:#64748b;
    font-size:11px;
    line-height:1.45;
}

/* ============================================================
   V0.15.8 — PROGRESSOS SOB DEMANDA + PARIDADE REAL DAS LEGENDAS
   ============================================================ */
.voxo-vb-bulk-progress[hidden] {
    display: none !important;
}

.voxo-vb-caption-safe-area.has-render-canvas {
    inset: 0 !important;
    left: 0 !important;
    right: 0 !important;
    top: 0 !important;
    bottom: 0 !important;
    width: 100%;
    height: 100%;
    display: block;
    transform: none !important;
    overflow: hidden;
}

.voxo-vb-caption-render-canvas {
    display: block;
    width: 100%;
    height: 100%;
    max-width: none;
    max-height: none;
    object-fit: fill;
    pointer-events: none;
}


/* ============================================================
   V0.16.1 — COMPOSITOR AO VIVO DA PRÉVIA COMPLETA
   Duas mídias reais permanecem sobrepostas durante transições complexas.
   ============================================================ */
.voxo-vb-preview-live-layer{
    position:absolute;
    inset:0;
    z-index:9;
    overflow:hidden;
    border-radius:inherit;
    pointer-events:none;
    transform-origin:center center;
    background:#0b1220;
    will-change:transform,opacity,filter;
}
.voxo-vb-preview-live-layer .voxo-vb-preview-visual{
    position:absolute;
    inset:0;
    display:block!important;
    overflow:hidden;
}
.voxo-vb-preview-live-layer .voxo-vb-preview-image,
.voxo-vb-preview-live-layer .voxo-vb-preview-video{
    position:absolute;
    inset:0;
    width:100%;
    height:100%;
    object-fit:cover;
}
.voxo-vb-preview-live-layer .voxo-vb-caption-safe-area{
    position:absolute;
    inset:0;
    z-index:4;
    pointer-events:none;
}
.voxo-vb-preview-live-layer .voxo-vb-caption-render-canvas{
    width:100%;
    height:100%;
    object-fit:contain;
}


/* ============================================================
   V0.16.2 — ENTREGA SEM QUADRO PRETO NA PRÉVIA
   A camada temporária fica acima do palco até a próxima mídia pintar.
   ============================================================ */
.voxo-vb-preview-live-layer{
    backface-visibility:hidden;
    transform:translateZ(0);
}
.voxo-vb-preview-stage,
.voxo-vb-phone{
    background:#0b1220;
}


/* ============================================================
   V0.16.3 — PRÉVIA SEM ESTADO VAZIO E SEM REPETIR O INÍCIO
   O marcador 9:16 nunca aparece sobre uma cena carregada.
   ============================================================ */
.voxo-vb-preview-empty[hidden]{
    display:none!important;
}


/* ============================================================
   V0.16.4 — HANDOFF CONTÍNUO ENTRE DOIS PLAYERS DE PRÉVIA
   A mídia que entra durante a transição torna-se o player ativo sem recarga.
   ============================================================ */
.voxo-vb-preview-live-layer.is-promoted{
    z-index:1;
    opacity:1!important;
    transform:none!important;
    filter:none!important;
    visibility:visible!important;
    background:transparent;
    will-change:auto;
}
.voxo-vb-preview-live-layer.is-promoted .voxo-vb-preview-visual{
    z-index:1;
}


/* ============================================================
   V0.16.5 — REGERAÇÃO EM MASSA E DESTAQUE DO LEGENDADOR
   ============================================================ */
.voxo-vb-mode-card-caption-spotlight {
    position: relative;
    overflow: hidden;
    border: 2px solid #075de8;
    background: linear-gradient(145deg, #ffffff 0%, #eef7ff 58%, #dff4ff 100%);
    box-shadow: 0 16px 38px rgba(7, 93, 232, .18);
}

.voxo-vb-mode-card-caption-spotlight::after {
    content: "CC";
    position: absolute;
    top: 14px;
    right: 16px;
    display: grid;
    place-items: center;
    width: 40px;
    height: 30px;
    border-radius: 9px;
    background: #075de8;
    color: #fff;
    font-size: 13px;
    font-weight: 950;
    letter-spacing: .05em;
    box-shadow: 0 8px 20px rgba(7, 93, 232, .25);
}

.voxo-vb-mode-card-caption-spotlight > span {
    width: max-content;
    padding: 5px 9px;
    border-radius: 999px;
    background: #dcecff;
    color: #075de8;
}

.voxo-vb-mode-card-caption-spotlight .voxo-vb-btn-primary {
    box-shadow: 0 9px 22px rgba(7, 93, 232, .24);
}

.voxo-vb-narration-scene-picker {
    display: grid;
    gap: 12px;
    padding: 14px;
    border: 1px solid #bdd9f8;
    border-radius: 14px;
    background: linear-gradient(180deg, #f7fbff, #edf7ff);
}

.voxo-vb-narration-scene-picker[hidden] { display: none !important; }

.voxo-vb-narration-scene-picker-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 14px;
}

.voxo-vb-narration-scene-picker-head > div:first-child {
    display: grid;
    gap: 3px;
}

.voxo-vb-narration-scene-picker-head strong {
    color: #223a5e;
    font-size: 13px;
}

.voxo-vb-narration-scene-picker-head small {
    color: #53708f;
    font-size: 11px;
}

.voxo-vb-narration-scene-picker-head > div:last-child {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.voxo-vb-narration-scene-list {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(190px, 1fr));
    gap: 8px;
}

.voxo-vb-narration-scene-option {
    display: flex;
    align-items: center;
    gap: 9px;
    min-width: 0;
    padding: 10px 11px;
    border: 1px solid #d6e4f4;
    border-radius: 11px;
    background: #fff;
    cursor: pointer;
}

.voxo-vb-narration-scene-option:has(input:checked) {
    border-color: #075de8;
    background: #eaf3ff;
    box-shadow: inset 0 0 0 1px rgba(7, 93, 232, .12);
}

.voxo-vb-narration-scene-option.is-disabled {
    opacity: .6;
    cursor: not-allowed;
}

.voxo-vb-narration-scene-option input {
    width: 17px;
    height: 17px;
    margin: 0;
    accent-color: #075de8;
    flex: 0 0 auto;
}

.voxo-vb-narration-scene-option > span {
    display: grid;
    gap: 2px;
    min-width: 0;
}

.voxo-vb-narration-scene-option strong {
    color: #233854;
    font-size: 12px;
}

.voxo-vb-narration-scene-option small {
    color: #667891;
    font-size: 10px;
    line-height: 1.35;
}

@media (max-width: 680px) {
    .voxo-vb-narration-scene-picker-head {
        align-items: stretch;
        flex-direction: column;
    }
    .voxo-vb-narration-scene-picker-head > div:last-child,
    .voxo-vb-narration-scene-picker-head .voxo-vb-btn {
        width: 100%;
    }
    .voxo-vb-narration-scene-list { grid-template-columns: 1fr; }
}
