From a9bc55996f23ceeb6a6e941bcb56db11c385cddf Mon Sep 17 00:00:00 2001
From: Jake Vanderwerf <get@jakevanderwerf.ca>
Date: Mon, 10 Nov 2025 21:05:52 +0000
Subject: [PATCH] =update

---
 forms.css |  117 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++-
 1 files changed, 115 insertions(+), 2 deletions(-)

diff --git a/forms.css b/forms.css
index 3e57890..5a64bde 100644
--- a/forms.css
+++ b/forms.css
@@ -167,13 +167,22 @@
 [type=radio].featured:checked + label .star + .star {
     display: inline-block;
 }
-.restore.item,
-.upload.item {
+.restore.restore.item,
+.upload.upload.item {
     border-radius: var(--innerRadius);
+    aspect-ratio: unset;
     overflow: hidden;
     background: var(--base);
     border: 1px solid var(--base-200);
 }
+.restore-item [for="select-item"],
+.upload.item [for="select-item"] {
+    aspect-ratio: 1;
+}
+
+.upload.item:has(details[open]) {
+    grid-column: 1 / -1;
+}
 .restore.item img,
 .upload.item img {
     transition: transform var(--transition-base);
@@ -1614,3 +1623,107 @@
 .repeater-row:last-child {
     margin-bottom: 0;
 }
+
+.ql-toolbar button {
+    --height: fit-content;
+    padding: .5rem;
+}
+
+.success-message {
+    color: var(--success, #16a34a);
+    background-color: var(--success-bg, #f0fdf4);
+    border: 1px solid var(--success, #16a34a);
+    padding: 0.75rem 1rem;
+    border-radius: var(--radius);
+    margin-bottom: 1rem;
+    display: flex;
+    align-items: center;
+    gap: 0.5rem;
+}
+
+.success-message .success-icon {
+    width: 1.25rem;
+    height: 1.25rem;
+    flex-shrink: 0;
+}
+
+.success-box {
+    background-color: var(--success-bg, #f0fdf4);
+    border: 2px solid var(--success, #16a34a);
+    padding: 1.5rem;
+    border-radius: var(--outerRadius);
+    margin-bottom: 1rem;
+    text-align: center;
+}
+
+.success-box h3 {
+    color: var(--success, #16a34a);
+    margin-bottom: 0.5rem;
+}
+
+.success-box p {
+    margin: 0.5rem 0;
+}
+
+/* Form success state */
+.form-success {
+    opacity: 0.9;
+}
+
+/* Hide form fields after success (optional) */
+.form-success .field:not(.form-success-message):not(.success-box) {
+    display: none;
+}
+
+/* Keep submit button visible but disabled */
+.form-success button[type="submit"] {
+    opacity: 0.6;
+    pointer-events: none;
+}
+
+/* Error states */
+.field-error input,
+.field-error textarea,
+.field-error select {
+    border-color: var(--error, #dc2626);
+}
+
+.error-message {
+    color: var(--error, #dc2626);
+    font-size: var(--small);
+    margin-top: 0.25rem;
+    display: block;
+}
+
+.form-error {
+    background-color: var(--error-bg, #fee);
+    border: 1px solid var(--error, #dc2626);
+    padding: 0.75rem;
+    border-radius: var(--radius);
+    margin-bottom: 1rem;
+}
+
+/* Success states */
+.has-success input,
+.has-success textarea,
+.has-success select {
+    border-color: var(--success, #16a34a);
+}
+.form-error {
+    display: flex;
+    align-items: center;
+    gap: 0.5rem;
+}
+
+.form-error .error-icon {
+    width: 1.25rem;
+    height: 1.25rem;
+    flex-shrink: 0;
+}
+
+.autocomplete-dropdown {
+    width: 100%;
+    background-color: var(--base-100);
+    padding: .5rem;
+    box-shadow: var(--shadow);
+}
\ No newline at end of file

--
Gitblit v1.10.0