zebra-day 0.0.32__py3-none-any.whl → 1.0.2__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.
Files changed (190) hide show
  1. zebra_day/__init__.py +35 -0
  2. zebra_day/bin/fetch_zebra_config.py +15 -0
  3. zebra_day/bin/generate_coord_grid_zpl.py +50 -0
  4. zebra_day/bin/print_zpl_from_file.py +21 -0
  5. zebra_day/bin/probe_new_label_dimensions.py +75 -0
  6. zebra_day/bin/scan_for_networed_zebra_printers_curl.sh +2 -1
  7. zebra_day/bin/zserve.py +701 -259
  8. zebra_day/cli/__init__.py +240 -0
  9. zebra_day/cli/cognito.py +121 -0
  10. zebra_day/cli/gui.py +255 -0
  11. zebra_day/cli/printer.py +168 -0
  12. zebra_day/cli/template.py +176 -0
  13. zebra_day/cmd_mgr.py +35 -0
  14. zebra_day/etc/label_styles/blank.zpl +0 -0
  15. zebra_day/etc/label_styles/cornersStripOf4Squares_1inX1in.zpl +55 -0
  16. zebra_day/etc/label_styles/corners_1inX2in.zpl +28 -0
  17. zebra_day/etc/label_styles/corners_20cmX30cm.zpl +6 -0
  18. zebra_day/etc/label_styles/corners_smallTube.zpl +7 -0
  19. zebra_day/etc/label_styles/corners_unspecifiedDimensions.zpl +15 -0
  20. zebra_day/etc/label_styles/plate_1inX0.25inHD.zpl +9 -0
  21. zebra_day/etc/label_styles/smallTubeWdotHD_prod.zpl +8 -0
  22. zebra_day/etc/label_styles/smallTubeWdot_corners.zpl +7 -0
  23. zebra_day/etc/label_styles/smallTubeWdot_prod.zpl +8 -0
  24. zebra_day/etc/label_styles/smallTubeWdot_prodAlt1.zpl +6 -0
  25. zebra_day/etc/label_styles/smallTubeWdot_prodAlt1b.zpl +3 -0
  26. zebra_day/etc/label_styles/smallTubeWdot_prodV2.zpl +8 -0
  27. zebra_day/etc/label_styles/smallTubeWdot_reagent.zpl +29 -0
  28. zebra_day/etc/label_styles/stripOf4Squares_1inX1in.zpl +32 -0
  29. zebra_day/etc/label_styles/test_800dX800dCoordinateArray.zpl +1 -0
  30. zebra_day/etc/label_styles/tmps/tmp_zpl_templates.here +0 -0
  31. zebra_day/etc/label_styles/tube_20mmX30mmA.zpl +7 -0
  32. zebra_day/etc/label_styles/tube_2inX0.5in.zpl +15 -0
  33. zebra_day/etc/label_styles/tube_2inX0.5inHD.zpl +15 -0
  34. zebra_day/etc/label_styles/tube_2inX1inHD.zpl +22 -0
  35. zebra_day/etc/label_styles/tube_2inX1inHDv3.zpl +21 -0
  36. zebra_day/etc/old_printer_config/2026-02-01_01:50:25.022846_printer_config.json +1 -0
  37. zebra_day/etc/old_printer_config/2026-02-01_01:50:25.033657_printer_config.json +1 -0
  38. zebra_day/etc/old_printer_config/2026-02-01_01:50:25.039597_printer_config.json +3 -0
  39. zebra_day/etc/old_printer_config/2026-02-01_01:50:25.047295_printer_config.json +1 -0
  40. zebra_day/etc/old_printer_config/2026-02-01_01:50:25.055804_printer_config.json +1 -0
  41. zebra_day/etc/old_printer_config/2026-02-01_01:50:25.061337_printer_config.json +3 -0
  42. zebra_day/etc/old_printer_config/2026-02-01_01:51:24.073326_printer_config.json +1 -0
  43. zebra_day/etc/old_printer_config/2026-02-01_01:51:24.081950_printer_config.json +1 -0
  44. zebra_day/etc/old_printer_config/2026-02-01_01:51:24.088251_printer_config.json +3 -0
  45. zebra_day/etc/old_printer_config/2026-02-01_01:51:24.096501_printer_config.json +1 -0
  46. zebra_day/etc/old_printer_config/2026-02-01_01:51:24.104767_printer_config.json +1 -0
  47. zebra_day/etc/old_printer_config/2026-02-01_01:51:24.110364_printer_config.json +3 -0
  48. zebra_day/etc/old_printer_config/2026-02-01_01:51:24.118239_printer_config.json +1 -0
  49. zebra_day/etc/old_printer_config/2026-02-01_01:51:24.125950_printer_config.json +1 -0
  50. zebra_day/etc/old_printer_config/2026-02-01_01:51:24.349866_printer_config.json +1 -0
  51. zebra_day/etc/old_printer_config/2026-02-01_01:51:24.361085_printer_config.json +3 -0
  52. zebra_day/etc/old_printer_config/2026-02-01_01:51:24.558323_printer_config.json +1 -0
  53. zebra_day/etc/old_printer_config/2026-02-01_01:51:24.565756_printer_config.json +3 -0
  54. zebra_day/etc/old_printer_config/{2023-10-25_02:19:04.139607_printer_config.json → 2026-02-01_01:51:29.739070_printer_config.json} +4 -3
  55. zebra_day/etc/old_printer_config/2026-02-01_01:51:29.753796_printer_config.json +1 -0
  56. zebra_day/etc/old_printer_config/2026-02-01_01:51:29.760201_printer_config.json +3 -0
  57. zebra_day/etc/old_printer_config/2026-02-01_01:51:29.768747_printer_config.json +1 -0
  58. zebra_day/etc/old_printer_config/2026-02-01_01:51:29.775312_printer_config.json +3 -0
  59. zebra_day/etc/old_printer_config/2026-02-01_01:51:29.782533_printer_config.json +1 -0
  60. zebra_day/etc/old_printer_config/2026-02-01_01:51:29.789287_printer_config.json +1 -0
  61. zebra_day/etc/old_printer_config/2026-02-01_01:51:29.794230_printer_config.json +3 -0
  62. zebra_day/etc/old_printer_config/2026-02-01_01:51:29.800021_printer_config.json +5 -0
  63. zebra_day/etc/printer_config.json +3 -54
  64. zebra_day/etc/printer_config.template.json +3 -2
  65. zebra_day/etc/tmp_printers0.json +5 -0
  66. zebra_day/etc/tmp_printers374.json +5 -0
  67. zebra_day/etc/tmp_printers383.json +5 -0
  68. zebra_day/etc/tmp_printers450.json +5 -0
  69. zebra_day/etc/tmp_printers504.json +5 -0
  70. zebra_day/etc/tmp_printers608.json +5 -0
  71. zebra_day/etc/tmp_printers657.json +5 -0
  72. zebra_day/etc/tmp_printers838.json +5 -0
  73. zebra_day/etc/tmp_printers839.json +5 -0
  74. zebra_day/etc/tmp_printers933.json +5 -0
  75. zebra_day/etc/tmp_printers957.json +5 -0
  76. zebra_day/exceptions.py +88 -0
  77. zebra_day/files/hold +0 -0
  78. zebra_day/files/test_png_17696.png +0 -0
  79. zebra_day/files/test_png_23477.png +0 -0
  80. zebra_day/files/test_png_28157.png +0 -0
  81. zebra_day/files/test_png_35832.png +0 -0
  82. zebra_day/files/test_png_36400.png +0 -0
  83. zebra_day/files/test_png_40816.png +0 -0
  84. zebra_day/files/test_png_49564.png +0 -0
  85. zebra_day/files/test_png_53848.png +0 -0
  86. zebra_day/files/test_png_62542.png +0 -0
  87. zebra_day/files/test_png_91597.png +0 -0
  88. zebra_day/files/test_png_93633.png +0 -0
  89. zebra_day/files/tmpbjo3k7q1.png +0 -0
  90. zebra_day/files/tmpigtr4pwy.png +0 -0
  91. zebra_day/files/zpl_label_tube_2inX1in_2026-02-01_01:51:24.370964.png +0 -0
  92. zebra_day/logging_config.py +74 -0
  93. zebra_day/logs/.hold +0 -0
  94. zebra_day/logs/print_requests.log +2 -0
  95. zebra_day/paths.py +143 -0
  96. zebra_day/print_mgr.py +489 -103
  97. zebra_day/static/datschund.css +63 -43
  98. zebra_day/static/datschund.png +0 -0
  99. zebra_day/static/daylily.png +0 -0
  100. zebra_day/static/favicon.svg +20 -0
  101. zebra_day/static/general.css +99 -0
  102. zebra_day/static/js/zebra_modern.js +172 -0
  103. zebra_day/static/lsmc.css +354 -0
  104. zebra_day/static/moon.jpeg +0 -0
  105. zebra_day/static/oakland.css +0 -32
  106. zebra_day/static/popday_daylily.css +1 -1
  107. zebra_day/static/style.css +39 -0
  108. zebra_day/static/zebra_modern.css +771 -0
  109. zebra_day/templates/base.html +36 -0
  110. zebra_day/templates/bpr.html +72 -0
  111. zebra_day/templates/build_new_config.html +36 -0
  112. zebra_day/templates/build_print_request.html +32 -0
  113. zebra_day/templates/chg_ui_style.html +19 -0
  114. zebra_day/templates/edit_template.html +128 -0
  115. zebra_day/templates/edit_zpl.html +37 -0
  116. zebra_day/templates/index.html +82 -0
  117. zebra_day/templates/legacy/base.html +37 -0
  118. zebra_day/templates/legacy/bpr.html +72 -0
  119. zebra_day/templates/legacy/build_new_config.html +36 -0
  120. zebra_day/templates/legacy/build_print_request.html +32 -0
  121. zebra_day/templates/legacy/chg_ui_style.html +19 -0
  122. zebra_day/templates/legacy/edit_template.html +128 -0
  123. zebra_day/templates/legacy/edit_zpl.html +37 -0
  124. zebra_day/templates/legacy/index.html +82 -0
  125. zebra_day/templates/legacy/list_prior_configs.html +24 -0
  126. zebra_day/templates/legacy/print_result.html +30 -0
  127. zebra_day/templates/legacy/printer_details.html +25 -0
  128. zebra_day/templates/legacy/printer_status.html +70 -0
  129. zebra_day/templates/legacy/save_result.html +17 -0
  130. zebra_day/templates/legacy/send_print_request.html +34 -0
  131. zebra_day/templates/legacy/simple_print.html +94 -0
  132. zebra_day/templates/legacy/view_pstation_json.html +29 -0
  133. zebra_day/templates/list_prior_configs.html +24 -0
  134. zebra_day/templates/modern/base.html +98 -0
  135. zebra_day/templates/modern/config.html +141 -0
  136. zebra_day/templates/modern/dashboard.html +160 -0
  137. zebra_day/templates/modern/print_request.html +141 -0
  138. zebra_day/templates/modern/print_result.html +88 -0
  139. zebra_day/templates/modern/printer_detail.html +117 -0
  140. zebra_day/templates/modern/printers.html +133 -0
  141. zebra_day/templates/modern/save_result.html +46 -0
  142. zebra_day/templates/modern/template_editor.html +172 -0
  143. zebra_day/templates/modern/templates.html +122 -0
  144. zebra_day/templates/print_result.html +30 -0
  145. zebra_day/templates/printer_details.html +25 -0
  146. zebra_day/templates/printer_status.html +70 -0
  147. zebra_day/templates/save_result.html +17 -0
  148. zebra_day/templates/send_print_request.html +34 -0
  149. zebra_day/templates/simple_print.html +94 -0
  150. zebra_day/templates/view_pstation_json.html +29 -0
  151. zebra_day/web/__init__.py +9 -0
  152. zebra_day/web/app.py +171 -0
  153. zebra_day/web/auth.py +172 -0
  154. zebra_day/web/middleware.py +159 -0
  155. zebra_day/web/routers/__init__.py +2 -0
  156. zebra_day/web/routers/api.py +163 -0
  157. zebra_day/web/routers/ui.py +1051 -0
  158. zebra_day/zpl_renderer.py +273 -0
  159. zebra_day-1.0.2.dist-info/METADATA +786 -0
  160. zebra_day-1.0.2.dist-info/RECORD +179 -0
  161. {zebra_day-0.0.32.dist-info → zebra_day-1.0.2.dist-info}/WHEEL +1 -1
  162. zebra_day-1.0.2.dist-info/entry_points.txt +4 -0
  163. zebra_day/etc/.blind +0 -1
  164. zebra_day/etc/current_style.txt +0 -1
  165. zebra_day/etc/label_styles/test_2inX1in.zpl +0 -22
  166. zebra_day/etc/label_styles/tmps/labware_2inX1in.na.2023-10-24_12:49:21.045127.zpl +0 -21
  167. zebra_day/etc/label_styles/tmps/labware_2inX1in.naggg.2023-10-24_16:02:04.704814.8888.2023-10-24_16:02:16.443911.zpl +0 -21
  168. zebra_day/etc/label_styles/tmps/labware_2inX1in.naggg.2023-10-24_16:02:04.704814.zpl +0 -21
  169. zebra_day/etc/label_styles/tmps/test_2inX1in.na.2023-10-24_12:45:37.002774.zpl +0 -22
  170. zebra_day/etc/old_printer_config/2023-10-24_16:06:06.931764_printer_config.json +0 -67
  171. zebra_day/etc/printer_config.json~ +0 -67
  172. zebra_day/files/tmp_2olihg4.png +0 -0
  173. zebra_day/files/tmpveojoyvn.png +0 -0
  174. zebra_day/files/zpl_label_labware_2inX1in_2023-10-25_02:30:08.093631.png +0 -0
  175. zebra_day/files/zpl_label_test_2inX1in_2023-10-24_15:54:29.343124.png +0 -0
  176. zebra_day/files/zpl_label_test_2inX1in_2023-10-24_16:01:45.670132.png +0 -0
  177. zebra_day/static/beyonce.css +0 -227
  178. zebra_day/static/datschund_on_moon.css +0 -164
  179. zebra_day/static/medicalsci.css +0 -144
  180. zebra_day/static/moar_zebra.css +0 -133
  181. zebra_day/static/popday.css +0 -140
  182. zebra_day/static/popday_dark.css +0 -140
  183. zebra_day/static/popday_dog.css +0 -140
  184. zebra_day-0.0.32.dist-info/METADATA +0 -14
  185. zebra_day-0.0.32.dist-info/RECORD +0 -53
  186. zebra_day-0.0.32.dist-info/entry_points.txt +0 -2
  187. /zebra_day/{etc/label_styles/blank_0inX0in.zpl → bin/__init__.py} +0 -0
  188. /zebra_day/etc/label_styles/{labware_2inX1in.zpl → generic_2inX1in.zpl} +0 -0
  189. {zebra_day-0.0.32.dist-info → zebra_day-1.0.2.dist-info/licenses}/LICENSE +0 -0
  190. {zebra_day-0.0.32.dist-info → zebra_day-1.0.2.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,354 @@
1
+ /*
2
+ * LSMC-inspired theme for Zebra Day
3
+ * Dark, modern, clinical aesthetic with zebra stripe accents
4
+ * Based on lsmc.com design system
5
+ */
6
+
7
+ @import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=JetBrains+Mono:wght@400;500&display=swap');
8
+
9
+ :root {
10
+ /* LSMC-inspired color palette */
11
+ --lsmc-black: #0a0a0a;
12
+ --lsmc-dark: #141414;
13
+ --lsmc-gray-900: #1a1a1a;
14
+ --lsmc-gray-800: #262626;
15
+ --lsmc-gray-700: #333333;
16
+ --lsmc-gray-600: #4a4a4a;
17
+ --lsmc-gray-400: #888888;
18
+ --lsmc-gray-300: #a3a3a3;
19
+ --lsmc-gray-200: #d4d4d4;
20
+ --lsmc-white: #fafafa;
21
+
22
+ /* Zebra accent colors */
23
+ --zebra-stripe-light: #ffffff;
24
+ --zebra-stripe-dark: #1a1a1a;
25
+ --zebra-accent: #6366f1; /* Indigo accent */
26
+ --zebra-accent-hover: #818cf8;
27
+ --zebra-success: #22c55e;
28
+ --zebra-warning: #f59e0b;
29
+ --zebra-error: #ef4444;
30
+ }
31
+
32
+ body {
33
+ font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
34
+ background-color: var(--lsmc-black);
35
+ color: var(--lsmc-white);
36
+ padding: 24px;
37
+ margin: 0;
38
+ line-height: 1.6;
39
+ font-size: 15px;
40
+ }
41
+
42
+ /* Zebra stripe decorative border at top */
43
+ body::before {
44
+ content: '';
45
+ position: fixed;
46
+ top: 0;
47
+ left: 0;
48
+ right: 0;
49
+ height: 4px;
50
+ background: repeating-linear-gradient(
51
+ 90deg,
52
+ var(--zebra-stripe-light) 0px,
53
+ var(--zebra-stripe-light) 20px,
54
+ var(--zebra-stripe-dark) 20px,
55
+ var(--zebra-stripe-dark) 40px
56
+ );
57
+ z-index: 1000;
58
+ }
59
+
60
+ h1, h2 {
61
+ font-family: 'Inter', sans-serif;
62
+ font-weight: 700;
63
+ letter-spacing: -0.02em;
64
+ border-bottom: 1px solid var(--lsmc-gray-700);
65
+ padding: 12px 0;
66
+ margin-top: 32px;
67
+ margin-bottom: 16px;
68
+ }
69
+
70
+ h1 {
71
+ font-size: 2rem;
72
+ color: var(--lsmc-white);
73
+ }
74
+
75
+ h2 {
76
+ font-size: 1.25rem;
77
+ color: var(--lsmc-gray-200);
78
+ }
79
+
80
+ small {
81
+ display: block;
82
+ color: var(--lsmc-gray-400);
83
+ font-size: 0.85em;
84
+ }
85
+
86
+ a {
87
+ color: var(--zebra-accent);
88
+ text-decoration: none;
89
+ transition: color 0.2s ease;
90
+ }
91
+
92
+ a:hover {
93
+ color: var(--zebra-accent-hover);
94
+ }
95
+
96
+ a.navigational-link {
97
+ font-weight: 600;
98
+ background-color: var(--zebra-accent);
99
+ color: var(--lsmc-white);
100
+ padding: 8px 16px;
101
+ border-radius: 6px;
102
+ display: inline-block;
103
+ }
104
+
105
+ a.navigational-link:hover {
106
+ background-color: var(--zebra-accent-hover);
107
+ }
108
+
109
+ hr {
110
+ border: 0;
111
+ border-bottom: 1px solid var(--lsmc-gray-700);
112
+ margin: 24px 0;
113
+ }
114
+
115
+ ul {
116
+ list-style-type: none;
117
+ padding-left: 0;
118
+ }
119
+
120
+ ul ul {
121
+ padding-left: 24px;
122
+ }
123
+
124
+ li {
125
+ padding: 4px 0;
126
+ }
127
+
128
+ /* Form inputs */
129
+ input[type=text],
130
+ input[type=email],
131
+ input[type=password],
132
+ input[type=number] {
133
+ font-family: 'JetBrains Mono', monospace;
134
+ padding: 12px 16px;
135
+ border: 1px solid var(--lsmc-gray-700);
136
+ border-radius: 6px;
137
+ background-color: var(--lsmc-gray-900);
138
+ color: var(--lsmc-white);
139
+ font-size: 14px;
140
+ transition: border-color 0.2s ease, box-shadow 0.2s ease;
141
+ }
142
+
143
+ input[type=text]:focus,
144
+ input[type=email]:focus,
145
+ input[type=password]:focus,
146
+ input[type=number]:focus {
147
+ border-color: var(--zebra-accent);
148
+ outline: none;
149
+ box-shadow: 0 0 0 3px rgba(99, 102, 241, 0.2);
150
+ }
151
+
152
+ input[type=text]::placeholder {
153
+ color: var(--lsmc-gray-600);
154
+ }
155
+
156
+ /* Submit buttons */
157
+ input[type=submit] {
158
+ font-family: 'Inter', sans-serif;
159
+ font-weight: 600;
160
+ padding: 12px 24px;
161
+ background-color: var(--zebra-accent);
162
+ border: none;
163
+ border-radius: 6px;
164
+ color: var(--lsmc-white);
165
+ cursor: pointer;
166
+ font-size: 14px;
167
+ transition: background-color 0.2s ease, transform 0.1s ease;
168
+ }
169
+
170
+ input[type=submit]:hover {
171
+ background-color: var(--zebra-accent-hover);
172
+ }
173
+
174
+ input[type=submit]:active {
175
+ transform: scale(0.98);
176
+ }
177
+
178
+ /* Regular buttons */
179
+ input[type="button"] {
180
+ font-family: 'Inter', sans-serif;
181
+ font-weight: 500;
182
+ background-color: var(--lsmc-gray-800);
183
+ border: 1px solid var(--lsmc-gray-700);
184
+ color: var(--lsmc-white);
185
+ padding: 12px 24px;
186
+ font-size: 14px;
187
+ border-radius: 6px;
188
+ transition: all 0.2s ease;
189
+ cursor: pointer;
190
+ }
191
+
192
+ input[type="button"]:hover {
193
+ background-color: var(--lsmc-gray-700);
194
+ border-color: var(--lsmc-gray-600);
195
+ }
196
+
197
+ input[type="button"]:active {
198
+ background-color: var(--lsmc-gray-600);
199
+ }
200
+
201
+ /* Select dropdowns */
202
+ select {
203
+ font-family: 'JetBrains Mono', monospace;
204
+ background-color: var(--lsmc-gray-900);
205
+ border: 1px solid var(--lsmc-gray-700);
206
+ color: var(--lsmc-white);
207
+ padding: 12px 16px;
208
+ font-size: 14px;
209
+ border-radius: 6px;
210
+ appearance: none;
211
+ background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%23888' d='M6 8L1 3h10z'/%3E%3C/svg%3E");
212
+ background-repeat: no-repeat;
213
+ background-position: right 12px center;
214
+ padding-right: 36px;
215
+ cursor: pointer;
216
+ }
217
+
218
+ select:focus {
219
+ border-color: var(--zebra-accent);
220
+ outline: none;
221
+ box-shadow: 0 0 0 3px rgba(99, 102, 241, 0.2);
222
+ }
223
+
224
+ select option {
225
+ background-color: var(--lsmc-gray-900);
226
+ color: var(--lsmc-white);
227
+ }
228
+
229
+ /* Textarea */
230
+ textarea {
231
+ font-family: 'JetBrains Mono', monospace;
232
+ padding: 16px;
233
+ border: 1px solid var(--lsmc-gray-700);
234
+ border-radius: 6px;
235
+ background-color: var(--lsmc-gray-900);
236
+ color: var(--lsmc-white);
237
+ font-size: 13px;
238
+ line-height: 1.5;
239
+ resize: vertical;
240
+ transition: border-color 0.2s ease, box-shadow 0.2s ease;
241
+ }
242
+
243
+ textarea:focus {
244
+ border-color: var(--zebra-accent);
245
+ outline: none;
246
+ box-shadow: 0 0 0 3px rgba(99, 102, 241, 0.2);
247
+ }
248
+
249
+ textarea::placeholder {
250
+ color: var(--lsmc-gray-600);
251
+ }
252
+
253
+ textarea::-webkit-scrollbar {
254
+ width: 8px;
255
+ }
256
+
257
+ textarea::-webkit-scrollbar-thumb {
258
+ background-color: var(--lsmc-gray-600);
259
+ border-radius: 4px;
260
+ }
261
+
262
+ textarea::-webkit-scrollbar-track {
263
+ background-color: var(--lsmc-gray-800);
264
+ border-radius: 4px;
265
+ }
266
+
267
+ /* Theme switcher link */
268
+ #bottomRightLink {
269
+ font-family: 'Inter', sans-serif;
270
+ font-weight: 500;
271
+ font-size: 12px;
272
+ background-color: var(--lsmc-gray-800);
273
+ border: 1px solid var(--lsmc-gray-700);
274
+ border-radius: 6px;
275
+ padding: 8px 12px;
276
+ color: var(--lsmc-gray-300);
277
+ transition: all 0.2s ease;
278
+ }
279
+
280
+ #bottomRightLink:hover {
281
+ background-color: var(--lsmc-gray-700);
282
+ color: var(--lsmc-white);
283
+ }
284
+
285
+ /* Tables */
286
+ table {
287
+ border-collapse: collapse;
288
+ width: 100%;
289
+ margin: 16px 0;
290
+ }
291
+
292
+ th, td {
293
+ padding: 12px 16px;
294
+ text-align: left;
295
+ border-bottom: 1px solid var(--lsmc-gray-700);
296
+ }
297
+
298
+ th {
299
+ font-weight: 600;
300
+ color: var(--lsmc-gray-300);
301
+ font-size: 12px;
302
+ text-transform: uppercase;
303
+ letter-spacing: 0.05em;
304
+ }
305
+
306
+ tr:hover {
307
+ background-color: var(--lsmc-gray-900);
308
+ }
309
+
310
+ /* Code/pre blocks */
311
+ pre, code {
312
+ font-family: 'JetBrains Mono', monospace;
313
+ background-color: var(--lsmc-gray-900);
314
+ border-radius: 4px;
315
+ font-size: 13px;
316
+ }
317
+
318
+ code {
319
+ padding: 2px 6px;
320
+ color: var(--zebra-accent-hover);
321
+ }
322
+
323
+ pre {
324
+ padding: 16px;
325
+ overflow-x: auto;
326
+ border: 1px solid var(--lsmc-gray-700);
327
+ }
328
+
329
+ /* Status indicators with zebra colors */
330
+ .status-online, .status-success {
331
+ color: var(--zebra-success);
332
+ }
333
+
334
+ .status-offline, .status-error {
335
+ color: var(--zebra-error);
336
+ }
337
+
338
+ .status-warning {
339
+ color: var(--zebra-warning);
340
+ }
341
+
342
+ /* Zebra stripe accent for important sections */
343
+ .zebra-accent {
344
+ border-left: 4px solid;
345
+ border-image: repeating-linear-gradient(
346
+ 180deg,
347
+ var(--zebra-stripe-light) 0px,
348
+ var(--zebra-stripe-light) 8px,
349
+ var(--zebra-stripe-dark) 8px,
350
+ var(--zebra-stripe-dark) 16px
351
+ ) 1;
352
+ padding-left: 16px;
353
+ }
354
+
Binary file
@@ -52,11 +52,6 @@ textarea {
52
52
  resize: vertical;
53
53
  }
