main
css 531 lines 9.35 KB
Raw
1 /* MAPS Connect - Perfil público (usuarios) */
2
3 .summary-section {
4 margin-bottom: 20px;
5 }
6
7 .perfil-container {
8 max-width: 1050px;
9 margin: 0 auto;
10 width: 100%;
11 }
12
13 /* Cabecera de perfil ajeno */
14 .profile-header-card {
15 display: flex;
16 justify-content: space-between;
17 align-items: center;
18 flex-wrap: wrap;
19 gap: 20px;
20 border-left: 4px solid var(--accent-dark, #005a2b);
21 }
22
23 .profile-main-info {
24 display: flex;
25 align-items: center;
26 gap: 18px;
27 }
28
29 /* Avatar interactivo (ampliar en modal) */
30 .profile-avatar {
31 width: 70px;
32 height: 70px;
33 background-color: #0284c7;
34 color: #ffffff;
35 display: flex;
36 align-items: center;
37 justify-content: center;
38 font-weight: bold;
39 font-size: 1.5rem;
40 flex-shrink: 0;
41 }
42
43 .profile-avatar.trigger {
44 cursor: pointer;
45 transition: transform 0.15s ease, opacity 0.15s ease;
46 }
47
48 .profile-avatar.trigger:hover {
49 transform: scale(1.05);
50 opacity: 0.9;
51 }
52
53 .profile-avatar.avatar-foto {
54 object-fit: cover;
55 }
56
57 .profile-name {
58 font-size: 1.4rem;
59 color: #111111;
60 margin-bottom: 4px;
61 }
62
63 .profile-sub {
64 font-size: 0.9rem;
65 color: #555555;
66 }
67
68 .profile-sub + .profile-sub {
69 margin-top: 2px;
70 }
71
72 .header-actions {
73 display: flex;
74 gap: 10px;
75 flex-wrap: wrap;
76 }
77
78 .btn-solid {
79 background-color: var(--accent-dark, #005a2b);
80 color: #ffffff;
81 border: none;
82 padding: 9px 18px;
83 font-size: 0.9rem;
84 font-weight: bold;
85 cursor: pointer;
86 }
87
88 .btn-solid:hover {
89 background-color: #004420;
90 }
91
92 .btn-clean {
93 background-color: transparent;
94 color: var(--accent-dark, #005a2b);
95 border: 1px solid var(--accent-dark, #005a2b);
96 padding: 8px 16px;
97 font-size: 0.85rem;
98 font-weight: 600;
99 cursor: pointer;
100 text-decoration: none;
101 display: inline-block;
102 }
103
104 .btn-clean:hover {
105 background-color: var(--accent-soft, #f0fdf4);
106 }
107
108 /* Layout 2 columnas */
109 .profile-grid {
110 display: grid;
111 grid-template-columns: 1.8fr 1.2fr;
112 gap: 20px;
113 }
114
115 @media (max-width: 850px) {
116 .profile-grid {
117 grid-template-columns: 1fr;
118 }
119 }
120
121 .section-heading {
122 font-size: 1.1rem;
123 color: #222222;
124 margin-bottom: 14px;
125 border-bottom: 1px solid #e0e0e0;
126 padding-bottom: 6px;
127 }
128
129 .subsection-heading {
130 font-size: 0.95rem;
131 color: #333333;
132 margin: 16px 0 10px 0;
133 }
134
135 .badge {
136 padding: 3px 8px;
137 font-size: 0.75rem;
138 font-weight: bold;
139 display: inline-block;
140 }
141
142 .badge-green {
143 background-color: var(--accent-soft, #e8f5e9);
144 color: var(--accent-dark, #005a2b);
145 border: 1px solid var(--accent-soft-border, #c8e6c9);
146 }
147
148 .badge-blue {
149 background-color: #e0f2fe;
150 color: #0369a1;
151 border: 1px solid #bae6fd;
152 }
153
154 .purpose-box {
155 background-color: #f9fafb;
156 border-left: 3px solid var(--accent-dark, #005a2b);
157 padding: 12px 16px;
158 margin-bottom: 18px;
159 }
160
161 .purpose-box strong {
162 font-size: 0.85rem;
163 color: var(--accent-dark, #005a2b);
164 display: block;
165 text-transform: uppercase;
166 margin-bottom: 4px;
167 }
168
169 .purpose-box p {
170 font-size: 0.92rem;
171 color: #333333;
172 font-style: italic;
173 margin: 0;
174 }
175
176 /* Certificados (alumno) */
177 .certificate-item {
178 border: 1px solid #dcdfe6;
179 padding: 14px;
180 margin-bottom: 12px;
181 background: #ffffff;
182 }
183
184 .certificate-item:last-child {
185 margin-bottom: 0;
186 }
187
188 .certificate-item.active {
189 border-left: 4px solid var(--accent-dark, #005a2b);
190 }
191
192 .cert-header {
193 display: flex;
194 justify-content: space-between;
195 align-items: center;
196 gap: 10px;
197 margin-bottom: 6px;
198 }
199
200 .cert-title {
201 font-size: 0.95rem;
202 color: #111111;
203 font-weight: bold;
204 }
205
206 .cert-desc {
207 font-size: 0.85rem;
208 color: #555555;
209 line-height: 1.4;
210 }
211
212 /* Ficha del docente */
213 .prof-detail-list {
214 list-style: none;
215 margin: 0 0 14px 0;
216 padding: 0;
217 }
218
219 .prof-detail-list li {
220 font-size: 0.85rem;
221 color: #333333;
222 padding: 6px 0;
223 border-bottom: 1px solid #f0f0f0;
224 }
225
226 .prof-detail-list li:last-child {
227 border-bottom: none;
228 }
229
230 .prof-detail-list strong {
231 color: #111111;
232 }
233
234 .prof-detail-list .ok {
235 color: var(--accent-dark, #005a2b);
236 font-weight: bold;
237 }
238
239 .prof-detail-list .off {
240 color: #b91c1c;
241 font-weight: bold;
242 }
243
244 .materia-tag {
245 display: inline-block;
246 background: #e0f2fe;
247 border: 1px solid #bae6fd;
248 color: #0369a1;
249 padding: 2px 8px;
250 font-size: 0.75rem;
251 font-weight: 600;
252 margin: 0 6px 6px 0;
253 }
254
255 /* Estadísticas y reputación */
256 .stats-summary {
257 display: grid;
258 grid-template-columns: 1fr 1fr;
259 gap: 10px;
260 margin-bottom: 18px;
261 }
262
263 .stat-box {
264 background: #fafafa;
265 border: 1px solid #e0e0e0;
266 padding: 12px;
267 text-align: center;
268 }
269
270 .stat-box .number {
271 font-size: 1.3rem;
272 font-weight: bold;
273 color: var(--accent-dark, #005a2b);
274 display: block;
275 }
276
277 .stat-box .label {
278 font-size: 0.75rem;
279 color: #666666;
280 text-transform: uppercase;
281 }
282
283 /* Aportaciones */
284 .public-item {
285 padding: 12px 0;
286 border-bottom: 1px solid #f0f0f0;
287 }
288
289 .public-item:last-child {
290 border-bottom: none;
291 padding-bottom: 0;
292 }
293
294 .public-item strong {
295 font-size: 0.88rem;
296 color: #222222;
297 display: block;
298 margin-bottom: 3px;
299 }
300
301 .public-item p {
302 font-size: 0.82rem;
303 color: #555555;
304 line-height: 1.3;
305 margin: 0;
306 }
307
308 .item-meta {
309 display: flex;
310 justify-content: space-between;
311 gap: 8px;
312 font-size: 0.78rem;
313 color: #888888;
314 margin-top: 6px;
315 }
316
317 /* Estado vacío */
318 .empty-note {
319 font-size: 0.85rem;
320 color: #888888;
321 padding: 6px 0;
322 }
323
324 .side-link {
325 color: var(--accent-dark, #005a2b);
326 font-weight: bold;
327 text-decoration: none;
328 display: inline-block;
329 margin-top: 6px;
330 }
331
332 .side-link:hover {
333 text-decoration: underline;
334 }
335
336 /* --- MODAL PARA AMPLIAR AVATAR --- */
337 .avatar-modal-backdrop {
338 display: none;
339 position: fixed;
340 top: 0;
341 left: 0;
342 width: 100vw;
343 height: 100vh;
344 background-color: rgba(0, 0, 0, 0.75);
345 z-index: 9999;
346 align-items: center;
347 justify-content: center;
348 }
349
350 .avatar-modal-backdrop.show {
351 display: flex;
352 }
353
354 .avatar-modal-content {
355 background: #ffffff;
356 border: 1px solid #dcdfe6;
357 padding: 16px;
358 display: flex;
359 flex-direction: column;
360 align-items: center;
361 gap: 12px;
362 max-width: 90vw;
363 }
364
365 .avatar-expanded-box {
366 width: 300px;
367 height: 300px;
368 background-color: #0284c7;
369 color: #ffffff;
370 display: flex;
371 align-items: center;
372 justify-content: center;
373 font-size: 6rem;
374 font-weight: bold;
375 border: 2px solid var(--accent-dark, #005a2b);
376 object-fit: cover;
377 }
378
379 .btn-close-modal {
380 align-self: flex-end;
381 background: transparent;
382 border: 1px solid #dcdfe6;
383 color: #333333;
384 padding: 6px 12px;
385 font-size: 0.82rem;
386 font-weight: 600;
387 cursor: pointer;
388 }
389
390 .btn-close-modal:hover {
391 background-color: #f4f6f8;
392 border-color: var(--accent-dark, #005a2b);
393 }
394
395 /* ============================================================
396 MODO OSCURO — Perfil público (usuarios) (inversión pareja)
397 ============================================================ */
398 html.dark-mode .perfil-container {
399 color: #e6edf3;
400 }
401
402 html.dark-mode .profile-name {
403 color: #e6edf3;
404 }
405
406 html.dark-mode .profile-sub {
407 color: #8b949e;
408 }
409
410 html.dark-mode .section-heading {
411 color: #e6edf3;
412 border-bottom-color: #30363d;
413 }
414
415 html.dark-mode .subsection-heading {
416 color: #c9d1d9;
417 }
418
419 html.dark-mode .badge-green {
420 background-color: #12291d;
421 color: var(--accent-bright, #3fb950);
422 border-color: #14532d;
423 }
424
425 html.dark-mode .badge-blue {
426 background-color: #0b1520;
427 color: #38bdf8;
428 border-color: #123f5c;
429 }
430
431 html.dark-mode .purpose-box {
432 background-color: #0d1117;
433 border-left-color: var(--accent-mid, #2ea043);
434 }
435
436 html.dark-mode .purpose-box strong {
437 color: var(--accent-bright, #3fb950);
438 }
439
440 html.dark-mode .purpose-box p {
441 color: #c9d1d9;
442 }
443
444 html.dark-mode .certificate-item {
445 background: #161b22;
446 border-color: #30363d;
447 }
448
449 html.dark-mode .cert-title {
450 color: #e6edf3;
451 }
452
453 html.dark-mode .cert-desc {
454 color: #8b949e;
455 }
456
457 html.dark-mode .prof-detail-list li {
458 color: #c9d1d9;
459 border-bottom-color: #21262d;
460 }
461
462 html.dark-mode .prof-detail-list strong {
463 color: #e6edf3;
464 }
465
466 html.dark-mode .materia-tag {
467 background: #0b1520;
468 border-color: #123f5c;
469 color: #38bdf8;
470 }
471
472 html.dark-mode .stat-box {
473 background: #0d1117;
474 border-color: #30363d;
475 }
476
477 html.dark-mode .stat-box .number {
478 color: var(--accent-bright, #3fb950);
479 }
480
481 html.dark-mode .stat-box .label {
482 color: #8b949e;
483 }
484
485 html.dark-mode .public-item {
486 border-bottom-color: #21262d;
487 }
488
489 html.dark-mode .public-item strong {
490 color: #e6edf3;
491 }
492
493 html.dark-mode .public-item p {
494 color: #8b949e;
495 }
496
497 html.dark-mode .item-meta {
498 color: #8b949e;
499 }
500
501 html.dark-mode .empty-note {
502 color: #8b949e;
503 }
504
505 html.dark-mode .side-link {
506 color: var(--accent-bright, #3fb950);
507 }
508
509 html.dark-mode .avatar-modal-content {
510 background: #161b22;
511 border-color: #30363d;
512 }
513
514 html.dark-mode .btn-close-modal {
515 border-color: #30363d;
516 color: #c9d1d9;
517 }
518
519 html.dark-mode .btn-close-modal:hover {
520 background-color: #21262d;
521 border-color: var(--accent-bright, #3fb950);
522 }
523
524 html.dark-mode .perfil-container .btn-clean {
525 color: var(--accent-bright, #3fb950);
526 border-color: var(--accent-mid, #2ea043);
527 }
528
529 html.dark-mode .perfil-container .btn-clean:hover {
530 background-color: rgba(46, 160, 67, 0.15);
531 }