PluginProbe
Easy Invoice – Invoice Generator, PDF Quotes & Payments / 2.1.2
Easy Invoice – Invoice Generator, PDF Quotes & Payments v2.1.2
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.1.2, at assets/css/invoice-form.css

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