54
54
 
55
-
56
- #spinner.spinner-hidden {
57
- display: none;
58
- }
59
-
60
55
  h1, h2 {
61
56
  font-weight: bold;
62
57
  border-bottom: 3px solid #3498DB; /* Bright blue to evoke the sky and water */
@@ -130,33 +125,6 @@ input[type=submit]:hover {
130
125
  background-color: #C0392B;
131
126
  }
132
127
 
133
- #spinner {
134
- display: flex;
135
- justify-content: center;
136
- align-items: center;
137
- position: fixed;
138
- top: 0;
139
- left: 0;
140
- width: 100%;
141
- height: 100%;
142
- background: rgba(0, 0, 0, 0.6);
143
- z-index: 9999;
144
- }
145
-
146
- .loader {
147
- border: 8px solid #ECF0F1;
148
- border-top: 8px solid #3498DB;
149
- border-radius: 50%;
150
- width: 50px;
151
- height: 50px;
152
- animation: spin 1s linear infinite;
153
- }
154
-
155
- @keyframes spin {
156
- 0% { transform: rotate(0deg); }
157
- 100% { transform: rotate(360deg); }
158
- }
159
-
160
128
  #bottomRightLink {
161
129
  background-color: #9B59B6; /* A regal purple to add some extra flair */
