/* PushPad Studio — contenedor (barra superior + tres secciones). Tema oscuro de PushPad, Roboto Mono.
   El color vive en la navegación magnética: el resto de la interfaz no cambia de tono por sección. */
@font-face{font-family:'PP Roboto Mono';src:url('assets/fonts/RobotoMono-VariableFont_wght.ttf') format('truetype');font-weight:100 700}
:root{
  --bg:#1b1b1b;--bar:#161616;--card:#222;--field:#141414;--line:#2b2b2b;--line-strong:#383838;
  --text:#ececec;--muted:#9a9a9a;--faint:#6d6d6d;--lime:var(--pp-green,#79C986);--lime-2:var(--pp-yellow,#F3E15B);   /* acento de Transcripción (lib/pushpad-brand.css) */
  --danger:#ff8f86;--warn:#ffcf6b;
  --mono:'PP Roboto Mono','Roboto Mono',"SF Mono",SFMono-Regular,ui-monospace,Menlo,monospace;
  --barH:52px;
}
*{box-sizing:border-box}
html,body{margin:0;height:100%;overscroll-behavior:none;background:var(--bg);color:var(--text);font-family:var(--mono);-webkit-font-smoothing:antialiased;overflow:hidden}
button,select,input{font-family:var(--mono)}
button{cursor:pointer;-webkit-appearance:none;appearance:none}
[hidden]{display:none!important}

