#scriptAssist.script-assist{position:fixed;right:auto;bottom:auto;transform:none;left:12px;top:100px;width:300px;max-width:calc(100vw - 24px);display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;padding:12px;overflow:auto;overscroll-behavior:contain;border-radius:16px;z-index:25;background:var(--panel,#21352b);border:1px solid var(--line,#425c4e);color:var(--text,#dfece5);box-shadow:0 8px 28px #0003;touch-action:pan-y}
#scriptAssist[hidden]{display:none!important}
#scriptAssist>b,#scriptAssistHint{grid-column:1/-1}
#scriptAssist>b{font-size:13px;color:var(--text,#dfece5);line-height:1.5}
#scriptAssistHint{color:var(--muted,#92a79b);font-size:11px;line-height:1.5;overflow-wrap:anywhere}
#scriptAssist button{min-height:40px;width:100%;margin:0;padding:8px 6px;font-size:12px;white-space:normal;line-height:1.4;touch-action:manipulation}
@media(max-width:480px){#scriptAssist.script-assist{width:300px;padding:10px;gap:7px}#scriptAssist button{min-height:44px}}

/* Text generation: scoped styles keep other canvas dialogs and node tools intact. */
dialog.canvas-text-dialog[open]{display:flex;flex-direction:column;width:min(980px,calc(100vw - 24px));max-width:calc(100vw - 24px);max-height:var(--text-dialog-available-height,calc(100dvh - 24px));padding:20px;overflow:hidden;gap:0}
.canvas-text-dialog .canvas-dialog-header{position:relative;top:auto;flex-shrink:0;padding:0;margin:0 0 8px;min-height:44px}
.canvas-text-dialog .text-compose-intro{margin:0 0 18px;font-size:13px;line-height:1.5;color:var(--muted,#8da49a)}
.canvas-text-dialog .text-compose-workspace{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.12fr);gap:20px;min-height:0;overflow:auto;overscroll-behavior:contain;padding:2px;touch-action:pan-y}
.canvas-text-dialog .text-compose-source,.canvas-text-dialog .text-compose-result{display:flex;flex-direction:column;gap:10px;min-width:0}
.canvas-text-dialog .text-compose-heading{display:flex;align-items:center;gap:8px;min-height:44px;font-size:14px;font-weight:650;margin:0}
.canvas-text-dialog .text-compose-heading label{flex:1;min-width:0}
.canvas-text-dialog textarea{display:block;width:100%;max-width:100%;min-width:0;padding:12px;border:1px solid var(--line,#4a6457);border-radius:12px;background:var(--panel,#233b32);color:var(--text,#e9f2ed);font-size:16px;line-height:1.65;resize:vertical;margin:0;box-sizing:border-box}
.canvas-text-dialog textarea::placeholder{color:var(--muted,#8da49a);opacity:.9}
.canvas-text-dialog textarea:focus-visible{outline:2px solid #38be94;outline-offset:2px}
.canvas-text-dialog .text-compose-input{height:200px;min-height:120px}
.canvas-text-dialog .text-compose-requirement{height:100px;min-height:72px}
.canvas-text-dialog .text-compose-output{flex:1;height:390px;min-height:240px}
.canvas-text-dialog .text-compose-settings{display:flex;align-items:center;gap:12px;font-size:14px}
.canvas-text-dialog .text-compose-choice{flex:1;min-width:0;max-width:100%;min-height:44px;border:1px solid var(--line,#4a6457);border-radius:10px;background:var(--panel,#233b32);color:var(--text,#e9f2ed);font-size:16px;padding:8px 12px}
.canvas-text-dialog .text-compose-quick{display:flex;gap:8px;flex-wrap:wrap}
.canvas-text-dialog .text-action{min-height:44px;padding:8px 14px;margin:0!important;font-size:14px;border-radius:10px;border:1px solid var(--line,#4a6457);background:var(--panel,#233b32);color:var(--text,#e9f2ed);touch-action:manipulation;white-space:nowrap}
.canvas-text-dialog .text-action:disabled{opacity:.5;cursor:not-allowed}
.canvas-text-dialog .text-action[hidden]{display:none}
.canvas-text-dialog .text-small-action{padding:6px 10px;font-size:13px}
.canvas-text-dialog .text-action.primary:not(:disabled){background:#078363;color:#fff;border-color:#078363;font-weight:650}
.canvas-text-dialog .text-save-action:not(:disabled){border-color:#26af85;color:var(--text,#e9f2ed);font-weight:650}
.canvas-text-dialog .text-compose-actions{flex-shrink:0;padding-top:14px;margin-top:14px;border-top:1px solid var(--line,#4a6457)}
.canvas-text-dialog .text-compose-progress{display:flex;align-items:center;flex-wrap:wrap;gap:6px 10px;min-height:22px;margin-bottom:10px;font-size:12px;color:var(--muted,#8da49a);line-height:1.5;overflow-wrap:anywhere}
.canvas-text-dialog .text-compose-count{margin-left:auto;white-space:nowrap;font-variant-numeric:tabular-nums}
.canvas-text-dialog [data-error="true"]{color:#ec8c91}
.canvas-text-dialog .text-compose-buttons{display:flex;justify-content:flex-end;gap:10px}
html[data-appearance="glass"] .canvas-text-dialog .text-save-action:not(:disabled){color:var(--glass-text)}
html[data-appearance="glass"] .canvas-text-dialog :is(.text-compose-intro,.text-compose-progress){color:var(--glass-muted)}
html[data-theme="light"] .canvas-text-dialog [data-error="true"]{color:#b43246}
@media(max-width:700px){
 dialog.canvas-text-dialog[open]{padding:14px;width:calc(100vw - 16px);max-width:calc(100vw - 16px);border-radius:18px}
 .canvas-text-dialog .text-compose-intro{margin-bottom:12px;font-size:12px}
 .canvas-text-dialog .text-compose-workspace{grid-template-columns:minmax(0,1fr);gap:18px}
 .canvas-text-dialog .text-compose-input{height:140px}
 .canvas-text-dialog .text-compose-output{height:240px;min-height:200px;flex:none}
 .canvas-text-dialog .text-compose-heading{font-size:13px;gap:6px}
 .canvas-text-dialog .text-compose-buttons .text-action{flex:1;min-width:0;padding:8px 6px}
 .canvas-text-dialog .text-compose-actions{padding-top:10px;margin-top:10px}
 .canvas-text-dialog .text-compose-count{margin-left:0;width:100%}
}
