/* Dimensions and typography follow the inspected TTS and Doubao selectors. */
@media(min-width:841px){
  body[data-island-layout="speech"] #composer.composer .composer-main {display:flex!important;align-items:flex-start;gap:.5rem!important;padding-right:.625rem!important;height:calc(100% - 3rem);}
  body[data-island-layout="speech"] #composer #prompt {flex:1;min-width:0;}
  body[data-island-layout="speech"] #composer #asset-text {position:static;flex:none;}
}
body[data-island-layout="speech"] #composer {display:block!important;min-height:11.25rem!important;height:var(--island-composer-height,11.25rem)!important;padding:0!important;}
body[data-island-layout="speech"] #composer .composer-main {display:block!important;padding:.9375rem 2.875rem .9375rem 1.5625rem!important;}
body[data-island-layout="speech"] #composer #prompt {display:inline-block!important;width:100%!important;height:var(--island-prompt-height,var(--island-prompt-base-height,5.9375rem))!important;min-height:5.9375rem!important;max-height:13.1875rem!important;padding:0!important;margin:0;border:0;background:transparent;box-shadow:none;resize:none;font:.875rem/1.3125rem system-ui,-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,'PingFang SC','HarmonyOS Sans','Microsoft YaHei',sans-serif!important;color:#f5fbffe0;}
body[data-island-layout="speech"] #composer #prompt::placeholder {color:#626971;opacity:1;}
body[data-island-layout="speech"] #composer #ai-prompt-helper {display:none!important;}
body[data-island-layout="speech"] #api-model-link {display:none;}
body[data-island-layout="speech"] #composer .composer-main {position:relative;}
body[data-island-layout="speech"] #asset-text {position:absolute;top:.9375rem;right:.625rem;width:1.5rem;height:1.5rem;padding:.25rem;}
body[data-island-layout="speech"] #media-control-row {position:absolute;bottom:0;left:0;right:3.75rem;display:flex;height:3rem;flex-wrap:nowrap;gap:.75rem!important;padding:.5625rem 0 .75rem .9375rem!important;border:0!important;overflow-x:auto!important;scrollbar-width:none;}
body[data-island-layout="speech"] .media-control-shell {display:block!important;flex:0 0 auto;height:1.875rem;}
body[data-island-layout="speech"] #audio-field-grid[hidden] {display:none!important;}
#speech-actions {position:absolute;left:.75rem;top:-1rem;display:flex;gap:.375rem;max-width:calc(100% - 11rem);white-space:nowrap;}
#speech-actions[hidden] {display:none;}
.speech-action,.speech-selected {display:flex;align-items:center;gap:.35rem;height:1.625rem;border:1px solid #1e1f25;border-radius:999px;padding:0 .625rem;background:#1b1c21f2;color:#fff;font-family:inherit;font-size:.75rem;font-weight:500;cursor:pointer;flex:none;}
.speech-action svg {width:16px;height:16px;flex:none;}
.speech-selected {color:#a78bfa;background:#a855f726;max-width:12rem;overflow:hidden;text-overflow:ellipsis;}
.reference-voice-dialog {margin:auto;padding:0;width:56rem;max-width:90vw;max-height:85dvh;border:1px solid #ffffff14;border-radius:1.25rem;background:linear-gradient(#1e1f25fa,#18191efa);color:#fffffff2;font-family:system-ui,-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,'PingFang SC','HarmonyOS Sans','Microsoft YaHei',sans-serif;line-height:1.5;box-shadow:0 25px 50px -12px #0008;overflow:hidden;}
.reference-voice-dialog[open] {display:flex;flex-direction:column;}
.reference-voice-dialog::backdrop {background:#0009;backdrop-filter:blur(6px);}
.reference-voice-dialog.voice-role-create {height:70dvh;}
.reference-voice-dialog.voice-doubao {height:85dvh;}
.reference-voice-dialog header {display:flex;align-items:center;justify-content:space-between;flex:none;padding:1.25rem 1.5rem;border-bottom:1px solid #ffffff0d;background:#ffffff05;}
.reference-voice-dialog h2 {font-size:1.125rem;font-weight:600;line-height:1.5;margin:0 0 .25rem;}
.voice-subtitle {font-size:.8125rem;line-height:1.5;color:#ffffff80;}
.voice-header-right {display:flex;align-items:center;gap:1rem;}
.voice-filters {display:flex;gap:.25rem;border-radius:.5rem;background:#0003;padding:.25rem;}
.reference-voice-dialog button {font-family:Arial,sans-serif;cursor:pointer;}
.voice-filters button {border:0;background:transparent;color:#fff8;font-size:.75rem;border-radius:.375rem;padding:.375rem .75rem;}
.voice-filters button.active {color:#fff;background:#00cae0;}
.reference-voice-dialog .voice-close {display:grid;place-items:center;width:2rem;height:2rem;padding:0;border:0;border-radius:50%;color:#fff9;background:#ffffff14;}
.voice-name-section {padding:1rem 1.5rem;border-bottom:1px solid #ffffff0d;flex:none;}
.voice-name-section[hidden] {display:none;}
.voice-name-section label {display:block;color:#fffc;font-size:.8125rem;margin-bottom:.5rem;}
.voice-name-section input {width:100%;background:#0003;border:1px solid #ffffff1a;border-radius:.5rem;padding:.625rem .875rem;color:#fff;font:inherit;font-size:.875rem;}
.voice-content {flex:1;min-height:0;overflow:auto;padding:1.5rem;scrollbar-width:thin;scrollbar-color:#ffffff26 transparent;}
.voice-grid {display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.75rem;}
.voice-card {position:relative;display:flex;align-items:center;gap:.75rem;padding:1rem;border:1px solid #ffffff0d;border-radius:.75rem;background:#ffffff05;cursor:pointer;transition:all .2s ease;}
.voice-card:hover {background:#ffffff0d;}
.voice-card.selected {border-color:#a855f780;background:#a855f71f;}
.voice-wave {display:flex;flex:none;color:#60a5fa;}
.voice-card.female .voice-wave {color:#f472b6;}
.voice-info {min-width:0;display:flex;align-items:center;gap:.375rem;flex-wrap:wrap;}
.voice-name {font-size:.875rem;font-weight:500;color:#ffffffe6;}
.voice-gender {font-size:.625rem;padding:.0625rem .25rem;border-radius:.25rem;background:#60a5fa26;color:#60a5fa;}
.female .voice-gender {color:#f472b6;background:#f472b626;}
.voice-feature,.voice-info small {width:100%;font-size:.75rem;color:#fff6;}
.voice-listen {margin-left:auto;flex:none;display:grid;place-items:center;width:1.75rem;height:1.75rem;padding:0;border:0;border-radius:50%;color:#ffffffb3;background:#ffffff14;}
.voice-group {display:flex;gap:.5rem;align-items:center;font-size:.875rem;font-weight:600;margin:0 0 .75rem;}
.voice-group span {color:#fff6;font-size:.6875rem;background:#ffffff0d;padding:.0625rem .375rem;border-radius:1rem;}
.voice-content section+section {margin-top:1.5rem;}
.reference-voice-dialog footer {display:flex;align-items:center;justify-content:space-between;flex:none;padding:1rem 1.5rem;border-top:1px solid #ffffff0d;background:#ffffff03;font-size:.8125rem;color:#fff8;}
.reference-voice-dialog footer>div {display:flex;gap:.625rem;}
.reference-voice-dialog footer strong {color:#c084fc;font-weight:500;}
.reference-voice-dialog footer button {padding:.625rem 1.25rem;border:1px solid #ffffff1a;border-radius:.5rem;background:#ffffff0d;color:#fffc;font-size:.8125rem;}
.reference-voice-dialog footer .voice-primary {border-color:transparent;background:linear-gradient(135deg,#a855f7,#7c3aed);color:#fff;}
.reference-voice-dialog button:disabled {opacity:.4;cursor:not-allowed;}
.voice-empty {display:flex;align-items:center;justify-content:center;flex-direction:column;gap:1rem;padding:3rem 1rem;color:#fff8;font-size:.875rem;}
.voice-create-first {border:1px dashed #a855f766;border-radius:.5rem;padding:.5rem 1rem;background:transparent;color:#a855f7cc;font-size:.8125rem;}
.voice-status {padding:.5rem 1.5rem;margin:0;color:#facc15;font-size:.75rem;}
.voice-role-create header {padding:1rem 1.5rem;}
:is(.voice-role-create,.voice-doubao) .voice-subtitle {font-size:.75rem;display:block;}
:is(.voice-role-create,.voice-doubao) .voice-filters {gap:0;background:#0000004d;}
:is(.voice-role-create,.voice-doubao) .voice-filters button {padding:.375rem .875rem;line-height:normal;}
:is(.voice-role-create,.voice-doubao) .voice-filters button:not(.active) {color:rgba(255,255,255,.6);}
.voice-role-create .voice-name-section {background:#00cae00d;}
.voice-role-create .voice-name-section label {margin-bottom:.5rem;}
.voice-role-create .voice-name-section input {border:2px solid #00cae04d;border-radius:.625rem;background:#0000004d;padding:.75rem 1rem;font-size:1rem;line-height:normal;}
.voice-role-create .voice-content {padding:1rem 1.5rem;}
:is(.voice-role-create,.voice-doubao) .voice-grid {grid-template-columns:repeat(auto-fill,minmax(8rem,1fr));gap:.875rem;}
:is(.voice-role-create,.voice-doubao) .voice-card {flex-direction:column;gap:.5rem;padding:1rem .75rem;border-color:#ffffff14;border-radius:.875rem;background:linear-gradient(135deg,#3b82f61f,#3b82f608);}
:is(.voice-role-create,.voice-doubao) .voice-card.female {background:linear-gradient(135deg,#ec48991f,#ec489908);}
:is(.voice-role-create,.voice-doubao) .voice-card.selected {border-color:#00cae0;background:#00cae01a;}
:is(.voice-role-create,.voice-doubao) .voice-wave {justify-content:center;align-items:center;width:3rem;height:3rem;border-radius:50%;background:#ffffff0d;color:#3b82f6b3;}
:is(.voice-role-create,.voice-doubao) .voice-card.female .voice-wave {color:#ec4899b3;}
:is(.voice-role-create,.voice-doubao) .voice-info {flex-direction:column;gap:.125rem;text-align:center;}
:is(.voice-role-create,.voice-doubao) .voice-name {font-size:.8125rem;font-weight:600;color:#fffffff2;}
:is(.voice-role-create,.voice-doubao) .voice-gender {font-size:.5625rem;padding:.0625rem .375rem;background:#ffffff0d;color:#fff6;border-radius:1rem;}
:is(.voice-role-create,.voice-doubao) .voice-feature {font-size:.625rem;color:#fff8;}
:is(.voice-role-create,.voice-doubao) .voice-listen {position:absolute;bottom:.5rem;left:.5rem;width:1.625rem;height:1.625rem;background:#0006;}
.voice-role-create footer {padding:.875rem 1.5rem;background:#0003;}
:is(.voice-role-create,.voice-doubao) footer strong {color:#00cae0;}
.voice-doubao footer button {line-height:normal;}
.voice-role-create footer button {padding:.5rem 1rem;border-color:#ffffff26;background:transparent;color:#ffffffb3;}
:is(.voice-role-create,.voice-doubao) footer .voice-primary {padding:.5rem 1.5rem;border:0;background:#00cae0;color:#fff;}
.voice-doubao footer .voice-primary {font-weight:500;}
.voice-clone-select {width:52rem;}
.voice-clone-create {width:36rem;}
.voice-doubao .voice-info small {font-size:.5625rem;line-height:1.5;padding:.0625rem .375rem;color:#00cae0;background:#00cae01a;border-radius:1rem;}
.voice-doubao .voice-group {border-bottom:1px solid #ffffff0d;padding-bottom:.5rem;color:#fffc;}
.voice-doubao .voice-group span {font-size:.6875rem;padding:.125rem .5rem;}
.voice-doubao footer {background:#0003;}
@media(max-width:450px){
  body[data-island-layout="speech"] #refct-help {display:none!important;}
  body[data-island-layout="speech"] .chat-workspace {left:.5rem;width:calc(100% - 1rem);bottom:.625rem;padding:0;}
  body[data-island-layout="speech"] #composer {height:var(--island-composer-height,calc(var(--island-prompt-base-height,5.9375rem) + 8.0798rem))!important;min-height:11.25rem!important;border-radius:.875rem!important;}
  body[data-island-layout="speech"] #composer .composer-main {padding-right:2.625rem!important;}
  body[data-island-layout="speech"] #media-control-row {left:.9375rem;right:.9375rem;bottom:3rem;height:calc(1.875rem + 10px);padding:0!important;align-items:flex-start!important;scrollbar-width:thin!important;scrollbar-color:#7f7f7f66 transparent;}
  body[data-island-layout="speech"] #media-control-row::-webkit-scrollbar {display:block;height:6px;}
  body[data-island-layout="speech"] #composer .composer-footer {position:absolute!important;width:auto;right:.9375rem!important;bottom:.75rem!important;padding:0!important;}
  body[data-island-layout="speech"] .composer-rail {right:calc(3.4375rem + 1px)!important;bottom:calc(.75rem + 1px)!important;padding:0;border:0;background:transparent;gap:.625rem!important;}
  body[data-island-layout="speech"] .composer-rail #manual {display:none!important;}
  #speech-actions {max-width:calc(100% - 8rem);gap:.375rem;}
  .speech-action {width:2.25rem;height:2.25rem;justify-content:center;padding:0 .625rem;}
  .speech-action span {white-space:nowrap;}
}

/* Speech retains its single editor/import action; native footer sizing is shared. */
body[data-island-layout="speech"] #composer {line-height:1.5;color:#fff;box-shadow:none!important;transition:border-color .2s,box-shadow .2s;}
body[data-island-layout="speech"] #composer #prompt {color:color-mix(in srgb,#f5fbff 88%,transparent)!important;transition:background-color .25s,color .2s,border-color .25s,box-shadow .25s;}
body[data-island-layout="speech"] #fullscreen-prompt .control-icon {stroke-width:3.085714285714286;}
body[data-island-layout="speech"] #fullscreen-prompt:hover {background:rgba(255,255,255,.08)!important;border-color:rgba(255,255,255,.9)!important;color:rgba(255,255,255,.9)!important;}
body[data-island-layout="speech"] #asset-text {display:flex;align-items:center;justify-content:center;padding:0;border:1px solid rgba(255,255,255,.15);border-radius:.3125rem;background:color-mix(in srgb,#1c1e22 88%,transparent);color:#f5fbff;font:400 .75rem/1 Arial;transition:.15s;}
body[data-island-layout="speech"] #asset-text:hover {background:#1c1e22;border-color:#00cae0;transform:translateY(-1px);}
.audio-shared-asset-icon {display:none!important;}
body[data-island-layout="speech"] #asset-text>svg:first-child {display:none;}
body[data-island-layout="speech"] #asset-text>.audio-shared-asset-icon {display:block!important;width:13px;height:13px;stroke-width:3.230769230769231;}
body[data-island-layout="speech"] #speech-actions {color:#fff;line-height:1.5;}
body[data-island-layout="speech"] .speech-action {font-size:1rem;font-weight:400;line-height:1.5;}
body[data-island-layout="speech"] .speech-action svg {width:1rem;height:1rem;flex:0 1 auto;color:rgba(255,255,255,.72);}
body[data-island-layout="speech"] .speech-action span {font-size:.75rem;font-weight:500;line-height:1;color:rgba(255,255,255,.78);}
@media(max-width:450px){body[data-island-layout="speech"] .chat-workspace {left:.5rem;right:.5rem;width:auto;}}

/* Doubao public preset selection keeps its own keyed rows and selected preview. */
.voice-doubao {box-shadow:0 25px 50px -12px rgba(0,0,0,.5);}
.voice-doubao::backdrop {background:rgba(0,0,0,.85);backdrop-filter:blur(8px);}
.voice-doubao .voice-content {scrollbar-color:rgba(0,202,224,.3) transparent;}
.voice-doubao .voice-preset-group {margin-bottom:1.5rem;}
.voice-doubao .voice-preset-group:last-child {margin-bottom:0;}
.voice-doubao .voice-group .voice-group-label {font-size:.875rem;font-weight:600;color:rgba(255,255,255,.8);padding:0;border-radius:0;background:transparent;}
.voice-doubao .voice-feature {width:auto;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:rgba(255,255,255,.5);}
.voice-doubao .voice-info small {width:auto;}
.voice-doubao .voice-card {transition:.3s;}
.voice-doubao .voice-card.male,.voice-doubao .voice-card.male.selected {background:linear-gradient(135deg,rgba(59,130,246,.12),rgba(59,130,246,.03));}
.voice-doubao .voice-card.female,.voice-doubao .voice-card.female.selected {background:linear-gradient(135deg,rgba(236,72,153,.12),rgba(236,72,153,.03));}
.voice-doubao .voice-card:hover {transform:translateY(-2px);}
.voice-doubao .voice-card.male:hover {border-color:rgba(59,130,246,.4);box-shadow:0 6px 20px rgba(59,130,246,.2);}
.voice-doubao .voice-card.female:hover {border-color:rgba(236,72,153,.4);box-shadow:0 6px 20px rgba(236,72,153,.2);}
.voice-doubao .voice-card.selected {border-color:#00cae0;box-shadow:0 0 0 2px rgba(0,202,224,.2),0 6px 20px rgba(0,202,224,.15);}
.voice-doubao .voice-wave {transition:.3s;}
.voice-doubao .voice-selected-check {position:absolute;top:.5rem;right:.5rem;width:1.25rem;height:1.25rem;border-radius:50%;background:#00cae0;display:flex;align-items:center;justify-content:center;color:#fff;animation:voice-preset-check-pop .3s ease;}
.voice-doubao .voice-selected-check[hidden] {display:none;}
@keyframes voice-preset-check-pop {from{transform:scale(0);}to{transform:scale(1);}}
.voice-doubao .voice-listen {transition:.2s;opacity:0;}
.voice-doubao .voice-card:hover .voice-listen,.voice-doubao .voice-listen:focus-visible {opacity:1;}
.voice-doubao .voice-listen:hover {background:#00cae0;color:#fff;transform:scale(1.1);}
.voice-doubao .voice-close {transition:.2s;}
.voice-doubao .voice-close:hover {background:rgba(255,255,255,.15);color:rgba(255,255,255,.9);}
.voice-doubao .voice-filters button {transition:.2s;}
.voice-doubao .voice-filters button:not(.active):hover {color:rgba(255,255,255,.8);}
.voice-doubao footer>span {color:rgba(255,255,255,.6);}
.voice-doubao footer .voice-primary {transition:.2s;}
.voice-doubao footer .voice-primary:hover {opacity:.9;transform:translateY(-1px);}
body[data-island-layout="speech"] #speech-actions[data-panel="doubao"] {align-items:flex-end;gap:.75rem;}
body[data-island-layout="speech"] .speech-action .preset-selection-badge {min-width:1rem;height:1rem;padding:0 .3rem;border-radius:50%;background:#00cae0;color:#fff;font-size:.625rem;font-weight:600;display:flex;align-items:center;justify-content:center;line-height:1;flex:none;}
.speech-preset-panel {position:absolute;bottom:calc(100% + .5rem);left:0;z-index:40;min-width:10rem;max-width:14rem;padding:.625rem;border:1px solid rgba(255,255,255,.1);border-radius:.875rem;background:linear-gradient(135deg,rgba(27,28,33,.95),color-mix(in srgb,#23252a 95%,transparent));backdrop-filter:blur(10px);box-shadow:0 4px 20px rgba(0,0,0,.3);}
.preset-panel-header {display:flex;align-items:center;justify-content:space-between;margin-bottom:.5rem;padding:0 .25rem;}
.preset-panel-title {font-size:.6875rem;font-weight:500;color:rgba(255,255,255,.6);text-transform:uppercase;letter-spacing:.5px;}
.preset-panel-close {display:flex;align-items:center;justify-content:center;width:1.25rem;height:1.25rem;border:0;border-radius:999px;padding:0;background:rgba(255,255,255,.08);color:rgba(255,255,255,.5);font:400 13.3333px Arial;cursor:pointer;transition:.2s;}
.preset-panel-close:hover {background:rgba(239,68,68,.8);color:#fff;}
.preset-mini-card {display:flex;align-items:center;gap:.5rem;padding:.5rem .625rem;border:1px solid rgba(255,255,255,.06);border-radius:.5rem;transition:.2s;}
.preset-mini-card.male {background:linear-gradient(135deg,rgba(59,130,246,.08),rgba(59,130,246,.02));border-color:rgba(59,130,246,.15);}
.preset-mini-card.female {background:linear-gradient(135deg,rgba(236,72,153,.08),rgba(236,72,153,.02));border-color:rgba(236,72,153,.15);}
.preset-wave {display:flex;align-items:center;justify-content:center;flex:none;width:1.5rem;height:1.5rem;color:#00cae0;}
.preset-info {display:flex;flex-direction:column;gap:.125rem;flex:1;min-width:0;}
.preset-name {font-size:.75rem;font-weight:500;color:rgba(255,255,255,.9);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.preset-category {font-size:.625rem;color:rgba(255,255,255,.5);}
.preset-remove {display:flex;align-items:center;justify-content:center;flex:none;width:1.25rem;height:1.25rem;border:0;border-radius:50%;padding:0;background:rgba(255,255,255,.1);color:rgba(255,255,255,.5);font:400 13.3333px Arial;opacity:0;cursor:pointer;transition:.2s;}
.preset-mini-card:hover .preset-remove,.preset-remove:focus-visible {opacity:1;}
.preset-remove:hover {background:rgba(239,68,68,.8);color:#fff;}
@media(max-width:450px){.speech-preset-panel{display:none;}}

/* Exact45 clone-create public form, scoped away from GEM/Doubao panels. */
.reference-voice-dialog.voice-clone-create { width: 90%; max-height: 85vh; background: linear-gradient(180deg,color-mix(in srgb,#1e1f25 98%,transparent),color-mix(in srgb,#18191e 98%,transparent)); border: 1px solid rgba(255,255,255,0.08); border-radius: 1.25rem; display: flex; flex-direction: column; overflow: hidden; box-shadow: 0 25px 50px -12px rgba(0,0,0,0.5); }
.reference-voice-dialog.voice-clone-create { max-width: 36rem; }
.voice-clone-create .clone-modal-accent-line { height: 3px; background: linear-gradient(90deg, rgba(168, 85, 247, 0.8), rgba(139, 92, 246, 0.6), rgba(168, 85, 247, 0.2)); flex-shrink: 0; }
.voice-clone-create header { display: flex; justify-content: space-between; align-items: center; padding: 1.25rem 1.5rem; border-bottom: 1px solid rgba(255,255,255,0.06); background: rgba(255,255,255,0.02); flex-shrink: 0; }
.voice-clone-create .clone-header-left { display: flex; flex-direction: column; gap: 0.25rem; }
.voice-clone-create h2 { font-size: 1.25rem; font-weight: 600; color: rgba(255,255,255,0.95); margin: 0px; }
.voice-clone-create .voice-subtitle { font-size: 0.875rem; color: rgba(255,255,255,0.5); }
.voice-clone-create .voice-close { width: 2rem; height: 2rem; border-radius: 50%; background: rgba(255,255,255,0.08); border-width: medium; border-style: none; border-color: currentcolor; border-image: none; cursor: pointer; display: flex; align-items: center; justify-content: center; color: rgba(255,255,255,0.6); transition: 0.2s; }
.voice-clone-create .voice-close:hover:not(:disabled) { background: rgba(255,255,255,0.15); color: rgba(255,255,255,0.9); }
.voice-clone-create .voice-close:disabled { opacity: 0.3; cursor: not-allowed; }
.voice-clone-create .voice-content { padding: 1.25rem 1.5rem; display: flex; flex-direction: column; gap: 1.125rem; overflow-y: auto; flex: 1 1 auto; min-height: 0px; scrollbar-width: thin; scrollbar-color: rgba(168, 85, 247, 0.3) transparent; }
.voice-clone-create .voice-content::-webkit-scrollbar { width: 5px; }
.voice-clone-create .voice-content::-webkit-scrollbar-thumb { background: rgba(168, 85, 247, 0.3); border-radius: 3px; }
.voice-clone-create .clone-form-group { display: flex; flex-direction: column; gap: 0.375rem; }
.voice-clone-create .clone-form-label { font-size: 0.9375rem; font-weight: 600; color: rgba(255,255,255,0.85); display: flex; align-items: center; gap: 0.375rem; flex-wrap: wrap; }
.voice-clone-create .clone-form-label-highlight { color: rgba(168, 85, 247, 0.95); font-size: 1rem; }
.voice-clone-create .clone-form-label .clone-hint { font-weight: 400; color: rgba(255,255,255,0.4); font-size: 0.8125rem; }
.voice-clone-create .clone-required-mark { color: rgba(239, 68, 68, 0.8); font-weight: 600; }
.voice-clone-create .clone-optional-mark { font-size: 0.75rem; font-weight: 400; color: rgba(168, 85, 247, 0.7); background: rgba(168, 85, 247, 0.1); padding: 0.125rem 0.5rem; border-radius: 0.25rem; }
.voice-clone-create .clone-label-icon { display: flex; align-items: center; color: rgba(168, 85, 247, 0.8); }
.voice-clone-create .clone-upload-desc { font-size: 0.8125rem; color: rgba(255,255,255,0.45); line-height: 1.6; margin-bottom: 0.25rem; }
.voice-clone-create .clone-form-input { width: 100%; padding: 0.75rem 1rem; background: rgba(0,0,0,0.3); border: 2px solid rgba(168, 85, 247, 0.3); border-radius: 0.625rem; color: rgba(255,255,255,0.95); font-size: 1rem; outline: none; transition: 0.2s; box-sizing: border-box; }
.voice-clone-create .clone-form-input::placeholder { color: rgba(255,255,255,0.4); }
.voice-clone-create .clone-form-input:focus { border-color: rgba(168, 85, 247, 0.6); background: rgba(0,0,0,0.4); box-shadow: rgba(168, 85, 247, 0.15) 0px 0px 0px 3px; }
.voice-clone-create .clone-upload-area { padding: 1.5rem; border: 2px dashed rgba(255,255,255,0.15); border-radius: 0.75rem; display: flex; flex-direction: column; align-items: center; gap: 0.5rem; cursor: pointer; transition: 0.2s; color: rgba(255,255,255,0.5); font-size: 0.9375rem; }
.voice-clone-create .clone-upload-area:hover { border-color: rgba(168, 85, 247, 0.5); background: rgba(168, 85, 247, 0.05); color: rgba(168, 85, 247, 0.8); }
.voice-clone-create .clone-upload-area.has-file { border-color: rgba(168,85,247,0.4); background: rgba(168,85,247,0.05); border-style: solid; cursor: default; }
.voice-clone-create .clone-upload-area-small { padding: 1rem; }
.voice-clone-create .clone-upload-area-main { border-color: rgba(168, 85, 247, 0.3); background: rgba(168, 85, 247, 0.03); }
.voice-clone-create .clone-upload-area-main:hover { border-color: rgba(168, 85, 247, 0.6); background: rgba(168, 85, 247, 0.08); box-shadow: rgba(168, 85, 247, 0.1) 0px 0px 20px; }
.voice-clone-create .clone-upload-icon-wrapper { width: 3.5rem; height: 3.5rem; border-radius: 50%; background: rgba(168, 85, 247, 0.1); display: flex; align-items: center; justify-content: center; color: rgba(168, 85, 247, 0.7); margin-bottom: 0.25rem; }
.voice-clone-create .clone-upload-text { font-weight: 500; }
.voice-clone-create .clone-file-info { display:flex; align-items:center; gap:0.5rem; width:100%; }
.voice-clone-create .clone-file-name { font-size:0.9375rem; color:rgba(255,255,255,0.8); word-break:break-all; flex:1 1 0%; }
.voice-clone-create .clone-remove-file-btn { padding:0; width:1.5rem; height:1.5rem; border-radius:50%; background:rgba(255,255,255,0.1); border:none; cursor:pointer; display:flex; align-items:center; justify-content:center; color:rgba(255,255,255,0.5); transition:0.2s; flex-shrink:0; }
.voice-clone-create .clone-remove-file-btn:hover { background:rgba(239,68,68,0.8); color:rgba(255,255,255,1); }
.voice-clone-create .clone-prompt-text-group { display:flex; flex-direction:column; gap:0.375rem; }
.voice-clone-create .clone-prompt-text-group[hidden] { display:none; }
.voice-clone-create .clone-form-label-small { font-size:0.875rem; font-weight:500; color:rgba(255,255,255,0.7); display:flex; align-items:center; gap:0.375rem; margin-top:0.5rem; }
.voice-clone-create .clone-prompt-active { transition:0.3s; }
.voice-clone-create .clone-prompt-edge { opacity:0; max-height:0; }
.voice-clone-create .clone-form-textarea { line-height:normal; width:100%; padding:0.75rem 1rem; background:rgba(0,0,0,0.3); border:1px solid rgba(255,255,255,0.12); border-radius:0.5rem; color:rgba(255,255,255,0.9); font-size:0.9375rem; outline:none; resize:vertical; transition:0.2s; box-sizing:border-box; font-family:inherit; min-height:3rem; }
.voice-clone-create .clone-form-textarea::placeholder { color:rgba(255,255,255,0.35); }
.voice-clone-create .clone-form-textarea:focus { border-color:rgba(168,85,247,0.5); box-shadow:rgba(168,85,247,0.1) 0px 0px 0px 2px; }

.voice-clone-create .clone-pricing-rules { display: flex; align-items: center; gap: 0.75rem; padding: 1rem 1.25rem; border-radius: 0.75rem; background: linear-gradient(135deg, rgba(168, 85, 247, 0.06), rgba(139, 92, 246, 0.03)); border: 1px solid rgba(168, 85, 247, 0.15); }
.voice-clone-create .clone-pricing-rule-item { display: flex; align-items: center; gap: 0.5rem; flex: 1 1 0%; }
.voice-clone-create .clone-rule-icon { width: 2rem; height: 2rem; border-radius: 0.5rem; display: flex; align-items: center; justify-content: center; }
.voice-clone-create .clone-pricing-create .clone-rule-icon { background: rgba(34, 197, 94, 0.15); color: rgba(34, 197, 94, 0.9); }
.voice-clone-create .clone-pricing-use .clone-rule-icon { background: rgba(251, 191, 36, 0.15); color: rgba(251, 191, 36, 0.9); }
.voice-clone-create .clone-rule-content { display: flex; flex-direction: column; gap: 0.125rem; }
.voice-clone-create .clone-rule-label { font-size: 0.8125rem; color: rgba(255,255,255,0.5); }
.voice-clone-create .clone-rule-price { font-size: 1.125rem; font-weight: 700; color: rgba(34, 197, 94, 0.9); }
.voice-clone-create .clone-rule-price-highlight { color: rgba(251, 191, 36, 0.95); }
.voice-clone-create .clone-pricing-divider { display: flex; align-items: center; color: rgba(255,255,255,0.3); }
.voice-clone-create .clone-fee-notice { display: flex; align-items: flex-start; gap: 0.5rem; padding: 0.75rem 1rem; border-radius: 0.5rem; background: rgba(255,255,255,0.03); border: 1px solid rgba(255,255,255,0.08); font-size: 0.8125rem; color: rgba(255,255,255,0.5); }
.voice-clone-create .clone-fee-notice svg { flex-shrink: 0; margin-top: 0.125rem; }
.voice-clone-create .clone-fee-notice-text { display: flex; flex-direction: column; gap: 0.25rem; line-height: 1.5; }
.voice-clone-create .clone-fee-notice strong { color: rgba(251, 191, 36, 0.9); }
.voice-clone-create .clone-fee-notice-sub { color: rgba(255,255,255,0.4); }
.voice-clone-create footer { display: flex; justify-content: space-between; align-items: center; padding: 1rem 1.5rem; border-top: 1px solid rgba(255,255,255,0.06); background: rgba(0,0,0,0.2); flex-shrink: 0; }
.reference-voice-dialog.voice-clone-create footer .voice-cancel { padding: 0.625rem 1.25rem; border: 1px solid rgba(255,255,255,0.15); border-radius: 0.5rem; background: transparent; color: rgba(255,255,255,0.7); font-size: 0.9375rem; cursor: pointer; transition: 0.2s; }
.reference-voice-dialog.voice-clone-create footer .voice-cancel:hover:not(:disabled) { border-color: rgba(255,255,255,0.3); color: rgba(255,255,255,0.9); }
.reference-voice-dialog.voice-clone-create footer .voice-cancel:disabled { opacity: 0.4; cursor: not-allowed; }
.reference-voice-dialog.voice-clone-create footer .voice-primary { padding: 0.625rem 1.5rem; border-width: medium; border-style: none; border-color: currentcolor; border-image: none; border-radius: 0.5rem; background: linear-gradient(135deg, rgba(168, 85, 247, 0.9), rgba(139, 92, 246, 0.9)); color: rgba(255,255,255,1); font-size: 0.9375rem; font-weight: 500; cursor: pointer; transition: 0.2s; }
.reference-voice-dialog.voice-clone-create footer .voice-primary:hover:not(:disabled) { opacity: 0.9; transform: translateY(-1px); box-shadow: rgba(168, 85, 247, 0.3) 0px 4px 15px; }
.reference-voice-dialog.voice-clone-create footer .voice-primary:disabled { opacity: 0.4; cursor: not-allowed; }
.reference-voice-dialog.voice-clone-create footer .clone-create-button { display: flex; align-items: center; gap: 0.5rem; padding: 0.75rem 1.75rem; background: linear-gradient(135deg, rgb(168, 85, 247), rgb(139, 92, 246)); font-size: 1rem; font-weight: 600; box-shadow: rgba(168, 85, 247, 0.25) 0px 4px 15px; }
.reference-voice-dialog.voice-clone-create footer .clone-create-button:hover:not(:disabled) { box-shadow: rgba(168, 85, 247, 0.4) 0px 6px 25px; transform: translateY(-2px); }
.voice-clone-create .voice-header-right {display:contents;}
.voice-clone-select .voice-header-right {display:contents;}
.voice-clone-create h2 {line-height:1.5;margin:0;}
.voice-clone-create .voice-subtitle {display:block;line-height:1.5;}
.voice-clone-create .voice-content {flex:1 1 auto;}
.voice-clone-create .clone-name {margin:0;}
.voice-clone-create .clone-form-input {font-family:Arial,sans-serif;line-height:normal;}
.voice-clone-create .clone-upload-label:focus-visible {outline:2px solid #a855f7;outline-offset:2px;}
.voice-clone-create footer .clone-create-button svg {flex:none;}
.voice-clone-create::backdrop {background:rgba(0,0,0,.85);backdrop-filter:blur(8px);}

.voice-clone-create footer button {line-height:normal;}


/* GEM104/18 public create preset layout; selection/list business stays shared. */
.voice-role-create .gem-header-left { display: flex; flex-direction: column; gap: 0.25rem; }
.voice-role-create h2 { font-size: 1.125rem; font-weight: 600; color: rgba(255,255,255,0.95); margin: 0px; }
.voice-role-create .voice-subtitle { font-size: 0.75rem; color: rgba(255,255,255,0.5); }
.voice-role-create .voice-header-right { display: flex; align-items: center; gap: 1rem; }
.voice-role-create .voice-filters { display: flex; background: rgba(0,0,0,0.3); border-radius: 0.5rem; padding: 0.25rem; }
.voice-role-create .voice-filters button { padding: 0.375rem 0.875rem; border-width: medium; border-style: none; border-color: currentcolor; border-image: none; background: transparent; color: rgba(255,255,255,0.6); font-size: 0.75rem; cursor: pointer; border-radius: 0.375rem; transition: 0.2s; }
.voice-role-create .voice-filters button:hover { color: rgba(255,255,255,0.8); }
.voice-role-create .voice-filters button.active { background: #00cae0; color: rgba(255,255,255,1); }
.voice-role-create .voice-close { width: 2rem; height: 2rem; border-radius: 50%; background: rgba(255,255,255,0.08); border-width: medium; border-style: none; border-color: currentcolor; border-image: none; cursor: pointer; display: flex; align-items: center; justify-content: center; color: rgba(255,255,255,0.6); transition: 0.2s; }
.voice-role-create .voice-close:hover { background: rgba(255,255,255,0.15); color: rgba(255,255,255,0.9); }
.voice-role-create .gem-selected-info { font-size: 0.8125rem; color: rgba(255,255,255,0.6); }
.voice-role-create .gem-selected-info strong { color: #00cae0; font-weight: 600; }
.voice-role-create .gem-footer-right { display: flex; gap: 0.75rem; }
.reference-voice-dialog.voice-role-create footer .voice-cancel { padding: 0.5rem 1rem; border: 1px solid rgba(255,255,255,0.15); border-radius: 0.5rem; background: transparent; color: rgba(255,255,255,0.7); font-size: 0.8125rem; cursor: pointer; transition: 0.2s; }
.reference-voice-dialog.voice-role-create footer .voice-cancel:hover:not(:disabled) { border-color: rgba(255,255,255,0.3); color: rgba(255,255,255,0.9); }
.reference-voice-dialog.voice-role-create footer .voice-cancel:disabled { opacity: 0.4; cursor: not-allowed; }
.reference-voice-dialog.voice-role-create footer .voice-primary { padding: 0.5rem 1.5rem; border-width: medium; border-style: none; border-color: currentcolor; border-image: none; border-radius: 0.5rem; background: #00cae0; color: rgba(255,255,255,1); font-size: 0.8125rem; font-weight: 500; cursor: pointer; transition: 0.2s; }
.reference-voice-dialog.voice-role-create footer .voice-primary:hover { opacity: 0.9; transform: translateY(-1px); }
.reference-voice-dialog.voice-role-create { width: 90%; max-width: 56rem; max-height: 70vh; background: linear-gradient(180deg,color-mix(in srgb,#1e1f25 98%,transparent),color-mix(in srgb,#18191e 98%,transparent)); border: 1px solid rgba(255,255,255,0.08); border-radius: 1.25rem; display: flex; flex-direction: column; overflow: hidden; box-shadow: 0 25px 50px -12px rgba(0,0,0,0.5); }
.voice-role-create header { display: flex; justify-content: space-between; align-items: center; padding: 1rem 1.5rem; border-bottom: 1px solid rgba(255,255,255,0.06); background: rgba(255,255,255,0.02); }
.voice-role-create .voice-name-section { padding: 1rem 1.5rem; background: rgba(0,202,224,0.05); border-bottom: 1px solid rgba(0,202,224,0.15); }
.voice-role-create .voice-name-section label { display: block; font-size: 0.75rem; font-weight: 600; color: #00cae0; margin-bottom: 0.5rem; text-transform: uppercase; letter-spacing: 1px; }
.voice-role-create .voice-name-section input { width: 100%; padding: 0.75rem 1rem; background: rgba(0,0,0,0.3); border: 2px solid rgba(0,202,224,0.3); border-radius: 0.625rem; color: rgba(255,255,255,0.95); font-size: 1rem; outline: none; transition: 0.2s; box-sizing: border-box; }
.voice-role-create .voice-name-section input::placeholder { color: rgba(255,255,255,0.4); }
.voice-role-create .voice-name-section input:focus { border-color: #00cae0; background: rgba(0,0,0,0.4); box-shadow: 0 0 0 3px rgba(0,202,224,0.15); }
.voice-role-create .voice-name-section input:disabled { opacity: 0.5; cursor: not-allowed; }
.voice-role-create .voice-content { flex: 1 1 0%; padding: 1rem 1.5rem; overflow-y: auto; scrollbar-width: thin; scrollbar-color: rgba(0,202,224,0.3) transparent; }
.voice-role-create .voice-content::-webkit-scrollbar { width: 6px; }
.voice-role-create .voice-content::-webkit-scrollbar-thumb { background: rgba(0,202,224,0.3); border-radius: 3px; }
.voice-role-create .voice-grid { display: grid; grid-template-columns: repeat(5, 1fr); gap: 0.875rem; }
.voice-role-create .voice-card { position: relative; padding: 1rem 0.75rem; border-radius: 0.875rem; background: linear-gradient(135deg,rgba(255,255,255,0.04) 0%,rgba(255,255,255,0.015) 100%); border: 1px solid rgba(255,255,255,0.08); cursor: pointer; transition: 0.3s; display: flex; flex-direction: column; align-items: center; gap: 0.5rem; }
.voice-role-create .voice-card:hover { transform: translateY(-2px); border-color: rgba(255,255,255,0.15); box-shadow: 0 6px 20px rgba(0,0,0,0.3); }
.voice-role-create .voice-card.male { background: linear-gradient(135deg, rgba(59, 130, 246, 0.12), rgba(59, 130, 246, 0.03)); }
.voice-role-create .voice-card.male:hover { border-color: rgba(59, 130, 246, 0.4); box-shadow: rgba(59, 130, 246, 0.2) 0px 6px 20px; }
.voice-role-create .voice-card.female { background: linear-gradient(135deg, rgba(236, 72, 153, 0.12), rgba(236, 72, 153, 0.03)); }
.voice-role-create .voice-card.female:hover { border-color: rgba(236, 72, 153, 0.4); box-shadow: rgba(236, 72, 153, 0.2) 0px 6px 20px; }
.voice-role-create .voice-card.selected { border-color: #00cae0; box-shadow: 0 0 0 2px rgba(0,202,224,0.2),0 6px 20px rgba(0,202,224,0.15); }
.voice-role-create .voice-card .voice-selected-check { position: absolute; top: 0.5rem; right: 0.5rem; width: 1.25rem; height: 1.25rem; border-radius: 50%; background: #00cae0; display: flex; align-items: center; justify-content: center; color: rgba(255,255,255,1); animation: 0.3s ease 0s 1 normal none running voice-preset-check-pop; }
.voice-role-create .voice-wave { width: 3rem; height: 3rem; border-radius: 50%; background: rgba(255,255,255,0.05); display: flex; align-items: center; justify-content: center; color: rgba(255,255,255,0.5); transition: 0.3s; }
.voice-role-create .voice-card.male .voice-wave { color: rgba(59, 130, 246, 0.7); }
.voice-role-create .voice-card.female .voice-wave { color: rgba(236, 72, 153, 0.7); }
.voice-role-create .voice-info { display: flex; flex-direction: column; align-items: center; gap: 0.125rem; text-align: center; }
.voice-role-create .voice-name { font-size: 0.8125rem; font-weight: 600; color: rgba(255,255,255,0.95); }
.voice-role-create .voice-gender { font-size: 0.5625rem; color: rgba(255,255,255,0.4); padding: 0.0625rem 0.375rem; background: rgba(255,255,255,0.05); border-radius: 1rem; }
.voice-role-create .voice-feature { font-size: 0.625rem; color: rgba(255,255,255,0.5); max-width: 100%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.voice-role-create .voice-listen { position: absolute; bottom: 0.5rem; left: 0.5rem; width: 1.625rem; height: 1.625rem; border-radius: 50%; background: rgba(0,0,0,0.4); border-width: medium; border-style: none; border-color: currentcolor; border-image: none; cursor: pointer; display: flex; align-items: center; justify-content: center; color: rgba(255,255,255,0.7); transition: 0.2s; opacity: 0; }
.voice-role-create .voice-card:hover .voice-listen { opacity: 1; }
.voice-role-create .voice-listen:hover { background: #00cae0; color: rgba(255,255,255,1); transform: scale(1.1); }
.voice-role-create footer { display: flex; justify-content: space-between; align-items: center; padding: 0.875rem 1.5rem; border-top: 1px solid rgba(255,255,255,0.06); background: rgba(0,0,0,0.2); }
.reference-voice-dialog.voice-role-create {height:auto;}
.voice-role-create h2 {margin:0;}
.voice-role-create .voice-name-section input {font-family:Arial,sans-serif;line-height:normal;}
.voice-role-create .voice-feature {width:auto;}
.voice-role-create .voice-filters {gap:normal;}
.voice-role-create .voice-selected-check[hidden] {display:none;}
.voice-role-create .voice-listen:focus-visible {opacity:1;}
.voice-role-create footer button {line-height:normal;}
.voice-role-create::backdrop {background:rgba(0,0,0,.85);backdrop-filter:blur(8px);}

.voice-role-create footer {font-size:1rem;}
.voice-role-create .gem-footer-left {display:block;gap:normal;}

/* GEM104/18 shared role selection; private content remains in the account API. */
.voice-role-select,.voice-role-select * {transition:background-color .25s,color .2s,border-color .25s,box-shadow .25s;}
.reference-voice-dialog.voice-role-select { width: 90%; max-width: 52rem; max-height: 85vh; background: linear-gradient(180deg,color-mix(in srgb,#1e1f25 98%,transparent),color-mix(in srgb,#18191e 98%,transparent)); border: 1px solid rgba(255,255,255,0.08); border-radius: 1.25rem; display: flex; flex-direction: column; overflow: hidden; box-shadow: 0 25px 50px -12px rgba(0,0,0,0.5); }
.voice-role-select header { display: flex; justify-content: space-between; align-items: center; padding: 1.25rem 1.5rem; border-bottom: 1px solid rgba(255,255,255,0.06); background: rgba(255,255,255,0.02); }
.voice-role-select .header-left { display: flex; flex-direction: column; gap: 0.25rem; }
.voice-role-select h2 { font-size: 1.125rem; font-weight: 600; color: rgba(255,255,255,0.95); margin: 0px; }
.voice-role-select .voice-subtitle { font-size: 0.75rem; color: rgba(255,255,255,0.5); }
.voice-role-select .voice-header-right { display: flex; align-items: center; gap: 1rem; }
.voice-role-select .voice-filters { display: flex; background: rgba(0,0,0,0.3); border-radius: 0.5rem; padding: 0.25rem; }
.voice-role-select .voice-filters button { padding: 0.375rem 0.875rem; border-width: medium; border-style: none; border-color: currentcolor; border-image: none; background: transparent; color: rgba(255,255,255,0.6); font-size: 0.75rem; cursor: pointer; border-radius: 0.375rem; transition: 0.2s; }
.voice-role-select .voice-filters button:hover { color: rgba(255,255,255,0.8); }
.voice-role-select .voice-filters button.active { background: #00cae0; color: rgba(255,255,255,1); }
.voice-role-select .voice-close { width: 2rem; height: 2rem; border-radius: 50%; background: rgba(255,255,255,0.08); border-width: medium; border-style: none; border-color: currentcolor; border-image: none; cursor: pointer; display: flex; align-items: center; justify-content: center; color: rgba(255,255,255,0.6); transition: 0.2s; }
.voice-role-select .voice-close:hover { background: rgba(255,255,255,0.15); color: rgba(255,255,255,0.9); }
.voice-role-select .voice-content { flex: 1 1 0%; padding: 1.5rem; overflow-y: auto; scrollbar-width: thin; scrollbar-color: rgba(0,202,224,0.3) transparent; }
.voice-role-select .voice-content::-webkit-scrollbar { width: 6px; }
.voice-role-select .voice-content::-webkit-scrollbar-thumb { background: rgba(0,202,224,0.3); border-radius: 3px; }
.voice-role-select .role-cards-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(11rem, 1fr)); gap: 1rem; }
.voice-role-select .role-card { position: relative; padding: 1.25rem; border-radius: 1rem; background: linear-gradient(135deg,rgba(255,255,255,0.04) 0%,rgba(255,255,255,0.015) 100%); border: 1px solid rgba(255,255,255,0.08); cursor: pointer; transition: 0.3s; display: flex; flex-direction: column; align-items: center; gap: 0.75rem; }
.voice-role-select .role-card:hover { transform: translateY(-2px); border-color: rgba(255,255,255,0.15); box-shadow: 0 8px 25px rgba(0,0,0,0.3); }
.voice-role-select .role-card.is-male { background: linear-gradient(135deg, rgba(59, 130, 246, 0.12), rgba(59, 130, 246, 0.03)); }
.voice-role-select .role-card.is-male:hover { border-color: rgba(59, 130, 246, 0.4); box-shadow: rgba(59, 130, 246, 0.2) 0px 8px 25px; }
.voice-role-select .role-card.is-female { background: linear-gradient(135deg, rgba(236, 72, 153, 0.12), rgba(236, 72, 153, 0.03)); }
.voice-role-select .role-card.is-female:hover { border-color: rgba(236, 72, 153, 0.4); box-shadow: rgba(236, 72, 153, 0.2) 0px 8px 25px; }
.voice-role-select .role-card.is-selected { border-color: #00cae0; box-shadow: 0 0 0 2px rgba(0,202,224,0.2),0 8px 25px rgba(0,202,224,0.15); }
.voice-role-select .selected-check { position: absolute; top: 0.625rem; right: 0.625rem; width: 1.5rem; height: 1.5rem; border-radius: 50%; background: #00cae0; display: flex; align-items: center; justify-content: center; color: rgba(255,255,255,1); animation: 0.3s ease 0s 1 normal none running voice-preset-check-pop; }
.voice-role-select .card-wave-container { width: 4rem; height: 4rem; border-radius: 50%; background: rgba(255,255,255,0.05); display: flex; align-items: center; justify-content: center; color: rgba(255,255,255,0.5); transition: 0.3s; }
.voice-role-select .role-card.is-male .card-wave-container { color: rgba(59, 130, 246, 0.7); }
.voice-role-select .role-card.is-female .card-wave-container { color: rgba(236, 72, 153, 0.7); }
.voice-role-select .card-wave-container.is-playing { color: #00cae0; background: rgba(0,202,224,0.1); }
.voice-role-select .card-info { display: flex; flex-direction: column; align-items: center; gap: 0.25rem; text-align: center; }
.voice-role-select .card-role-name { font-size: 0.9375rem; font-weight: 600; color: rgba(255,255,255,0.95); }
.voice-role-select .card-voice-name { font-size: 0.75rem; color: rgba(255,255,255,0.6); }
.voice-role-select .card-voice-gender { font-size: 0.625rem; color: rgba(255,255,255,0.4); padding: 0.125rem 0.5rem; background: rgba(255,255,255,0.05); border-radius: 1rem; }
.voice-role-select .listen-btn-card { position: absolute; bottom: 0.625rem; left: 0.625rem; width: 2rem; height: 2rem; border-radius: 50%; background: rgba(0,0,0,0.4); border-width: medium; border-style: none; border-color: currentcolor; border-image: none; cursor: pointer; display: flex; align-items: center; justify-content: center; color: rgba(255,255,255,0.7); transition: 0.2s; opacity: 0; }
.voice-role-select .role-card:hover .listen-btn-card { opacity: 1; }
.voice-role-select .listen-btn-card:hover { background: #00cae0; color: rgba(255,255,255,1); transform: scale(1.1); }
.voice-role-select .listen-btn-card.is-playing { opacity: 1; background: #00cae0; color: rgba(255,255,255,1); }
.voice-role-select .delete-btn-card { position: absolute; bottom: 0.625rem; right: 0.625rem; width: 1.75rem; height: 1.75rem; border-radius: 50%; background: rgba(239, 68, 68, 0.1); border-width: medium; border-style: none; border-color: currentcolor; border-image: none; cursor: pointer; display: flex; align-items: center; justify-content: center; color: rgba(239, 68, 68, 0.7); transition: 0.2s; opacity: 0; }
.voice-role-select .role-card:hover .delete-btn-card { opacity: 1; }
.voice-role-select .delete-btn-card:hover { background: rgba(239, 68, 68, 0.9); color: rgba(255,255,255,1); transform: scale(1.1); }
.voice-role-select footer { display: flex; justify-content: space-between; align-items: center; padding: 1rem 1.5rem; border-top: 1px solid rgba(255,255,255,0.06); background: rgba(0,0,0,0.2); }
.voice-role-select .selected-info { font-size: 0.8125rem; color: rgba(255,255,255,0.6); }
.voice-role-select .selected-info strong { color: #00cae0; font-weight: 600; }
.voice-role-select .footer-right { display: flex; gap: 0.75rem; }
.voice-role-select .voice-clear { padding: 0.5rem 1rem; border: 1px solid rgba(255,255,255,0.15); border-radius: 0.5rem; background: transparent; color: rgba(255,255,255,0.7); font-size: 0.8125rem; cursor: pointer; transition: 0.2s; }
.voice-role-select .voice-clear:hover:not(:disabled) { border-color: rgba(255,255,255,0.3); color: rgba(255,255,255,0.9); }
.voice-role-select .voice-clear:disabled { opacity: 0.4; cursor: not-allowed; }
.voice-role-select .voice-primary { padding: 0.5rem 1.5rem; border-width: medium; border-style: none; border-color: currentcolor; border-image: none; border-radius: 0.5rem; background: #00cae0; color: rgba(255,255,255,1); font-size: 0.8125rem; font-weight: 500; cursor: pointer; transition: 0.2s; }
.voice-role-select .voice-primary:hover { opacity: 0.9; transform: translateY(-1px); }
.voice-role-select .empty-state { display: flex; flex-direction: column; align-items: center; justify-content: center; padding: 3rem 1rem; gap: 1rem; }
.voice-role-select .empty-icon { opacity: 0.5; }
.voice-role-select .empty-text { font-size: 0.875rem; color: rgba(255,255,255,0.5); }
.voice-role-select .create-tip-btn { display: flex; align-items: center; gap: 0.5rem; padding: 0.5rem 1rem; font-size: 0.8125rem; border: 1px dashed rgba(0,202,224,0.4); border-radius: 0.5rem; background-color: transparent; color: #00cae0; cursor: pointer; transition: 0.2s; }
.voice-role-select .create-tip-btn:hover { background-color: rgba(0,202,224,0.1); border-color: #00cae0; }
.voice-role-select .create-tip-btn.large { padding: 0.625rem 1.25rem; font-size: 0.875rem; }
.voice-role-select h2 {margin:0;}
.voice-role-select .voice-subtitle {display:block;}
.voice-role-select .voice-filters {gap:normal;}
.voice-role-select button {line-height:normal;}
.voice-role-select footer {font-size:1rem;}
.voice-role-select .footer-left {display:block;gap:normal;}
.voice-role-select .selected-check[hidden] {display:none;}
.voice-role-select .voice-close {padding:0;}
.voice-role-select :is(.listen-btn-card,.delete-btn-card) {padding:0;}
.voice-role-select :is(.listen-btn-card,.delete-btn-card):focus-visible {opacity:1;}
.voice-role-select::backdrop {background:rgba(0,0,0,.85);backdrop-filter:blur(8px);}
.voice-role-select :is(.voice-close,.listen-btn-card,.delete-btn-card) {font-size:13.3333px;}
.reference-voice-dialog.voice-role-select footer .voice-primary {background:#00cae0;}
:is(.speech-role-panel,.speech-clone-panel),:is(.speech-role-panel,.speech-clone-panel) * {transition:background-color .25s,color .2s,border-color .25s,box-shadow .25s;}
:is(.speech-role-panel,.speech-clone-panel) {position:absolute;bottom:calc(100% + .5rem);left:0;z-index:40;min-width:10rem;max-width:14rem;padding:.625rem;border:1px solid rgba(255,255,255,.1);border-radius:.875rem;background:linear-gradient(135deg,rgba(27,28,33,.95) 0%,color-mix(in srgb,#23252a 95%,transparent) 100%);backdrop-filter:blur(10px);box-shadow:0 4px 20px rgba(0,0,0,.3);}
:is(.speech-role-panel,.speech-clone-panel) .panel-header {display:flex;justify-content:space-between;align-items:center;margin-bottom:.5rem;padding:0 .25rem;}
:is(.speech-role-panel,.speech-clone-panel) .panel-header-actions {display:flex;align-items:center;gap:.35rem;}
:is(.speech-role-panel,.speech-clone-panel) .panel-title {font-size:.6875rem;font-weight:500;color:rgba(255,255,255,.6);text-transform:uppercase;letter-spacing:.5px;}
:is(.speech-role-panel,.speech-clone-panel) .panel-count {font-size:.625rem;color:#00cae0;font-weight:600;}
:is(.speech-role-panel,.speech-clone-panel) .selected-roles-list {display:flex;flex-direction:column;gap:.375rem;}
:is(.speech-role-panel,.speech-clone-panel) .selected-role-card {display:flex;align-items:center;gap:.5rem;padding:.5rem .625rem;border-radius:.5rem;background:rgba(255,255,255,.03);border:1px solid rgba(255,255,255,.06);transition:.2s;position:relative;}
:is(.speech-role-panel,.speech-clone-panel) .selected-role-card.is-male {background:linear-gradient(135deg,rgba(59,130,246,.08),rgba(59,130,246,.02));border-color:rgba(59,130,246,.15);}
:is(.speech-role-panel,.speech-clone-panel) .selected-role-card.is-female {background:linear-gradient(135deg,rgba(236,72,153,.08),rgba(236,72,153,.02));border-color:rgba(236,72,153,.15);}
:is(.speech-role-panel,.speech-clone-panel) .role-wave-icon {width:1.5rem;height:1.5rem;display:flex;align-items:center;justify-content:center;color:#00cae0;flex-shrink:0;}
:is(.speech-role-panel,.speech-clone-panel) .role-info-mini {flex:1;min-width:0;display:flex;flex-direction:column;gap:.125rem;}
:is(.speech-role-panel,.speech-clone-panel) .role-name-mini {font-size:.75rem;font-weight:500;color:rgba(255,255,255,.9);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
:is(.speech-role-panel,.speech-clone-panel) .remove-btn {width:1.25rem;height:1.25rem;border-radius:50%;padding:0;background:rgba(255,255,255,.1);border:0;cursor:pointer;display:flex;align-items:center;justify-content:center;color:rgba(255,255,255,.5);transition:.2s;flex-shrink:0;opacity:0;font:400 13.3333px Arial;}
:is(.speech-role-panel,.speech-clone-panel) .selected-role-card:hover .remove-btn,:is(.speech-role-panel,.speech-clone-panel) .remove-btn:focus-visible {opacity:1;}
:is(.speech-role-panel,.speech-clone-panel) .remove-btn:hover {background:rgba(239,68,68,.8);color:#fff;}
:is(.speech-role-panel,.speech-clone-panel) .preset-panel-close {transition:.2s;}
@media(max-width:450px){:is(.speech-role-panel,.speech-clone-panel){display:none;}}
body[data-island-layout="speech"] #speech-actions[data-panel="gem"] .speech-action.has-selection {justify-content:center;}

/* Clone45 selection shares ownership/lifecycle; confirmation stays deferred. */
.voice-clone-select,.voice-clone-select * {transition:background-color .25s,color .2s,border-color .25s,box-shadow .25s;}
.reference-voice-dialog.voice-clone-select { width: 90%; max-height: 85vh; background: linear-gradient(180deg,color-mix(in srgb,#1e1f25 98%,transparent),color-mix(in srgb,#18191e 98%,transparent)); border: 1px solid rgba(255,255,255,0.08); border-radius: 1.25rem; display: flex; flex-direction: column; overflow: hidden; box-shadow: 0 25px 50px -12px rgba(0,0,0,0.5); }
.reference-voice-dialog.voice-clone-select { max-width: 52rem; }
.voice-clone-select header { display: flex; justify-content: space-between; align-items: center; padding: 1.25rem 1.5rem; border-bottom: 1px solid rgba(255,255,255,0.06); background: rgba(255,255,255,0.02); flex-shrink: 0; }
.voice-clone-select .header-left { display: flex; flex-direction: column; gap: 0.25rem; }
.voice-clone-select h2 { font-size: 1.25rem; font-weight: 600; color: rgba(255,255,255,0.95); margin: 0px; }
.voice-clone-select .voice-subtitle { font-size: 0.875rem; color: rgba(255,255,255,0.5); }
.voice-clone-select .voice-close { width: 2rem; height: 2rem; border-radius: 50%; background: rgba(255,255,255,0.08); border-width: medium; border-style: none; border-color: currentcolor; border-image: none; cursor: pointer; display: flex; align-items: center; justify-content: center; color: rgba(255,255,255,0.6); transition: 0.2s; }
.voice-clone-select .voice-close:hover:not(:disabled) { background: rgba(255,255,255,0.15); color: rgba(255,255,255,0.9); }
.voice-clone-select .voice-close:disabled { opacity: 0.3; cursor: not-allowed; }
.voice-clone-select footer { display: flex; justify-content: space-between; align-items: center; padding: 1rem 1.5rem; border-top: 1px solid rgba(255,255,255,0.06); background: rgba(0,0,0,0.2); flex-shrink: 0; }
.voice-clone-select .footer-left { display: flex; align-items: center; }
.voice-clone-select .footer-right { display: flex; align-items: center; gap: 0.625rem; }
.voice-clone-select .selected-info { font-size: 0.8125rem; color: rgba(255,255,255,0.6); }
.voice-clone-select .selected-info strong { color: rgba(168, 85, 247, 0.9); font-weight: 600; }
.voice-clone-select footer .voice-cancel { padding: 0.625rem 1.25rem; border: 1px solid rgba(255,255,255,0.15); border-radius: 0.5rem; background: transparent; color: rgba(255,255,255,0.7); font-size: 0.9375rem; cursor: pointer; transition: 0.2s; }
.voice-clone-select footer .voice-cancel:hover:not(:disabled) { border-color: rgba(255,255,255,0.3); color: rgba(255,255,255,0.9); }
.voice-clone-select footer .voice-cancel:disabled { opacity: 0.4; cursor: not-allowed; }
.voice-clone-select footer .voice-primary { padding: 0.625rem 1.5rem; border-width: medium; border-style: none; border-color: currentcolor; border-image: none; border-radius: 0.5rem; background: linear-gradient(135deg, rgba(168, 85, 247, 0.9), rgba(139, 92, 246, 0.9)); color: rgba(255,255,255,1); font-size: 0.9375rem; font-weight: 500; cursor: pointer; transition: 0.2s; }
.voice-clone-select footer .voice-primary:hover:not(:disabled) { opacity: 0.9; transform: translateY(-1px); box-shadow: rgba(168, 85, 247, 0.3) 0px 4px 15px; }
.voice-clone-select footer .voice-primary:disabled { opacity: 0.4; cursor: not-allowed; }
.voice-clone-select .voice-content { flex: 1 1 0%; min-height: 0px; padding: 1.5rem; overflow-y: auto; scrollbar-width: thin; scrollbar-color: rgba(168, 85, 247, 0.3) transparent; }
.voice-clone-select .voice-content::-webkit-scrollbar { width: 6px; }
.voice-clone-select .voice-content::-webkit-scrollbar-thumb { background: rgba(168, 85, 247, 0.3); border-radius: 3px; }
.voice-clone-select .voice-cards-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(12rem, 1fr)); gap: 1rem; }
.voice-clone-select .clone-voice-card { position: relative; padding: 1.25rem; border-radius: 1rem; background: linear-gradient(135deg,rgba(255,255,255,0.04),rgba(255,255,255,0.015)); border: 2px solid rgba(255,255,255,0.08); cursor: pointer; transition: 0.3s; display: flex; flex-direction: column; align-items: center; gap: 0.75rem; }
.voice-clone-select .clone-voice-card:hover { transform: translateY(-2px); border-color: rgba(255,255,255,0.15); box-shadow: 0 8px 25px rgba(0,0,0,0.3); }
.voice-clone-select .clone-voice-card.is-selected { border-color: rgba(168, 85, 247, 0.7); box-shadow: rgba(168, 85, 247, 0.2) 0px 0px 0px 2px, rgba(168, 85, 247, 0.15) 0px 8px 25px; background: linear-gradient(135deg, rgba(168, 85, 247, 0.08), rgba(168, 85, 247, 0.02)); }
.voice-clone-select .clone-voice-card.is-expired { opacity: 0.5; cursor: not-allowed; }
.voice-clone-select .clone-voice-card.is-permanent { background: linear-gradient(135deg, rgba(34, 197, 94, 0.08), rgba(34, 197, 94, 0.02)); }
.voice-clone-select .selected-check { position: absolute; top: 0.625rem; right: 0.625rem; width: 1.5rem; height: 1.5rem; border-radius: 50%; background: rgba(168, 85, 247, 0.9); display: flex; align-items: center; justify-content: center; color: rgba(255,255,255,1); animation: 0.3s ease 0s 1 normal none running voice-preset-check-pop; }
.voice-clone-select .status-tag { position: absolute; top: 0.625rem; left: 0.625rem; font-size: 0.625rem; padding: 0.1875rem 0.5rem; border-radius: 1rem; font-weight: 600; }
.voice-clone-select .status-tag.permanent { background: rgba(34, 197, 94, 0.2); color: rgba(34, 197, 94, 0.9); }
.voice-clone-select .status-tag.temporary { background: rgba(251, 191, 36, 0.2); color: rgba(251, 191, 36, 0.9); }
.voice-clone-select .status-tag.expiring { background: rgba(239, 68, 68, 0.2); color: rgba(239, 68, 68, 0.9); }
.voice-clone-select .status-tag.expired { background: rgba(107, 114, 128, 0.2); color: rgba(107, 114, 128, 0.9); }
.voice-clone-select .card-wave { width: 4rem; height: 4rem; border-radius: 50%; background: rgba(168, 85, 247, 0.08); display: flex; align-items: center; justify-content: center; color: rgba(168, 85, 247, 0.6); }
.voice-clone-select .clone-voice-card.is-permanent .card-wave { background: rgba(34, 197, 94, 0.08); color: rgba(34, 197, 94, 0.6); }
.voice-clone-select .card-info { display: flex; flex-direction: column; align-items: center; gap: 0.25rem; text-align: center; }
.voice-clone-select .card-name { font-size: 0.9375rem; font-weight: 600; color: rgba(255,255,255,0.95); }
.voice-clone-select .card-date { font-size: 0.625rem; color: rgba(255,255,255,0.4); }
.voice-clone-select .listen-btn, .voice-clone-select .delete-btn { position: absolute; border-radius: 50%; border-width: medium; border-style: none; border-color: currentcolor; border-image: none; cursor: pointer; display: flex; align-items: center; justify-content: center; transition: 0.2s; opacity: 0; }
.voice-clone-select .clone-voice-card:hover .listen-btn, .voice-clone-select .clone-voice-card:hover .delete-btn { opacity: 1; }
.voice-clone-select .listen-btn { bottom: 0.625rem; left: 0.625rem; width: 2rem; height: 2rem; background: rgba(0,0,0,0.4); color: rgba(255,255,255,0.7); }
.voice-clone-select .listen-btn:hover { background: rgba(168, 85, 247, 0.9); color: rgba(255,255,255,1); transform: scale(1.1); }
.voice-clone-select .delete-btn { bottom: 0.625rem; right: 0.625rem; width: 1.75rem; height: 1.75rem; background: rgba(239, 68, 68, 0.1); color: rgba(239, 68, 68, 0.7); }
.voice-clone-select .delete-btn:hover { background: rgba(239, 68, 68, 0.9); color: rgba(255,255,255,1); transform: scale(1.1); }
.voice-clone-select .empty-state { display: flex; flex-direction: column; align-items: center; justify-content: center; padding: 3rem 1rem; gap: 1rem; }
.voice-clone-select .empty-text { font-size: 0.875rem; color: rgba(255,255,255,0.5); }
.voice-clone-select .create-tip-btn { display: flex; align-items: center; gap: 0.5rem; padding: 0.5rem 1rem; font-size: 0.8125rem; border: 1px dashed rgba(168, 85, 247, 0.4); border-radius: 0.5rem; background: transparent; color: rgba(168, 85, 247, 0.8); cursor: pointer; transition: 0.2s; }
.voice-clone-select .create-tip-btn:hover { background: rgba(168, 85, 247, 0.1); border-color: rgba(168, 85, 247, 0.6); }
.voice-clone-select h2 {margin:0;}
.voice-clone-select .voice-subtitle {display:block;}
.voice-clone-select footer {font-size:1rem;}
.voice-clone-select .footer-left {gap:normal;}
.voice-clone-select :is(.voice-cancel,.voice-primary) {line-height:normal;}
.voice-clone-select :is(.voice-close,.listen-btn,.delete-btn) {padding:0;font:400 13.3333px Arial;}
.voice-clone-select .selected-check[hidden] {display:none;}
.voice-clone-select :is(.listen-btn,.delete-btn):focus-visible {opacity:1;}
.voice-clone-select::backdrop {background:rgba(0,0,0,.85);backdrop-filter:blur(8px);}

.speech-clone-panel {background:linear-gradient(135deg,rgba(27,28,33,.95),color-mix(in srgb,#23252a 95%,transparent));}
.speech-clone-panel .selected-voice-card {display:flex;align-items:center;gap:.5rem;padding:.5rem .625rem;border-radius:.5rem;background:linear-gradient(135deg,rgba(168,85,247,.1),rgba(168,85,247,.02));border:1px solid rgba(168,85,247,.2);}
.speech-clone-panel .voice-wave-icon {width:1.5rem;height:1.5rem;display:flex;align-items:center;justify-content:center;color:rgba(168,85,247,.8);flex-shrink:0;}
.speech-clone-panel .selected-name {font-size:.75rem;font-weight:500;color:rgba(255,255,255,.9);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1;}
.speech-clone-panel .selected-voice-card:hover .remove-btn {opacity:1;}
body[data-island-layout="speech"] #speech-actions[data-panel="clone"] .speech-action.has-selection {justify-content:center;}

/* Shared public directory waiting/empty states, isolated from occupied cards. */
.voice-role-select .loading-state, .voice-clone-select .loading-state {display:flex;flex-direction:column;align-items:center;justify-content:center;padding:3rem 1rem;gap:.75rem;color:rgba(255,255,255,.6);font-size:.875rem;line-height:1.5;}
.voice-role-select .loading-spinner, .voice-clone-select .loading-spinner {width:2.5rem;height:2.5rem;border:3px solid rgba(255,255,255,.2);border-top-color:#00cae0;border-radius:50%;animation:speech-list-spin .8s linear infinite;}
.voice-clone-select .loading-spinner {border-top-color:rgba(168,85,247,.8);}
.voice-role-select .empty-state, .voice-clone-select .empty-state {min-height:0;font-size:1rem;line-height:1.5;color:#000;}
.voice-clone-select .create-tip-btn {line-height:normal;}
@keyframes speech-list-spin {to {transform:rotate(360deg);}}
