main
css 405 lines 7.22 KB
Raw
1 /* MAPS Connect - Panel Administrativo y Reportería */
2
3 .admin-container {
4 max-width: 1150px;
5 margin: 0 auto;
6 width: 100%;
7 }
8
9 /* Cabecera del administrador */
10 .admin-header {
11 display: flex;
12 justify-content: space-between;
13 align-items: center;
14 flex-wrap: wrap;
15 gap: 16px;
16 border-left: 4px solid var(--accent, #087527);
17 }
18
19 .admin-title h2 {
20 font-size: 1.3rem;
21 color: #111;
22 }
23
24 .admin-title p {
25 font-size: 0.85rem;
26 color: #555;
27 margin-top: 3px;
28 }
29
30 /* Botones */
31 .btn-solid {
32 background-color: var(--accent, #087527);
33 color: #ffffff;
34 border: none;
35 padding: 9px 16px;
36 font-size: 0.88rem;
37 font-weight: bold;
38 cursor: pointer;
39 display: inline-flex;
40 align-items: center;
41 gap: 6px;
42 }
43
44 .btn-solid:hover {
45 background-color: var(--accent-deep, #064913);
46 }
47
48 .btn-outline {
49 background: transparent;
50 color: var(--accent, #087527);
51 border: 1px solid var(--accent, #087527);
52 padding: 8px 14px;
53 font-size: 0.85rem;
54 font-weight: 600;
55 cursor: pointer;
56 }
57
58 .btn-outline:hover {
59 background-color: var(--accent-soft, #f0fdf4);
60 }
61
62 .btn-danger-clean {
63 background: transparent;
64 color: #b91c1c;
65 border: 1px solid #f87171;
66 padding: 5px 10px;
67 font-size: 0.78rem;
68 font-weight: 600;
69 cursor: pointer;
70 }
71
72 .btn-danger-clean:hover {
73 background: #fef2f2;
74 }
75
76 .btn-success-clean {
77 background: transparent;
78 color: #15803d;
79 border: 1px solid var(--accent-soft-border, #86efac);
80 padding: 5px 10px;
81 font-size: 0.78rem;
82 font-weight: 600;
83 cursor: pointer;
84 }
85
86 .btn-success-clean:hover {
87 background: var(--accent-soft, #f0fdf4);
88 }
89
90 /* Tarjetas KPI */
91 .kpi-grid {
92 display: grid;
93 grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
94 gap: 16px;
95 margin-bottom: 20px;
96 }
97
98 .kpi-card {
99 background: #ffffff;
100 border: 1px solid #dcdfe6;
101 padding: 16px;
102 border-top: 3px solid var(--accent, #087527);
103 }
104
105 .kpi-card.alert {
106 border-top-color: #b91c1c;
107 }
108
109 .kpi-value {
110 font-size: 1.8rem;
111 font-weight: bold;
112 color: #111;
113 line-height: 1.1;
114 margin-bottom: 4px;
115 }
116
117 .kpi-label {
118 font-size: 0.8rem;
119 color: #666;
120 text-transform: uppercase;
121 letter-spacing: 0.5px;
122 }
123
124 .kpi-sub {
125 font-size: 0.75rem;
126 color: #888;
127 margin-top: 8px;
128 }
129
130 /* Sección generador de reportes */
131 .section-header {
132 font-size: 1.05rem;
133 color: #222;
134 margin-bottom: 14px;
135 border-bottom: 1px solid #e0e0e0;
136 padding-bottom: 8px;
137 display: flex;
138 justify-content: space-between;
139 align-items: center;
140 }
141
142 .report-form {
143 display: grid;
144 grid-template-columns: 2fr 1fr 1fr auto;
145 gap: 12px;
146 align-items: end;
147 }
148
149 @media (max-width: 850px) {
150 .report-form {
151 grid-template-columns: 1fr;
152 }
153 }
154
155 .form-group label {
156 display: block;
157 font-size: 0.8rem;
158 font-weight: 600;
159 color: #444;
160 margin-bottom: 5px;
161 }
162
163 .form-control {
164 width: 100%;
165 padding: 9px 12px;
166 border: 1px solid #dcdfe6;
167 background: #ffffff;
168 font-size: 0.88rem;
169 outline: none;
170 }
171
172 .form-control:focus {
173 border-color: var(--accent, #087527);
174 }
175
176 /* Tabla de supervisión / moderación */
177 .table-responsive {
178 width: 100%;
179 overflow-x: auto;
180 }
181
182 .admin-table {
183 width: 100%;
184 border-collapse: collapse;
185 font-size: 0.88rem;
186 text-align: left;
187 }
188
189 .admin-table th {
190 background-color: #f9fafb;
191 color: #333;
192 padding: 12px 14px;
193 border-bottom: 2px solid #dcdfe6;
194 font-weight: 600;
195 }
196
197 .admin-table td {
198 padding: 12px 14px;
199 border-bottom: 1px solid #ebeef5;
200 color: #444;
201 vertical-align: middle;
202 }
203
204 .admin-table tr:hover {
205 background-color: #fcfcfc;
206 }
207
208 .badge {
209 padding: 3px 8px;
210 font-size: 0.75rem;
211 font-weight: bold;
212 display: inline-block;
213 }
214
215 .badge-warning {
216 background-color: #fef3c7;
217 color: #92400e;
218 border: 1px solid #fde68a;
219 }
220
221 .badge-danger {
222 background-color: #fee2e2;
223 color: #991b1b;
224 border: 1px solid #fecaca;
225 }
226
227 .badge-info {
228 background-color: #e0f2fe;
229 color: #0369a1;
230 border: 1px solid #bae6fd;
231 }
232
233 .badge-green {
234 background-color: var(--accent-soft, #dcfce7);
235 color: #166534;
236 border: 1px solid var(--accent-soft-border, #86efac);
237 }
238
239 .admin-empty {
240 padding: 30px;
241 text-align: center;
242 color: #888;
243 }
244
245 .usuarios-buscar {
246 margin-bottom: 12px;
247 max-width: 420px;
248 }
249 .usuarios-buscar .form-control {
250 width: 100%;
251 padding: 10px 14px;
252 border: 1px solid #cbd5e1;
253 border-radius: 8px;
254 font-size: 0.9rem;
255 }
256 .usuarios-buscar .form-control:focus {
257 outline: none;
258 border-color: #0369a1;
259 box-shadow: 0 0 0 2px rgba(3, 105, 161, 0.12);
260 }
261
262 .loading-message {
263 padding: 40px;
264 text-align: center;
265 color: #666;
266 }
267
268 /* ============================================================
269 MODO OSCURO — Panel Administrativo y Reportería (inversión pareja)
270 ============================================================ */
271 html.dark-mode .admin-container {
272 color: #e6edf3;
273 }
274
275 html.dark-mode .admin-title h2 {
276 color: #e6edf3;
277 }
278
279 html.dark-mode .admin-title p {
280 color: #8b949e;
281 }
282
283 html.dark-mode .btn-outline {
284 color: var(--accent-bright, #3fb950);
285 border-color: var(--accent-mid, #2ea043);
286 }
287
288 html.dark-mode .btn-outline:hover {
289 background-color: rgba(46, 160, 67, 0.15);
290 }
291
292 html.dark-mode .btn-danger-clean {
293 color: #f87171;
294 border-color: #dc2626;
295 }
296
297 html.dark-mode .btn-danger-clean:hover {
298 background: #361d1a;
299 }
300
301 html.dark-mode .btn-success-clean {
302 color: #34d399;
303 border-color: #22c55e;
304 }
305
306 html.dark-mode .btn-success-clean:hover {
307 background: #12291d;
308 }
309
310 html.dark-mode .kpi-card {
311 background: #161b22;
312 border-color: #30363d;
313 }
314
315 html.dark-mode .kpi-card.alert {
316 border-top-color: #dc2626;
317 }
318
319 html.dark-mode .kpi-value {
320 color: #e6edf3;
321 }
322
323 html.dark-mode .kpi-label {
324 color: #8b949e;
325 }
326
327 html.dark-mode .kpi-sub {
328 color: #8b949e;
329 }
330
331 html.dark-mode .section-header {
332 color: #e6edf3;
333 border-bottom-color: #30363d;
334 }
335
336 html.dark-mode .form-group label {
337 color: #c9d1d9;
338 }
339
340 html.dark-mode .form-control {
341 background: #0d1117;
342 color: #e6edf3;
343 border-color: #30363d;
344 }
345
346 html.dark-mode .form-control:focus {
347 border-color: var(--accent-bright, #3fb950);
348 }
349
350 html.dark-mode .admin-table th {
351 background-color: #0d1117;
352 color: #c9d1d9;
353 border-bottom-color: #30363d;
354 }
355
356 html.dark-mode .admin-table td {
357 border-bottom-color: #21262d;
358 color: #c9d1d9;
359 }
360
361 html.dark-mode .admin-table tr:hover {
362 background-color: #161b22;
363 }
364
365 html.dark-mode .badge-warning {
366 background-color: #332a12;
367 color: #fbbf24;
368 border-color: #4d3d17;
369 }
370
371 html.dark-mode .badge-danger {
372 background-color: #361d1a;
373 color: #fca5a5;
374 border-color: #7f1d1d;
375 }
376
377 html.dark-mode .badge-info {
378 background-color: #0b1520;
379 color: #38bdf8;
380 border-color: #123f5c;
381 }
382
383 html.dark-mode .badge-green {
384 background-color: #12291d;
385 color: #34d399;
386 border-color: #14532d;
387 }
388
389 html.dark-mode .admin-empty {
390 color: #8b949e;
391 }
392
393 html.dark-mode .usuarios-buscar .form-control {
394 background: #0d1117;
395 color: #e6edf3;
396 border-color: #30363d;
397 }
398
399 html.dark-mode .usuarios-buscar .form-control:focus {
400 border-color: #38bdf8;
401 }
402
403 html.dark-mode .loading-message {
404 color: #8b949e;
405 }