/* ── Barra superior fija ── */
.sx-bar{position:fixed;inset:0 0 auto 0;height:var(--barH);display:grid;grid-template-columns:1fr auto 1fr;align-items:center;padding:0 14px 0 18px;background:var(--bar);border-bottom:1px solid var(--line);z-index:20;user-select:none;-webkit-user-select:none}
.sx-left{display:flex;align-items:center;gap:12px;min-width:0}
.sx-brand{font:400 15px/1 var(--mono);letter-spacing:-.01em;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}
.sx-brand b{font-weight:700;color:var(--text)}
/* título contextual «PushPad Studio | Sección» */
.sx-crumb{color:var(--text)}
.sx-crumb i{font-style:normal;color:#4a4a4a;margin:0 .55em}
.sx-back{flex:0 0 auto;display:inline-flex;align-items:center;gap:5px;height:28px;padding:0 11px 0 7px;border:1px solid var(--line);border-radius:999px;background:transparent;color:var(--muted);font:600 10.5px/1 var(--mono)}
.sx-back svg{width:14px;height:14px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.sx-back:hover{color:var(--text);border-color:var(--line-strong);background:#1f1f1f}
.sx-back:focus-visible{outline:2px solid rgba(255,255,255,.35);outline-offset:2px}
.sx-nav{display:flex;justify-content:center}
.sx-right{display:flex;align-items:center;justify-content:flex-end;gap:10px;min-width:0}
.sx-save{color:var(--faint);font:500 10px/1 var(--mono);white-space:nowrap}
.sx-save.dirty{color:var(--warn)}
.sx-save.error{color:var(--danger)}
#sxAccount{display:flex;align-items:center;gap:6px;min-width:0;height:30px;padding:0 4px 0 10px;border:1px solid var(--line);border-radius:999px;font:500 10.5px/1 var(--mono);color:var(--muted)}
.sx-account .accountText,#sxAccount .accountText{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:240px}
.sx-account .accountText b,#sxAccount .accountText b{color:var(--text)}
#sxAccount .accountAction,#sxAccount .accountLogout{height:22px;padding:0 9px;border:1px solid var(--line-strong);border-radius:999px;background:transparent;color:var(--text);font:600 10px/1 var(--mono)}
#sxAccount .accountLogout{border-color:transparent;color:var(--faint)}
#sxAccount .accountAction:hover,#sxAccount .accountLogout:hover{color:var(--text);border-color:#4a4a4a}
#sxAccount .accountText{font:500 10.5px/1 var(--mono);color:var(--muted)}
#sxAccount .accountText b{font-weight:700;color:var(--text)}
.sx-close{width:30px;height:30px;display:grid;place-items:center;border:1px solid var(--line);border-radius:999px;background:transparent;color:var(--muted)}
.sx-close:hover{color:var(--text);border-color:var(--line-strong)}
.sx-close svg,.sx-icon svg{width:15px;height:15px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}

/* ── Navegación magnética (ver lib/studio/magnetic.js; adaptado de Bencho, MIT) ──
   TWO ELEMENTS, TWO TRANSFORMS. El chip lo mueve el muelle (transform en línea) y la piel lleva el «lean» del
   cursor por CSS: nada de aquí puede tocar el transform de .mag-chip ni usar `transition: all`. */
.mag{position:relative}
.mag-chip{position:absolute;padding:0;border:0;background:none;cursor:pointer;-webkit-tap-highlight-color:transparent;outline:none;will-change:transform}
.mag-skin{position:absolute;inset:0;display:grid;place-items:center;border-radius:50%;overflow:hidden;
  /* plain, until it is the one: un disco gris carbón con el ícono en gris claro */
  background:#262626;box-shadow:inset 0 0 0 1px rgba(255,255,255,.06);color:#bdbdbd;
  transition:transform 220ms cubic-bezier(.22,1,.36,1),background-color 220ms ease,color 220ms ease,box-shadow 220ms ease}
/* NOTHING ANSWERS A CURSOR ON ITS OWN: el hover no escala (rompería el espaciado), solo cambia el tono */
.mag-chip:hover .mag-skin{background:#2e2e2e;color:#e6e6e6}
.mag-chip:focus-visible .mag-skin{box-shadow:inset 0 0 0 1px rgba(255,255,255,.06),0 0 0 2px rgba(255,255,255,.35)}
/* el degradado «líquido»: tres manchas radiales con los colores de la sección, que entran a la vez que salen las del
   anterior (240 ms) — un color que llega mientras otro se va, no un corte */
.mag-ink{position:absolute;inset:-12%;border-radius:50%;opacity:0;transition:opacity 260ms ease;
  background:
    radial-gradient(60% 55% at 30% 30%,var(--c1) 0%,transparent 70%),
    radial-gradient(55% 60% at 75% 40%,var(--c2) 0%,transparent 72%),
    radial-gradient(70% 60% at 45% 85%,var(--c3) 0%,transparent 75%),
    linear-gradient(135deg,var(--c1),var(--c3))}
.mag-glow{position:absolute;inset:0;border-radius:50%;opacity:0;transition:opacity 260ms ease;background:radial-gradient(50% 45% at 35% 28%,rgba(255,255,255,.45),transparent 70%)}
.mag-icon{position:relative;display:grid;place-items:center;width:17px;height:17px}
.mag-icon svg{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}
.mag-chip[data-on] .mag-ink,.mag-chip[data-on] .mag-glow{opacity:1}
.mag-chip[data-on] .mag-skin{color:#000;box-shadow:0 0 18px -2px var(--glow,rgba(255,255,255,.3))}
.mag-chip[data-on] .mag-icon svg{filter:none}
/* tooltip discreto (no texto permanente) */
.mag-chip::after{content:attr(data-tip);position:absolute;left:50%;top:calc(100% + 9px);transform:translateX(-50%);padding:4px 7px;border-radius:6px;background:#0d0d0d;border:1px solid var(--line-strong);color:var(--text);font:500 10px/1 var(--mono);white-space:nowrap;opacity:0;pointer-events:none;transition:opacity 140ms ease 280ms}
.mag-chip:hover::after,.mag-chip:focus-visible::after{opacity:1}
@media (prefers-reduced-motion: reduce){.mag-skin{transition-duration:160ms}}

/* ── Secciones ── */
.sx-main{position:absolute;inset:var(--barH) 0 0 0;overflow:hidden}
.sx-sec{position:absolute;inset:0;overflow:hidden}
.sx-frame{position:absolute;inset:0;width:100%;height:100%;border:0;background:var(--bg)}
/* Sin transcripción abierta: la vista se ve (atenuada y sin funciones) y encima se elige cuál editar */
.sx-frame.locked{opacity:.28;pointer-events:none;filter:grayscale(.4)}
.sx-emptyState{position:absolute;inset:0;z-index:2;display:flex;align-items:center;justify-content:center;background:rgba(10,10,10,.25)}
.sx-pick{display:flex;flex-direction:column;align-items:stretch;gap:10px;width:min(360px,calc(100% - 32px));padding:20px;border:1px solid var(--line-strong);border-radius:14px;background:rgba(22,22,22,.96);box-shadow:0 18px 50px rgba(0,0,0,.55);color:var(--muted);font:400 12px/1.5 var(--mono);text-align:center}
.sx-pick b{color:var(--text);font:700 15px/1 var(--mono)}
.sx-pick .sx-select{height:34px;width:100%}

/* ── Controles comunes ── */
.sx-btn{height:30px;padding:0 12px;border:1px solid var(--line-strong);border-radius:8px;background:var(--card);color:var(--text);font:600 11px/1 var(--mono)}
.sx-btn:hover{border-color:#4a4a4a}
.sx-btn:disabled{opacity:.4;cursor:default}
.sx-small{height:24px;padding:0 9px;font-size:10px;border-radius:7px}
.sx-danger{color:var(--danger)}
.sx-primary{height:42px;padding:0 22px;border:0;border-radius:11px;background:var(--lime);color:var(--pp-ink,#1C1A17);font:700 13px/1 var(--mono)}
.sx-primary:disabled{opacity:.35;cursor:default}
.sx-primary.sx-inline{height:30px;font-size:11px;padding:0 16px;border-radius:8px}
.sx-select{height:30px;padding:0 8px;border:1px solid var(--line-strong);border-radius:8px;background:var(--field);color:var(--text);font:500 11px/1 var(--mono);max-width:100%}
.sx-icon{width:30px;height:30px;display:grid;place-items:center;border:1px solid var(--line);border-radius:8px;background:transparent;color:var(--muted)}
.sx-icon:hover:not(:disabled){color:var(--text);border-color:var(--line-strong)}
.sx-icon:disabled{opacity:.35;cursor:default}
.sx-tag{height:30px;padding:0 9px;border:1px solid var(--line);border-radius:8px;background:transparent;color:var(--muted);font:700 9.5px/1 var(--mono)}
.sx-tag:hover{color:var(--text);border-color:var(--line-strong)}
.sx-link{border:0;background:none;color:var(--muted);font:500 10.5px/1 var(--mono);text-decoration:underline;text-underline-offset:3px;padding:0}
.sx-link:hover{color:var(--text)}
.sx-search{height:30px;flex:0 1 260px;min-width:120px;padding:0 10px;border:1px solid var(--line);border-radius:8px;background:var(--field);color:var(--text);font:500 11px/1 var(--mono);outline:none}
.sx-search:focus{border-color:var(--line-strong)}
.sx-status{position:absolute;left:0;right:0;bottom:0;margin:0;padding:7px 18px;min-height:28px;color:var(--muted);font:500 10.5px/1.4 var(--mono);background:linear-gradient(transparent,rgba(0,0,0,.35));pointer-events:none}
.sx-status.error{color:var(--danger)}.sx-status.ok{color:var(--lime)}
.sx-progress{position:relative;height:22px;border-radius:7px;background:#232323;overflow:hidden}
.sx-progress i{position:absolute;inset:0 auto 0 0;width:0;background:linear-gradient(90deg,var(--pp-yellow,#F3E15B),var(--pp-green,#79C986));transition:width .3s}
.sx-progress span{position:relative;display:block;padding:0 9px;line-height:22px;color:#111;font:700 10px/22px var(--mono);mix-blend-mode:normal}

/* ── Transcripción: antes ── */
.tx-empty{position:absolute;inset:0 0 28px 0;overflow:auto;padding:28px 24px}
.tx-home{display:grid;grid-template-columns:minmax(300px,400px) minmax(0,1fr);gap:28px;align-items:start;width:min(1120px,100%);min-height:100%;margin:0 auto}
.tx-h{display:flex;align-items:baseline;gap:8px;margin:0 0 2px;color:var(--text);font:700 13px/1.2 var(--mono);letter-spacing:-.01em}
.tx-import{display:flex;flex-direction:column;gap:12px}
.tx-drop{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;min-height:190px;padding:24px;border:1px dashed #3b3b3b;border-radius:16px;background:#1f1f1f;color:var(--muted);text-align:center;cursor:pointer;outline:none;transition:border-color .15s,background-color .15s}
.tx-drop:hover,.tx-drop:focus,.tx-drop.over{border-color:#5a5a5a;background:#222}
.tx-drop svg{width:30px;height:30px;fill:none;stroke:#bdbdbd;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}
.tx-drop b{color:var(--text);font:700 14px/1.3 var(--mono);word-break:break-all}
.tx-drop span{font:400 11px/1.4 var(--mono)}
.tx-drop.chosen{border-style:solid;border-color:rgba(121,201,134,.5)}
.tx-row{display:flex;gap:8px}
.tx-row>*{flex:1 1 0;min-width:0}
.tx-langRow{align-items:center}
.tx-langRow label{flex:0 0 auto;color:var(--muted);font:500 11px/1 var(--mono)}
/* Biblioteca */
.tx-lib{display:flex;flex-direction:column;gap:12px;min-width:0}
.tx-libHead{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:30px}
.tx-libCount{color:var(--faint);font:500 11px/1 var(--mono)}
.tx-libSearch{width:min(260px,55%);height:30px}
.tx-libList{display:flex;flex-direction:column;gap:6px}
.tx-card{display:flex;align-items:center;gap:12px;width:100%;min-height:58px;padding:10px 12px 10px 10px;border:1px solid var(--line);border-radius:12px;background:#1f1f1f;color:var(--text);text-align:left;transition:background-color .15s,border-color .15s}
.tx-card:hover{background:#242424;border-color:var(--line-strong)}
.tx-card:focus-visible{outline:2px solid rgba(121,201,134,.55);outline-offset:1px}
.tx-card.is-open{border-color:rgba(121,201,134,.45);background:linear-gradient(90deg,rgba(121,201,134,.07),#1f1f1f 60%)}
.tx-cardIcon{flex:0 0 36px;width:36px;height:36px;display:grid;place-items:center;border-radius:9px;background:#2a2a2a;color:#cfcfcf}
.tx-card.is-open .tx-cardIcon{background:linear-gradient(135deg,var(--pp-yellow,#F3E15B),var(--pp-green,#79C986));color:var(--pp-ink,#1C1A17)}
.tx-cardIcon svg,.tx-cardGo{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.tx-cardMain{flex:1 1 auto;min-width:0;display:flex;flex-direction:column;gap:5px}
.tx-cardMain b{font:600 12.5px/1.25 var(--mono);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.tx-cardMain i{font:400 10.5px/1.2 var(--mono);font-style:normal;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.tx-cardTag{flex:0 0 auto;padding:4px 8px;border-radius:999px;font:600 9.5px/1 var(--mono);white-space:nowrap}
.tx-cardTag.on{background:rgba(121,201,134,.14);color:var(--lime)}
.tx-cardTag.warn{background:rgba(255,207,107,.12);color:var(--warn)}
.tx-cardGo{flex:0 0 auto;color:var(--faint)}
.tx-card:hover .tx-cardGo{color:var(--text)}
.tx-card.is-missing .tx-cardMain b{color:#cfcfcf}
.tx-libEmpty{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;min-height:190px;padding:24px;border:1px solid var(--line);border-radius:14px;background:#1d1d1d;color:var(--muted);text-align:center;font:400 11px/1.5 var(--mono)}
.tx-libEmpty b{color:var(--text);font:700 13px/1.3 var(--mono)}
@media (max-width:900px){.tx-home{grid-template-columns:1fr}}
.tx-powered{margin:2px 0 0;text-align:center;color:#5f5f5f;font:400 10px/1 var(--mono);letter-spacing:.02em}

/* ── Transcripción: después ── */
.tx-work{position:absolute;inset:0 0 28px 0;display:grid;grid-template-columns:minmax(300px,36%) 1fr;gap:0}
.tx-side{display:flex;flex-direction:column;gap:10px;padding:16px;border-right:1px solid var(--line);min-height:0;overflow:auto}
.sx-player{position:relative;width:100%;aspect-ratio:16/9;border-radius:12px;background:#0b0b0b;overflow:hidden;display:grid;place-items:center}
.sx-player video{width:100%;height:100%;object-fit:contain;display:block}
.sx-player .sx-noVideo{position:absolute;color:#555;font:500 11px/1 var(--mono)}
.sx-player.hasVideo .sx-noVideo{display:none}
.sx-transport{display:flex;align-items:center;gap:10px}
.sx-transport input[type=range]{flex:1;accent-color:#d8d8d8}
.sx-time{font:500 11px/1 var(--mono);color:var(--text);min-width:64px}
#txPlay .pa{display:none}#txPlay.playing .pl{display:none}#txPlay.playing .pa{display:inline}
#txPlay svg path{fill:currentColor;stroke:none}
.tx-file{display:flex;align-items:center;justify-content:space-between;gap:10px;color:var(--muted);font:500 10.5px/1.3 var(--mono);min-width:0}
.tx-file span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.tx-pending{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:9px 10px;border:1px solid #4d4325;border-radius:10px;background:rgba(255,207,107,.06);color:var(--warn);font:500 10.5px/1.35 var(--mono)}
.tx-main{display:flex;flex-direction:column;min-width:0;min-height:0}
.tx-tools{display:flex;align-items:center;gap:6px;padding:12px 16px;border-bottom:1px solid var(--line)}
.tx-searchInfo{color:var(--faint);font:500 10px/1 var(--mono);white-space:nowrap}
.tx-spacer{flex:1}
/* La barra de selección FLOTA sobre el texto: si empujara el texto, el segundo clic de un doble clic caería en otra palabra */
.tx-main{position:relative}
/* Cápsula contextual de la selección: anclada a la palabra (debajo, o encima si no cabe), se recoloca al desplazar
   y se oculta si la palabra sale de la vista o la selección deja de existir. */
.tx-sel{position:fixed;z-index:50;display:flex;align-items:center;gap:2px;padding:3px;border:1px solid #3c3c3c;border-radius:999px;background:#151515;box-shadow:0 10px 28px rgba(0,0,0,.55);color:var(--muted);font:600 10px/1 var(--mono);white-space:nowrap}
.tx-sel[hidden]{display:none}
.tx-selInfo{padding:0 8px 0 10px;color:var(--faint)}
.tx-selBtn{display:inline-flex;align-items:center;gap:5px;height:26px;padding:0 10px;border:0;border-radius:999px;background:transparent;color:var(--text);font:600 10.5px/1 var(--mono);cursor:pointer}
.tx-selBtn:hover{background:#262626}
.tx-selBtn svg{width:13px;height:13px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round}
.tx-selBtn.isMain{background:var(--pp-green,#79C986);color:#121212}
.tx-selBtn.isMain:hover{filter:brightness(1.07);background:var(--pp-green,#79C986)}
.tx-selBtn.isDanger{color:#ff9a8a}
.tx-selBtn[aria-disabled="true"]{opacity:.4;cursor:help}
.tx-selBtn.isMain[aria-disabled="true"]{background:#2a2a2a;color:var(--muted)}
.tx-text{flex:1;overflow:auto;padding:18px 28px 60px;font:400 15px/1.95 var(--mono);color:#d6d6d6;outline:none;user-select:none;-webkit-user-select:none}
.tx-text p{margin:0 0 18px;max-width:980px}
.tx-text .ts{display:inline-block;width:62px;color:#585858;font:500 10px/1 var(--mono);vertical-align:2px;cursor:pointer}
.tx-text .ts:hover{color:var(--muted)}
.tk{border-radius:4px;padding:1px 1px;cursor:pointer;transition:background-color .1s}
.tk:hover{background:#2b2b2b}
.tk.now{background:#3a3a3a;color:#fff}
.tk.sel{background:rgba(121,201,134,.22);color:#fff}
.tk.hit{box-shadow:inset 0 -2px 0 var(--warn)}
.tk[data-t="estimated"]{text-decoration:underline dotted #8a7a3c;text-underline-offset:5px}
.tk[data-t="manual"]{text-decoration:underline solid #3d5f85;text-underline-offset:5px}
.tk.fixed{color:#e9ffd0}
.tk.ev{color:#6b6b6b;font-style:italic}
/* + para insertar: invisible hasta que el cursor pasa entre dos palabras */
/* el separador ES el espacio entre palabras (así el texto corta líneas con normalidad); al pasar el cursor muestra «+» */
.ins{position:relative;cursor:text;font-weight:400}
.ins::after{content:'+';position:absolute;left:50%;top:50%;width:14px;height:16px;margin:-8px 0 0 -7px;border-radius:4px;background:var(--lime);color:#111;font:700 12px/16px var(--mono);text-align:center;opacity:0;transition:opacity .08s;pointer-events:none}
.ins:hover::after{opacity:1}
.ins0{display:inline-block;width:6px}
.tk-edit{font:400 15px/1.4 var(--mono);color:#fff;background:#2f2f2f;border:1px solid rgba(121,201,134,.5);border-radius:5px;padding:0 4px;outline:none;min-width:40px}
/* insertar palabra: campo + ✕ / ✓ en una sola cápsula */
.tk-insert{display:inline-flex;align-items:center;gap:3px;margin:0 3px;padding:2px;border:1px solid rgba(121,201,134,.5);border-radius:8px;background:#232323;vertical-align:baseline;box-shadow:0 4px 14px rgba(0,0,0,.35)}
.tk-insert .tk-edit{border:0;background:#2f2f2f;height:26px}
.tk-btn{width:26px;height:26px;display:grid;place-items:center;padding:0;border:0;border-radius:6px;background:#2c2c2c;color:var(--muted);transition:background-color .12s,color .12s,transform .1s}
.tk-btn svg{width:14px;height:14px;fill:none;stroke:currentColor;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round}
.tk-no:hover{background:#3a2626;color:var(--danger)}
.tk-ok{background:var(--lime);color:var(--pp-ink,#1C1A17)}
.tk-ok:hover:not(:disabled){filter:brightness(1.08)}
.tk-ok:disabled{background:#2c2c2c;color:#555;cursor:default}
.tk-btn:active:not(:disabled){transform:scale(.92)}
.tk-btn:focus-visible{outline:2px solid rgba(121,201,134,.6);outline-offset:1px}

/* ── Ajustar sincronía ── */
.sy-modal{position:fixed;inset:0;z-index:50;display:grid;place-items:center;background:rgba(0,0,0,.55)}
.sy-card{width:min(1500px,94vw);display:flex;flex-direction:column;gap:12px;padding:16px;border:1px solid var(--line-strong);border-radius:14px;background:#1d1d1d;box-shadow:0 20px 60px rgba(0,0,0,.5)}
.sy-card header{display:flex;align-items:baseline;gap:12px}
.sy-card header b{font:700 13px/1 var(--mono)}
.sy-card header span{color:var(--muted);font:500 10.5px/1 var(--mono)}
.sy-card footer{display:flex;align-items:center;gap:8px}
.sy-wave{position:relative;height:230px;border-radius:10px;background:#111;overflow:hidden;user-select:none;-webkit-user-select:none}
.sy-wave canvas{position:absolute;inset:0;width:100%;height:100%}
.sy-words{position:absolute;inset:auto 0 0 0;height:58px}
.sy-wave{cursor:text}
.sy-w{position:absolute;bottom:8px;height:40px;border-radius:7px;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.18);color:#cfcfcf;font:500 11px/38px var(--mono);text-align:center;white-space:nowrap;overflow:hidden;cursor:grab;box-sizing:border-box;padding:0 8px;text-overflow:clip}
.sy-w:hover{background:rgba(255,255,255,.14)}
.sy-w:active{cursor:grabbing}
.sy-w.tg{border-color:rgba(121,201,134,.55)}
.sy-w.on{background:rgba(121,201,134,.22);border-color:var(--lime);color:#fff;z-index:2}
.sy-w span{pointer-events:none}
.sy-w .eg{position:absolute;top:0;bottom:0;width:8px;cursor:ew-resize;z-index:1}
.sy-w .eg.l{left:0}.sy-w .eg.r{right:0}
.sy-w .eg::after{content:'';position:absolute;top:10px;bottom:10px;left:3px;width:2px;border-radius:1px;background:rgba(255,255,255,.35)}
.sy-w.on .eg::after{background:var(--lime)}
.sy-head{position:absolute;top:0;bottom:0;width:2px;background:#ff5a3c;left:0;pointer-events:none;z-index:3}
.tx-import>.tx-h,.tx-libHead .tx-h{min-height:30px;margin:0;align-items:center}

/* ── «Transcribir composición actual» ── */
.sx-modal{position:fixed;inset:0;z-index:9000;display:flex;align-items:center;justify-content:center;background:rgba(0,0,0,.6)}
.sx-modal[hidden]{display:none}
.sx-modalCard{width:min(460px,calc(100vw - 32px));max-height:calc(100vh - 32px);overflow:auto;display:flex;flex-direction:column;gap:12px;padding:18px;border:1px solid #3a3a3a;border-radius:14px;background:#232323;box-shadow:0 18px 60px rgba(0,0,0,.6)}
.sx-modalTitle{font:800 13.5px/1.3 var(--mono);color:#fff}
.tx-compInfo{display:grid;grid-template-columns:auto 1fr;gap:5px 12px;margin:0;font:500 11px/1.35 var(--mono)}
.tx-compInfo dt{color:var(--muted)}
.tx-compInfo dd{margin:0;color:var(--text);min-width:0;overflow-wrap:anywhere}
.tx-compRange{display:grid;gap:6px;margin:0;padding:10px;border:1px solid #3a3a3a;border-radius:10px}
.tx-compRange legend{padding:0 4px;color:var(--muted);font:700 10px/1 var(--mono);text-transform:uppercase;letter-spacing:.05em}
.tx-compRange label{display:flex;gap:8px;align-items:center;font:600 11px/1.3 var(--mono);cursor:pointer}
.tx-compRange em{font-style:normal;color:var(--muted);font-weight:500}
.tx-compRange input:disabled+span{opacity:.45}
.tx-compExisting{margin:0;padding:8px 10px;border:1px solid rgba(121,201,134,.45);border-radius:9px;background:rgba(121,201,134,.07);font:500 10.5px/1.45 var(--mono)}
.tx-compCost{margin:0;font:700 11px/1.45 var(--mono);color:var(--text)}
.tx-compNote{margin:0;color:var(--muted);font:400 10px/1.45 var(--mono)}
.tx-compActions{display:flex;gap:8px;justify-content:flex-end;flex-wrap:wrap}
.tx-compActions .sx-primary{min-width:140px}
.tx-compBar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-top:6px;color:var(--muted);font:600 10px/1.3 var(--mono)}
.tx-frameNote{flex:1 1 100%}
.tx-frameNote.isStale{color:#F3E15B}
.sx-player .sx-frame{position:absolute;inset:0;width:100%;height:100%;object-fit:contain}
.sx-player .sx-safe{display:none;position:absolute;border:1px dashed rgba(255,255,255,.18);pointer-events:none}
.sx-player.isComp .sx-safe{display:block}
.sx-player .sx-safeA{inset:5%}
.sx-player .sx-safeT{inset:10%}
.sx-player.isComp{max-height:46vh;width:auto;margin:0 auto}
