diff --git a/internal/web/static/index.html b/internal/web/static/index.html
index 33f50cc0..59da9e76 100644
--- a/internal/web/static/index.html
+++ b/internal/web/static/index.html
@@ -7360,6 +7360,7 @@
Connect to Hub
const isBuilder = state.promptMode === "builder";
const isLibrary = state.promptMode === "library";
const isJSON = state.promptMode === "json";
+ document.body.dataset.promptMode = state.promptMode;
syncPromptModeLinks();
syncPromptTitleModes();
if (promptPanelCopy) {
diff --git a/internal/web/static/style.css b/internal/web/static/style.css
index 04714dc4..7ef696c4 100644
--- a/internal/web/static/style.css
+++ b/internal/web/static/style.css
@@ -1117,6 +1117,29 @@ body .right-col.prompt-collapsed.task-list-hidden {
gap: 10px;
}
+body[data-app-display="studio"][data-prompt-mode="library"] .prompt-wrap:not(.prompt-collapsed) {
+ min-height: min(760px, calc(100dvh - var(--hub-content-bottom-padding) - 8px));
+}
+
+body[data-app-display="studio"][data-prompt-mode="library"] .prompt-wrap:not(.prompt-collapsed) .prompt-form {
+ grid-template-rows: minmax(0, 1fr) auto;
+}
+
+body[data-app-display="studio"][data-prompt-mode="library"] .prompt-wrap:not(.prompt-collapsed) .prompt-compose-stack {
+ grid-template-rows: minmax(0, 1fr);
+}
+
+body[data-app-display="studio"][data-prompt-mode="library"] #prompt-library-panel {
+ grid-template-rows: auto auto auto minmax(0, 1fr);
+ min-height: 0;
+}
+
+body[data-app-display="studio"][data-prompt-mode="library"] #prompt-library-panel > .prompt-field:last-child {
+ display: flex;
+ flex-direction: column;
+ min-height: 0;
+}
+
.prompt-mode-row {
margin-bottom: 2px;
}
@@ -2111,6 +2134,12 @@ select.prompt-control {
padding-right: 2px;
}
+body[data-app-display="studio"][data-prompt-mode="library"] .library-task-list {
+ flex: 1 1 auto;
+ max-height: none;
+ min-height: 0;
+}
+
.library-task-empty,
.library-task-option {
border-radius: var(--radius-card);