162
130
  border-radius: 5px;
@@ -11,7 +11,7 @@ body {
11
11
  color: #D91E63; /* Bold Pink text, Warhol-esque */
12
12
  margin: 0;
13
13
  padding: 20px;
14
- background-image: linear-gradient(rgba(255, 255, 255, 0.8), rgba(255, 255, 255, 2.9)), url('../imgs/daylily.png');
14
+ background-image: linear-gradient(rgba(255, 255, 255, 0.8), rgba(255, 255, 255, 2.9)), url('./daylily.png');
15
15
  background-repeat: repeat;
16
16
  }
17
17
 
@@ -1,4 +1,43 @@
1
1
  /* Fonts and Base */
2
+
3
+ :root {
4
+ --hrColor: #C400DB;
5
+ }
6
+
7
+ .hrTiny {
8
+ height: 1px;
9
+ background-color: var(--hrColor);
10
+ width:100%;
11
+ }
12
+
13
+ .hrSmall {
14
+ height: 2px;
15
+ background-color: var(--hrColor);
16
+ width:100%;
17
+ }
18
+
19
+ .hrMed {
20
+ height: 3px;
21
+ width: 100%;
22
+ background-color: var(--hrColor);
23
+ }
24
+
25
+ .hrLarge {
26
+ height: 4px;
27
+ background-color: var(--hrColor);
28
+ width:100%;
29
+ }
30
+
31
+ .hrVLarge {
32
+ height: 5px;
33
+ background-color: var(--hrColor);
34
+ width:100%;
35
+ }
36
+
37
+ h3 {
38
+ margin-bottom: auto;
39
+ }
40
+
2
41
  @import url('https://fonts.googleapis.com/css2?family=DejaVu+Sans+Mono&display=swap');
3
42
 
4
43
  .spinner-hidden {