lemonade-sdk 8.1.1__py3-none-any.whl → 8.1.3__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of lemonade-sdk might be problematic. Click here for more details.

@@ -14,6 +14,27 @@
14
14
  --bg-secondary: #fff8dd;
15
15
  --bg-tertiary: #fff5d1;
16
16
 
17
+ /* Cohesive Button Color Palette */
18
+ --success-primary: #2d7f47;
19
+ --success-hover: #236338;
20
+ --success-light: #e8f5e8;
21
+
22
+ --danger-primary: #c8586c;
23
+ --danger-hover: #a94858;
24
+ --danger-light: #fdf2f4;
25
+
26
+ --info-primary: #5b8db8;
27
+ --info-hover: #4a7396;
28
+ --info-light: #f0f5fa;
29
+
30
+ --neutral-primary: #6b7280;
31
+ --neutral-hover: #4b5563;
32
+ --neutral-light: #f9fafb;
33
+
34
+ --purple-primary: #8b5a96;
35
+ --purple-hover: #744f7e;
36
+ --purple-light: #f5f1f6;
37
+
17
38
  /* Transitions */
18
39
  --transition-fast: 0.2s ease;
19
40
  --transition-medium: 0.3s ease;
@@ -146,6 +167,14 @@ body::before {
146
167
  .tabs {
147
168
  display: flex;
148
169
  border-bottom: 1px solid #e0e0e0;
170
+ align-items: center;
171
+ padding: 0 1rem;
172
+ justify-content: space-between;
173
+ }
174
+
175
+ .tabs .tab-group {
176
+ display: flex;
177
+ align-items: center;
149
178
  }
150
179
 
151
180
  .tab {
@@ -165,6 +194,124 @@ body::before {
165
194
  background: #fafafa;
166
195
  }
167
196
 
197
+ /* Model Status Indicator integrated into tab bar */
198
+ .model-status-indicator {
199
+ display: flex;
200
+ align-items: center;
201
+ gap: 0.5rem;
202
+ padding: 0.6rem 1.2rem;
203
+ background: transparent;
204
+ border: none;
205
+ border-radius: 8px;
206
+ min-height: 38px;
207
+ font-size: 0.9rem;
208
+ position: relative;
209
+ }
210
+
211
+ .status-light {
212
+ width: 8px;
213
+ height: 8px;
214
+ border-radius: 50%;
215
+ position: relative;
216
+ transition: all var(--transition-fast);
217
+ flex-shrink: 0;
218
+ align-self: center;
219
+ }
220
+
221
+ .status-light::before {
222
+ content: '';
223
+ position: absolute;
224
+ top: -2px;
225
+ left: -2px;
226
+ width: 12px;
227
+ height: 12px;
228
+ border-radius: 50%;
229
+ opacity: 0.3;
230
+ animation: pulse-glow 2s infinite;
231
+ }
232
+
233
+ /* Online status (green) */
234
+ .model-status-indicator.online .status-light {
235
+ background: #28a745;
236
+ box-shadow: 0 0 8px rgba(40, 167, 69, 0.6);
237
+ }
238
+
239
+ .model-status-indicator.online .status-light::before {
240
+ background: #28a745;
241
+ }
242
+
243
+ .model-status-indicator.online .model-status-text {
244
+ color: #28a745;
245
+ font-weight: 600;
246
+ }
247
+
248
+ /* Offline status (red) */
249
+ .model-status-indicator.offline .status-light {
250
+ background: #dc3545;
251
+ box-shadow: 0 0 8px rgba(220, 53, 69, 0.6);
252
+ }
253
+
254
+ .model-status-indicator.offline .status-light::before {
255
+ background: #dc3545;
256
+ }
257
+
258
+ .model-status-indicator.offline .model-status-text {
259
+ color: #dc3545;
260
+ font-weight: 600;
261
+ }
262
+
263
+ /* Model loaded status (same as online but with model name) */
264
+ .model-status-indicator.loaded .status-light {
265
+ background: #28a745;
266
+ box-shadow: 0 0 8px rgba(40, 167, 69, 0.6);
267
+ }
268
+
269
+ .model-status-indicator.loaded .status-light::before {
270
+ background: #28a745;
271
+ }
272
+
273
+ .model-status-indicator.loaded .model-status-text {
274
+ color: #28a745;
275
+ font-weight: 600;
276
+ }
277
+
278
+ @keyframes pulse-glow {
279
+ 0%, 100% {
280
+ transform: scale(1);
281
+ opacity: 0.3;
282
+ }
283
+ 50% {
284
+ transform: scale(1.4);
285
+ opacity: 0.1;
286
+ }
287
+ }
288
+
289
+ .model-status-text {
290
+ font-weight: 600;
291
+ font-size: 0.9rem;
292
+ }
293
+
294
+ .model-action-btn {
295
+ display: flex;
296
+ align-items: center;
297
+ justify-content: center;
298
+ width: 24px;
299
+ height: 24px;
300
+ background: transparent;
301
+ border: none;
302
+ border-radius: 50%;
303
+ cursor: pointer;
304
+ transition: all var(--transition-fast);
305
+ font-size: 0.9rem;
306
+ color: #666;
307
+ margin-left: 0.2rem;
308
+ }
309
+
310
+ .model-action-btn:hover {
311
+ background: rgba(0, 0, 0, 0.1);
312
+ color: #333;
313
+ }
314
+
168
315
  .tab-content {
169
316
  display: none;
170
317
  padding: 2em;
@@ -339,7 +486,7 @@ body::before {
339
486
  }
340
487
 
341
488
  .chat-bubble a {
342
- color: #007acc;
489
+ color: var(--info-primary);
343
490
  text-decoration: none;
344
491
  }
345
492
 
@@ -643,33 +790,48 @@ body::before {
643
790
  }
644
791
 
645
792
  .model-table button {
646
- background: #e6b800;
793
+ background: var(--accent-gold);
647
794
  color: #222;
648
795
  border: none;
649
- border-radius: 4px;
650
- padding: 0.3em 0.8em;
796
+ border-radius: 6px;
797
+ padding: 0.4em 1em;
651
798
  cursor: pointer;
652
- font-weight: 600;
653
- transition: background 0.2s;
799
+ font-weight: 500;
800
+ transition: all var(--transition-fast);
801
+ box-shadow: 0 2px 4px rgba(230, 184, 0, 0.15);
654
802
  }
655
803
 
656
804
  .model-table button:hover {
657
- background: #d4a500;
805
+ background: var(--accent-gold-dark);
806
+ transform: translateY(-1px);
807
+ box-shadow: 0 3px 6px rgba(230, 184, 0, 0.25);
658
808
  }
659
809
 
660
810
  .installing-btn {
661
- background: #ccc !important;
662
- color: #666 !important;
663
- font-weight: bold;
811
+ font-size: 0.75em !important;
812
+ padding: 0.5em 0.8em !important;
813
+ width: auto !important;
814
+ min-width: 90px !important;
815
+ height: 40px !important;
816
+ background: linear-gradient(145deg, rgba(107, 114, 128, 0.15), rgba(107, 114, 128, 0.08)) !important;
817
+ color: var(--neutral-primary) !important;
818
+ border: 1px solid rgba(107, 114, 128, 0.3) !important;
819
+ cursor: wait !important;
820
+ backdrop-filter: blur(8px) !important;
821
+ box-shadow:
822
+ 0 2px 8px rgba(107, 114, 128, 0.1),
823
+ inset 0 1px 0 rgba(255, 255, 255, 0.6) !important;
824
+ font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', system-ui, sans-serif !important;
825
+ font-weight: 500;
664
826
  opacity: 1 !important;
665
- border: 1px solid #999;
666
- cursor: wait;
827
+ white-space: nowrap !important;
828
+ animation: gentle-pulse 2s ease-in-out infinite !important;
667
829
  }
668
830
 
669
831
  /* Model label styles */
670
832
  .model-label {
671
833
  display: inline-block;
672
- background-color: #007acc;
834
+ background-color: var(--info-primary);
673
835
  color: white;
674
836
  padding: 2px 8px;
675
837
  margin-left: 8px;
@@ -680,19 +842,19 @@ body::before {
680
842
  }
681
843
 
682
844
  .model-label.reasoning {
683
- background-color: #808080;
845
+ background-color: var(--neutral-primary);
684
846
  }
685
847
 
686
848
  .model-label.vision {
687
- background-color: #007acc;
849
+ background-color: var(--info-primary);
688
850
  }
689
851
 
690
852
  .model-label.other {
691
- background-color: #27ae60;
853
+ background-color: var(--success-primary);
692
854
  }
693
855
 
694
856
  .model-label.embeddings {
695
- background-color: #9b59b6;
857
+ background-color: var(--purple-primary);
696
858
  }
697
859
 
698
860
  .model-label.reranking {
@@ -948,7 +1110,7 @@ body::before {
948
1110
 
949
1111
  .register-doc-link {
950
1112
  margin-left: 0.8em;
951
- color: #007acc;
1113
+ color: var(--info-primary);
952
1114
  font-size: 0.9em;
953
1115
  text-decoration: none;
954
1116
  transition: all 0.2s ease;
@@ -961,10 +1123,10 @@ body::before {
961
1123
 
962
1124
  .register-doc-link:hover {
963
1125
  color: #fff;
964
- background: #007acc;
965
- border-color: #007acc;
1126
+ background: var(--info-primary);
1127
+ border-color: var(--info-primary);
966
1128
  transform: translateY(-1px);
967
- box-shadow: 0 2px 8px rgba(0,122,204,0.3);
1129
+ box-shadow: 0 2px 8px rgba(91, 141, 184, 0.3);
968
1130
  }
969
1131
 
970
1132
  #register-mmproj, #register-checkpoint {
@@ -1065,15 +1227,15 @@ body::before {
1065
1227
 
1066
1228
  /* Error status styling */
1067
1229
  .register-status.error {
1068
- background: rgba(220, 53, 69, 0.1);
1069
- color: #dc3545;
1070
- border: 1px solid rgba(220, 53, 69, 0.3);
1230
+ background: rgba(200, 88, 108, 0.1);
1231
+ color: var(--danger-primary);
1232
+ border: 1px solid rgba(200, 88, 108, 0.3);
1071
1233
  }
1072
1234
 
1073
1235
  /* Tooltip styles */
1074
1236
  .tooltip-icon {
1075
1237
  display: inline;
1076
- color: #007acc;
1238
+ color: var(--info-primary);
1077
1239
  font-size: 14px;
1078
1240
  margin-left: 8px;
1079
1241
  cursor: help;
@@ -1553,7 +1715,7 @@ body::before {
1553
1715
  top: 10px;
1554
1716
  left: 50%;
1555
1717
  transform: translateX(-50%);
1556
- background-color: #dc3545;
1718
+ background-color: var(--danger-primary);
1557
1719
  color: #fff;
1558
1720
  padding: 0.6em 1.2em;
1559
1721
  border-radius: 6px;
@@ -1580,3 +1742,467 @@ body::before {
1580
1742
  .error-banner .close-btn:hover {
1581
1743
  opacity: 0.8;
1582
1744
  }
1745
+
1746
+ /* === Model Settings === */
1747
+ .model-settings-container {
1748
+ max-width: 600px;
1749
+ margin: 0 auto;
1750
+ padding: 2rem;
1751
+ }
1752
+
1753
+ .settings-form {
1754
+ background: #fff;
1755
+ padding: 2rem;
1756
+ border-radius: 8px;
1757
+ border: 1px solid #e0e0e0;
1758
+ }
1759
+
1760
+ .setting-row {
1761
+ display: flex;
1762
+ flex-direction: column;
1763
+ gap: 0.5rem;
1764
+ margin-bottom: 1.5rem;
1765
+ }
1766
+
1767
+ .setting-row label {
1768
+ font-weight: 600;
1769
+ color: var(--text-primary);
1770
+ font-size: 1rem;
1771
+ }
1772
+
1773
+ .setting-row input {
1774
+ padding: 0.75rem;
1775
+ border: 1px solid #ddd;
1776
+ border-radius: 4px;
1777
+ font-size: 1rem;
1778
+ transition: border-color var(--transition-fast);
1779
+ }
1780
+
1781
+ .setting-row input:focus {
1782
+ outline: none;
1783
+ border-color: var(--accent-gold);
1784
+ box-shadow: 0 0 0 2px rgba(230, 184, 0, 0.2);
1785
+ }
1786
+
1787
+ .setting-description {
1788
+ font-size: 0.9rem;
1789
+ color: var(--text-muted);
1790
+ font-style: italic;
1791
+ }
1792
+
1793
+ .setting-actions {
1794
+ display: flex;
1795
+ gap: 1rem;
1796
+ margin-top: 2rem;
1797
+ justify-content: flex-end;
1798
+ }
1799
+
1800
+ .save-btn {
1801
+ padding: 0.75rem 1.5rem;
1802
+ background: var(--accent-gold);
1803
+ color: #222;
1804
+ border: none;
1805
+ border-radius: 4px;
1806
+ font-weight: 600;
1807
+ cursor: pointer;
1808
+ transition: background var(--transition-fast);
1809
+ }
1810
+
1811
+ .save-btn:hover {
1812
+ background: var(--accent-gold-dark);
1813
+ }
1814
+
1815
+ .reset-btn {
1816
+ padding: 0.75rem 1.5rem;
1817
+ background: #6c757d;
1818
+ color: white;
1819
+ border: none;
1820
+ border-radius: 4px;
1821
+ font-weight: 600;
1822
+ cursor: pointer;
1823
+ transition: background var(--transition-fast);
1824
+ }
1825
+
1826
+ .reset-btn:hover {
1827
+ background: #5a6268;
1828
+ }
1829
+
1830
+ /* === Model Browser === */
1831
+ .model-browser-container {
1832
+ display: flex;
1833
+ max-width: 1200px;
1834
+ margin: 0 auto;
1835
+ min-height: 600px;
1836
+ background: #fff;
1837
+ border-radius: 8px;
1838
+ border: 1px solid #e0e0e0;
1839
+ overflow: hidden;
1840
+ }
1841
+
1842
+ .model-browser-sidebar {
1843
+ width: 280px;
1844
+ background: #f8f9fa;
1845
+ border-right: 1px solid #e0e0e0;
1846
+ overflow-y: auto;
1847
+ }
1848
+
1849
+ .model-category {
1850
+ border-bottom: 1px solid #e0e0e0;
1851
+ }
1852
+
1853
+ .model-category-section {
1854
+ border-bottom: 1px solid #e0e0e0;
1855
+ padding: 0.5rem 0;
1856
+ }
1857
+
1858
+ .category-header {
1859
+ display: flex;
1860
+ align-items: center;
1861
+ gap: 0.75rem;
1862
+ padding: 1rem;
1863
+ cursor: pointer;
1864
+ transition: background var(--transition-fast);
1865
+ font-weight: 600;
1866
+ }
1867
+
1868
+ .section-header {
1869
+ display: flex;
1870
+ align-items: center;
1871
+ gap: 0.75rem;
1872
+ padding: 0.75rem 1rem;
1873
+ font-weight: 600;
1874
+ color: #6c757d;
1875
+ font-size: 0.9rem;
1876
+ text-transform: uppercase;
1877
+ letter-spacing: 0.5px;
1878
+ }
1879
+
1880
+ .category-header:hover {
1881
+ background: #e9ecef;
1882
+ }
1883
+
1884
+ .category-header.active {
1885
+ background: var(--primary-yellow);
1886
+ color: #333;
1887
+ font-weight: 600;
1888
+ }
1889
+
1890
+ .category-icon, .section-icon {
1891
+ font-size: 1.1rem;
1892
+ }
1893
+
1894
+ .category-name, .section-name {
1895
+ flex: 1;
1896
+ }
1897
+
1898
+ .category-content {
1899
+ display: none;
1900
+ padding: 0;
1901
+ }
1902
+
1903
+ .category-content.expanded {
1904
+ display: block;
1905
+ }
1906
+
1907
+ .section-content {
1908
+ padding: 0;
1909
+ }
1910
+
1911
+ .subcategory {
1912
+ padding: 0.75rem 1rem 0.75rem 3rem;
1913
+ cursor: pointer;
1914
+ transition: background var(--transition-fast);
1915
+ border-bottom: 1px solid #f0f0f0;
1916
+ }
1917
+
1918
+ .subcategory:hover {
1919
+ background: #e9ecef;
1920
+ }
1921
+
1922
+ .subcategory.active {
1923
+ background: var(--primary-yellow);
1924
+ color: #333;
1925
+ font-weight: 600;
1926
+ }
1927
+
1928
+ /* Add Model Form in Main Area */
1929
+ .add-model-form-main {
1930
+ padding: 1.5rem;
1931
+ max-width: 100%;
1932
+ box-sizing: border-box;
1933
+ }
1934
+
1935
+ .add-model-form-main .form-content {
1936
+ max-width: 800px;
1937
+ width: 100%;
1938
+ }
1939
+
1940
+ .add-model-form-main .register-form-row {
1941
+ display: flex;
1942
+ align-items: center;
1943
+ gap: 1.2em;
1944
+ margin-bottom: 1em;
1945
+ padding: 0.1em 0;
1946
+ position: relative;
1947
+ max-width: 100%;
1948
+ box-sizing: border-box;
1949
+ }
1950
+
1951
+ .add-model-form-main .register-model-name-group {
1952
+ display: flex;
1953
+ align-items: stretch;
1954
+ flex: 1;
1955
+ border-radius: 6px;
1956
+ overflow: hidden;
1957
+ transition: box-shadow 0.2s ease;
1958
+ min-width: 0;
1959
+ max-width: 400px;
1960
+ }
1961
+
1962
+ .add-model-form-main input[type="text"],
1963
+ .add-model-form-main select {
1964
+ max-width: 400px;
1965
+ width: 100%;
1966
+ box-sizing: border-box;
1967
+ }
1968
+
1969
+ .add-model-form-main #register-checkpoint {
1970
+ max-width: 500px;
1971
+ }
1972
+
1973
+ .model-browser-main {
1974
+ flex: 1;
1975
+ display: flex;
1976
+ flex-direction: column;
1977
+ overflow: hidden;
1978
+ }
1979
+
1980
+ .model-browser-header {
1981
+ padding: 1.5rem;
1982
+ border-bottom: 1px solid #e0e0e0;
1983
+ background: #f8f9fa;
1984
+ }
1985
+
1986
+ .model-browser-header h3 {
1987
+ margin: 0;
1988
+ color: var(--text-primary);
1989
+ font-size: 1.3rem;
1990
+ }
1991
+
1992
+ .model-list {
1993
+ flex: 1;
1994
+ padding: 1rem;
1995
+ overflow-y: auto;
1996
+ }
1997
+
1998
+ .model-item {
1999
+ display: flex;
2000
+ align-items: center;
2001
+ gap: 1rem;
2002
+ padding: 1rem;
2003
+ border: 1px solid #e0e0e0;
2004
+ border-radius: 6px;
2005
+ margin-bottom: 0.75rem;
2006
+ background: #fff;
2007
+ transition: all var(--transition-fast);
2008
+ }
2009
+
2010
+ .model-item:hover {
2011
+ border-color: var(--accent-gold);
2012
+ box-shadow: 0 2px 4px rgba(0,0,0,0.1);
2013
+ }
2014
+
2015
+ .model-item-info {
2016
+ flex: 1;
2017
+ }
2018
+
2019
+ .model-item-name {
2020
+ font-weight: 600;
2021
+ font-size: 1rem;
2022
+ margin-bottom: 0.25rem;
2023
+ }
2024
+
2025
+ .model-item-description {
2026
+ font-size: 0.9rem;
2027
+ color: var(--text-muted);
2028
+ }
2029
+
2030
+ .model-item-actions {
2031
+ display: flex;
2032
+ gap: 0.5rem;
2033
+ }
2034
+
2035
+ /* Modern emoji button styling with clean glass effect */
2036
+ .model-item-btn {
2037
+ position: relative;
2038
+ border: none;
2039
+ border-radius: 12px;
2040
+ padding: 0.75em;
2041
+ cursor: pointer;
2042
+ font-weight: 500;
2043
+ transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
2044
+ font-size: 1.3em;
2045
+ width: 48px;
2046
+ height: 48px;
2047
+ display: flex;
2048
+ align-items: center;
2049
+ justify-content: center;
2050
+ line-height: 1;
2051
+ background: linear-gradient(145deg, rgba(255, 255, 255, 0.9), rgba(255, 255, 255, 0.6));
2052
+ backdrop-filter: blur(10px);
2053
+ border: 1px solid rgba(255, 255, 255, 0.3);
2054
+ box-shadow:
2055
+ 0 2px 8px rgba(0, 0, 0, 0.08),
2056
+ 0 1px 3px rgba(0, 0, 0, 0.1),
2057
+ inset 0 1px 0 rgba(255, 255, 255, 0.8);
2058
+ color: #555;
2059
+ text-align: center;
2060
+ overflow: hidden;
2061
+ font-family: "Apple Color Emoji", "Segoe UI Emoji", "Noto Color Emoji", "Android Emoji", "EmojiSymbols", sans-serif;
2062
+ }
2063
+
2064
+ /* Elegant hover animation with subtle scaling */
2065
+ .model-item-btn:hover {
2066
+ transform: translateY(-2px) scale(1.05);
2067
+ box-shadow:
2068
+ 0 8px 25px rgba(0, 0, 0, 0.15),
2069
+ 0 3px 10px rgba(0, 0, 0, 0.1),
2070
+ inset 0 1px 0 rgba(255, 255, 255, 0.9);
2071
+ background: linear-gradient(145deg, rgba(255, 255, 255, 0.95), rgba(255, 255, 255, 0.8));
2072
+ border-color: rgba(255, 255, 255, 0.5);
2073
+ }
2074
+
2075
+ /* Satisfying active state */
2076
+ .model-item-btn:active {
2077
+ transform: translateY(-1px) scale(1.02);
2078
+ box-shadow:
2079
+ 0 3px 12px rgba(0, 0, 0, 0.12),
2080
+ 0 1px 5px rgba(0, 0, 0, 0.08),
2081
+ inset 0 1px 0 rgba(255, 255, 255, 0.7);
2082
+ transition: all 0.15s cubic-bezier(0.4, 0, 0.2, 1);
2083
+ }
2084
+
2085
+ /* Disabled state with reduced opacity */
2086
+ .model-item-btn:disabled {
2087
+ opacity: 0.4;
2088
+ cursor: not-allowed;
2089
+ transform: none !important;
2090
+ box-shadow:
2091
+ 0 1px 3px rgba(0, 0, 0, 0.05),
2092
+ inset 0 1px 0 rgba(255, 255, 255, 0.5) !important;
2093
+ background: linear-gradient(145deg, rgba(248, 248, 248, 0.8), rgba(240, 240, 240, 0.6)) !important;
2094
+ }
2095
+
2096
+ /* Special styling for loading/installing state with enhanced design */
2097
+ .model-item-btn.loading,
2098
+ .model-item-btn.installing {
2099
+ font-size: 0.75em;
2100
+ padding: 0.5em 0.8em;
2101
+ width: auto;
2102
+ min-width: 90px;
2103
+ height: 40px;
2104
+ background: linear-gradient(145deg, rgba(107, 114, 128, 0.15), rgba(107, 114, 128, 0.08));
2105
+ color: var(--neutral-primary);
2106
+ border: 1px solid rgba(107, 114, 128, 0.3);
2107
+ cursor: wait;
2108
+ backdrop-filter: blur(8px);
2109
+ box-shadow:
2110
+ 0 2px 8px rgba(107, 114, 128, 0.1),
2111
+ inset 0 1px 0 rgba(255, 255, 255, 0.6);
2112
+ font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', system-ui, sans-serif;
2113
+ font-weight: 500;
2114
+ white-space: nowrap;
2115
+ }
2116
+
2117
+ /* Pulsing animation for loading states */
2118
+ .model-item-btn.loading,
2119
+ .model-item-btn.installing {
2120
+ animation: gentle-pulse 2s ease-in-out infinite;
2121
+ }
2122
+
2123
+ @keyframes gentle-pulse {
2124
+ 0%, 100% {
2125
+ opacity: 1;
2126
+ transform: scale(1);
2127
+ }
2128
+ 50% {
2129
+ opacity: 0.8;
2130
+ transform: scale(1.02);
2131
+ }
2132
+ }
2133
+
2134
+ /* Color-coded hover effects for different action types */
2135
+ .model-item-btn.install:hover {
2136
+ background: linear-gradient(145deg, rgba(230, 184, 0, 0.2), rgba(230, 184, 0, 0.1));
2137
+ border-color: rgba(230, 184, 0, 0.4);
2138
+ box-shadow:
2139
+ 0 8px 25px rgba(230, 184, 0, 0.2),
2140
+ 0 3px 10px rgba(0, 0, 0, 0.1),
2141
+ inset 0 1px 0 rgba(255, 255, 255, 0.9);
2142
+ }
2143
+
2144
+ .model-item-btn.load:hover {
2145
+ background: linear-gradient(145deg, rgba(45, 127, 71, 0.2), rgba(45, 127, 71, 0.1));
2146
+ border-color: rgba(45, 127, 71, 0.4);
2147
+ box-shadow:
2148
+ 0 8px 25px rgba(45, 127, 71, 0.2),
2149
+ 0 3px 10px rgba(0, 0, 0, 0.1),
2150
+ inset 0 1px 0 rgba(255, 255, 255, 0.9);
2151
+ }
2152
+
2153
+ .model-item-btn.unload:hover {
2154
+ background: linear-gradient(145deg, rgba(107, 114, 128, 0.2), rgba(107, 114, 128, 0.1));
2155
+ border-color: rgba(107, 114, 128, 0.4);
2156
+ box-shadow:
2157
+ 0 8px 25px rgba(107, 114, 128, 0.2),
2158
+ 0 3px 10px rgba(0, 0, 0, 0.1),
2159
+ inset 0 1px 0 rgba(255, 255, 255, 0.9);
2160
+ }
2161
+
2162
+ .model-item-btn.delete:hover {
2163
+ background: linear-gradient(145deg, rgba(200, 88, 108, 0.2), rgba(200, 88, 108, 0.1));
2164
+ border-color: rgba(200, 88, 108, 0.4);
2165
+ box-shadow:
2166
+ 0 8px 25px rgba(200, 88, 108, 0.2),
2167
+ 0 3px 10px rgba(0, 0, 0, 0.1),
2168
+ inset 0 1px 0 rgba(255, 255, 255, 0.9);
2169
+ }
2170
+
2171
+ /* Model select dropdown in chat */
2172
+ .model-select {
2173
+ padding: 0.5rem 0.75rem;
2174
+ border: 1px solid #ddd;
2175
+ border-radius: 6px;
2176
+ background: white;
2177
+ font-size: 0.9rem;
2178
+ min-width: 180px;
2179
+ margin-right: 0.75rem;
2180
+ cursor: pointer;
2181
+ transition: all var(--transition-fast);
2182
+ }
2183
+
2184
+ .model-select:focus {
2185
+ outline: none;
2186
+ border-color: var(--accent-gold);
2187
+ box-shadow: 0 0 0 2px rgba(255, 193, 7, 0.2);
2188
+ }
2189
+
2190
+ .model-select:disabled {
2191
+ background: #f5f5f5;
2192
+ cursor: not-allowed;
2193
+ opacity: 0.7;
2194
+ }
2195
+
2196
+ .model-select option {
2197
+ padding: 0.5rem;
2198
+ }
2199
+
2200
+ .chat-input-row {
2201
+ display: flex;
2202
+ align-items: center;
2203
+ gap: 0.5rem;
2204
+ }
2205
+
2206
+ .input-with-indicator {
2207
+ flex: 1;
2208
+ }