diff --git a/web/src/structured.ts b/web/src/structured.ts
index f605544..8e9af9d 100644
--- a/web/src/structured.ts
+++ b/web/src/structured.ts
@@ -113,7 +113,10 @@ export function createStructuredConnection(
-
+
diff --git a/web/src/styles.css b/web/src/styles.css
index c797ea8..e45eb60 100644
--- a/web/src/styles.css
+++ b/web/src/styles.css
@@ -2290,6 +2290,9 @@ input.leaf-rename:focus {
.structured-main {
min-width: 0;
min-height: 0;
+ max-width: 820px;
+ margin-inline: auto;
+ width: 100%;
display: flex;
flex-direction: column;
flex: 1 1 auto;
@@ -2306,9 +2309,6 @@ input.leaf-rename:focus {
display: flex;
flex-direction: column;
min-width: 0;
- max-width: 820px;
- margin-inline: auto;
- width: 100%;
}
.structured-activity {
@@ -3104,7 +3104,7 @@ input.leaf-rename:focus {
}
.structured-composer:focus-within {
- border-top-color: var(--accent);
+ border-top-color: var(--border);
}
.structured-input-wrap {
@@ -3220,7 +3220,9 @@ input.leaf-rename:focus {
}
.structured-composer .structured-cancel {
- padding: 0 var(--sp-3);
+ position: relative;
+ width: 40px;
+ padding: 0;
border-color: color-mix(in oklab, var(--danger) 35%, var(--border));
color: var(--danger);
}
@@ -3229,6 +3231,23 @@ input.leaf-rename:focus {
background: var(--danger-tint);
}
+.structured-cancel-stop {
+ width: 16px;
+ height: 16px;
+}
+
+.structured-cancel-spinner {
+ position: absolute;
+ inset: 4px;
+ width: auto;
+ height: auto;
+ animation: cancel-spin 0.8s linear infinite;
+}
+
+@keyframes cancel-spin {
+ to { transform: rotate(360deg); }
+}
+
@media (max-width: 520px) {
/* One row cannot hold a draft plus three controls at phone width — the
draft gets a line of its own and the controls drop below it. */