/* text-studio.css — layout of the text & writing tools (assets/js/text-studio.js); uses .ps-box / .ps-go / .ps-btn
   from pdf-studio.css */
#studio.ps{display:block}
.ts{--ts-h:clamp(360px,calc(100vh - var(--ps-top,0px) - 230px),720px);--ts-k:.5;text-align:left;color:var(--text,#1e2635)}
.ts-bar{display:flex;flex-wrap:wrap;align-items:center;gap:6px;padding:8px;margin-bottom:10px;background:var(--panel,#fff);border:1px solid var(--border,#e4e9f2);border-radius:14px}
.ts-bar .grow,.ts-pane header .grow,.ts-files .grow{flex:1}
.ts-b{display:inline-flex;align-items:center;gap:6px;height:34px;padding:0 11px;border:1px solid transparent;border-radius:9px;background:none;color:var(--text,#1e2635);font:600 13px/1 inherit;font-family:inherit;cursor:pointer;white-space:nowrap}
.ts-b:hover{background:var(--field,#f4f6fb);border-color:var(--border,#e4e9f2)}
.ts-b.on{background:var(--accent-soft,#eef1fe);color:var(--accent-dark,#3a52c4)}
.ts-b:disabled{opacity:.35;cursor:default;background:none;border-color:transparent}
.ts-b.ic{width:34px;padding:0;justify-content:center}
.ts-b.sm{height:28px;padding:0 9px;font-size:12px}
.ts-b svg,.ts-seg svg,.ts-act svg{width:16px;height:16px;flex:none}
.ts-sep{width:1px;height:22px;background:var(--border,#e4e9f2);margin:0 4px}
.ts-seg{display:inline-flex;border:1px solid var(--border,#e4e9f2);border-radius:9px;overflow:hidden}
.ts-seg button{width:34px;height:32px;border:0;background:none;color:var(--muted,#5a6377);cursor:pointer;display:flex;align-items:center;justify-content:center}
.ts-seg button.on{background:var(--accent-soft,#eef1fe);color:var(--accent-dark,#3a52c4)}
.ts-files{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin:-2px 0 10px}
.ts-files[hidden]{display:none}
.ts-tab{display:inline-flex;align-items:center;gap:8px;max-width:220px;padding:6px 8px 6px 12px;border:1px solid var(--border,#e4e9f2);border-radius:9px;background:var(--panel,#fff);font:600 12.5px inherit;font-family:inherit;color:var(--text,#1e2635);cursor:pointer;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ts-tab.on{border-color:var(--accent,#4f6ef7);background:var(--accent-soft,#eef1fe)}
.ts-tab i{font-style:normal;color:var(--faint,#8a94a7);font-size:15px;line-height:1}
.ts-body{display:grid;grid-template-columns:minmax(0,1fr) 310px;gap:16px;align-items:start}
.ts-panes{display:grid;grid-template-columns:minmax(0,calc(var(--ts-k)*100%)) 10px minmax(0,1fr);height:var(--ts-h);min-height:300px}
.ts-rows .ts-panes{grid-template-columns:1fr;grid-template-rows:minmax(0,calc(var(--ts-k)*100%)) 10px minmax(0,1fr);height:calc(var(--ts-h) * 1.35)}
.ts-solo .ts-panes{display:flex;flex-direction:column;gap:14px;height:auto}
.ts-solo .ts-in{height:clamp(240px,42vh,420px)}
.ts-pane{display:flex;flex-direction:column;min-width:0;min-height:0;background:var(--panel,#fff);border:1px solid var(--border,#e4e9f2);border-radius:14px;overflow:hidden}
.ts-pane header{display:flex;align-items:center;gap:10px;padding:8px 12px;border-bottom:1px solid var(--border,#e4e9f2);font-size:13px;min-height:44px;box-sizing:border-box}
.ts-meta{color:var(--faint,#8a94a7);font-size:12px}
.ts-edwrap,.ts-outwrap{position:relative;flex:1;min-height:0;display:flex}
.ts-ed{flex:1;width:100%;min-height:0;box-sizing:border-box;margin:0;padding:14px 16px;border:0;outline:0;resize:none;background:transparent;color:inherit;font:15px/1.65 var(--font,system-ui),-apple-system,'Segoe UI',sans-serif;tab-size:4;white-space:pre-wrap;overflow-wrap:anywhere}
.ts-nowrap .ts-ed{white-space:pre;overflow-wrap:normal}
.ts-mono .ts-ed,.ts-mono .ts-view.mono{font:13.5px/1.6 ui-monospace,SFMono-Regular,Consolas,'Liberation Mono',monospace}
.ts-out .ts-ed{background:var(--field,#f8fafc)}
.ts-view{flex:1;min-height:0;overflow:auto;padding:14px 16px;background:var(--field,#f8fafc);font-size:15px;line-height:1.65}
.ts-foot{padding:5px 12px;border-top:1px solid var(--border,#e4e9f2);font-size:11.5px;color:var(--faint,#8a94a7);min-height:26px;box-sizing:border-box;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ts-split{cursor:col-resize;position:relative}
.ts-split::after{content:"";position:absolute;left:50%;top:50%;width:4px;height:42px;margin:-21px 0 0 -2px;border-radius:3px;background:var(--border-2,#dfe4ee)}
.ts-split:hover::after{background:var(--accent,#4f6ef7)}
.ts-rows .ts-split{cursor:row-resize}
.ts-rows .ts-split::after{width:42px;height:4px;margin:-2px 0 0 -21px}
.ts-drop{position:absolute;inset:8px;display:none;align-items:center;justify-content:center;border:2px dashed var(--accent,#4f6ef7);border-radius:12px;background:rgba(79,110,247,.08);font-weight:700;color:var(--accent-dark,#3a52c4);pointer-events:none}
.ts-drop.on{display:flex}
.ts-side{position:sticky;top:calc(var(--ps-top,0px) + 12px);display:flex;flex-direction:column;gap:12px}
.ts-side .ps-box h3{margin-bottom:10px!important}
.ts-stats{display:grid;grid-template-columns:1fr auto;gap:6px 10px;font-size:13px}
.ts-stats span{color:var(--muted,#5a6377)}
.ts-stats b{text-align:right;font-variant-numeric:tabular-nums}
.ts-act .ps-go{display:flex;align-items:center;justify-content:center;gap:8px;width:100%}
.ts-dl{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}
.ts-dl .ps-btn{flex:1;display:inline-flex;align-items:center;justify-content:center;gap:6px;min-width:70px}
.ts-priv{margin:8px 0 0;font-size:12px;color:var(--faint,#8a94a7)}
.ts-solo-out{min-width:0}
/* option controls */
.ts-opts .ps-f{margin-bottom:12px}
.ts-chips{display:flex;flex-wrap:wrap;gap:6px}
.ts-chips button{padding:7px 11px;border-radius:999px;border:1px solid var(--border-2,#dfe4ee);background:var(--panel,#fff);color:var(--text,#1e2635);font:600 12.5px inherit;font-family:inherit;cursor:pointer}
.ts-chips button.on{border-color:var(--accent,#4f6ef7);background:var(--accent-soft,#eef1fe);color:var(--accent-dark,#3a52c4)}
.ts-grid2{display:grid;grid-template-columns:1fr 1fr;gap:6px}
.ts-grid2 button{padding:9px 6px;border-radius:9px;border:1px solid var(--border-2,#dfe4ee);background:var(--panel,#fff);color:var(--text,#1e2635);font:600 12.5px inherit;font-family:inherit;cursor:pointer;text-align:center}
.ts-grid2 button.on{border-color:var(--accent,#4f6ef7);background:var(--accent-soft,#eef1fe);color:var(--accent-dark,#3a52c4)}
.ts-opts input[type=text],.ts-opts input[type=number],.ts-opts textarea{width:100%;box-sizing:border-box;padding:8px 10px;border:1px solid var(--border-2,#dfe4ee);border-radius:9px;background:var(--panel,#fff);color:inherit;font:13.5px inherit;font-family:inherit}
/* full screen */
.ts.ts-full{position:fixed;inset:0;z-index:1000;margin:0;padding:12px;background:var(--bg,#f5f7fb);overflow:auto;--ts-h:calc(100vh - 90px)}
html.ts-noscroll{overflow:hidden}
@media (max-width:1100px){.ts-body{grid-template-columns:minmax(0,1fr) 270px}}
@media (max-width:900px){.ts-body{grid-template-columns:1fr}.ts-side{position:static}.ts-panes,.ts-rows .ts-panes{grid-template-columns:1fr;grid-template-rows:auto 10px auto;height:auto}.ts-pane{height:clamp(240px,45vh,460px)}.ts-split{display:none}.ts-bar .ts-b span{display:none}.ts-bar .ts-b{width:34px;padding:0;justify-content:center}}
.ts-noin .ts-in,.ts-noin .ts-split,.ts-noin [data-a=open],.ts-noin [data-a=paste],.ts-noin [data-a=sample],.ts-noin [data-a=clear],.ts-noin [data-a=undo],.ts-noin [data-a=redo],.ts-noin [data-a=swap],.ts-noin .ts-seg,.ts-noin .ts-sep{display:none!important}
.ts-noin .ts-panes{grid-template-columns:1fr!important;grid-template-rows:1fr!important}
