PluginProbe
Easy Invoice – Invoice Generator, PDF Quotes & Payments / 2.3.4
Easy Invoice – Invoice Generator, PDF Quotes & Payments v2.3.4
2.4.0 2.4.1 2.3.8 2.3.7 2.3.6 2.3.5 2.3.4 2.3.3 2.3.2 2.3.1 2.2.0 2.1.21 2.1.20 2.1.19 2.1.18 2.1.0 2.1.1 2.1.10 2.1.11 2.1.12 2.1.13 2.1.14 2.1.15 2.1.16 2.1.2 All 57 releases
easy-invoice / assets / css / invoice-form.css

invoice-form.css in Easy Invoice – Invoice Generator, PDF Quotes & Payments 2.3.4, at assets/css/invoice-form.css

557 lines 16.1 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 /* Builder: spinner (when Tailwind animate-spin is unavailable) */
2 @keyframes ei-spin {
3 to {
4 transform: rotate(360deg);
5 }
6 }
7 .ei-btn-spinner {
8 animation: ei-spin 0.9s linear infinite;
9 }
10
11 /* Utility classes */
12 .hidden {
13 display: none !important;
14 }
15
16 /* Template Card Styles */
17 .template-card:hover {
18 box-shadow: 0 0 0 2px rgba(79, 70, 229, 0.3);
19 }
20
21 /* Hide the radio buttons (visually only) */
22 input[type="radio"].template-radio {
23 position: absolute;
24 opacity: 0;
25 visibility: hidden;
26 }
27
28 /* Template Gallery Styles */
29 .gallery-template-card > div:hover {
30 box-shadow: 0 0 0 2px rgba(79, 70, 229, 0.3);
31 }
32
33
34
35 /* Template Preview Styles */
36 #preview-live.template-standard {
37 /* Standard template styles */
38 background-color: #ffffff;
39 color: #374151;
40 }
41
42 #preview-live.template-professional {
43 /* Professional template styles */
44 background-color: #f9fafb;
45 border-left: 4px solid #4f46e5;
46 box-shadow: inset 0 0 0 1px rgba(229, 231, 235, 0.5);
47 }
48
49 #preview-live.template-professional h1 {
50 color: #4f46e5;
51 font-size: 1.75rem;
52 letter-spacing: -0.025em;
53 }
54
55 #preview-live.template-professional table thead {
56 background-color: #eef2ff;
57 }
58
59 #preview-live.template-minimal {
60 /* Minimal template styles */
61 background-color: #ffffff;
62 font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
63 }
64
65 #preview-live.template-minimal h1,
66 #preview-live.template-minimal h2 {
67 font-weight: 300;
68 letter-spacing: 0.05em;
69 }
70
71 #preview-live.template-minimal table {
72 border-collapse: collapse;
73 }
74
75 #preview-live.template-minimal table thead {
76 border-bottom: 1px solid #e5e7eb;
77 background-color: transparent;
78 }
79
80 #preview-live.template-minimal table thead th {
81 text-transform: none;
82 font-weight: 500;
83 color: #6b7280;
84 }
85
86 #preview-live.template-minimal tbody tr {
87 border-bottom: 1px solid #f3f4f6;
88 }
89
90 /* Template Selection Preview Thumbnails */
91 .template-preview.standard {
92 background-image: url('data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTYwIiBoZWlnaHQ9IjY0IiB2aWV3Qm94PSIwIDAgMTYwIDY0IiBmaWxsPSJub25lIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjxyZWN0IHdpZHRoPSIxNjAiIGhlaWdodD0iNjQiIGZpbGw9IiNGM0Y0RjYiLz48cmVjdCB4PSIxMiIgeT0iOCIgd2lkdGg9IjgwIiBoZWlnaHQ9IjgiIGZpbGw9IiNEMUQ1REIiLz48cmVjdCB4PSIxMiIgeT0iMjAiIHdpZHRoPSIxMzYiIGhlaWdodD0iNCIgZmlsbD0iI0UyRTVFOCIvPjxyZWN0IHg9IjEyIiB5PSIyOCIgd2lkdGg9IjEzNiIgaGVpZ2h0PSI0IiBmaWxsPSIjRTJFNUU4Ii8+PHJlY3QgeD0iMTIiIHk9IjQ0IiB3aWR0aD0iNDgiIGhlaWdodD0iMTIiIGZpbGw9IiM5Q0EzQUYiLz48L3N2Zz4=');
93 background-size: cover;
94 }
95
96 .template-preview.professional {
97 background-image: url('data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTYwIiBoZWlnaHQ9IjY0IiB2aWV3Qm94PSIwIDAgMTYwIDY0IiBmaWxsPSJub25lIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjxyZWN0IHdpZHRoPSIxNjAiIGhlaWdodD0iNjQiIGZpbGw9IiNGOUZBRkIiLz48cmVjdCB4PSIwIiB5PSIwIiB3aWR0aD0iNCIgaGVpZ2h0PSI2NCIgZmlsbD0iIzRGNDZFNSIvPjxyZWN0IHg9IjEyIiB5PSI4IiB3aWR0aD0iODAiIGhlaWdodD0iOCIgZmlsbD0iIzRGNDZFNSIvPjxyZWN0IHg9IjEyIiB5PSIyMCIgd2lkdGg9IjEzNiIgaGVpZ2h0PSI0IiBmaWxsPSIjRTJFNUU4Ii8+PHJlY3QgeD0iMTIiIHk9IjI4IiB3aWR0aD0iMTM2IiBoZWlnaHQ9IjQiIGZpbGw9IiNFMkU1RTgiLz48cmVjdCB4PSIxMiIgeT0iNDQiIHdpZHRoPSI0OCIgaGVpZ2h0PSIxMiIgZmlsbD0iIzRGNDZFNSIvPjwvc3ZnPg==');
98 background-size: cover;
99 }
100
101 .template-preview.minimal {
102 background-image: url('data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTYwIiBoZWlnaHQ9IjY0IiB2aWV3Qm94PSIwIDAgMTYwIDY0IiBmaWxsPSJub25lIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjxyZWN0IHdpZHRoPSIxNjAiIGhlaWdodD0iNjQiIGZpbGw9IiNGRkZGRkYiLz48cmVjdCB4PSIxMiIgeT0iOCIgd2lkdGg9IjQwIiBoZWlnaHQ9IjQiIGZpbGw9IiM0QjU1NjMiLz48cmVjdCB4PSIxMjAiIHk9IjgiIHdpZHRoPSIyOCIgaGVpZ2h0PSI0IiBmaWxsPSIjOUNBM0FGIi8+PHJlY3QgeD0iMTIiIHk9IjI4IiB3aWR0aD0iMTM2IiBoZWlnaHQ9IjEiIGZpbGw9IiNFNUU3RUIiLz48cmVjdCB4PSIxMiIgeT0iMzYiIHdpZHRoPSIxMzYiIGhlaWdodD0iMSIgZmlsbD0iI0U1RTdFQiIvPjxyZWN0IHg9IjEyIiB5PSI0NCIgd2lkdGg9IjEzNiIgaGVpZ2h0PSIxIiBmaWxsPSIjRTVFN0VCIi8+PHJlY3QgeD0iMTI4IiB5PSI1MiIgd2lkdGg9IjIwIiBoZWlnaHQ9IjQiIGZpbGw9IiM5Q0EzQUYiLz48L3N2Zz4=');
103 background-size: cover;
104 }
105
106 .template-preview.modern {
107 background-image: url('data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTYwIiBoZWlnaHQ9IjY0IiB2aWV3Qm94PSIwIDAgMTYwIDY0IiBmaWxsPSJub25lIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjxyZWN0IHdpZHRoPSIxNjAiIGhlaWdodD0iNjQiIGZpbGw9IiNGOUZBRkIiLz48cmVjdCB4PSIxMiIgeT0iOCIgd2lkdGg9IjgwIiBoZWlnaHQ9IjgiIGZpbGw9IiM0QjU1NjMiLz48cmVjdCB4PSIxMiIgeT0iMjAiIHdpZHRoPSIxMzYiIGhlaWdodD0iNCIgZmlsbD0iI0UyRTVFOCIvPjxyZWN0IHg9IjEyIiB5PSIyOCIgd2lkdGg9IjEzNiIgaGVpZ2h0PSI0IiBmaWxsPSIjRTJFNUU4Ii8+PHJlY3QgeD0iMTIiIHk9IjQ0IiB3aWR0aD0iNDgiIGhlaWdodD0iMTIiIGZpbGw9IiM0QjU1NjMiLz48L3N2Zz4=');
108 background-size: cover;
109 }
110
111 .template-preview.corporate {
112 background-image: url('data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTYwIiBoZWlnaHQ9IjY0IiB2aWV3Qm94PSIwIDAgMTYwIDY0IiBmaWxsPSJub25lIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjxyZWN0IHdpZHRoPSIxNjAiIGhlaWdodD0iNjQiIGZpbGw9IiNGM0Y0RjYiLz48cmVjdCB4PSIxMiIgeT0iOCIgd2lkdGg9IjgwIiBoZWlnaHQ9IjgiIGZpbGw9IiM2QjcyODAiLz48cmVjdCB4PSIxMiIgeT0iMjAiIHdpZHRoPSIxMzYiIGhlaWdodD0iNCIgZmlsbD0iI0UyRTVFOCIvPjxyZWN0IHg9IjEyIiB5PSIyOCIgd2lkdGg9IjEzNiIgaGVpZ2h0PSI0IiBmaWxsPSIjRTJFNUU4Ii8+PHJlY3QgeD0iMTIiIHk9IjQ0IiB3aWR0aD0iNDgiIGhlaWdodD0iMTIiIGZpbGw9IiM2QjcyODAiLz48L3N2Zz4=');
113 background-size: cover;
114 }
115
116 .template-preview.creative {
117 background-image: url('data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTYwIiBoZWlnaHQ9IjY0IiB2aWV3Qm94PSIwIDAgMTYwIDY0IiBmaWxsPSJub25lIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjxyZWN0IHdpZHRoPSIxNjAiIGhlaWdodD0iNjQiIGZpbGw9IiNGM0Y0RjYiLz48cmVjdCB4PSIxMiIgeT0iOCIgd2lkdGg9IjgwIiBoZWlnaHQ9IjgiIGZpbGw9IiNFQjQ0N0MiLz48cmVjdCB4PSIxMiIgeT0iMjAiIHdpZHRoPSIxMzYiIGhlaWdodD0iNCIgZmlsbD0iI0UyRTVFOCIvPjxyZWN0IHg9IjEyIiB5PSIyOCIgd2lkdGg9IjEzNiIgaGVpZ2h0PSI0IiBmaWxsPSIjRTJFNUU4Ii8+PHJlY3QgeD0iMTIiIHk9IjQ0IiB3aWR0aD0iNDgiIGhlaWdodD0iMTIiIGZpbGw9IiNFQjQ0N0MiLz48L3N2Zz4=');
118 background-size: cover;
119 }
120
121 .template-preview.minimalist {
122 background-image: url('data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTYwIiBoZWlnaHQ9IjY0IiB2aWV3Qm94PSIwIDAgMTYwIDY0IiBmaWxsPSJub25lIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjxyZWN0IHdpZHRoPSIxNjAiIGhlaWdodD0iNjQiIGZpbGw9IiNGRkZGRkYiLz48cmVjdCB4PSIxMiIgeT0iOCIgd2lkdGg9IjQwIiBoZWlnaHQ9IjQiIGZpbGw9IiM0QjU1NjMiLz48cmVjdCB4PSIxMiIgeT0iMjAiIHdpZHRoPSIxMzYiIGhlaWdodD0iMSIgZmlsbD0iI0U1RTdFQiIvPjxyZWN0IHg9IjEyIiB5PSIyOCIgd2lkdGg9IjEzNiIgaGVpZ2h0PSIxIiBmaWxsPSIjRTVFN0VCIi8+PHJlY3QgeD0iMTIiIHk9IjQ0IiB3aWR0aD0iMTM2IiBoZWlnaHQ9IjEiIGZpbGw9IiNFNUU3RUIiLz48L3N2Zz4=');
123 background-size: cover;
124 }
125
126 .template-preview.elegant {
127 background-image: url('data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTYwIiBoZWlnaHQ9IjY0IiB2aWV3Qm94PSIwIDAgMTYwIDY0IiBmaWxsPSJub25lIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjxyZWN0IHdpZHRoPSIxNjAiIGhlaWdodD0iNjQiIGZpbGw9IiNGOUZBRkIiLz48cmVjdCB4PSIxMiIgeT0iOCIgd2lkdGg9IjgwIiBoZWlnaHQ9IjgiIGZpbGw9IiM5Q0EzQUYiLz48cmVjdCB4PSIxMiIgeT0iMjAiIHdpZHRoPSIxMzYiIGhlaWdodD0iNCIgZmlsbD0iI0UyRTVFOCIvPjxyZWN0IHg9IjEyIiB5PSIyOCIgd2lkdGg9IjEzNiIgaGVpZ2h0PSI0IiBmaWxsPSIjRTJFNUU4Ii8+PHJlY3QgeD0iMTIiIHk9IjQ0IiB3aWR0aD0iNDgiIGhlaWdodD0iMTIiIGZpbGw9IiM5Q0EzQUYiLz48L3N2Zz4=');
128 background-size: cover;
129 }
130
131 .template-preview.classic {
132 background-image: url('data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTYwIiBoZWlnaHQ9IjY0IiB2aWV3Qm94PSIwIDAgMTYwIDY0IiBmaWxsPSJub25lIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjxyZWN0IHdpZHRoPSIxNjAiIGhlaWdodD0iNjQiIGZpbGw9IiNGM0Y0RjYiLz48cmVjdCB4PSIxMiIgeT0iOCIgd2lkdGg9IjgwIiBoZWlnaHQ9IjgiIGZpbGw9IiM2QjcyODAiLz48cmVjdCB4PSIxMiIgeT0iMjAiIHdpZHRoPSIxMzYiIGhlaWdodD0iNCIgZmlsbD0iI0UyRTVFOCIvPjxyZWN0IHg9IjEyIiB5PSIyOCIgd2lkdGg9IjEzNiIgaGVpZ2h0PSI0IiBmaWxsPSIjRTJFNUU4Ii8+PHJlY3QgeD0iMTIiIHk9IjQ0IiB3aWR0aD0iNDgiIGhlaWdodD0iMTIiIGZpbGw9IiM2QjcyODAiLz48L3N2Zz4=');
133 background-size: cover;
134 }
135
136 /* Template Selection Styles */
137 .template-card {
138 cursor: pointer;
139 transition: all 0.3s ease;
140 position: relative;
141 border: 2px solid transparent;
142 height: 100%;
143 }
144
145 .template-card > div {
146 display: flex;
147 flex-direction: column;
148 }
149
150 .template-card:hover {
151 box-shadow: 0 0 12px rgba(0, 0, 0, 0.1);
152 }
153
154 .template-card.selected {
155 border-color: #4f46e5;
156 }
157
158 /* Fixed height for all template cards */
159 .template-card p,
160 .gallery-template-card p {
161 flex: 1 0 auto;
162 min-height: 40px;
163 }
164
165 /* Hide radio buttons visually but keep them accessible */
166 .template-radio {
167 position: absolute;
168 opacity: 0;
169 width: 0;
170 height: 0;
171 }
172
173 /* Favorite star styling */
174
175
176 /* Enhanced textarea styles */
177 textarea{
178 padding: 0.75rem 1rem;
179 min-height: 50px;
180 resize: vertical;
181 line-height: 1.5;
182 font-family: inherit;
183 }
184
185 textarea:focus {
186 border-color: #6366f1;
187 outline: none;
188 box-shadow: 0 0 0 3px rgba(99, 102, 241, 0.1);
189 }
190
191 /* Specific styles for different textarea sizes */
192 textarea.form-input[rows="2"] {
193 min-height: 80px;
194 }
195
196 textarea.form-input[rows="3"] {
197 min-height: 120px;
198 }
199
200 textarea.form-input[rows="4"] {
201 min-height: 160px;
202 }
203
204 textarea.form-input[rows="5"] {
205 min-height: 200px;
206 }
207
208 /* Placeholder styling for textareas */
209 textarea.form-input::placeholder {
210 color: #9ca3af;
211 font-style: italic;
212 }
213
214 /* Gallery template card styles */
215 .gallery-template-card {
216 cursor: pointer;
217 transition: all 0.3s ease;
218 position: relative;
219 border: 2px solid transparent;
220 height: 100%;
221 }
222
223 .gallery-template-card > div {
224 display: flex;
225 flex-direction: column;
226 }
227
228 /* Gallery modal styles */
229 #template-gallery-modal {
230 display: none;
231 position: fixed;
232 top: 0;
233 left: 0;
234 right: 0;
235 bottom: 0;
236 background-color: rgba(0, 0, 0, 0.5);
237 z-index: 1000;
238 overflow-y: auto;
239 display: flex;
240 align-items: center;
241 justify-content: center;
242 }
243
244 .gallery-modal-content {
245 background-color: white;
246 padding: 20px;
247 width: 90%;
248 max-width: 1000px;
249 border-radius: 8px;
250 position: relative;
251 margin: 0 auto;
252 max-height: 80vh;
253 overflow-y: auto;
254 }
255
256 .gallery-template-card:hover {
257 box-shadow: 0 0 12px rgba(0, 0, 0, 0.1);
258 }
259
260 .gallery-template-card.selected {
261 border-color: #4f46e5;
262 box-shadow: 0 0 0 2px rgba(79, 70, 229, 0.5);
263 }
264
265 .close-gallery-modal {
266 position: absolute;
267 top: 10px;
268 right: 20px;
269 font-size: 24px;
270 cursor: pointer;
271 }
272
273 /* Templates for preview */
274 .template-standard {
275 background-color: white;
276 border: 1px solid #e5e7eb;
277 }
278
279 .template-professional {
280 background-color: #f8fafc;
281 border: 1px solid #cbd5e1;
282 }
283
284 .template-minimal {
285 background-color: white;
286 border: none;
287 box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);
288 }
289
290 /* Invoice Form Styles */
291 .invoice-form {
292 max-width: 1200px;
293 margin: 0 auto;
294 padding: 20px;
295 }
296
297 .form-section {
298 background: white;
299 border-radius: 8px;
300 padding: 24px;
301 margin-bottom: 24px;
302 box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);
303 }
304
305 .section-title {
306 font-size: 1.25rem;
307 font-weight: 600;
308 color: #374151;
309 margin-bottom: 20px;
310 padding-bottom: 12px;
311 border-bottom: 2px solid #e5e7eb;
312 }
313
314 .form-grid {
315 display: grid;
316 grid-template-columns: repeat(1, 1fr);
317 gap: 20px;
318 }
319
320 @media (min-width: 640px) {
321 .form-grid {
322 grid-template-columns: repeat(2, 1fr);
323 }
324 }
325
326 .form-input,
327 .form-select,
328 .form-textarea {
329 width: 100%;
330 padding: 10px 12px;
331 border: 1px solid #d1d5db;
332 border-radius: 6px;
333 font-size: 14px;
334 transition: border-color 0.2s ease, box-shadow 0.2s ease;
335 }
336
337 .form-input:focus,
338 .form-select:focus,
339 .form-textarea:focus {
340 outline: none;
341 border-color: #3b82f6;
342 box-shadow: 0 0 0 3px rgba(59, 130, 246, 0.1);
343 }
344
345 /* Error state styling */
346 .form-input.error,
347 .form-select.error,
348 .form-textarea.error {
349 border-color: #ef4444;
350 box-shadow: 0 0 0 3px rgba(239, 68, 68, 0.1);
351 }
352
353 .form-input.error:focus,
354 .form-select.error:focus,
355 .form-textarea.error:focus {
356 border-color: #ef4444;
357 box-shadow: 0 0 0 3px rgba(239, 68, 68, 0.2);
358 }
359
360 /* Required field indicator */
361 .required-indicator {
362 color: #ef4444;
363 margin-left: 2px;
364 }
365
366 /* Form actions */
367 .form-actions {
368 display: flex;
369 gap: 12px;
370 justify-content: flex-end;
371 padding-top: 20px;
372 border-top: 1px solid #e5e7eb;
373 margin-top: 20px;
374 }
375
376 .btn {
377 padding: 10px 20px;
378 border-radius: 6px;
379 font-weight: 500;
380 text-decoration: none;
381 display: inline-flex;
382 align-items: center;
383 gap: 8px;
384 transition: all 0.2s ease;
385 border: none;
386 cursor: pointer;
387 }
388
389 .btn-primary {
390 background-color: #3b82f6;
391 color: white;
392 }
393
394 .btn-primary:hover {
395 background-color: #2563eb;
396 }
397
398 .btn-secondary {
399 background-color: #6b7280;
400 color: white;
401 }
402
403 .btn-secondary:hover {
404 background-color: #4b5563;
405 }
406
407 .btn-danger {
408 background-color: #ef4444;
409 color: white;
410 }
411
412 .btn-danger:hover {
413 background-color: #dc2626;
414 }
415
416 /* Loading state */
417 .btn.loading {
418 opacity: 0.7;
419 cursor: not-allowed;
420 }
421
422 .btn.loading::after {
423 content: '';
424 width: 16px;
425 height: 16px;
426 border: 2px solid transparent;
427 border-top: 2px solid currentColor;
428 border-radius: 50%;
429 animation: spin 1s linear infinite;
430 margin-left: 8px;
431 }
432
433 @keyframes spin {
434 0% { transform: rotate(0deg); }
435 100% { transform: rotate(360deg); }
436 }
437
438 /* Notification styles */
439 .notification {
440 padding: 12px 16px;
441 border-radius: 6px;
442 margin-bottom: 16px;
443 display: flex;
444 align-items: center;
445 gap: 8px;
446 }
447
448 .notification.success {
449 background-color: #d1fae5;
450 color: #065f46;
451 border: 1px solid #a7f3d0;
452 }
453
454 .notification.error {
455 background-color: #fee2e2;
456 color: #991b1b;
457 border: 1px solid #fecaca;
458 }
459
460 .notification.warning {
461 background-color: #fef3c7;
462 color: #92400e;
463 border: 1px solid #fde68a;
464 }
465
466 .notification.info {
467 background-color: #dbeafe;
468 color: #1e40af;
469 border: 1px solid #bfdbfe;
470 }
471
472 /* Responsive adjustments */
473 @media (max-width: 768px) {
474 .invoice-form {
475 padding: 16px;
476 }
477
478 .form-section {
479 padding: 16px;
480 }
481
482 .form-actions {
483 flex-direction: column;
484 }
485
486 .btn {
487 width: 100%;
488 justify-content: center;
489 }
490 }
491
492 /* Read-only and disabled fields (scoped to builders) */
493 #easy-invoice-content .form-input[readonly],
494 #easy-invoice-content .form-textarea[readonly],
495 #easy-invoice-content input[readonly],
496 #easy-invoice-content textarea[readonly] {
497 background-color: #f3f4f6;
498 color: #374151;
499 border-color: #d1d5db;
500 cursor: default;
501 }
502
503 #easy-invoice-content .form-input[readonly]:focus,
504 #easy-invoice-content .form-textarea[readonly]:focus,
505 #easy-invoice-content input[readonly]:focus,
506 #easy-invoice-content textarea[readonly]:focus {
507 outline: none;
508 box-shadow: none;
509 border-color: #d1d5db;
510 }
511
512 #easy-invoice-content .form-input[readonly]::placeholder,
513 #easy-invoice-content .form-textarea[readonly]::placeholder,
514 #easy-invoice-content input[readonly]::placeholder,
515 #easy-invoice-content textarea[readonly]::placeholder {
516 color: #9ca3af;
517 }
518
519 #easy-invoice-content .form-select:disabled,
520 #easy-invoice-content select:disabled {
521 background-color: #f3f4f6;
522 color: #6b7280;
523 border-color: #d1d5db;
524 cursor: not-allowed;
525 }
526
527 /* Compact read-only variant for meta/header rows */
528 #easy-invoice-content .meta-row .form-input[readonly],
529 #easy-invoice-content .meta-row input[readonly] {
530 padding: 6px 10px;
531 font-size: 13px;
532 }
533
534 /* Invoice builder: Pro deposit / split inline with Save & Send */
535 .ei-invoice-builder-header .ei-builder-header-actions {
536 min-width: 0;
537 }
538
539 .ei-invoice-builder-header .ei-builder-header-actions .deposit-invoice-section,
540 .ei-invoice-builder-header .ei-builder-header-actions .deposit-info-popover-trigger {
541 max-width: 100%;
542 }
543
544 /* Pro: deposit popover must sit above live preview overlays (e.g. .loading-overlay z-index) */
545 .ei-invoice-builder-header .deposit-info-popover {
546 z-index: 10001;
547 }
548
549 /* Builder pages: reinforce shared strip height (see easy-invoice.css body.easy-invoice-admin-body) */
550 @media (min-width: 1024px) {
551 body.easy-invoice-admin-body .ei-invoice-builder-header.ei-app-header-sync,
552 body.easy-invoice-admin-body .ei-quote-builder-header.ei-app-header-sync {
553 height: var(--ei-app-header-strip-height, 6.5rem) !important;
554 min-height: var(--ei-app-header-strip-height, 6.5rem) !important;
555 max-height: var(--ei-app-header-strip-height, 6.5rem) !important;
556 }
557 }