main
css 9,462 lines 304 KB
Raw
1 /* ============================================================
2 MAPS Connect - Estilos visuales (skins)
3 Cada estilo se activa con html[data-estilo="..."] sobre <html>.
4 El estilo por defecto es "clasico" (sin bloque: usa las hojas
5 normales). Los skins de aquí van después de las demás hojas para
6 ganar el empate en especificidad con el mismo atributo como clase.
7 ============================================================ */
8
9 /* ------------------------------------------------------------
10 ESTILO: CYBERPUNK NETWORK
11 Red neuronal de neón (cian/magenta) sobre fondo de terminal.
12 ------------------------------------------------------------ */
13
14 /* --- Paleta global del skin (sincroniza los componentes que usan --accent) --- */
15 html[data-estilo="cyber"] {
16 --accent: #00f0ff;
17 --accent-dark: #0891b2;
18 --accent-mid: #22d3ee;
19 --accent-bright: #67e8f9;
20 --accent-deep: #164e63;
21 --accent-soft: #0b1626;
22 --accent-soft-border: #164e63;
23 --accent-contrast: #010204;
24
25 --primary-color: #00f0ff;
26 --secondary-color: #ff007f;
27 --link-color: #00f0ff;
28 --heading-color: #ffffff;
29 --text-color: #e6edf3;
30
31 --sidebar-bg: #070a14;
32 --sidebar-border: #00f0ff;
33 --sidebar-text: #8b949e;
34 --sidebar-text-hover: #ffffff;
35 --sidebar-item-hover-bg: rgba(0, 240, 255, 0.1);
36 --sidebar-item-active-bg: rgba(0, 240, 255, 0.22);
37 --sidebar-accent: #ff007f;
38
39 --topbar-bg: rgba(4, 7, 12, 0.85);
40
41 --btn-primary-bg: linear-gradient(135deg, #1a0033 0%, #ff007f 100%);
42 --btn-primary-text: #ffffff;
43 --btn-outline-border: #00f0ff;
44 --btn-outline-text: #00f0ff;
45 }
46
47 /* --- Tipografía y geometría --- */
48 html[data-estilo="cyber"] * {
49 font-family: 'Courier New', Courier, monospace, sans-serif;
50 border-radius: 0 !important;
51 }
52
53 html[data-estilo="cyber"] body {
54 background-color: #010204;
55 color: #00f0ff;
56 position: relative;
57 }
58
59 html[data-estilo="cyber"] a { color: #00f0ff; }
60
61 html[data-estilo="cyber"] h1,
62 html[data-estilo="cyber"] h2,
63 html[data-estilo="cyber"] h3,
64 html[data-estilo="cyber"] h4 {
65 color: #ffffff;
66 letter-spacing: 0.5px;
67 }
68
69 html[data-estilo="cyber"] .page-title { text-shadow: 0 0 12px rgba(0, 240, 255, 0.5); }
70 html[data-estilo="cyber"] .page-description { color: #8b949e; }
71
72 /* La app queda encima del fondo neuronal */
73 html[data-estilo="cyber"] .app-layout {
74 position: relative;
75 z-index: 2;
76 }
77
78 /* ============================================================
79 FONDO DE RED NEURONAL (parallax 3D injected por estilos.js)
80 ============================================================ */
81 html[data-estilo="cyber"] .cyber-bg-viewport {
82 position: fixed;
83 top: 0; left: 0;
84 width: 100vw;
85 height: 100vh;
86 pointer-events: none;
87 z-index: 0;
88 overflow: hidden;
89 transform-style: preserve-3d;
90 }
91
92 html[data-estilo="cyber"] .cyber-svg-layer {
93 position: absolute;
94 top: -10%;
95 left: -10%;
96 width: 120vw;
97 height: 120vh;
98 transform: translate3d(0px, 0px, 0px) scale(1) rotateX(15deg);
99 transition: transform 1.6s cubic-bezier(0.2, 1, 0.3, 1), filter 1.6s ease;
100 filter: drop-shadow(0 0 40px rgba(0, 240, 255, 0.3));
101 transform-style: preserve-3d;
102 }
103
104 html[data-estilo="cyber"] .data-node {
105 fill: #ffffff;
106 stroke: #00f0ff;
107 stroke-width: 1.5;
108 filter: drop-shadow(0 0 8px #00f0ff);
109 animation: nodePulse 3s infinite alternate;
110 }
111
112 html[data-estilo="cyber"] .data-link {
113 stroke: rgba(0, 240, 255, 0.4);
114 stroke-width: 1;
115 animation: linkPulse 3s infinite alternate;
116 }
117
118 html[data-estilo="cyber"] .core-node {
119 fill: #ff007f;
120 stroke: #ffffff;
121 stroke-width: 2;
122 filter: drop-shadow(0 0 15px #ff007f);
123 animation: corePulse 2s infinite alternate;
124 }
125
126 @keyframes nodePulse {
127 to { filter: drop-shadow(0 0 12px #00f0ff); opacity: 1; }
128 }
129
130 @keyframes linkPulse {
131 to { stroke: rgba(0, 240, 255, 0.7); stroke-width: 1.5; }
132 }
133
134 @keyframes corePulse {
135 to { filter: drop-shadow(0 0 25px #ff007f); transform: scale(1.05); }
136 }
137
138 html[data-estilo="cyber"] .atmosphere-overlay {
139 position: fixed;
140 top: 0; left: 0;
141 width: 100vw;
142 height: 100vh;
143 background:
144 radial-gradient(circle at 70% 20%, rgba(255, 0, 128, 0.1) 0%, rgba(1, 2, 4, 0.55) 75%),
145 linear-gradient(to bottom, rgba(1, 2, 4, 0.15) 0%, rgba(1, 2, 4, 0.6) 100%);
146 pointer-events: none;
147 z-index: 1;
148 }
149
150 /* ============================================================
151 SIDEBAR CIBERNÉTICO
152 ============================================================ */
153 html[data-estilo="cyber"] .sidebar {
154 background: linear-gradient(180deg, #070a14 0%, #010204 100%);
155 border-right: 2px solid #00f0ff;
156 box-shadow: 20px 0 60px rgba(0, 0, 0, 0.95);
157 }
158
159 html[data-estilo="cyber"] .sidebar-header {
160 border-bottom: 1px solid rgba(0, 240, 255, 0.3);
161 }
162
163 html[data-estilo="cyber"] .sidebar-header h1 {
164 color: #ffffff;
165 font-weight: 900;
166 letter-spacing: 2px;
167 text-transform: uppercase;
168 text-shadow: 0 0 10px rgba(0, 240, 255, 0.5);
169 }
170
171 html[data-estilo="cyber"] .sidebar-header small {
172 color: #8b949e;
173 }
174
175 html[data-estilo="cyber"] .sidebar-user {
176 background: rgba(0, 240, 255, 0.08);
177 border: 1px solid rgba(0, 240, 255, 0.3);
178 }
179
180 html[data-estilo="cyber"] .sidebar-user small { color: #ffffff; }
181
182 html[data-estilo="cyber"] .sidebar-avatar {
183 border: 1px solid #00f0ff;
184 box-shadow: 0 0 8px rgba(0, 240, 255, 0.5);
185 }
186
187 html[data-estilo="cyber"] .sidebar-nav a {
188 color: #8b949e;
189 border-left: 3px solid transparent;
190 text-transform: uppercase;
191 letter-spacing: 0.5px;
192 transition: transform 0.25s cubic-bezier(0.16, 1, 0.3, 1), opacity 0.25s cubic-bezier(0.16, 1, 0.3, 1), box-shadow 0.25s cubic-bezier(0.16, 1, 0.3, 1), border-color 0.25s cubic-bezier(0.16, 1, 0.3, 1), background-color 0.25s cubic-bezier(0.16, 1, 0.3, 1), color 0.25s cubic-bezier(0.16, 1, 0.3, 1);
193 }
194
195 html[data-estilo="cyber"] .sidebar-nav a:hover {
196 background: rgba(0, 240, 255, 0.1);
197 color: #ffffff;
198 border-left-color: #00f0ff;
199 padding-left: 16px;
200 }
201
202 html[data-estilo="cyber"] .sidebar-nav a.active {
203 background: rgba(0, 240, 255, 0.22);
204 color: #ffffff;
205 border-left-color: #ff007f;
206 box-shadow: inset 0 0 12px rgba(0, 240, 255, 0.3);
207 }
208
209 html[data-estilo="cyber"] .sidebar-footer {
210 border-top: 1px solid rgba(0, 240, 255, 0.25);
211 }
212
213 html[data-estilo="cyber"] .sidebar-footer .btn {
214 background: #1a0033;
215 border: 1px solid #ff007f;
216 color: #ff007f;
217 text-transform: uppercase;
218 font-weight: bold;
219 }
220
221 html[data-estilo="cyber"] .sidebar-footer .btn:hover {
222 background: #ff007f;
223 color: #ffffff;
224 box-shadow: 0 0 20px rgba(255, 0, 127, 0.8);
225 }
226
227 /* ============================================================
228 TOPBAR
229 ============================================================ */
230 html[data-estilo="cyber"] .topbar {
231 background: var(--topbar-bg);
232 border-bottom: 1px solid rgba(0, 240, 255, 0.35);
233 backdrop-filter: none;
234 }
235
236 html[data-estilo="cyber"] .menu-toggle {
237 color: #00f0ff;
238 background: rgba(10, 14, 22, 0.85);
239 border: 1px solid #1f3044;
240 }
241
242 html[data-estilo="cyber"] .menu-toggle:hover {
243 border-color: #ff007f;
244 box-shadow: 0 0 20px rgba(255, 0, 127, 0.5);
245 }
246
247 html[data-estilo="cyber"] .menu-backdrop {
248 background: rgba(0, 0, 0, 0.6);
249 }
250
251 /* --- Global search --- */
252 html[data-estilo="cyber"] .global-search-input {
253 background: rgba(10, 14, 22, 0.85);
254 border: 1px solid #1f3044;
255 color: #00f0ff;
256 box-shadow: inset 0 0 8px rgba(0, 0, 0, 0.8);
257 }
258
259 html[data-estilo="cyber"] .global-search-input::placeholder { color: #44536b; }
260
261 html[data-estilo="cyber"] .global-search-input:focus {
262 border-color: #00f0ff;
263 box-shadow: 0 0 20px rgba(0, 240, 255, 0.3), inset 0 0 8px rgba(0, 0, 0, 0.8);
264 }
265
266 html[data-estilo="cyber"] .global-search-dropdown {
267 background: #070b14;
268 border: 1px solid #1f3044;
269 box-shadow: 0 20px 50px rgba(0, 0, 0, 0.9);
270 }
271
272 html[data-estilo="cyber"] .global-search-item { border-bottom: 1px solid #161f2e; }
273 html[data-estilo="cyber"] .global-search-item:hover { background: #0d1526; }
274
275 html[data-estilo="cyber"] .global-search-info strong { color: #ffffff; }
276 html[data-estilo="cyber"] .global-search-info span { color: #8b949e; }
277
278 html[data-estilo="cyber"] .global-search-chat {
279 border: 1px solid #00f0ff;
280 color: #00f0ff;
281 background: rgba(0, 240, 255, 0.08);
282 }
283
284 html[data-estilo="cyber"] .global-search-chat:hover {
285 background: #00f0ff;
286 color: #010204;
287 }
288
289 html[data-estilo="cyber"] .global-search-empty { color: #8b949e; }
290
291 /* --- Notificaciones --- */
292 html[data-estilo="cyber"] .notif-toggle {
293 background: rgba(10, 14, 22, 0.85);
294 border: 1px solid #1f3044;
295 color: #00f0ff;
296 box-shadow: 0 0 10px rgba(0, 0, 0, 0.8);
297 }
298
299 html[data-estilo="cyber"] .notif-toggle:hover {
300 transform: scale(1.1);
301 border-color: #ff007f;
302 box-shadow: 0 0 20px rgba(255, 0, 127, 0.5);
303 background: rgba(26, 0, 51, 0.9);
304 }
305
306 html[data-estilo="cyber"] .notif-badge {
307 background: #ff007f;
308 color: #ffffff;
309 box-shadow: 0 0 8px #ff007f;
310 }
311
312 html[data-estilo="cyber"] .notif-panel {
313 background: #070b14;
314 border: 1px solid #1f3044;
315 box-shadow: 0 20px 50px rgba(0, 0, 0, 0.9);
316 }
317
318 html[data-estilo="cyber"] .notif-panel-head { border-bottom: 1px solid #161f2e; }
319 html[data-estilo="cyber"] .notif-marcar-todas { color: #00f0ff; }
320 html[data-estilo="cyber"] .notif-marcar-todas:hover { color: #ffffff; }
321 html[data-estilo="cyber"] .notif-item:hover { background: #0d1526; }
322 html[data-estilo="cyber"] .notif-item-info strong { color: #ffffff; }
323 html[data-estilo="cyber"] .notif-item-info span { color: #8b949e; }
324 html[data-estilo="cyber"] .notif-item-badge {
325 background: rgba(255, 0, 127, 0.2);
326 color: #ff8ac2;
327 }
328 html[data-estilo="cyber"] .notif-vacio { color: #8b949e; }
329
330 /* ============================================================
331 CONTENIDO Y COMPONENTES
332 ============================================================ */
333 html[data-estilo="cyber"] .main-content { background: transparent; }
334
335 /* Entrada escalonada de las secciones (viewEntrance del mockup v8.0) */
336 html[data-estilo="cyber"] .main-content > * {
337 opacity: 0;
338 transform: translateY(22px) scale(0.98);
339 animation: viewEntrance 0.6s cubic-bezier(0.16, 1, 0.3, 1) forwards;
340 }
341
342 html[data-estilo="cyber"] .main-content > *:nth-child(1) { animation-delay: 0.05s; }
343 html[data-estilo="cyber"] .main-content > *:nth-child(2) { animation-delay: 0.12s; }
344 html[data-estilo="cyber"] .main-content > *:nth-child(3) { animation-delay: 0.19s; }
345 html[data-estilo="cyber"] .main-content > *:nth-child(4) { animation-delay: 0.26s; }
346
347 @keyframes viewEntrance {
348 to {
349 opacity: 1;
350 transform: translateY(0) scale(1);
351 }
352 }
353
354 html[data-estilo="cyber"] .card {
355 background: linear-gradient(135deg, rgba(10, 16, 26, 0.92) 0%, rgba(4, 7, 12, 0.96) 100%);
356 border: 1px solid #1f3044;
357 border-left: 4px solid #00f0ff;
358 box-shadow: 0 15px 40px rgba(0, 0, 0, 0.8);
359 position: relative;
360 overflow: hidden;
361 backdrop-filter: none;
362 transition: transform 0.35s cubic-bezier(0.16, 1, 0.3, 1), opacity 0.35s cubic-bezier(0.16, 1, 0.3, 1), box-shadow 0.35s cubic-bezier(0.16, 1, 0.3, 1), border-color 0.35s cubic-bezier(0.16, 1, 0.3, 1), background-color 0.35s cubic-bezier(0.16, 1, 0.3, 1), color 0.35s cubic-bezier(0.16, 1, 0.3, 1);
363 }
364
365 /* Marca "//" esquina superior derecha de las tarjetas (mockup v8.0) */
366 html[data-estilo="cyber"] .card::after {
367 content: '//';
368 position: absolute;
369 top: 10px;
370 right: 15px;
371 font-size: 1.2rem;
372 color: #1f3044;
373 pointer-events: none;
374 }
375
376 html[data-estilo="cyber"] .card:hover {
377 border-color: #00f0ff;
378 border-left-color: #00f0ff;
379 box-shadow: 0 20px 50px rgba(0, 240, 255, 0.25);
380 transform: translateY(-3px);
381 }
382
383 html[data-estilo="cyber"] .card-title {
384 color: #ffffff;
385 font-weight: 900;
386 }
387
388 /* --- Botones --- */
389 html[data-estilo="cyber"] .btn {
390 border: 1px solid #1f3044;
391 color: #c9d1d9;
392 background: rgba(10, 14, 22, 0.9);
393 text-transform: uppercase;
394 letter-spacing: 0.5px;
395 font-weight: bold;
396 transition: transform 0.25s cubic-bezier(0.16, 1, 0.3, 1), opacity 0.25s cubic-bezier(0.16, 1, 0.3, 1), box-shadow 0.25s cubic-bezier(0.16, 1, 0.3, 1), border-color 0.25s cubic-bezier(0.16, 1, 0.3, 1), background-color 0.25s cubic-bezier(0.16, 1, 0.3, 1), color 0.25s cubic-bezier(0.16, 1, 0.3, 1);
397 }
398
399 html[data-estilo="cyber"] .btn:hover {
400 border-color: #00f0ff;
401 box-shadow: 0 0 15px rgba(0, 240, 255, 0.3);
402 color: #00f0ff;
403 }
404
405 html[data-estilo="cyber"] .btn-primary,
406 html[data-estilo="cyber"] .btn-primary:hover {
407 background: linear-gradient(135deg, #1a0033 0%, #ff007f 100%);
408 border: 1px solid #00f0ff;
409 color: #ffffff;
410 box-shadow: 0 0 15px rgba(255, 0, 127, 0.5);
411 animation: cyberPulse 3s infinite;
412 }
413
414 html[data-estilo="cyber"] .btn-primary:hover { transform: scale(1.03); }
415
416 @keyframes cyberPulse {
417 0%, 100% { box-shadow: 0 0 15px rgba(255, 0, 127, 0.5); }
418 50% { box-shadow: 0 0 25px rgba(0, 240, 255, 0.8); }
419 }
420
421 html[data-estilo="cyber"] .btn-secondary {
422 background: rgba(10, 14, 22, 0.9);
423 border: 1px solid #1f3044;
424 color: #00f0ff;
425 }
426
427 html[data-estilo="cyber"] .btn-outline {
428 background: transparent;
429 border: 1px solid #00f0ff;
430 color: #00f0ff;
431 }
432
433 html[data-estilo="cyber"] .btn-outline:hover {
434 background: #00f0ff;
435 color: #010204;
436 box-shadow: 0 0 20px rgba(0, 240, 255, 0.8);
437 }
438
439 html[data-estilo="cyber"] .btn-danger {
440 border: 1px solid #ff2d55;
441 color: #ff2d55;
442 background: transparent;
443 }
444
445 html[data-estilo="cyber"] .btn-danger:hover {
446 background: #ff2d55;
447 color: #ffffff;
448 }
449
450 /* --- Formularios --- */
451 html[data-estilo="cyber"] input,
452 html[data-estilo="cyber"] select,
453 html[data-estilo="cyber"] textarea,
454 html[data-estilo="cyber"] .form-control {
455 background: rgba(4, 7, 12, 0.9);
456 border: 1px solid #1f3044;
457 color: #00f0ff;
458 box-shadow: inset 0 0 8px rgba(0, 0, 0, 0.8);
459 outline: none;
460 transition: transform 0.3s, opacity 0.3s, box-shadow 0.3s, border-color 0.3s, background-color 0.3s, color 0.3s;
461 }
462
463 html[data-estilo="cyber"] input:focus,
464 html[data-estilo="cyber"] select:focus,
465 html[data-estilo="cyber"] textarea:focus,
466 html[data-estilo="cyber"] .form-control:focus {
467 border-color: #00f0ff;
468 box-shadow: 0 0 20px rgba(0, 240, 255, 0.3), inset 0 0 8px rgba(0, 0, 0, 0.8);
469 }
470
471 html[data-estilo="cyber"] select option { background: #070b14; color: #00f0ff; }
472
473 html[data-estilo="cyber"] input::placeholder,
474 html[data-estilo="cyber"] textarea::placeholder { color: #44536b; }
475
476 html[data-estilo="cyber"] label,
477 html[data-estilo="cyber"] legend,
478 html[data-estilo="cyber"] th { color: #e6edf3; }
479
480 html[data-estilo="cyber"] td { color: #c9d1d9; }
481
482 html[data-estilo="cyber"] hr { border-color: #1f3044; }
483
484 /* --- Alerts, badges, avatares --- */
485 html[data-estilo="cyber"] .alert {
486 border: 1px solid #1f3044;
487 background: rgba(10, 14, 22, 0.9);
488 color: #c9d1d9;
489 }
490
491 html[data-estilo="cyber"] .alert-error {
492 background: #2a1215;
493 color: #fecaca;
494 border-color: #7f1d1d;
495 }
496
497 html[data-estilo="cyber"] .alert-success {
498 background: #052e26;
499 color: #a7f3d0;
500 border-color: #065f46;
501 }
502
503 html[data-estilo="cyber"] .badge-primary {
504 background: rgba(0, 240, 255, 0.12);
505 color: #00f0ff;
506 border: 1px solid #00f0ff;
507 }
508
509 html[data-estilo="cyber"] .badge-success {
510 background: rgba(0, 240, 255, 0.1);
511 color: #00f0ff;
512 border: 1px solid #1f3044;
513 }
514
515 html[data-estilo="cyber"] .avatar {
516 border: 1px solid #00f0ff;
517 }
518
519 /* --- Toast --- */
520 html[data-estilo="cyber"] .toast {
521 background: #0b1320;
522 color: #e6edf3;
523 border: 1px solid #1f3044;
524 box-shadow: 0 15px 40px rgba(0, 0, 0, 0.9);
525 }
526
527 html[data-estilo="cyber"] .toast-info { border-left: 4px solid #00f0ff; }
528 html[data-estilo="cyber"] .toast-success { border-left: 4px solid #00f0ff; }
529 html[data-estilo="cyber"] .toast-error { border-left: 4px solid #ff2d55; }
530
531 /* --- Follow button --- */
532 html[data-estilo="cyber"] .follow-btn {
533 border: 1px solid #00f0ff;
534 color: #00f0ff;
535 background: transparent;
536 }
537
538 html[data-estilo="cyber"] .follow-btn:hover {
539 background: rgba(0, 240, 255, 0.15);
540 }
541
542 html[data-estilo="cyber"] .follow-btn.siguiendo {
543 background: #00f0ff;
544 color: #010204;
545 }
546
547 /* ============================================================
548 POP-UP DE BIENVENIDA: TERMINAL NEURAL (inicio)
549 ============================================================ */
550 html[data-estilo="cyber"] .welcome-overlay {
551 background-color: rgba(1, 2, 4, 0.97);
552 backdrop-filter: none;
553 }
554
555 html[data-estilo="cyber"] .welcome-popup {
556 background: linear-gradient(135deg, #070b14 0%, #020305 100%);
557 border: 2px solid #00f0ff;
558 box-shadow: 0 0 80px rgba(0, 240, 255, 0.35), inset 0 0 30px rgba(0, 240, 255, 0.15);
559 overflow: hidden;
560 }
561
562 html[data-estilo="cyber"] .welcome-popup::after {
563 background: linear-gradient(90deg, transparent, #ff007f, #00f0ff, transparent);
564 box-shadow: none;
565 animation: terminalScan 2s linear infinite;
566 }
567
568 html[data-estilo="cyber"] .popup-tag {
569 color: #ff007f;
570 letter-spacing: 2px;
571 }
572
573 html[data-estilo="cyber"] .pulse-mini {
574 background-color: #ff007f;
575 box-shadow: 0 0 6px #ff007f;
576 }
577
578 html[data-estilo="cyber"] .popup-title {
579 color: #ffffff;
580 letter-spacing: 1px;
581 text-shadow: 0 0 10px rgba(0, 240, 255, 0.5);
582 }
583
584 html[data-estilo="cyber"] .popup-username {
585 background: rgba(0, 240, 255, 0.1);
586 border: 1px solid rgba(0, 240, 255, 0.4);
587 color: #00f0ff;
588 box-shadow: 0 0 12px rgba(0, 240, 255, 0.3);
589 }
590
591 html[data-estilo="cyber"] .popup-status { color: #8b949e; }
592
593 html[data-estilo="cyber"] .welcome-popup,
594 html[data-estilo="cyber"] .popup-tag,
595 html[data-estilo="cyber"] .popup-title,
596 html[data-estilo="cyber"] .popup-username,
597 html[data-estilo="cyber"] .popup-status { text-align: center; }
598
599 /* ============================================================
600 MATERIAL COMPLETO DEL MOCKUP "CYBERPUNK NETWORK v8.0"
601 (transiciones, animaciones y componentes del prototipo)
602 ============================================================ */
603
604 /* --- Cortina de transición entre páginas: ACORDEÓN NEURAL --- */
605 html[data-estilo="cyber"] .cyber-blade-transition {
606 position: fixed;
607 top: 0;
608 left: 0;
609 width: 100vw;
610 height: 100vh;
611 display: flex;
612 flex-direction: column;
613 z-index: 9999;
614 pointer-events: none;
615 visibility: hidden;
616 }
617
618 html[data-estilo="cyber"] .cyber-blade-transition.active {
619 visibility: visible;
620 }
621
622 html[data-estilo="cyber"] .cyber-blade-transition .accordion-panel {
623 flex: 1;
624 background: #0a0a12;
625 border-bottom: 1px solid #00f0ff;
626 transform: scaleY(0);
627 transform-origin: center;
628 transition: transform 0.35s cubic-bezier(0.77, 0, 0.175, 1);
629 }
630
631 html[data-estilo="cyber"] .cyber-blade-transition.active .accordion-panel {
632 transform: scaleY(1);
633 }
634
635 /* Retrasos escalonados para el efecto de acordeón/persiana fluida */
636 html[data-estilo="cyber"] .cyber-blade-transition .accordion-panel:nth-child(1) { transition-delay: 0.0s; }
637 html[data-estilo="cyber"] .cyber-blade-transition .accordion-panel:nth-child(2) { transition-delay: 0.05s; }
638 html[data-estilo="cyber"] .cyber-blade-transition .accordion-panel:nth-child(3) { transition-delay: 0.1s; }
639 html[data-estilo="cyber"] .cyber-blade-transition .accordion-panel:nth-child(4) { transition-delay: 0.15s; }
640
641 /* --- Pop-up de bienvenida del prototipo: terminal de acceso neural --- */
642 html[data-estilo="cyber"] .cyber-welcome-overlay {
643 position: fixed;
644 top: 0;
645 left: 0;
646 width: 100vw;
647 height: 100vh;
648 background-color: rgba(1, 2, 4, 0.97);
649 backdrop-filter: none;
650 z-index: 99999;
651 display: flex;
652 align-items: center;
653 justify-content: center;
654 transition: opacity 0.8s ease, visibility 0.8s;
655 }
656
657 html[data-estilo="cyber"] .cyber-welcome-overlay.fade-out {
658 opacity: 0;
659 visibility: hidden;
660 pointer-events: none;
661 }
662
663 html[data-estilo="cyber"] .terminal-box {
664 background: linear-gradient(135deg, #070b14 0%, #020305 100%);
665 border: 2px solid #00f0ff;
666 box-shadow: 0 0 80px rgba(0, 240, 255, 0.35), inset 0 0 30px rgba(0, 240, 255, 0.15);
667 padding: 45px 55px;
668 max-width: 580px;
669 width: 90%;
670 position: relative;
671 z-index: 2;
672 overflow: hidden;
673 animation: terminalIn 0.8s cubic-bezier(0.16, 1, 0.3, 1) forwards;
674 }
675
676 html[data-estilo="cyber"] .terminal-box::before {
677 content: '';
678 position: absolute;
679 top: 0;
680 left: -100%;
681 width: 100%;
682 height: 2px;
683 background: linear-gradient(90deg, transparent, #ff007f, #00f0ff, transparent);
684 animation: terminalScan 2s linear infinite;
685 }
686
687 html[data-estilo="cyber"] .terminal-header {
688 font-size: 0.72rem;
689 color: #ff007f;
690 letter-spacing: 3px;
691 text-transform: uppercase;
692 margin-bottom: 14px;
693 border-bottom: 1px dashed rgba(0, 240, 255, 0.3);
694 padding-bottom: 6px;
695 }
696
697 html[data-estilo="cyber"] .terminal-grid-info {
698 display: flex;
699 align-items: center;
700 gap: 20px;
701 margin-bottom: 18px;
702 }
703
704 html[data-estilo="cyber"] .terminal-avatar {
705 width: 80px;
706 height: 80px;
707 border: 2px solid #00f0ff;
708 padding: 3px;
709 background: #000;
710 box-shadow: 0 0 15px rgba(0, 240, 255, 0.5);
711 flex-shrink: 0;
712 }
713
714 html[data-estilo="cyber"] .terminal-avatar img {
715 width: 100%;
716 height: 100%;
717 object-fit: cover;
718 display: block;
719 }
720
721 html[data-estilo="cyber"] .terminal-text-area { text-align: left; }
722
723 html[data-estilo="cyber"] .terminal-title {
724 font-size: 1.4rem;
725 font-weight: 900;
726 color: #ffffff;
727 letter-spacing: 1px;
728 margin-bottom: 4px;
729 text-shadow: 0 0 10px rgba(0, 240, 255, 0.5);
730 text-transform: uppercase;
731 }
732
733 html[data-estilo="cyber"] .terminal-name {
734 font-size: 0.95rem;
735 color: #00f0ff;
736 font-weight: bold;
737 letter-spacing: 0.5px;
738 }
739
740 html[data-estilo="cyber"] .terminal-console-log {
741 background: #000000;
742 border: 1px solid #1f3044;
743 padding: 12px;
744 font-size: 0.78rem;
745 color: #8b949e;
746 text-align: left;
747 margin-top: 14px;
748 line-height: 1.4;
749 }
750
751 html[data-estilo="cyber"] .terminal-console-log span { color: #38bdf8; }
752
753 /* --- Componentes reales de la app sintonizados al prototipo --- */
754
755 /* Botón principal sólido (Publicar duda, Entrar a sala...) con pulso cyber */
756 html[data-estilo="cyber"] .btn-solid {
757 background: linear-gradient(135deg, #1a0033 0%, #ff007f 100%);
758 color: #ffffff;
759 border: 1px solid #00f0ff;
760 box-shadow: 0 0 15px rgba(255, 0, 127, 0.5);
761 transition: transform 0.3s cubic-bezier(0.16, 1, 0.3, 1), opacity 0.3s cubic-bezier(0.16, 1, 0.3, 1), box-shadow 0.3s cubic-bezier(0.16, 1, 0.3, 1), border-color 0.3s cubic-bezier(0.16, 1, 0.3, 1), background-color 0.3s cubic-bezier(0.16, 1, 0.3, 1), color 0.3s cubic-bezier(0.16, 1, 0.3, 1);
762 animation: cyberPulse 3s infinite;
763 letter-spacing: 0.5px;
764 text-transform: uppercase;
765 font-weight: 900;
766 }
767
768 html[data-estilo="cyber"] .btn-solid:hover {
769 transform: scale(1.03);
770 background: #00f0ff;
771 color: #010204;
772 box-shadow: 0 0 25px rgba(0, 240, 255, 0.8);
773 }
774
775 /* Enlaces de acción limpios (widget cards) */
776 html[data-estilo="cyber"] .btn-clean,
777 html[data-estilo="cyber"] .side-link {
778 color: #00f0ff;
779 border: 1px solid #00f0ff;
780 background: transparent;
781 transition: transform 0.3s, opacity 0.3s, box-shadow 0.3s, border-color 0.3s, background-color 0.3s, color 0.3s;
782 text-transform: uppercase;
783 font-size: 0.78rem;
784 font-weight: bold;
785 }
786
787 html[data-estilo="cyber"] .btn-clean:hover,
788 html[data-estilo="cyber"] .side-link:hover {
789 background: #00f0ff;
790 color: #010204;
791 box-shadow: 0 0 20px rgba(0, 240, 255, 0.8);
792 }
793
794 /* Botones de acción en la tarjeta de publicación */
795 html[data-estilo="cyber"] .btn-action {
796 border: 1px solid transparent;
797 color: #8b949e;
798 background: transparent;
799 transition: transform 0.25s cubic-bezier(0.16, 1, 0.3, 1), opacity 0.25s cubic-bezier(0.16, 1, 0.3, 1), box-shadow 0.25s cubic-bezier(0.16, 1, 0.3, 1), border-color 0.25s cubic-bezier(0.16, 1, 0.3, 1), background-color 0.25s cubic-bezier(0.16, 1, 0.3, 1), color 0.25s cubic-bezier(0.16, 1, 0.3, 1);
800 text-transform: uppercase;
801 font-size: 0.75rem;
802 }
803
804 html[data-estilo="cyber"] .btn-action:hover {
805 color: #00f0ff;
806 border-color: #00f0ff;
807 box-shadow: 0 0 12px rgba(0, 240, 255, 0.3);
808 }
809
810 html[data-estilo="cyber"] .btn-action.voted {
811 color: #ff007f;
812 border-color: #ff007f;
813 box-shadow: 0 0 12px rgba(255, 0, 127, 0.4);
814 }
815
816 html[data-estilo="cyber"] .post-card,
817 html[data-estilo="cyber"] .side-card {
818 backdrop-filter: none;
819 transition: transform 0.35s cubic-bezier(0.16, 1, 0.3, 1), opacity 0.35s cubic-bezier(0.16, 1, 0.3, 1), box-shadow 0.35s cubic-bezier(0.16, 1, 0.3, 1), border-color 0.35s cubic-bezier(0.16, 1, 0.3, 1), background-color 0.35s cubic-bezier(0.16, 1, 0.3, 1), color 0.35s cubic-bezier(0.16, 1, 0.3, 1);
820 }
821
822 html[data-estilo="cyber"] .post-card:hover,
823 html[data-estilo="cyber"] .side-card:hover,
824 html[data-estilo="cyber"] .widget-card:hover {
825 transform: translateY(-3px);
826 border-color: #00f0ff;
827 box-shadow: 0 20px 50px rgba(0, 240, 255, 0.25);
828 }
829
830 /* Progreso de carrera (avance) con relleno animado cian-magenta */
831 html[data-estilo="cyber"] .progress-bar {
832 height: 6px;
833 background: #030508;
834 border: 1px solid #1f3044;
835 overflow: hidden;
836 box-shadow: inset 0 0 6px rgba(0, 0, 0, 0.8);
837 }
838
839 html[data-estilo="cyber"] .progress-fill {
840 background: linear-gradient(90deg, #ff007f, #00f0ff);
841 box-shadow: 0 0 12px #00f0ff;
842 transition: width 1.6s cubic-bezier(0.16, 1, 0.3, 1) 0.4s;
843 }
844
845 html[data-estilo="cyber"] .progress-labels {
846 font-size: 0.78rem;
847 color: #8b949e;
848 }
849
850 /* Insignias de estado de la app según la paleta cyber */
851 html[data-estilo="cyber"] .badge-verified,
852 html[data-estilo="cyber"] .badge-solved {
853 background: rgba(0, 240, 255, 0.12);
854 color: #00f0ff;
855 border: 1px solid #00f0ff;
856 text-transform: uppercase;
857 }
858
859 html[data-estilo="cyber"] .badge-interacted {
860 background: rgba(255, 0, 127, 0.12);
861 color: #ff8ac2;
862 border: 1px solid #ff007f;
863 text-transform: uppercase;
864 }
865
866 html[data-estilo="cyber"] .maps-banner .banner-content,
867 html[data-estilo="cyber"] .banner-title {
868 text-shadow: 0 0 10px rgba(0, 240, 255, 0.4);
869 }
870
871 html[data-estilo="cyber"] .empty-state h2 { color: #ffffff; }
872 html[data-estilo="cyber"] .empty-state p,
873 html[data-estilo="cyber"] .filter-note { color: #8b949e; }
874
875 /* --- Keyframes extra del prototipo --- */
876 @keyframes terminalIn {
877 0% { transform: scale(0.85) translateY(25px); opacity: 0; filter: blur(10px); }
878 100% { transform: scale(1) translateY(0); opacity: 1; filter: blur(0); }
879 }
880
881 @keyframes terminalScan {
882 0% { left: -100%; }
883 100% { left: 100%; }
884 }
885
886 /* ============================================================
887 COMUNIDAD: FORO, RESPUESTAS, APUNTES, TIPS, MODALES
888 ============================================================ */
889
890 /* Barra de filtros y pestañas del hub */
891 html[data-estilo="cyber"] .hub-filter-bar {
892 background: rgba(10, 16, 26, 0.9);
893 border: 1px solid #1f3044;
894 }
895
896 html[data-estilo="cyber"] .hub-tabs button {
897 background: transparent;
898 color: #8b949e;
899 border: 1px solid transparent;
900 text-transform: uppercase;
901 letter-spacing: 0.5px;
902 transition: transform 0.25s cubic-bezier(0.16, 1, 0.3, 1), opacity 0.25s cubic-bezier(0.16, 1, 0.3, 1), box-shadow 0.25s cubic-bezier(0.16, 1, 0.3, 1), border-color 0.25s cubic-bezier(0.16, 1, 0.3, 1), background-color 0.25s cubic-bezier(0.16, 1, 0.3, 1), color 0.25s cubic-bezier(0.16, 1, 0.3, 1);
903 }
904
905 html[data-estilo="cyber"] .hub-tabs button:hover {
906 color: #00f0ff;
907 border-color: #00f0ff;
908 box-shadow: 0 0 12px rgba(0, 240, 255, 0.3);
909 }
910
911 html[data-estilo="cyber"] .hub-tabs button.active {
912 background: rgba(0, 240, 255, 0.12);
913 color: #00f0ff;
914 border: 1px solid #00f0ff;
915 }
916
917 html[data-estilo="cyber"] .input-search {
918 background: rgba(4, 7, 12, 0.9);
919 border: 1px solid #1f3044;
920 color: #00f0ff;
921 box-shadow: inset 0 0 8px rgba(0, 0, 0, 0.8);
922 }
923
924 html[data-estilo="cyber"] .input-search:focus {
925 border-color: #00f0ff;
926 box-shadow: 0 0 20px rgba(0, 240, 255, 0.3), inset 0 0 8px rgba(0, 0, 0, 0.8);
927 }
928
929 /* Insignias del hub */
930 html[data-estilo="cyber"] .hub-badge {
931 background: rgba(0, 240, 255, 0.12);
932 color: #00f0ff;
933 border: 1px solid #00f0ff;
934 text-transform: uppercase;
935 letter-spacing: 0.5px;
936 }
937
938 html[data-estilo="cyber"] .hub-badge.badge-solucion,
939 html[data-estilo="cyber"] .hub-badge.badge-solved {
940 background: rgba(255, 0, 127, 0.12);
941 color: #ff8ac2;
942 border-color: #ff007f;
943 }
944
945 /* Cabecera de publicación del foro */
946 html[data-estilo="cyber"] .foro-autor-line strong,
947 html[data-estilo="cyber"] .user-data-line strong { color: #ffffff; }
948
949 html[data-estilo="cyber"] .post-title {
950 color: #ffffff;
951 font-weight: 900;
952 letter-spacing: 0.5px;
953 }
954
955 html[data-estilo="cyber"] .post-desc {
956 color: #c9d1d9;
957 line-height: 1.55;
958 }
959
960 html[data-estilo="cyber"] .post-desc code {
961 background: #070b14;
962 border: 1px solid #1f3044;
963 color: #00f0ff;
964 }
965
966 /* Caja de solución aceptada */
967 html[data-estilo="cyber"] .solved-box {
968 background: rgba(255, 0, 127, 0.08);
969 border: 1px solid rgba(255, 0, 127, 0.4);
970 color: #ff8ac2;
971 box-shadow: 0 0 20px rgba(255, 0, 127, 0.2);
972 }
973
974 /* Acciones enlazadas del foro */
975 html[data-estilo="cyber"] .btn-link,
976 html[data-estilo="cyber"] .foro-action {
977 color: #00f0ff;
978 background: transparent;
979 transition: transform 0.25s cubic-bezier(0.16, 1, 0.3, 1), opacity 0.25s cubic-bezier(0.16, 1, 0.3, 1), box-shadow 0.25s cubic-bezier(0.16, 1, 0.3, 1), border-color 0.25s cubic-bezier(0.16, 1, 0.3, 1), background-color 0.25s cubic-bezier(0.16, 1, 0.3, 1), color 0.25s cubic-bezier(0.16, 1, 0.3, 1);
980 text-transform: uppercase;
981 letter-spacing: 0.5px;
982 }
983
984 html[data-estilo="cyber"] .btn-link:hover,
985 html[data-estilo="cyber"] .foro-action:hover {
986 color: #ffffff;
987 text-shadow: 0 0 10px rgba(0, 240, 255, 0.8);
988 }
989
990 /* Tarjeta de apunte */
991 html[data-estilo="cyber"] .apunte-card {
992 backdrop-filter: none;
993 transition: transform 0.35s cubic-bezier(0.16, 1, 0.3, 1), opacity 0.35s cubic-bezier(0.16, 1, 0.3, 1), box-shadow 0.35s cubic-bezier(0.16, 1, 0.3, 1), border-color 0.35s cubic-bezier(0.16, 1, 0.3, 1), background-color 0.35s cubic-bezier(0.16, 1, 0.3, 1), color 0.35s cubic-bezier(0.16, 1, 0.3, 1);
994 }
995
996 html[data-estilo="cyber"] .apunte-card:hover {
997 transform: translateY(-3px);
998 border-color: #00f0ff;
999 box-shadow: 0 20px 50px rgba(0, 240, 255, 0.25);
1000 }
1001
1002 html[data-estilo="cyber"] .file-icon {
1003 background: rgba(0, 240, 255, 0.12);
1004 border: 1px solid #00f0ff;
1005 color: #00f0ff;
1006 }
1007
1008 html[data-estilo="cyber"] .apunte-details h4 { color: #ffffff; }
1009 html[data-estilo="cyber"] .apunte-details p { color: #8b949e; }
1010
1011 /* Tarjeta de tip */
1012 html[data-estilo="cyber"] .tip-card {
1013 backdrop-filter: none;
1014 transition: transform 0.35s cubic-bezier(0.16, 1, 0.3, 1), opacity 0.35s cubic-bezier(0.16, 1, 0.3, 1), box-shadow 0.35s cubic-bezier(0.16, 1, 0.3, 1), border-color 0.35s cubic-bezier(0.16, 1, 0.3, 1), background-color 0.35s cubic-bezier(0.16, 1, 0.3, 1), color 0.35s cubic-bezier(0.16, 1, 0.3, 1);
1015 }
1016
1017 html[data-estilo="cyber"] .tip-card:hover {
1018 transform: translateY(-3px);
1019 border-color: #00f0ff;
1020 box-shadow: 0 20px 50px rgba(0, 240, 255, 0.25);
1021 }
1022
1023 html[data-estilo="cyber"] .tip-title,
1024 html[data-estilo="cyber"] .tip-card h4 { color: #ffffff; }
1025 html[data-estilo="cyber"] .tip-text { color: #c9d1d9; }
1026 html[data-estilo="cyber"] .tip-text code {
1027 background: #070b14;
1028 border: 1px solid #1f3044;
1029 color: #00f0ff;
1030 }
1031
1032 /* Votos de tips */
1033 html[data-estilo="cyber"] .vote-btn {
1034 background: rgba(10, 14, 22, 0.9);
1035 border: 1px solid #1f3044;
1036 color: #8b949e;
1037 transition: transform 0.25s cubic-bezier(0.16, 1, 0.3, 1), opacity 0.25s cubic-bezier(0.16, 1, 0.3, 1), box-shadow 0.25s cubic-bezier(0.16, 1, 0.3, 1), border-color 0.25s cubic-bezier(0.16, 1, 0.3, 1), background-color 0.25s cubic-bezier(0.16, 1, 0.3, 1), color 0.25s cubic-bezier(0.16, 1, 0.3, 1);
1038 }
1039
1040 html[data-estilo="cyber"] .vote-btn:hover {
1041 border-color: #00f0ff;
1042 color: #00f0ff;
1043 box-shadow: 0 0 12px rgba(0, 240, 255, 0.3);
1044 }
1045
1046 html[data-estilo="cyber"] .vote-btn.votado {
1047 border-color: #ff007f;
1048 color: #ff007f;
1049 box-shadow: 0 0 12px rgba(255, 0, 127, 0.4);
1050 }
1051
1052 /* --- MODALES DEL HUB (crear duda/apunte/tip) --- */
1053 html[data-estilo="cyber"] .hub-modal-overlay {
1054 background: rgba(1, 2, 4, 0.9);
1055 backdrop-filter: none;
1056 }
1057
1058 html[data-estilo="cyber"] .hub-modal {
1059 background: linear-gradient(135deg, #070b14 0%, #020305 100%);
1060 border: 2px solid #00f0ff;
1061 box-shadow: 0 0 80px rgba(0, 240, 255, 0.35), inset 0 0 30px rgba(0, 240, 255, 0.15);
1062 }
1063
1064 html[data-estilo="cyber"] .hub-modal h3,
1065 html[data-estilo="cyber"] .hub-modal h4 { color: #ffffff; }
1066
1067 html[data-estilo="cyber"] .hub-modal .modal-sub { color: #8b949e; }
1068 html[data-estilo="cyber"] .hub-modal label { color: #e6edf3; }
1069 html[data-estilo="cyber"] .modal-msg { color: #c9d1d9; }
1070
1071 /* --- MODAL DE POST Y RESPUESTAS (duda repetida / respuestas) --- */
1072 html[data-estilo="cyber"] .dup-modal { border: 2px solid #00f0ff; }
1073 html[data-estilo="cyber"] .dup-notice {
1074 background: rgba(255, 0, 127, 0.08);
1075 border: 1px solid rgba(255, 0, 127, 0.4);
1076 box-shadow: 0 0 20px rgba(255, 0, 127, 0.25);
1077 }
1078
1079 html[data-estilo="cyber"] .dup-titulo { color: #ff8ac2; }
1080 html[data-estilo="cyber"] .dup-notice p,
1081 html[data-estilo="cyber"] .dup-por { color: #8b949e; }
1082
1083 html[data-estilo="cyber"] .dup-question {
1084 background: rgba(10, 16, 26, 0.92);
1085 border-left: 4px solid #00f0ff;
1086 }
1087
1088 html[data-estilo="cyber"] .dup-section-title {
1089 color: #ffffff;
1090 text-transform: uppercase;
1091 letter-spacing: 0.5px;
1092 }
1093
1094 html[data-estilo="cyber"] .dup-respuestas,
1095 html[data-estilo="cyber"] .dup-tips,
1096 html[data-estilo="cyber"] .dup-recursos {
1097 border-color: #1f3044;
1098 }
1099
1100 html[data-estilo="cyber"] .dup-vacio { color: #8b949e; }
1101
1102 /* --- RESPUESTAS A UN POST --- */
1103 html[data-estilo="cyber"] .hub-respuesta {
1104 background: linear-gradient(135deg, rgba(10, 16, 26, 0.92) 0%, rgba(4, 7, 12, 0.96) 100%);
1105 border: 1px solid #1f3044;
1106 border-left: 4px solid #00f0ff;
1107 box-shadow: 0 8px 24px rgba(0, 0, 0, 0.6);
1108 backdrop-filter: none;
1109 transition: transform 0.3s cubic-bezier(0.16, 1, 0.3, 1), opacity 0.3s cubic-bezier(0.16, 1, 0.3, 1), box-shadow 0.3s cubic-bezier(0.16, 1, 0.3, 1), border-color 0.3s cubic-bezier(0.16, 1, 0.3, 1), background-color 0.3s cubic-bezier(0.16, 1, 0.3, 1), color 0.3s cubic-bezier(0.16, 1, 0.3, 1);
1110 }
1111
1112 html[data-estilo="cyber"] .hub-respuesta:hover {
1113 border-color: #00f0ff;
1114 box-shadow: 0 12px 30px rgba(0, 240, 255, 0.2);
1115 }
1116
1117 html[data-estilo="cyber"] .respuesta-autor {
1118 color: #ff007f;
1119 font-weight: 900;
1120 text-transform: uppercase;
1121 letter-spacing: 0.5px;
1122 text-shadow: 0 0 8px rgba(255, 0, 127, 0.4);
1123 }
1124
1125 html[data-estilo="cyber"] .respuesta-texto {
1126 color: #c9d1d9;
1127 line-height: 1.55;
1128 }
1129
1130 /* ============================================================
1131 MENSAJES: CHAT COMPLETO
1132 ============================================================ */
1133 html[data-estilo="cyber"] .chat-sidebar {
1134 background: linear-gradient(180deg, rgba(7, 10, 20, 0.95) 0%, rgba(1, 2, 4, 0.98) 100%);
1135 border-right: 2px solid rgba(0, 240, 255, 0.35);
1136 }
1137
1138 html[data-estilo="cyber"] .chat-search-box { border-bottom-color: #1f3044; }
1139 html[data-estilo="cyber"] .chat-search-box input {
1140 background: rgba(4, 7, 12, 0.9);
1141 border: 1px solid #1f3044;
1142 color: #00f0ff;
1143 box-shadow: inset 0 0 8px rgba(0, 0, 0, 0.8);
1144 }
1145
1146 html[data-estilo="cyber"] .chat-search-box input:focus {
1147 border-color: #00f0ff;
1148 box-shadow: 0 0 20px rgba(0, 240, 255, 0.3);
1149 }
1150
1151 html[data-estilo="cyber"] .chat-item {
1152 border-bottom: 1px solid #161f2e;
1153 transition: transform 0.25s cubic-bezier(0.16, 1, 0.3, 1), opacity 0.25s cubic-bezier(0.16, 1, 0.3, 1), box-shadow 0.25s cubic-bezier(0.16, 1, 0.3, 1), border-color 0.25s cubic-bezier(0.16, 1, 0.3, 1), background-color 0.25s cubic-bezier(0.16, 1, 0.3, 1), color 0.25s cubic-bezier(0.16, 1, 0.3, 1);
1154 }
1155
1156 html[data-estilo="cyber"] .chat-item:hover {
1157 background: rgba(0, 240, 255, 0.08);
1158 }
1159
1160 html[data-estilo="cyber"] .chat-item.active {
1161 background: rgba(0, 240, 255, 0.16);
1162 border-left: 3px solid #00f0ff;
1163 box-shadow: inset 0 0 12px rgba(0, 240, 255, 0.2);
1164 }
1165
1166 html[data-estilo="cyber"] .chat-item-header strong { color: #ffffff; }
1167 html[data-estilo="cyber"] .chat-item-header span,
1168 html[data-estilo="cyber"] .chat-item-preview { color: #8b949e; }
1169
1170 html[data-estilo="cyber"] .chat-window {
1171 background: rgba(3, 5, 9, 0.55);
1172 }
1173
1174 html[data-estilo="cyber"] .chat-header {
1175 background: rgba(7, 10, 20, 0.95);
1176 border-bottom: 1px solid rgba(0, 240, 255, 0.3);
1177 }
1178
1179 html[data-estilo="cyber"] .chat-header-user h3 { color: #ffffff; }
1180 html[data-estilo="cyber"] .chat-header-user span { color: #8b949e; }
1181
1182 /* Burbujas de mensaje */
1183 html[data-estilo="cyber"] .message {
1184 background: rgba(10, 16, 26, 0.92);
1185 border: 1px solid #1f3044;
1186 border-left: 4px solid #00f0ff;
1187 box-shadow: 0 8px 24px rgba(0, 0, 0, 0.6);
1188 backdrop-filter: none;
1189 transition: transform 0.3s cubic-bezier(0.16, 1, 0.3, 1), opacity 0.3s cubic-bezier(0.16, 1, 0.3, 1), box-shadow 0.3s cubic-bezier(0.16, 1, 0.3, 1), border-color 0.3s cubic-bezier(0.16, 1, 0.3, 1), background-color 0.3s cubic-bezier(0.16, 1, 0.3, 1), color 0.3s cubic-bezier(0.16, 1, 0.3, 1);
1190 }
1191
1192 html[data-estilo="cyber"] .message.received:hover,
1193 html[data-estilo="cyber"] .message.sent:hover {
1194 border-color: #00f0ff;
1195 box-shadow: 0 10px 28px rgba(0, 240, 255, 0.22);
1196 }
1197
1198 html[data-estilo="cyber"] .message.sent {
1199 background: linear-gradient(135deg, rgba(26, 0, 51, 0.95) 0%, rgba(10, 16, 26, 0.96) 100%);
1200 border: 1px solid rgba(255, 0, 127, 0.45);
1201 border-left: 4px solid #ff007f;
1202 box-shadow: 0 8px 24px rgba(0, 0, 0, 0.65);
1203 }
1204
1205 html[data-estilo="cyber"] .message-time { color: #8b949e; }
1206
1207 html[data-estilo="cyber"] .message-texto {
1208 color: #e6edf3;
1209 line-height: 1.5;
1210 }
1211
1212 /* Adjuntos */
1213 html[data-estilo="cyber"] .message-attachment {
1214 background: rgba(4, 7, 12, 0.9);
1215 border: 1px solid #1f3044;
1216 }
1217
1218 html[data-estilo="cyber"] .message.sent .message-attachment {
1219 border-color: rgba(255, 0, 127, 0.35);
1220 }
1221
1222 html[data-estilo="cyber"] .attachment-icon {
1223 background: rgba(0, 240, 255, 0.12);
1224 border: 1px solid #00f0ff;
1225 color: #00f0ff;
1226 }
1227
1228 html[data-estilo="cyber"] .message.sent .attachment-icon {
1229 background: rgba(255, 0, 127, 0.12);
1230 border-color: #ff007f;
1231 color: #ff8ac2;
1232 }
1233
1234 html[data-estilo="cyber"] .attachment-nombre { color: #ffffff; }
1235 html[data-estilo="cyber"] .attachment-peso { color: #8b949e; }
1236
1237 html[data-estilo="cyber"] .adjunto-descargar {
1238 background: transparent;
1239 border: 1px solid #00f0ff;
1240 color: #00f0ff;
1241 transition: transform 0.25s cubic-bezier(0.16, 1, 0.3, 1), opacity 0.25s cubic-bezier(0.16, 1, 0.3, 1), box-shadow 0.25s cubic-bezier(0.16, 1, 0.3, 1), border-color 0.25s cubic-bezier(0.16, 1, 0.3, 1), background-color 0.25s cubic-bezier(0.16, 1, 0.3, 1), color 0.25s cubic-bezier(0.16, 1, 0.3, 1);
1242 text-transform: uppercase;
1243 }
1244
1245 html[data-estilo="cyber"] .adjunto-descargar:hover {
1246 background: #00f0ff;
1247 color: #010204;
1248 box-shadow: 0 0 15px rgba(0, 240, 255, 0.8);
1249 }
1250
1251 html[data-estilo="cyber"] .message.sent .adjunto-descargar {
1252 border-color: #ff007f;
1253 color: #ff8ac2;
1254 }
1255
1256 html[data-estilo="cyber"] .message.sent .adjunto-descargar:hover {
1257 background: #ff007f;
1258 color: #ffffff;
1259 box-shadow: 0 0 15px rgba(255, 0, 127, 0.8);
1260 }
1261
1262 /* Barra de escritura */
1263 html[data-estilo="cyber"] .chat-input-bar {
1264 background: rgba(7, 10, 20, 0.95);
1265 border-top: 1px solid rgba(0, 240, 255, 0.3);
1266 }
1267
1268 html[data-estilo="cyber"] .chat-input-bar input {
1269 background: rgba(4, 7, 12, 0.9);
1270 border: 1px solid #1f3044;
1271 color: #00f0ff;
1272 box-shadow: inset 0 0 8px rgba(0, 0, 0, 0.8);
1273 outline: none;
1274 }
1275
1276 html[data-estilo="cyber"] .chat-input-bar input:focus {
1277 border-color: #00f0ff;
1278 box-shadow: 0 0 20px rgba(0, 240, 255, 0.3);
1279 }
1280
1281 html[data-estilo="cyber"] .chat-empty p,
1282 html[data-estilo="cyber"] .chat-empty span { color: #8b949e; }
1283
1284 /* ============================================================
1285 PERFIL: STATS, CERTIFICADOS, ACTIVIDAD, DISCOVERY
1286 ============================================================ */
1287 html[data-estilo="cyber"] .profile-name {
1288 color: #ffffff;
1289 text-shadow: 0 0 12px rgba(0, 240, 255, 0.5);
1290 letter-spacing: 0.5px;
1291 }
1292
1293 html[data-estilo="cyber"] .profile-sub,
1294 html[data-estilo="cyber"] .discover-empty { color: #8b949e; }
1295
1296 html[data-estilo="cyber"] .red-stat .number,
1297 html[data-estilo="cyber"] .stat-box .number {
1298 color: #00f0ff;
1299 text-shadow: 0 0 12px rgba(0, 240, 255, 0.5);
1300 }
1301
1302 html[data-estilo="cyber"] .red-stat .label,
1303 html[data-estilo="cyber"] .stat-box .label { color: #8b949e; }
1304
1305 html[data-estilo="cyber"] .discover-person {
1306 background: linear-gradient(135deg, rgba(10, 16, 26, 0.92) 0%, rgba(4, 7, 12, 0.96) 100%);
1307 border: 1px solid #1f3044;
1308 border-left: 4px solid #00f0ff;
1309 backdrop-filter: none;
1310 transition: transform 0.35s cubic-bezier(0.16, 1, 0.3, 1), opacity 0.35s cubic-bezier(0.16, 1, 0.3, 1), box-shadow 0.35s cubic-bezier(0.16, 1, 0.3, 1), border-color 0.35s cubic-bezier(0.16, 1, 0.3, 1), background-color 0.35s cubic-bezier(0.16, 1, 0.3, 1), color 0.35s cubic-bezier(0.16, 1, 0.3, 1);
1311 }
1312
1313 html[data-estilo="cyber"] .discover-person:hover {
1314 transform: translateY(-3px);
1315 border-color: #00f0ff;
1316 box-shadow: 0 20px 50px rgba(0, 240, 255, 0.25);
1317 }
1318
1319 html[data-estilo="cyber"] .discover-info strong { color: #ffffff; }
1320
1321 /* Certificados y actividad */
1322 html[data-estilo="cyber"] .certificate-item {
1323 background: rgba(10, 16, 26, 0.92);
1324 border: 1px solid #1f3044;
1325 border-left: 4px solid #00f0ff;
1326 backdrop-filter: none;
1327 transition: transform 0.3s cubic-bezier(0.16, 1, 0.3, 1), opacity 0.3s cubic-bezier(0.16, 1, 0.3, 1), box-shadow 0.3s cubic-bezier(0.16, 1, 0.3, 1), border-color 0.3s cubic-bezier(0.16, 1, 0.3, 1), background-color 0.3s cubic-bezier(0.16, 1, 0.3, 1), color 0.3s cubic-bezier(0.16, 1, 0.3, 1);
1328 }
1329
1330 html[data-estilo="cyber"] .certificate-item:hover {
1331 border-color: #00f0ff;
1332 box-shadow: 0 12px 30px rgba(0, 240, 255, 0.2);
1333 }
1334
1335 html[data-estilo="cyber"] .certificate-item.active {
1336 border-left-color: #ff007f;
1337 box-shadow: inset 0 0 15px rgba(255, 0, 127, 0.15);
1338 }
1339
1340 html[data-estilo="cyber"] .cert-title,
1341 html[data-estilo="cyber"] .activity-item strong { color: #ffffff; }
1342 html[data-estilo="cyber"] .cert-desc,
1343 html[data-estilo="cyber"] .activity-item { color: #8b949e; }
1344
1345 html[data-estilo="cyber"] .badge-green {
1346 background: rgba(0, 240, 255, 0.12);
1347 color: #00f0ff;
1348 border: 1px solid #00f0ff;
1349 }
1350
1351 html[data-estilo="cyber"] .badge-gray {
1352 background: rgba(10, 14, 22, 0.9);
1353 color: #8b949e;
1354 border: 1px solid #1f3044;
1355 }
1356
1357 /* Modales de propósito / semestre */
1358 html[data-estilo="cyber"] .proposito-modal {
1359 background: linear-gradient(135deg, #070b14 0%, #020305 100%);
1360 border: 2px solid #00f0ff;
1361 box-shadow: 0 0 80px rgba(0, 240, 255, 0.35), inset 0 0 30px rgba(0, 240, 255, 0.15);
1362 }
1363
1364 html[data-estilo="cyber"] .proposito-modal-sub { color: #8b949e; }
1365
1366 /* ============================================================
1367 CORRECCION DE FONDOS BLANCOS (modo claro): contenedores chat/foro
1368 ============================================================ */
1369
1370 /* Contenedor principal del chat: fondo oscuro completo (antes #fff) */
1371 html[data-estilo="cyber"] .messages-container {
1372 --hub-border: #1f3044;
1373 --hub-accent: #00f0ff;
1374 --hub-accent-dark: #ff007f;
1375 --hub-accent-soft: rgba(0, 240, 255, 0.15);
1376 --hub-muted: #8b949e;
1377 background: rgba(3, 5, 9, 0.92);
1378 border: 1px solid #1f3044;
1379 box-shadow: 0 0 40px rgba(0, 240, 255, 0.12);
1380 }
1381
1382 /* Ítems de la lista de conversaciones (por defecto blancos) */
1383 html[data-estilo="cyber"] .chat-item {
1384 background: rgba(7, 10, 20, 0.6);
1385 }
1386
1387 html[data-estilo="cyber"] .chat-item-header strong { color: #ffffff; }
1388 html[data-estilo="cyber"] .chat-item-header span { color: #8b949e; }
1389 html[data-estilo="cyber"] .chat-item-preview { color: #8b949e; }
1390
1391 /* Cuerpo de conversación: retícula sutil tipo terminal */
1392 html[data-estilo="cyber"] .chat-body {
1393 background-color: rgba(4, 7, 12, 0.55);
1394 background-image: radial-gradient(rgba(0, 240, 255, 0.07) 1px, transparent 1px);
1395 background-size: 26px 26px;
1396 }
1397
1398 html[data-estilo="cyber"] .chat-empty {
1399 background-color: rgba(4, 7, 12, 0.55);
1400 }
1401
1402 /* Chip de adjunto pendiente de envío (antes verde claro) */
1403 html[data-estilo="cyber"] .adjunto-pendiente {
1404 background: rgba(0, 240, 255, 0.1);
1405 border: 1px solid #00f0ff;
1406 color: #00f0ff;
1407 }
1408
1409 html[data-estilo="cyber"] .adjunto-quitar { color: #ff2d55; }
1410
1411 /* Tarjetas de tips y apuntes: fondo oscuro por defecto (antes blanco) */
1412 html[data-estilo="cyber"] .tip-card,
1413 html[data-estilo="cyber"] .apunte-card {
1414 background: rgba(10, 16, 26, 0.92);
1415 border: 1px solid #1f3044;
1416 }
1417
1418 html[data-estilo="cyber"] .apunte-card:hover,
1419 html[data-estilo="cyber"] .tip-card:hover {
1420 background: rgba(12, 20, 32, 0.95);
1421 }
1422
1423 /* ============================================================
1424 ESTILO: HOGWARTS MEDIEVAL
1425 Oro y pergamino sobre la fortaleza mágica (mockup 3D).
1426 ============================================================ */
1427
1428 /* --- Paleta global del skin --- */
1429
1430 /* ============================================================
1431 ESTILO: EL CASTILLO (reemplaza al medieval / Hogwarts)
1432 Noche de piedra, latón y pergamino: un reino académico de
1433 torres, bóvedas y vitrales. Paleta vino/latón/pergamino,
1434 tipografía Cinzel (títulos) + EB Garamond (cuerpo).
1435 ============================================================ */
1436
1437 /* --- Paleta global del skin --- */
1438 html[data-estilo="medieval"] {
1439 --void: #120A08;
1440 --panel: #2A1512;
1441 --panel-light: #3B211C;
1442 --wine: #5C2323;
1443 --wine-deep: #3E1717;
1444 --wine-bright: #7A2E2E;
1445 --brass: #A9834B;
1446 --brass-dim: #7C6440;
1447 --brass-bright: #C9A15E;
1448 --parchment: #EEE2C4;
1449 --parchment-dim: #C9BB98;
1450 --umber: #1C120E;
1451
1452 --accent: #A9834B;
1453 --accent-dark: #7C6440;
1454 --accent-mid: #C9A15E;
1455 --accent-bright: #EEE2C4;
1456 --accent-deep: #120A08;
1457 --accent-soft: #2A1512;
1458 --accent-soft-border: #7C6440;
1459 --accent-contrast: #EEE2C4;
1460
1461 --primary-color: #A9834B;
1462 --secondary-color: #5C2323;
1463 --link-color: #C9BB98;
1464 --heading-color: #EEE2C4;
1465 --text-color: #C9BB98;
1466
1467 --sidebar-bg: #1C120E;
1468 --sidebar-border: #7C6440;
1469 --sidebar-text: #C9BB98;
1470 --sidebar-text-hover: #EEE2C4;
1471 --sidebar-item-hover-bg: rgba(169, 131, 75, 0.08);
1472 --sidebar-item-active-bg: linear-gradient(90deg, rgba(92, 35, 35, 0.55), transparent);
1473 --sidebar-accent: #A9834B;
1474
1475 --topbar-bg: rgba(18, 10, 8, 0.82);
1476
1477 --btn-primary-bg: linear-gradient(180deg, #6B2828 0%, #3E1717 100%);
1478 --btn-primary-text: #EEE2C4;
1479 --btn-outline-border: #A9834B;
1480 --btn-outline-text: #A9834B;
1481 }
1482
1483 /* --- Tipografía y base (sin bordes redondeados: piedra) --- */
1484 html[data-estilo="medieval"] * {
1485 font-family: "EB Garamond", Georgia, 'Times New Roman', serif;
1486 border-radius: 0 !important;
1487 }
1488
1489 html[data-estilo="medieval"] body {
1490 background-color: #120A08;
1491 color: #C9BB98;
1492 position: relative;
1493 }
1494
1495 html[data-estilo="medieval"] h1,
1496 html[data-estilo="medieval"] h2,
1497 html[data-estilo="medieval"] h3,
1498 html[data-estilo="medieval"] h4,
1499 html[data-estilo="medieval"] .brand-title,
1500 html[data-estilo="medieval"] .banner-title,
1501 html[data-estilo="medieval"] .modal-title,
1502 html[data-estilo="medieval"] .widget-title,
1503 html[data-estilo="medieval"] .post-title {
1504 font-family: "Cinzel", Georgia, serif;
1505 }
1506
1507 html[data-estilo="medieval"] h1,
1508 html[data-estilo="medieval"] h2,
1509 html[data-estilo="medieval"] h3,
1510 html[data-estilo="medieval"] h4 {
1511 color: #EEE2C4;
1512 letter-spacing: 0.5px;
1513 }
1514
1515 html[data-estilo="medieval"] a { color: #C9BB98; }
1516 html[data-estilo="medieval"] a:hover { color: #EEE2C4; }
1517
1518 html[data-estilo="medieval"] .page-title {
1519 color: #EEE2C4;
1520 font-family: "Cinzel", serif;
1521 }
1522 html[data-estilo="medieval"] .page-description { color: #C9BB98; }
1523
1524 html[data-estilo="medieval"] .app-layout {
1525 position: relative;
1526 z-index: 2;
1527 }
1528
1529 /* ============================================================
1530 SKYLINE DEL CASTILLO — CAPA FIJA CON PAN/ZOOM POR SECCIÓN
1531 ============================================================ */
1532 html[data-estilo="medieval"] .medieval-bg-viewport {
1533 position: fixed;
1534 top: 0; left: 0;
1535 width: 100vw;
1536 height: 100vh;
1537 pointer-events: none;
1538 z-index: 0;
1539 overflow: hidden;
1540 }
1541
1542 html[data-estilo="medieval"] .castle-layer {
1543 position: absolute;
1544 top: 50%;
1545 left: 50%;
1546 width: 2600px;
1547 height: 1100px;
1548 margin-left: -1300px;
1549 margin-top: -550px;
1550 transform: translate(0px, 40px) scale(0.62);
1551 transition: transform 1.5s cubic-bezier(0.16, 1, 0.3, 1);
1552 }
1553
1554 html[data-estilo="medieval"] .castle-vignette {
1555 position: fixed;
1556 inset: 0;
1557 z-index: 1;
1558 pointer-events: none;
1559 background:
1560 radial-gradient(ellipse 1000px 700px at 50% 40%, transparent 40%, rgba(10, 6, 5, 0.55) 100%),
1561 linear-gradient(to bottom, rgba(10, 6, 5, 0.5) 0%, rgba(10, 6, 5, 0.1) 22%, rgba(10, 6, 5, 0.1) 70%, rgba(10, 6, 5, 0.65) 100%);
1562 }
1563
1564 /* ============================================================
1565 TRANSICIÓN: SELLO HERÁLDICO (clip de círculo desde un vértice)
1566 ============================================================ */
1567 html[data-estilo="medieval"] .heraldic-transition {
1568 position: fixed;
1569 inset: 0;
1570 background: #1C120E;
1571 z-index: 9999;
1572 clip-path: polygon(50% -10%, 50% -10%, 50% -10%, 50% -10%);
1573 transition: clip-path 0.5s cubic-bezier(0.77, 0, 0.175, 1);
1574 pointer-events: none;
1575 visibility: hidden;
1576 }
1577
1578 html[data-estilo="medieval"] .heraldic-transition.active {
1579 clip-path: polygon(-20% -20%, 120% -20%, 120% 120%, -20% 120%);
1580 visibility: visible;
1581 }
1582
1583 /* ============================================================
1584 SIDEBAR — PASAJE DEL GRAN SALÓN
1585 ============================================================ */
1586 html[data-estilo="medieval"] .sidebar {
1587 background: linear-gradient(180deg, #2A1512 0%, #3B211C 100%);
1588 border-right: 2px solid #7C6440;
1589 box-shadow: 6px 0 30px rgba(0, 0, 0, 0.5);
1590 }
1591
1592 html[data-estilo="medieval"] .sidebar-header {
1593 border: 1px solid #7C6440;
1594 padding: 16px 14px;
1595 margin-bottom: 18px;
1596 text-align: center;
1597 position: relative;
1598 background: rgba(0, 0, 0, 0.18);
1599 border-bottom-width: 1px;
1600 }
1601
1602 html[data-estilo="medieval"] .sidebar-header::before,
1603 html[data-estilo="medieval"] .sidebar-header::after {
1604 content: "❖";
1605 color: #7C6440;
1606 font-size: 0.7rem;
1607 position: absolute;
1608 top: 4px;
1609 }
1610 html[data-estilo="medieval"] .sidebar-header::before { left: 6px; }
1611 html[data-estilo="medieval"] .sidebar-header::after { right: 6px; }
1612
1613 html[data-estilo="medieval"] .sidebar-header h1 {
1614 color: #A9834B;
1615 font-size: 1.05rem;
1616 font-weight: 600;
1617 letter-spacing: 1px;
1618 margin: 0 0 10px 0;
1619 text-transform: none;
1620 text-shadow: none;
1621 }
1622
1623 html[data-estilo="medieval"] .sidebar-user {
1624 display: flex;
1625 align-items: center;
1626 gap: 10px;
1627 justify-content: center;
1628 background: transparent;
1629 border: none;
1630 padding: 0;
1631 }
1632
1633 html[data-estilo="medieval"] .sidebar-user small {
1634 color: #C9BB98;
1635 font-size: 0.72rem;
1636 letter-spacing: 0.5px;
1637 }
1638
1639 html[data-estilo="medieval"] .sidebar-avatar {
1640 width: 32px;
1641 height: 32px;
1642 background: #5C2323;
1643 border: 1px solid #7C6440;
1644 color: #EEE2C4;
1645 font-family: "Cinzel", serif;
1646 font-weight: 600;
1647 font-size: 0.75rem;
1648 }
1649
1650 html[data-estilo="medieval"] .sidebar-avatar.avatar-foto {
1651 width: 32px;
1652 height: 32px;
1653 border: 1px solid #7C6440;
1654 }
1655
1656 html[data-estilo="medieval"] .sidebar-nav {
1657 display: flex;
1658 flex-direction: column;
1659 gap: 4px;
1660 }
1661
1662 html[data-estilo="medieval"] .sidebar-nav li { list-style: none; }
1663
1664 html[data-estilo="medieval"] .sidebar-nav a {
1665 display: flex;
1666 align-items: center;
1667 gap: 10px;
1668 padding: 11px 14px;
1669 color: #C9BB98;
1670 text-decoration: none;
1671 font-size: 0.82rem;
1672 font-weight: 500;
1673 letter-spacing: 0.5px;
1674 border-left: 3px solid transparent;
1675 transition: background-color 0.2s ease, border-color 0.2s ease, color 0.2s ease, padding 0.2s ease;
1676 }
1677
1678 html[data-estilo="medieval"] .sidebar-nav a::before {
1679 content: "❖";
1680 color: #7C6440;
1681 font-size: 0.65rem;
1682 }
1683
1684 html[data-estilo="medieval"] .sidebar-nav a:hover {
1685 background: rgba(169, 131, 75, 0.08);
1686 border-left-color: #7C6440;
1687 color: #EEE2C4;
1688 padding-left: 18px;
1689 }
1690
1691 html[data-estilo="medieval"] .sidebar-nav a.active {
1692 background: linear-gradient(90deg, rgba(92, 35, 35, 0.5), transparent);
1693 border-left-color: #A9834B;
1694 color: #EEE2C4;
1695 font-weight: 600;
1696 }
1697
1698 html[data-estilo="medieval"] .sidebar-nav a.active::before { color: #A9834B; }
1699
1700 html[data-estilo="medieval"] .sidebar-footer {
1701 border-top: 1px solid rgba(169, 131, 75, 0.35);
1702 padding-top: 14px;
1703 }
1704
1705 html[data-estilo="medieval"] .sidebar-footer .btn {
1706 background: transparent;
1707 border: 1px solid #7C6440;
1708 color: #A9834B;
1709 text-align: center;
1710 font-size: 0.72rem;
1711 font-weight: 600;
1712 letter-spacing: 1px;
1713 text-transform: uppercase;
1714 border-radius: 0;
1715 }
1716
1717 html[data-estilo="medieval"] .sidebar-footer .btn:hover {
1718 background: #5C2323;
1719 border-color: #5C2323;
1720 color: #EEE2C4;
1721 }
1722
1723 /* ============================================================
1724 TOPBAR
1725 ============================================================ */
1726 html[data-estilo="medieval"] .topbar {
1727 background: var(--topbar-bg);
1728 border-bottom: 1px solid #3B211C;
1729 backdrop-filter: blur(3px);
1730 }
1731
1732 html[data-estilo="medieval"] .menu-toggle {
1733 color: #A9834B;
1734 background: rgba(28, 18, 14, 0.85);
1735 border: 1px solid #7C6440;
1736 }
1737
1738 html[data-estilo="medieval"] .menu-toggle:hover {
1739 border-color: #A9834B;
1740 background: #3B211C;
1741 color: #EEE2C4;
1742 }
1743
1744 html[data-estilo="medieval"] .menu-backdrop { background: rgba(10, 6, 5, 0.6); }
1745
1746 /* Global search */
1747 html[data-estilo="medieval"] .global-search-input {
1748 background: rgba(28, 18, 14, 0.85);
1749 border: 1px solid #7C6440;
1750 color: #EEE2C4;
1751 box-shadow: inset 0 0 8px rgba(0, 0, 0, 0.6);
1752 }
1753
1754 html[data-estilo="medieval"] .global-search-input::placeholder { color: #8a7755; }
1755
1756 html[data-estilo="medieval"] .global-search-input:focus {
1757 border-color: #A9834B;
1758 box-shadow: 0 0 12px rgba(169, 131, 75, 0.25), inset 0 0 8px rgba(0, 0, 0, 0.6);
1759 }
1760
1761 html[data-estilo="medieval"] .global-search-dropdown {
1762 background: #1C120E;
1763 border: 1px solid #7C6440;
1764 box-shadow: 0 20px 50px rgba(0, 0, 0, 0.8);
1765 }
1766
1767 html[data-estilo="medieval"] .global-search-item { border-bottom: 1px solid #3B211C; }
1768 html[data-estilo="medieval"] .global-search-item:hover { background: #2A1512; }
1769
1770 html[data-estilo="medieval"] .global-search-info strong { color: #EEE2C4; }
1771 html[data-estilo="medieval"] .global-search-info span { color: #C9BB98; }
1772
1773 html[data-estilo="medieval"] .global-search-chat {
1774 border: 1px solid #A9834B;
1775 color: #A9834B;
1776 background: rgba(169, 131, 75, 0.08);
1777 }
1778
1779 html[data-estilo="medieval"] .global-search-chat:hover {
1780 background: #A9834B;
1781 color: #120A08;
1782 }
1783
1784 html[data-estilo="medieval"] .global-search-empty { color: #C9BB98; }
1785
1786 /* Notificaciones */
1787 html[data-estilo="medieval"] .notif-toggle {
1788 background: rgba(28, 18, 14, 0.85);
1789 border: 1px solid #7C6440;
1790 color: #A9834B;
1791 }
1792
1793 html[data-estilo="medieval"] .notif-toggle:hover {
1794 border-color: #A9834B;
1795 background: #3B211C;
1796 color: #EEE2C4;
1797 }
1798
1799 html[data-estilo="medieval"] .notif-badge {
1800 background: #7A2E2E;
1801 color: #EEE2C4;
1802 }
1803
1804 html[data-estilo="medieval"] .notif-panel {
1805 background: #1C120E;
1806 border: 1px solid #7C6440;
1807 box-shadow: 0 20px 50px rgba(0, 0, 0, 0.8);
1808 }
1809
1810 html[data-estilo="medieval"] .notif-panel-head { border-bottom: 1px solid #3B211C; }
1811 html[data-estilo="medieval"] .notif-marcar-todas { color: #A9834B; }
1812 html[data-estilo="medieval"] .notif-marcar-todas:hover { color: #EEE2C4; }
1813 html[data-estilo="medieval"] .notif-item:hover { background: #2A1512; }
1814 html[data-estilo="medieval"] .notif-item-info strong { color: #EEE2C4; }
1815 html[data-estilo="medieval"] .notif-item-info span { color: #C9BB98; }
1816
1817 html[data-estilo="medieval"] .notif-item-badge {
1818 background: rgba(122, 46, 46, 0.3);
1819 color: #C98B8B;
1820 }
1821
1822 html[data-estilo="medieval"] .notif-vacio { color: #C9BB98; }
1823
1824 /* ============================================================
1825 CONTENIDO Y COMPONENTES
1826 ============================================================ */
1827 html[data-estilo="medieval"] .main-content { background: transparent; }
1828
1829 /* Entrada escalonada de las secciones */
1830 html[data-estilo="medieval"] .main-content > * {
1831 opacity: 0;
1832 transform: translateY(14px);
1833 animation: castleViewIn 0.55s cubic-bezier(0.16, 1, 0.3, 1) forwards;
1834 }
1835
1836 html[data-estilo="medieval"] .main-content > *:nth-child(1) { animation-delay: 0.04s; }
1837 html[data-estilo="medieval"] .main-content > *:nth-child(2) { animation-delay: 0.1s; }
1838 html[data-estilo="medieval"] .main-content > *:nth-child(3) { animation-delay: 0.16s; }
1839 html[data-estilo="medieval"] .main-content > *:nth-child(4) { animation-delay: 0.22s; }
1840
1841 @keyframes castleViewIn {
1842 to { opacity: 1; transform: translateY(0); }
1843 }
1844
1845 /* Tarjetas con marco de doble borde y adorno */
1846 html[data-estilo="medieval"] .card {
1847 background: rgba(28, 16, 12, 0.82);
1848 border: 1px solid #7C6440;
1849 border-left: 4px solid #A9834B;
1850 padding: 24px;
1851 position: relative;
1852 box-shadow: 0 15px 50px rgba(0, 0, 0, 0.6);
1853 backdrop-filter: none;
1854 transition: transform 0.3s cubic-bezier(0.16, 1, 0.3, 1), border-color 0.3s ease, box-shadow 0.3s ease;
1855 }
1856
1857 html[data-estilo="medieval"] .card::before {
1858 content: "";
1859 position: absolute;
1860 inset: 6px;
1861 border: 1px solid rgba(169, 131, 75, 0.25);
1862 pointer-events: none;
1863 }
1864
1865 html[data-estilo="medieval"] .card::after {
1866 content: "❖";
1867 position: absolute;
1868 top: 8px;
1869 right: 12px;
1870 font-size: 0.75rem;
1871 color: #7C6440;
1872 pointer-events: none;
1873 }
1874
1875 html[data-estilo="medieval"] .card:hover {
1876 transform: translateY(-3px);
1877 border-color: #A9834B;
1878 box-shadow: 0 20px 60px rgba(0, 0, 0, 0.7);
1879 }
1880
1881 html[data-estilo="medieval"] .card-title {
1882 color: #EEE2C4;
1883 font-weight: 700;
1884 }
1885
1886 html[data-estilo="medieval"] .card p,
1887 html[data-estilo="medieval"] .card li { color: #C9BB98; }
1888 html[data-estilo="medieval"] .card strong { color: #EEE2C4; }
1889
1890 /* Botones */
1891 html[data-estilo="medieval"] .btn {
1892 border: 1px solid #7C6440;
1893 color: #C9BB98;
1894 background: rgba(28, 18, 14, 0.9);
1895 text-transform: uppercase;
1896 letter-spacing: 0.5px;
1897 font-weight: 600;
1898 transition: background-color 0.25s ease, color 0.25s ease, border-color 0.25s ease, box-shadow 0.25s ease;
1899 }
1900
1901 html[data-estilo="medieval"] .btn:hover {
1902 border-color: #A9834B;
1903 color: #EEE2C4;
1904 }
1905
1906 html[data-estilo="medieval"] .btn-primary {
1907 background: linear-gradient(180deg, #6B2828 0%, #3E1717 100%);
1908 border: 1px solid #A9834B;
1909 color: #EEE2C4;
1910 }
1911
1912 html[data-estilo="medieval"] .btn-primary:hover {
1913 background: linear-gradient(180deg, #7A2E2E 0%, #4A1C1C 100%);
1914 color: #EEE2C4;
1915 border-color: #A9834B;
1916 }
1917
1918 html[data-estilo="medieval"] .btn-secondary {
1919 background: linear-gradient(180deg, #4A2B1C 0%, #2A1810 100%);
1920 border: 1px solid #7C6440;
1921 color: #EEE2C4;
1922 }
1923
1924 html[data-estilo="medieval"] .btn-secondary:hover {
1925 background: #5C3A24;
1926 color: #EEE2C4;
1927 }
1928
1929 html[data-estilo="medieval"] .btn-outline {
1930 background: transparent;
1931 border: 1px solid #A9834B;
1932 color: #A9834B;
1933 }
1934
1935 html[data-estilo="medieval"] .btn-outline:hover {
1936 background: #A9834B;
1937 color: #120A08;
1938 }
1939
1940 html[data-estilo="medieval"] .btn-danger {
1941 border: 1px solid #7A2E2E;
1942 color: #C98B8B;
1943 background: transparent;
1944 }
1945
1946 html[data-estilo="medieval"] .btn-danger:hover {
1947 background: #7A2E2E;
1948 color: #EEE2C4;
1949 }
1950
1951 html[data-estilo="medieval"] .btn-success {
1952 background: #4A5C2A;
1953 color: #EEE2C4;
1954 }
1955 html[data-estilo="medieval"] .btn-success:hover { background: #5C6E38; }
1956
1957 html[data-estilo="medieval"] .btn-solid {
1958 background: #5C2323;
1959 color: #EEE2C4;
1960 border: 1px solid #A9834B;
1961 font-weight: 700;
1962 text-transform: uppercase;
1963 letter-spacing: 1px;
1964 transition: background-color 0.25s ease, color 0.25s ease;
1965 }
1966
1967 html[data-estilo="medieval"] .btn-solid:hover {
1968 background: #7C6440;
1969 color: #342A1C;
1970 }
1971
1972 html[data-estilo="medieval"] .btn-danger-clean {
1973 border: 1px solid #7A2E2E;
1974 color: #C98B8B;
1975 background: transparent;
1976 }
1977 html[data-estilo="medieval"] .btn-danger-clean:hover { background: #7A2E2E; color: #EEE2C4; }
1978
1979 html[data-estilo="medieval"] .btn-success-clean {
1980 border: 1px solid #A9834B;
1981 color: #A9834B;
1982 background: transparent;
1983 }
1984 html[data-estilo="medieval"] .btn-success-clean:hover { background: #A9834B; color: #120A08; }
1985
1986 /* Formularios */
1987 html[data-estilo="medieval"] input,
1988 html[data-estilo="medieval"] select,
1989 html[data-estilo="medieval"] textarea,
1990 html[data-estilo="medieval"] .form-control,
1991 html[data-estilo="medieval"] .select-materia {
1992 background: rgba(12, 8, 6, 0.85);
1993 border: 1px solid #7C6440;
1994 color: #EEE2C4;
1995 box-shadow: inset 0 0 8px rgba(0, 0, 0, 0.6);
1996 outline: none;
1997 transition: border-color 0.25s ease, box-shadow 0.25s ease;
1998 }
1999
2000 html[data-estilo="medieval"] input:focus,
2001 html[data-estilo="medieval"] select:focus,
2002 html[data-estilo="medieval"] textarea:focus,
2003 html[data-estilo="medieval"] .form-control:focus,
2004 html[data-estilo="medieval"] .select-materia:focus {
2005 border-color: #A9834B;
2006 box-shadow: 0 0 12px rgba(169, 131, 75, 0.3), inset 0 0 8px rgba(0, 0, 0, 0.6);
2007 }
2008
2009 html[data-estilo="medieval"] select option { background: #1C120E; color: #EEE2C4; }
2010 html[data-estilo="medieval"] .select-materia { color: #C9BB98; }
2011
2012 html[data-estilo="medieval"] input::placeholder,
2013 html[data-estilo="medieval"] textarea::placeholder { color: #8a7755; }
2014
2015 html[data-estilo="medieval"] label,
2016 html[data-estilo="medieval"] legend,
2017 html[data-estilo="medieval"] th { color: #EEE2C4; }
2018
2019 html[data-estilo="medieval"] td { color: #C9BB98; }
2020 html[data-estilo="medieval"] hr { border-color: #3B211C; }
2021
2022 /* Alerts, badges, avatares */
2023 html[data-estilo="medieval"] .alert {
2024 border: 1px solid #7C6440;
2025 background: rgba(28, 16, 12, 0.9);
2026 color: #C9BB98;
2027 }
2028
2029 html[data-estilo="medieval"] .alert-error {
2030 background: #2A1210;
2031 color: #ECB4A8;
2032 border-color: #6B2828;
2033 }
2034
2035 html[data-estilo="medieval"] .alert-success {
2036 background: #1F2012;
2037 color: #C5CB9A;
2038 border-color: #4A5224;
2039 }
2040
2041 html[data-estilo="medieval"] .badge-primary,
2042 html[data-estilo="medieval"] .badge-materia,
2043 html[data-estilo="medieval"] .badge-verified,
2044 html[data-estilo="medieval"] .badge-solved {
2045 background: rgba(169, 131, 75, 0.12);
2046 color: #A9834B;
2047 border: 1px solid #7C6440;
2048 text-transform: uppercase;
2049 letter-spacing: 0.5px;
2050 }
2051
2052 html[data-estilo="medieval"] .badge-success {
2053 background: rgba(169, 131, 75, 0.1);
2054 color: #EEE2C4;
2055 border: 1px solid #7C6440;
2056 }
2057
2058 html[data-estilo="medieval"] .badge-interacted,
2059 html[data-estilo="medieval"] .hub-badge.badge-solucion,
2060 html[data-estilo="medieval"] .hub-badge.badge-solved {
2061 background: rgba(122, 46, 46, 0.25);
2062 color: #C98B8B;
2063 border: 1px solid #6B2828;
2064 text-transform: uppercase;
2065 }
2066
2067 html[data-estilo="medieval"] .badge-green,
2068 html[data-estilo="medieval"] .badge-warning,
2069 html[data-estilo="medieval"] .badge-info,
2070 html[data-estilo="medieval"] .badge-blue {
2071 background: rgba(169, 131, 75, 0.1);
2072 color: #EEE2C4;
2073 border: 1px solid #7C6440;
2074 }
2075
2076 html[data-estilo="medieval"] .badge-gray {
2077 background: rgba(28, 18, 14, 0.9);
2078 color: #C9BB98;
2079 border: 1px solid #3B211C;
2080 }
2081
2082 html[data-estilo="medieval"] .badge-danger {
2083 background: rgba(122, 46, 46, 0.25);
2084 color: #C98B8B;
2085 border: 1px solid #6B2828;
2086 }
2087
2088 html[data-estilo="medieval"] .avatar,
2089 html[data-estilo="medieval"] .hub-avatar {
2090 background-color: #5C2323;
2091 color: #EEE2C4;
2092 border: 1px solid #A9834B;
2093 font-family: "Cinzel", serif;
2094 border-radius: 0 !important;
2095 }
2096
2097 html[data-estilo="medieval"] .avatar.prof {
2098 background-color: #7C6440;
2099 color: #342A1C;
2100 }
2101
2102 /* Toast */
2103 html[data-estilo="medieval"] .toast {
2104 background: #1C120E;
2105 color: #EEE2C4;
2106 border: 1px solid #7C6440;
2107 box-shadow: 0 15px 40px rgba(0, 0, 0, 0.8);
2108 }
2109
2110 html[data-estilo="medieval"] .toast-info { border-left: 4px solid #A9834B; }
2111 html[data-estilo="medieval"] .toast-success { border-left: 4px solid #5C6E38; }
2112 html[data-estilo="medieval"] .toast-error { border-left: 4px solid #7A2E2E; }
2113
2114 /* Follow button */
2115 html[data-estilo="medieval"] .follow-btn {
2116 border: 1px solid #A9834B;
2117 color: #A9834B;
2118 background: transparent;
2119 }
2120
2121 html[data-estilo="medieval"] .follow-btn:hover {
2122 background: rgba(169, 131, 75, 0.12);
2123 }
2124
2125 html[data-estilo="medieval"] .follow-btn.siguiendo {
2126 background: #A9834B;
2127 color: #120A08;
2128 }
2129
2130 /* ============================================================
2131 POP-UP DE BIENVENIDA: EL GRAN SALÓN (inicio)
2132 ============================================================ */
2133 html[data-estilo="medieval"] .welcome-overlay {
2134 background-color: rgba(8, 5, 4, 0.88);
2135 backdrop-filter: blur(4px);
2136 }
2137
2138 html[data-estilo="medieval"] .welcome-popup {
2139 position: relative;
2140 background: linear-gradient(180deg, #2A1512 0%, #1C120E 100%);
2141 border: 1px solid #7C6440;
2142 padding: 46px 50px 40px;
2143 max-width: 440px;
2144 width: 90%;
2145 text-align: center;
2146 box-shadow: 0 30px 70px rgba(0, 0, 0, 0.55), inset 0 0 0 1px rgba(169, 131, 75, 0.3);
2147 animation: castleHallRise 0.7s cubic-bezier(0.16, 1, 0.3, 1) forwards;
2148 }
2149
2150 @keyframes castleHallRise {
2151 0% { transform: translateY(22px) scale(0.96); opacity: 0; }
2152 100% { transform: translateY(0) scale(1); opacity: 1; }
2153 }
2154
2155 html[data-estilo="medieval"] .welcome-popup::before {
2156 content: "❖";
2157 position: absolute;
2158 top: 12px;
2159 left: 12px;
2160 color: #7C6440;
2161 font-size: 0.85rem;
2162 background: none;
2163 box-shadow: none;
2164 animation: none;
2165 opacity: 1;
2166 }
2167
2168 html[data-estilo="medieval"] .welcome-popup::after {
2169 content: "❖";
2170 position: absolute;
2171 top: 12px;
2172 right: 12px;
2173 color: #7C6440;
2174 font-size: 0.85rem;
2175 background: none;
2176 box-shadow: none;
2177 animation: none;
2178 opacity: 1;
2179 }
2180
2181 html[data-estilo="medieval"] .popup-tag {
2182 color: #7C6440;
2183 font-size: 0.7rem;
2184 font-family: "Cinzel", serif;
2185 letter-spacing: 2.5px;
2186 text-transform: uppercase;
2187 margin-bottom: 10px;
2188 text-align: center;
2189 }
2190
2191 html[data-estilo="medieval"] .popup-title {
2192 color: #EEE2C4;
2193 font-size: 1.4rem;
2194 font-weight: 600;
2195 letter-spacing: 0.5px;
2196 margin-bottom: 22px;
2197 text-shadow: none;
2198 text-transform: none;
2199 }
2200
2201 html[data-estilo="medieval"] .popup-username {
2202 font-family: "Cinzel", serif;
2203 font-size: 0.95rem;
2204 font-weight: 600;
2205 color: #EEE2C4;
2206 letter-spacing: 0.5px;
2207 margin: 0 0 8px 0;
2208 padding: 0 0 9px 0;
2209 background: transparent;
2210 border: none;
2211 border-bottom: 1px solid rgba(169, 131, 75, 0.3);
2212 display: block;
2213 }
2214
2215 html[data-estilo="medieval"] .popup-status {
2216 color: #C9BB98;
2217 font-size: 0.8rem;
2218 font-style: italic;
2219 text-align: center;
2220 }
2221
2222 html[data-estilo="medieval"] .welcome-popup,
2223 html[data-estilo="medieval"] .popup-tag,
2224 html[data-estilo="medieval"] .popup-title,
2225 html[data-estilo="medieval"] .popup-username,
2226 html[data-estilo="medieval"] .popup-status { text-align: center; }
2227
2228 /* ============================================================
2229 COMPONENTES DEL PROTOTIPO ADAPTADOS (inicio real)
2230 ============================================================ */
2231
2232 html[data-estilo="medieval"] .btn-clean,
2233 html[data-estilo="medieval"] .side-link {
2234 color: #A9834B;
2235 border: 1px solid #A9834B;
2236 background: transparent;
2237 text-transform: uppercase;
2238 letter-spacing: 1px;
2239 font-size: 0.78rem;
2240 font-weight: 600;
2241 transition: background-color 0.25s ease, color 0.25s ease;
2242 }
2243
2244 html[data-estilo="medieval"] .btn-clean:hover,
2245 html[data-estilo="medieval"] .side-link:hover {
2246 background: #A9834B;
2247 color: #120A08;
2248 }
2249
2250 html[data-estilo="medieval"] .btn-action {
2251 border: 1px solid transparent;
2252 color: #C9BB98;
2253 background: transparent;
2254 text-transform: uppercase;
2255 font-size: 0.75rem;
2256 transition: color 0.25s ease, border-color 0.25s ease;
2257 }
2258
2259 html[data-estilo="medieval"] .btn-action:hover {
2260 color: #A9834B;
2261 border-color: #A9834B;
2262 }
2263
2264 html[data-estilo="medieval"] .btn-action.voted {
2265 color: #C98B8B;
2266 border-color: #6B2828;
2267 }
2268
2269 /* Publicaciones y widgets con elevación de pergamino */
2270 html[data-estilo="medieval"] .post-card,
2271 html[data-estilo="medieval"] .side-card,
2272 html[data-estilo="medieval"] .widget-card {
2273 background: rgba(28, 16, 12, 0.7);
2274 border: 1px solid #7C6440;
2275 box-shadow: 0 10px 30px rgba(0, 0, 0, 0.5);
2276 backdrop-filter: none;
2277 transition: transform 0.3s cubic-bezier(0.16, 1, 0.3, 1), border-color 0.3s ease, box-shadow 0.3s ease;
2278 }
2279
2280 html[data-estilo="medieval"] .post-card:hover,
2281 html[data-estilo="medieval"] .side-card:hover,
2282 html[data-estilo="medieval"] .widget-card:hover {
2283 transform: translateY(-3px);
2284 border-color: #A9834B;
2285 box-shadow: 0 20px 50px rgba(0, 0, 0, 0.6);
2286 }
2287
2288 html[data-estilo="medieval"] .widget-time {
2289 font-size: 0.68rem;
2290 color: #A9834B;
2291 font-weight: 600;
2292 text-transform: uppercase;
2293 letter-spacing: 1px;
2294 font-family: "Cinzel", serif;
2295 }
2296
2297 html[data-estilo="medieval"] .widget-title { color: #EEE2C4; font-weight: 600; }
2298 html[data-estilo="medieval"] .widget-desc { color: #C9BB98; }
2299
2300 html[data-estilo="medieval"] .btn-widget {
2301 display: block;
2302 width: 100%;
2303 text-align: center;
2304 background: #5C2323;
2305 color: #EEE2C4;
2306 text-decoration: none;
2307 border: 1px solid #7C6440;
2308 padding: 10px;
2309 font-size: 0.72rem;
2310 font-weight: 700;
2311 letter-spacing: 1px;
2312 font-family: "Cinzel", serif;
2313 text-transform: uppercase;
2314 transition: background-color 0.25s ease, color 0.25s ease;
2315 }
2316
2317 html[data-estilo="medieval"] .btn-widget:hover {
2318 background: #7C6440;
2319 color: #342A1C;
2320 }
2321
2322 /* Progreso de carrera en latón */
2323 html[data-estilo="medieval"] .progress-bar {
2324 height: 6px;
2325 background: rgba(0, 0, 0, 0.4);
2326 border: 1px solid #7C6440;
2327 margin-top: 14px;
2328 overflow: hidden;
2329 }
2330
2331 html[data-estilo="medieval"] .progress-fill {
2332 background: linear-gradient(90deg, #5C2323, #A9834B);
2333 transition: width 1.4s cubic-bezier(0.16, 1, 0.3, 1) 0.3s;
2334 }
2335
2336 html[data-estilo="medieval"] .progress-labels {
2337 font-size: 0.78rem;
2338 color: #C9BB98;
2339 }
2340
2341 /* Banner, vacíos y notas de filtro */
2342 html[data-estilo="medieval"] .maps-banner .banner-content,
2343 html[data-estilo="medieval"] .banner-title {
2344 color: #EEE2C4;
2345 }
2346
2347 html[data-estilo="medieval"] .empty-state h2 { color: #EEE2C4; }
2348 html[data-estilo="medieval"] .empty-state p,
2349 html[data-estilo="medieval"] .filter-note { color: #C9BB98; }
2350
2351 /* ============================================================
2352 COMUNIDAD: FORO, RESPUESTAS, APUNTES, TIPS, MODALES
2353 ============================================================ */
2354 html[data-estilo="medieval"] .hub-filter-bar {
2355 background: rgba(28, 16, 12, 0.9);
2356 border: 1px solid #7C6440;
2357 }
2358
2359 html[data-estilo="medieval"] .hub-tabs button {
2360 background: transparent;
2361 color: #C9BB98;
2362 border: 1px solid transparent;
2363 text-transform: uppercase;
2364 letter-spacing: 0.5px;
2365 transition: color 0.25s ease, border-color 0.25s ease;
2366 }
2367
2368 html[data-estilo="medieval"] .hub-tabs button:hover {
2369 color: #EEE2C4;
2370 border-color: #A9834B;
2371 }
2372
2373 html[data-estilo="medieval"] .hub-tabs button.active {
2374 background: rgba(169, 131, 75, 0.12);
2375 color: #EEE2C4;
2376 border: 1px solid #A9834B;
2377 }
2378
2379 html[data-estilo="medieval"] .input-search {
2380 background: rgba(12, 8, 6, 0.85);
2381 border: 1px solid #7C6440;
2382 color: #EEE2C4;
2383 box-shadow: inset 0 0 8px rgba(0, 0, 0, 0.6);
2384 }
2385
2386 html[data-estilo="medieval"] .input-search:focus {
2387 border-color: #A9834B;
2388 box-shadow: 0 0 12px rgba(169, 131, 75, 0.3), inset 0 0 8px rgba(0, 0, 0, 0.6);
2389 }
2390
2391 html[data-estilo="medieval"] .hub-badge {
2392 background: rgba(169, 131, 75, 0.12);
2393 color: #A9834B;
2394 border: 1px solid #7C6440;
2395 text-transform: uppercase;
2396 letter-spacing: 0.5px;
2397 }
2398
2399 html[data-estilo="medieval"] .foro-autor-line strong,
2400 html[data-estilo="medieval"] .user-data-line strong { color: #EEE2C4; }
2401
2402 html[data-estilo="medieval"] .post-title { color: #EEE2C4; font-weight: 600; }
2403
2404 html[data-estilo="medieval"] .post-desc {
2405 color: #C9BB98;
2406 line-height: 1.55;
2407 }
2408
2409 html[data-estilo="medieval"] .post-desc code {
2410 background: #1C120E;
2411 border: 1px solid #3B211C;
2412 color: #A9834B;
2413 }
2414
2415 html[data-estilo="medieval"] .solved-box {
2416 background: rgba(122, 46, 46, 0.15);
2417 border: 1px solid rgba(169, 131, 75, 0.4);
2418 color: #EEE2C4;
2419 }
2420
2421 html[data-estilo="medieval"] .btn-link,
2422 html[data-estilo="medieval"] .foro-action {
2423 color: #A9834B;
2424 background: transparent;
2425 text-transform: uppercase;
2426 letter-spacing: 0.5px;
2427 transition: color 0.25s ease;
2428 }
2429
2430 html[data-estilo="medieval"] .btn-link:hover,
2431 html[data-estilo="medieval"] .foro-action:hover {
2432 color: #EEE2C4;
2433 }
2434
2435 html[data-estilo="medieval"] .apunte-card,
2436 html[data-estilo="medieval"] .tip-card {
2437 background: rgba(28, 16, 12, 0.9);
2438 border: 1px solid #7C6440;
2439 border-left: 4px solid #A9834B;
2440 backdrop-filter: none;
2441 transition: transform 0.3s cubic-bezier(0.16, 1, 0.3, 1), border-color 0.3s ease, box-shadow 0.3s ease;
2442 }
2443
2444 html[data-estilo="medieval"] .apunte-card:hover,
2445 html[data-estilo="medieval"] .tip-card:hover {
2446 transform: translateY(-3px);
2447 border-color: #A9834B;
2448 box-shadow: 0 15px 40px rgba(0, 0, 0, 0.6);
2449 }
2450
2451 html[data-estilo="medieval"] .file-icon {
2452 background: rgba(169, 131, 75, 0.12);
2453 border: 1px solid #A9834B;
2454 color: #A9834B;
2455 }
2456
2457 html[data-estilo="medieval"] .apunte-details h4 { color: #EEE2C4; }
2458 html[data-estilo="medieval"] .apunte-details p { color: #C9BB98; }
2459
2460 html[data-estilo="medieval"] .tip-title,
2461 html[data-estilo="medieval"] .tip-card h4 { color: #EEE2C4; }
2462 html[data-estilo="medieval"] .tip-text { color: #C9BB98; }
2463 html[data-estilo="medieval"] .tip-text code {
2464 background: #1C120E;
2465 border: 1px solid #3B211C;
2466 color: #A9834B;
2467 }
2468
2469 html[data-estilo="medieval"] .vote-btn {
2470 background: rgba(28, 18, 14, 0.9);
2471 border: 1px solid #3B211C;
2472 color: #C9BB98;
2473 transition: color 0.25s ease, border-color 0.25s ease;
2474 }
2475
2476 html[data-estilo="medieval"] .vote-btn:hover {
2477 border-color: #A9834B;
2478 color: #A9834B;
2479 }
2480
2481 html[data-estilo="medieval"] .vote-btn.votado {
2482 border-color: #6B2828;
2483 color: #C98B8B;
2484 }
2485
2486 /* Modales del hub */
2487 html[data-estilo="medieval"] .hub-modal-overlay {
2488 background: rgba(8, 5, 4, 0.88);
2489 backdrop-filter: blur(4px);
2490 }
2491
2492 html[data-estilo="medieval"] .hub-modal {
2493 background: linear-gradient(180deg, #2A1512 0%, #1C120E 100%);
2494 border: 1px solid #7C6440;
2495 box-shadow: 0 30px 70px rgba(0, 0, 0, 0.6), inset 0 0 0 1px rgba(169, 131, 75, 0.2);
2496 }
2497
2498 html[data-estilo="medieval"] .hub-modal h3,
2499 html[data-estilo="medieval"] .hub-modal h4 { color: #EEE2C4; }
2500
2501 html[data-estilo="medieval"] .hub-modal .modal-sub { color: #C9BB98; }
2502 html[data-estilo="medieval"] .hub-modal label { color: #EEE2C4; }
2503 html[data-estilo="medieval"] .modal-msg { color: #C9BB98; }
2504
2505 /* Modal de duplicado / respuestas */
2506 html[data-estilo="medieval"] .dup-modal { border: 1px solid #7C6440; }
2507
2508 html[data-estilo="medieval"] .dup-notice {
2509 background: rgba(122, 46, 46, 0.15);
2510 border: 1px solid rgba(169, 131, 75, 0.4);
2511 }
2512
2513 html[data-estilo="medieval"] .dup-titulo { color: #EEE2C4; }
2514 html[data-estilo="medieval"] .dup-notice p,
2515 html[data-estilo="medieval"] .dup-por { color: #C9BB98; }
2516
2517 html[data-estilo="medieval"] .dup-question {
2518 background: rgba(28, 16, 12, 0.9);
2519 border-left: 4px solid #A9834B;
2520 }
2521
2522 html[data-estilo="medieval"] .dup-section-title {
2523 color: #EEE2C4;
2524 text-transform: uppercase;
2525 letter-spacing: 0.5px;
2526 border-bottom-color: #3B211C;
2527 }
2528
2529 html[data-estilo="medieval"] .dup-respuestas,
2530 html[data-estilo="medieval"] .dup-tips,
2531 html[data-estilo="medieval"] .dup-recursos {
2532 border-color: #3B211C;
2533 }
2534
2535 html[data-estilo="medieval"] .dup-vacio { color: #C9BB98; }
2536
2537 /* Respuestas a un post */
2538 html[data-estilo="medieval"] .hub-respuesta {
2539 background: rgba(28, 16, 12, 0.9);
2540 border: 1px solid #7C6440;
2541 border-left: 4px solid #A9834B;
2542 box-shadow: 0 8px 24px rgba(0, 0, 0, 0.5);
2543 backdrop-filter: none;
2544 transition: border-color 0.25s ease, box-shadow 0.25s ease;
2545 }
2546
2547 html[data-estilo="medieval"] .hub-respuesta:hover {
2548 border-color: #A9834B;
2549 box-shadow: 0 12px 30px rgba(0, 0, 0, 0.6);
2550 }
2551
2552 html[data-estilo="medieval"] .respuesta-autor {
2553 color: #A9834B;
2554 font-weight: 700;
2555 text-transform: uppercase;
2556 letter-spacing: 0.5px;
2557 }
2558
2559 html[data-estilo="medieval"] .respuesta-texto {
2560 color: #C9BB98;
2561 line-height: 1.55;
2562 }
2563
2564 /* ============================================================
2565 MENSAJES: SALA DE CORRESPONDENCIA
2566 ============================================================ */
2567 html[data-estilo="medieval"] .messages-container {
2568 --hub-border: #7C6440;
2569 --hub-accent: #A9834B;
2570 --hub-accent-dark: #7C6440;
2571 --hub-accent-soft: rgba(169, 131, 75, 0.15);
2572 --hub-muted: #C9BB98;
2573 background: rgba(18, 12, 9, 0.92);
2574 border: 1px solid #7C6440;
2575 }
2576
2577 html[data-estilo="medieval"] .chat-sidebar {
2578 background: linear-gradient(180deg, #2A1512 0%, #1C120E 100%);
2579 border-right: 1px solid #7C6440;
2580 }
2581
2582 html[data-estilo="medieval"] .chat-search-box { border-bottom-color: #3B211C; }
2583 html[data-estilo="medieval"] .chat-search-box input {
2584 background: rgba(12, 8, 6, 0.85);
2585 border: 1px solid #7C6440;
2586 color: #EEE2C4;
2587 box-shadow: inset 0 0 8px rgba(0, 0, 0, 0.6);
2588 }
2589
2590 html[data-estilo="medieval"] .chat-search-box input:focus {
2591 border-color: #A9834B;
2592 box-shadow: 0 0 12px rgba(169, 131, 75, 0.3), inset 0 0 8px rgba(0, 0, 0, 0.6);
2593 }
2594
2595 html[data-estilo="medieval"] .chat-item {
2596 background: rgba(18, 12, 9, 0.4);
2597 border-bottom: 1px solid #3B211C;
2598 transition: background-color 0.2s ease, border-color 0.2s ease;
2599 }
2600
2601 html[data-estilo="medieval"] .chat-item:hover {
2602 background: rgba(169, 131, 75, 0.08);
2603 }
2604
2605 html[data-estilo="medieval"] .chat-item.active {
2606 background: rgba(169, 131, 75, 0.14);
2607 border-left: 3px solid #A9834B;
2608 }
2609
2610 html[data-estilo="medieval"] .chat-item-header strong { color: #EEE2C4; }
2611 html[data-estilo="medieval"] .chat-item-header span,
2612 html[data-estilo="medieval"] .chat-item-preview { color: #C9BB98; }
2613
2614 html[data-estilo="medieval"] .chat-window { background: rgba(18, 12, 9, 0.4); }
2615
2616 html[data-estilo="medieval"] .chat-header {
2617 background: rgba(28, 18, 14, 0.95);
2618 border-bottom: 1px solid #3B211C;
2619 }
2620
2621 html[data-estilo="medieval"] .chat-header-user h3 { color: #EEE2C4; font-family: "Cinzel", serif; }
2622 html[data-estilo="medieval"] .chat-header-user span { color: #C9BB98; }
2623
2624 html[data-estilo="medieval"] .chat-body {
2625 background-color: rgba(18, 12, 9, 0.5);
2626 background-image: radial-gradient(rgba(169, 131, 75, 0.05) 1px, transparent 1px);
2627 background-size: 26px 26px;
2628 }
2629
2630 html[data-estilo="medieval"] .message {
2631 background: rgba(28, 16, 12, 0.9);
2632 border: 1px solid #3B211C;
2633 border-left: 4px solid #A9834B;
2634 box-shadow: 0 8px 24px rgba(0, 0, 0, 0.5);
2635 backdrop-filter: none;
2636 transition: border-color 0.25s ease, box-shadow 0.25s ease;
2637 }
2638
2639 html[data-estilo="medieval"] .message.received:hover,
2640 html[data-estilo="medieval"] .message.sent:hover {
2641 border-color: #A9834B;
2642 box-shadow: 0 10px 28px rgba(0, 0, 0, 0.55);
2643 }
2644
2645 html[data-estilo="medieval"] .message.sent {
2646 background: linear-gradient(135deg, rgba(92, 35, 35, 0.92) 0%, rgba(28, 16, 12, 0.95) 100%);
2647 border: 1px solid rgba(169, 131, 75, 0.4);
2648 border-left: 4px solid #7A2E2E;
2649 box-shadow: 0 8px 24px rgba(0, 0, 0, 0.55);
2650 }
2651
2652 html[data-estilo="medieval"] .message-time { color: #C9BB98; }
2653
2654 html[data-estilo="medieval"] .message-texto {
2655 color: #EEE2C4;
2656 line-height: 1.5;
2657 }
2658
2659 /* Adjuntos */
2660 html[data-estilo="medieval"] .message-attachment {
2661 background: rgba(12, 8, 6, 0.85);
2662 border: 1px solid #3B211C;
2663 }
2664
2665 html[data-estilo="medieval"] .message.sent .message-attachment {
2666 border-color: rgba(169, 131, 75, 0.35);
2667 }
2668
2669 html[data-estilo="medieval"] .attachment-icon {
2670 background: rgba(169, 131, 75, 0.12);
2671 border: 1px solid #A9834B;
2672 color: #A9834B;
2673 }
2674
2675 html[data-estilo="medieval"] .message.sent .attachment-icon {
2676 background: rgba(122, 46, 46, 0.25);
2677 border-color: #7A2E2E;
2678 color: #C98B8B;
2679 }
2680
2681 html[data-estilo="medieval"] .attachment-nombre { color: #EEE2C4; }
2682 html[data-estilo="medieval"] .attachment-peso { color: #C9BB98; }
2683
2684 html[data-estilo="medieval"] .adjunto-descargar {
2685 background: transparent;
2686 border: 1px solid #A9834B;
2687 color: #A9834B;
2688 text-transform: uppercase;
2689 transition: background-color 0.25s ease, color 0.25s ease;
2690 }
2691
2692 html[data-estilo="medieval"] .adjunto-descargar:hover {
2693 background: #A9834B;
2694 color: #120A08;
2695 }
2696
2697 html[data-estilo="medieval"] .message.sent .adjunto-descargar {
2698 border-color: #C98B8B;
2699 color: #C98B8B;
2700 }
2701
2702 html[data-estilo="medieval"] .message.sent .adjunto-descargar:hover {
2703 background: #7A2E2E;
2704 color: #EEE2C4;
2705 }
2706
2707 /* Barra de escritura y vacío */
2708 html[data-estilo="medieval"] .chat-input-bar {
2709 background: rgba(28, 18, 14, 0.95);
2710 border-top: 1px solid #3B211C;
2711 }
2712
2713 html[data-estilo="medieval"] .chat-input-bar input {
2714 background: rgba(12, 8, 6, 0.85);
2715 border: 1px solid #7C6440;
2716 color: #EEE2C4;
2717 box-shadow: inset 0 0 8px rgba(0, 0, 0, 0.6);
2718 outline: none;
2719 }
2720
2721 html[data-estilo="medieval"] .chat-input-bar input:focus {
2722 border-color: #A9834B;
2723 box-shadow: 0 0 12px rgba(169, 131, 75, 0.3), inset 0 0 8px rgba(0, 0, 0, 0.6);
2724 }
2725
2726 html[data-estilo="medieval"] .chat-empty {
2727 background-color: rgba(18, 12, 9, 0.5);
2728 }
2729
2730 html[data-estilo="medieval"] .chat-empty p,
2731 html[data-estilo="medieval"] .chat-empty span { color: #C9BB98; }
2732
2733 html[data-estilo="medieval"] .adjunto-pendiente {
2734 background: rgba(169, 131, 75, 0.1);
2735 border: 1px solid #A9834B;
2736 color: #EEE2C4;
2737 }
2738
2739 html[data-estilo="medieval"] .adjunto-quitar { color: #C98B8B; }
2740
2741 /* ============================================================
2742 PERFIL: STATS, CERTIFICADOS, ACTIVIDAD, DISCOVERY
2743 ============================================================ */
2744 html[data-estilo="medieval"] .profile-name {
2745 color: #EEE2C4;
2746 letter-spacing: 0.5px;
2747 }
2748
2749 html[data-estilo="medieval"] .profile-sub,
2750 html[data-estilo="medieval"] .discover-empty { color: #C9BB98; }
2751
2752 html[data-estilo="medieval"] .red-stat .number,
2753 html[data-estilo="medieval"] .stat-box .number {
2754 color: #A9834B;
2755 font-family: "Cinzel", serif;
2756 }
2757
2758 html[data-estilo="medieval"] .red-stat .label,
2759 html[data-estilo="medieval"] .stat-box .label { color: #C9BB98; }
2760
2761 html[data-estilo="medieval"] .red-stat,
2762 html[data-estilo="medieval"] .stat-box {
2763 background: rgba(28, 16, 12, 0.85);
2764 border: 1px solid #7C6440;
2765 border-left: 4px solid #A9834B;
2766 }
2767
2768 html[data-estilo="medieval"] .discover-person {
2769 background: rgba(28, 16, 12, 0.9);
2770 border: 1px solid #7C6440;
2771 border-left: 4px solid #A9834B;
2772 backdrop-filter: none;
2773 transition: transform 0.3s cubic-bezier(0.16, 1, 0.3, 1), border-color 0.3s ease, box-shadow 0.3s ease;
2774 }
2775
2776 html[data-estilo="medieval"] .discover-person:hover {
2777 transform: translateY(-3px);
2778 border-color: #A9834B;
2779 box-shadow: 0 15px 40px rgba(0, 0, 0, 0.6);
2780 }
2781
2782 html[data-estilo="medieval"] .discover-info strong { color: #EEE2C4; }
2783
2784 html[data-estilo="medieval"] .certificate-item {
2785 background: rgba(28, 16, 12, 0.9);
2786 border: 1px solid #7C6440;
2787 border-left: 4px solid #A9834B;
2788 backdrop-filter: none;
2789 transition: border-color 0.25s ease, box-shadow 0.25s ease;
2790 }
2791
2792 html[data-estilo="medieval"] .certificate-item:hover {
2793 border-color: #A9834B;
2794 box-shadow: 0 12px 30px rgba(0, 0, 0, 0.55);
2795 }
2796
2797 html[data-estilo="medieval"] .certificate-item.active {
2798 border-left-color: #7A2E2E;
2799 box-shadow: inset 0 0 15px rgba(122, 46, 46, 0.15);
2800 }
2801
2802 html[data-estilo="medieval"] .cert-title,
2803 html[data-estilo="medieval"] .activity-item strong { color: #EEE2C4; }
2804 html[data-estilo="medieval"] .cert-desc,
2805 html[data-estilo="medieval"] .activity-item { color: #C9BB98; }
2806
2807 html[data-estilo="medieval"] .proposito-modal {
2808 background: linear-gradient(180deg, #2A1512 0%, #1C120E 100%);
2809 border: 1px solid #7C6440;
2810 box-shadow: 0 30px 70px rgba(0, 0, 0, 0.6), inset 0 0 0 1px rgba(169, 131, 75, 0.2);
2811 }
2812
2813 html[data-estilo="medieval"] .proposito-modal h3 { color: #EEE2C4; font-family: "Cinzel", serif; }
2814 html[data-estilo="medieval"] .proposito-modal-sub { color: #C9BB98; }
2815
2816 /* ============================================================
2817 MODO OSCURO (en realidad ya es nocturno; se refuerzan contrastes)
2818 ============================================================ */
2819 html[data-estilo="medieval"].dark-mode {
2820 --void: #0A0504;
2821 --panel: #1E100D;
2822 --panel-light: #2A1813;
2823 --wine: #4A1C1C;
2824 --wine-deep: #301111;
2825 --brass: #A9834B;
2826 --brass-dim: #7C6440;
2827 --parchment: #E8D9B6;
2828 --parchment-dim: #B8A981;
2829 --umber: #120A08;
2830
2831 --accent: #A9834B;
2832 --accent-dark: #7C6440;
2833 --accent-soft: #1E100D;
2834 --accent-soft-border: #5a4930;
2835 --accent-contrast: #E8D9B6;
2836
2837 --sidebar-bg: #120A08;
2838 --topbar-bg: rgba(10, 5, 4, 0.85);
2839 }
2840
2841 html[data-estilo="medieval"].dark-mode body {
2842 background-color: #0A0504;
2843 color: #C9BB98;
2844 }
2845
2846 html[data-estilo="medieval"].dark-mode .card,
2847 html[data-estilo="medieval"].dark-mode .post-card,
2848 html[data-estilo="medieval"].dark-mode .widget-card,
2849 html[data-estilo="medieval"].dark-mode .side-card,
2850 html[data-estilo="medieval"].dark-mode .apunte-card,
2851 html[data-estilo="medieval"].dark-mode .tip-card,
2852 html[data-estilo="medieval"].dark-mode .discover-person,
2853 html[data-estilo="medieval"].dark-mode .certificate-item,
2854 html[data-estilo="medieval"].dark-mode .hub-respuesta {
2855 background: rgba(18, 10, 8, 0.9);
2856 }
2857
2858 html[data-estilo="medieval"].dark-mode .sidebar {
2859 background: linear-gradient(180deg, #1E100D 0%, #120A08 100%);
2860 }
2861
2862 html[data-estilo="medieval"].dark-mode .heraldic-transition { background: #0A0504; }
2863
2864 html[data-estilo="medieval"].dark-mode .welcome-overlay { background-color: rgba(4, 2, 2, 0.92); }
2865
2866 /* ============================================================
2867 ESTILO: SAIYAN POWER EDITION
2868 Naranja intenso, azul navy y aura dorada del dojo Z-Warriors.
2869 ============================================================ */
2870
2871 /* --- Paleta global del skin --- */
2872 html[data-estilo="saiyan"] {
2873 --accent: #facc15;
2874 --accent-dark: #eab308;
2875 --accent-mid: #fde047;
2876 --accent-bright: #fef9c3;
2877 --accent-deep: #1e3a8a;
2878 --accent-soft: #0f172a;
2879 --accent-soft-border: #facc15;
2880 --accent-contrast: #f97316;
2881
2882 --primary-color: #facc15;
2883 --secondary-color: #1e3a8a;
2884 --link-color: #facc15;
2885 --heading-color: #ffffff;
2886 --text-color: #f8fafc;
2887
2888 --sidebar-bg: #1e3a8a;
2889 --sidebar-border: #facc15;
2890 --sidebar-text: #ffffff;
2891 --sidebar-text-hover: #ffffff;
2892 --sidebar-item-hover-bg: #f97316;
2893 --sidebar-item-active-bg: #facc15;
2894 --sidebar-accent: #facc15;
2895
2896 --topbar-bg: rgba(30, 58, 138, 0.85);
2897
2898 --btn-primary-bg: linear-gradient(135deg, #facc15 0%, #fde047 100%);
2899 --btn-primary-text: #1e3a8a;
2900 --btn-outline-border: #facc15;
2901 --btn-outline-text: #facc15;
2902 }
2903
2904 /* --- Tipografía y geometría --- */
2905 html[data-estilo="saiyan"] * {
2906 font-family: 'Comic Sans MS', 'Comic Sans', 'Chalkboard SE', 'Comic Neue', 'Bangers', 'Impact', sans-serif;
2907 border-radius: 0 !important;
2908 }
2909
2910 html[data-estilo="saiyan"] .saiyan-txt,
2911 html[data-estilo="saiyan"] .page-title,
2912 html[data-estilo="saiyan"] .banner-title,
2913 html[data-estilo="saiyan"] .popup-title,
2914 html[data-estilo="saiyan"] .post-title,
2915 html[data-estilo="saiyan"] .widget-title,
2916 html[data-estilo="saiyan"] .cert-title,
2917 html[data-estilo="saiyan"] .sidebar-header h1 {
2918 font-family: 'Comic Sans MS', 'Comic Sans', 'Chalkboard SE', 'Bangers', 'Impact', 'Arial Black', sans-serif;
2919 font-weight: 900;
2920 }
2921
2922 html[data-estilo="saiyan"] body {
2923 background-color: #f97316;
2924 color: #ffffff;
2925 position: relative;
2926 }
2927
2928 html[data-estilo="saiyan"] a { color: #facc15; }
2929
2930 html[data-estilo="saiyan"] h1,
2931 html[data-estilo="saiyan"] h2,
2932 html[data-estilo="saiyan"] h3,
2933 html[data-estilo="saiyan"] h4 { color: #ffffff; }
2934
2935 html[data-estilo="saiyan"] .page-title {
2936 color: #ffffff;
2937 letter-spacing: 1.5px;
2938 text-shadow: 2px 2px 0px #f97316;
2939 }
2940
2941 html[data-estilo="saiyan"] .page-description { color: #bfdbfe; }
2942
2943 html[data-estilo="saiyan"] .app-layout {
2944 position: relative;
2945 z-index: 2;
2946 }
2947
2948 /* ============================================================
2949 ESCENARIO: NUBE KINTO Y ESTELAS DE KI (SVG 3D)
2950 ============================================================ */
2951 html[data-estilo="saiyan"] .saiyan-bg-viewport {
2952 position: fixed;
2953 top: 0; left: 0;
2954 width: 100vw;
2955 height: 100vh;
2956 pointer-events: none;
2957 z-index: 0;
2958 overflow: hidden;
2959 transform-style: preserve-3d;
2960 }
2961
2962 html[data-estilo="saiyan"] .saiyan-svg-layer {
2963 position: absolute;
2964 top: -20%;
2965 left: -10%;
2966 width: 120vw;
2967 height: 130vh;
2968 transform: translate3d(0px, 0px, 0px) scale(1.08);
2969 transition: transform 1.5s cubic-bezier(0.17, 0.84, 0.44, 1);
2970 }
2971
2972 html[data-estilo="saiyan"] .kintoun-cloud {
2973 fill: #ffffff;
2974 opacity: 0.15;
2975 }
2976
2977 html[data-estilo="saiyan"] .ki-energy-trail {
2978 stroke: #facc15;
2979 stroke-width: 2;
2980 fill: none;
2981 stroke-dasharray: 10, 15;
2982 opacity: 0.4;
2983 animation: kiPulse 3s infinite alternate;
2984 }
2985
2986 @keyframes kiPulse {
2987 0% { opacity: 0.2; stroke-width: 1; }
2988 100% { opacity: 0.5; stroke-width: 3; }
2989 }
2990
2991 html[data-estilo="saiyan"] .atmosphere-overlay {
2992 background: radial-gradient(circle at 50% 50%, rgba(250, 204, 21, 0.1) 0%, transparent 70%);
2993 }
2994
2995 /* ============================================================
2996 CORTINA DE TRANSICIÓN: AURA DE KI
2997 ============================================================ */
2998 html[data-estilo="saiyan"] .saiyan-aura-transition {
2999 position: fixed;
3000 top: 0;
3001 left: 0;
3002 width: 100vw;
3003 height: 100vh;
3004 background: radial-gradient(circle, #facc15 0%, #f97316 40%, transparent 70%);
3005 z-index: 9999;
3006 clip-path: polygon(50% 0%, 50% 0%, 50% 100%, 50% 100%);
3007 transition: clip-path 0.7s cubic-bezier(0.86, 0, 0.07, 1);
3008 pointer-events: none;
3009 mix-blend-mode: screen;
3010 }
3011
3012 html[data-estilo="saiyan"] .saiyan-aura-transition.active {
3013 clip-path: polygon(0% 0%, 100% 0%, 100% 100%, 0% 100%);
3014 }
3015
3016 /* ============================================================
3017 SIDEBAR: UNIFORME SAIYAN
3018 ============================================================ */
3019 html[data-estilo="saiyan"] .sidebar {
3020 background: #1e3a8a;
3021 border-right: 4px solid #facc15;
3022 box-shadow: 10px 0 30px rgba(0, 0, 0, 0.3);
3023 }
3024
3025 html[data-estilo="saiyan"] .sidebar-header {
3026 border-bottom: 2px solid #facc15;
3027 text-align: center;
3028 }
3029
3030 html[data-estilo="saiyan"] .sidebar-header h1 {
3031 color: #ffffff;
3032 font-size: 2rem;
3033 letter-spacing: 3px;
3034 text-shadow: 2px 2px 0px #f97316;
3035 text-transform: uppercase;
3036 }
3037
3038 html[data-estilo="saiyan"] .sidebar-header small { color: #bfdbfe; }
3039
3040 html[data-estilo="saiyan"] .sidebar-user {
3041 background: #ffffff;
3042 border: 2px solid #facc15;
3043 text-align: left;
3044 }
3045
3046 html[data-estilo="saiyan"] .sidebar-user strong { color: #1e3a8a; }
3047 html[data-estilo="saiyan"] .sidebar-user small { color: #f97316; }
3048
3049 html[data-estilo="saiyan"] .sidebar-avatar {
3050 border: 2px solid #1e3a8a;
3051 border-radius: 50% !important;
3052 }
3053
3054 html[data-estilo="saiyan"] .sidebar-nav a {
3055 color: #ffffff;
3056 border-left: 5px solid transparent;
3057 letter-spacing: 1.5px;
3058 text-transform: uppercase;
3059 font-weight: 700;
3060 transition: transform 0.2s ease, opacity 0.2s ease, box-shadow 0.2s ease, border-color 0.2s ease, background-color 0.2s ease, color 0.2s ease;
3061 }
3062
3063 html[data-estilo="saiyan"] .sidebar-nav a:hover {
3064 background: #f97316;
3065 color: #ffffff;
3066 border-left-color: #facc15;
3067 padding-left: 18px;
3068 }
3069
3070 html[data-estilo="saiyan"] .sidebar-nav a.active {
3071 background: #facc15;
3072 color: #1e3a8a;
3073 font-weight: 900;
3074 border-left-color: #ffffff;
3075 text-shadow: none;
3076 }
3077
3078 html[data-estilo="saiyan"] .sidebar-footer { border-top: 2px solid #facc15; }
3079
3080 html[data-estilo="saiyan"] .sidebar-footer .btn {
3081 background: #f97316;
3082 border: 2px solid #facc15;
3083 color: #ffffff;
3084 text-transform: uppercase;
3085 letter-spacing: 2px;
3086 font-weight: 900;
3087 }
3088
3089 html[data-estilo="saiyan"] .sidebar-footer .btn:hover {
3090 background: #ffffff;
3091 color: #1e3a8a;
3092 border-color: #ffffff;
3093 box-shadow: 0 0 15px #facc15;
3094 }
3095
3096 /* ============================================================
3097 TOPBAR SAIYAN
3098 ============================================================ */
3099 html[data-estilo="saiyan"] .topbar {
3100 background: var(--topbar-bg);
3101 border-bottom: 2px solid #facc15;
3102 backdrop-filter: none;
3103 }
3104
3105 html[data-estilo="saiyan"] .menu-toggle {
3106 background: #ffffff;
3107 border: 2px solid #facc15;
3108 color: #1e3a8a;
3109 }
3110
3111 html[data-estilo="saiyan"] .menu-toggle:hover {
3112 background: #facc15;
3113 transform: scale(1.1);
3114 box-shadow: 0 0 15px #facc15;
3115 }
3116
3117 html[data-estilo="saiyan"] .menu-backdrop { background: rgba(2, 6, 23, 0.6); }
3118
3119 html[data-estilo="saiyan"] .global-search-input {
3120 background: #ffffff;
3121 border: 2px solid #facc15;
3122 color: #1e3a8a;
3123 font-weight: 600;
3124 }
3125
3126 html[data-estilo="saiyan"] .global-search-input::placeholder { color: #64748b; }
3127
3128 html[data-estilo="saiyan"] .global-search-input:focus {
3129 border-color: #facc15;
3130 box-shadow: 0 0 15px #facc15;
3131 }
3132
3133 html[data-estilo="saiyan"] .global-search-dropdown {
3134 background: #ffffff;
3135 border: 2px solid #facc15;
3136 box-shadow: 0 20px 50px rgba(2, 6, 23, 0.5);
3137 }
3138
3139 html[data-estilo="saiyan"] .global-search-item { border-bottom: 1px solid #e2e8f0; }
3140 html[data-estilo="saiyan"] .global-search-item:hover { background: #fef3c7; }
3141 html[data-estilo="saiyan"] .global-search-info strong { color: #1e3a8a; }
3142 html[data-estilo="saiyan"] .global-search-info span { color: #64748b; }
3143
3144 html[data-estilo="saiyan"] .global-search-chat {
3145 border: 2px solid #facc15;
3146 color: #1e3a8a;
3147 background: #facc15;
3148 }
3149
3150 html[data-estilo="saiyan"] .global-search-chat:hover {
3151 background: #1e3a8a;
3152 color: #ffffff;
3153 border-color: #1e3a8a;
3154 }
3155
3156 html[data-estilo="saiyan"] .global-search-empty { color: #64748b; }
3157
3158 /* Notificaciones */
3159 html[data-estilo="saiyan"] .notif-toggle {
3160 background: #ffffff;
3161 border: 2px solid #facc15;
3162 color: #1e3a8a;
3163 }
3164
3165 html[data-estilo="saiyan"] .notif-toggle:hover {
3166 background: #facc15;
3167 transform: scale(1.1);
3168 box-shadow: 0 0 15px #facc15;
3169 }
3170
3171 html[data-estilo="saiyan"] .notif-badge {
3172 background: #f97316;
3173 color: #ffffff;
3174 box-shadow: 0 0 8px #f97316;
3175 }
3176
3177 html[data-estilo="saiyan"] .notif-panel {
3178 background: #ffffff;
3179 border: 2px solid #facc15;
3180 box-shadow: 0 20px 50px rgba(2, 6, 23, 0.5);
3181 }
3182
3183 html[data-estilo="saiyan"] .notif-panel-head { border-bottom: 2px solid #facc15; }
3184 html[data-estilo="saiyan"] .notif-panel-head h3 { color: #1e3a8a; }
3185 html[data-estilo="saiyan"] .notif-marcar-todas { color: #f97316; }
3186 html[data-estilo="saiyan"] .notif-marcar-todas:hover { color: #1e3a8a; }
3187 html[data-estilo="saiyan"] .notif-item:hover { background: #fef3c7; }
3188 html[data-estilo="saiyan"] .notif-item-info strong { color: #1e3a8a; }
3189 html[data-estilo="saiyan"] .notif-item-info span { color: #64748b; }
3190 html[data-estilo="saiyan"] .notif-item-badge {
3191 background: rgba(249, 115, 22, 0.15);
3192 color: #f97316;
3193 }
3194 html[data-estilo="saiyan"] .notif-vacio { color: #64748b; }
3195
3196 /* ============================================================
3197 CONTENIDO Y COMPONENTES SAIYAN
3198 ============================================================ */
3199 html[data-estilo="saiyan"] .main-content { background: transparent; }
3200
3201 /* Entrada escalonada de las secciones (viewPopIn del mockup) */
3202 html[data-estilo="saiyan"] .main-content > * {
3203 opacity: 0;
3204 transform: scale(1.03) translateY(8px);
3205 animation: viewPopIn 0.45s cubic-bezier(0.17, 0.84, 0.44, 1) forwards;
3206 }
3207
3208 html[data-estilo="saiyan"] .main-content > *:nth-child(1) { animation-delay: 0.05s; }
3209 html[data-estilo="saiyan"] .main-content > *:nth-child(2) { animation-delay: 0.10s; }
3210 html[data-estilo="saiyan"] .main-content > *:nth-child(3) { animation-delay: 0.15s; }
3211 html[data-estilo="saiyan"] .main-content > *:nth-child(4) { animation-delay: 0.20s; }
3212
3213 @keyframes viewPopIn {
3214 to { opacity: 1; transform: scale(1) translateY(0); }
3215 }
3216
3217 @keyframes capsuleExplode {
3218 0% { transform: scale(0) rotate(-360deg); opacity: 0; }
3219 80% { transform: scale(1.1) rotate(10deg); opacity: 1; }
3220 100% { transform: scale(1) rotate(0deg); opacity: 1; }
3221 }
3222
3223 /* Tarjetas */
3224 html[data-estilo="saiyan"] .card {
3225 background: #1e3a8a;
3226 border: 3px solid #facc15;
3227 border-left: 8px solid #ffffff;
3228 box-shadow: 0 15px 40px rgba(0, 0, 0, 0.4);
3229 position: relative;
3230 overflow: hidden;
3231 transition: transform 0.3s ease, opacity 0.3s ease, box-shadow 0.3s ease, border-color 0.3s ease, background-color 0.3s ease, color 0.3s ease;
3232 }
3233
3234 html[data-estilo="saiyan"] .card:hover {
3235 box-shadow: 0 20px 50px rgba(250, 204, 21, 0.3);
3236 transform: translateY(-3px);
3237 }
3238
3239 html[data-estilo="saiyan"] .card-title {
3240 color: #ffffff;
3241 font-weight: 900;
3242 }
3243
3244 /* Botones */
3245 html[data-estilo="saiyan"] .btn {
3246 border: 2px solid #facc15;
3247 color: #ffffff;
3248 background: #1e3a8a;
3249 letter-spacing: 1px;
3250 text-transform: uppercase;
3251 font-weight: 800;
3252 transition: transform 0.3s ease, opacity 0.3s ease, box-shadow 0.3s ease, border-color 0.3s ease, background-color 0.3s ease, color 0.3s ease;
3253 }
3254
3255 html[data-estilo="saiyan"] .btn:hover {
3256 background: #f97316;
3257 box-shadow: 0 0 15px rgba(250, 204, 21, 0.5);
3258 color: #ffffff;
3259 }
3260
3261 html[data-estilo="saiyan"] .btn-primary,
3262 html[data-estilo="saiyan"] .btn-solid {
3263 background: #facc15;
3264 color: #1e3a8a;
3265 border: 2px solid #ffffff;
3266 box-shadow: 0 0 15px rgba(250, 204, 21, 0.6);
3267 font-weight: 900;
3268 }
3269
3270 html[data-estilo="saiyan"] .btn-primary:hover,
3271 html[data-estilo="saiyan"] .btn-solid:hover {
3272 transform: scale(1.04);
3273 background: #ffffff;
3274 color: #1e3a8a;
3275 box-shadow: 0 0 25px #ffffff;
3276 }
3277
3278 html[data-estilo="saiyan"] .btn-secondary {
3279 background: linear-gradient(135deg, #1e3a8a 0%, #172554 100%);
3280 border: 2px solid #facc15;
3281 color: #ffffff;
3282 }
3283
3284 html[data-estilo="saiyan"] .btn-outline {
3285 background: transparent;
3286 border: 2px solid #facc15;
3287 color: #facc15;
3288 }
3289
3290 html[data-estilo="saiyan"] .btn-outline:hover {
3291 background: #facc15;
3292 color: #1e3a8a;
3293 box-shadow: 0 0 15px #facc15;
3294 }
3295
3296 html[data-estilo="saiyan"] .btn-danger {
3297 background: #dc2626;
3298 border: 2px solid #fca5a5;
3299 color: #ffffff;
3300 }
3301
3302 html[data-estilo="saiyan"] .btn-clean,
3303 html[data-estilo="saiyan"] .side-link {
3304 background: #f97316;
3305 color: #ffffff;
3306 border: 2px solid #facc15;
3307 letter-spacing: 1px;
3308 text-transform: uppercase;
3309 font-weight: 900;
3310 font-size: 0.78rem;
3311 }
3312
3313 html[data-estilo="saiyan"] .btn-clean:hover,
3314 html[data-estilo="saiyan"] .side-link:hover {
3315 background: #facc15;
3316 color: #1e3a8a;
3317 box-shadow: 0 0 15px #facc15;
3318 }
3319
3320 html[data-estilo="saiyan"] .btn-action {
3321 border: 1px solid transparent;
3322 color: #bfdbfe;
3323 background: transparent;
3324 transition: transform 0.25s ease, opacity 0.25s ease, box-shadow 0.25s ease, border-color 0.25s ease, background-color 0.25s ease, color 0.25s ease;
3325 text-transform: uppercase;
3326 font-size: 0.75rem;
3327 }
3328
3329 html[data-estilo="saiyan"] .btn-action:hover {
3330 color: #facc15;
3331 border-color: #facc15;
3332 box-shadow: 0 0 12px rgba(250, 204, 21, 0.4);
3333 }
3334
3335 html[data-estilo="saiyan"] .btn-action.voted {
3336 color: #f97316;
3337 border-color: #f97316;
3338 box-shadow: 0 0 12px rgba(249, 115, 22, 0.5);
3339 }
3340
3341 /* Formularios */
3342 html[data-estilo="saiyan"] input,
3343 html[data-estilo="saiyan"] select,
3344 html[data-estilo="saiyan"] textarea,
3345 html[data-estilo="saiyan"] .form-control,
3346 html[data-estilo="saiyan"] .select-materia,
3347 html[data-estilo="saiyan"] .input-search {
3348 background: #0f172a;
3349 border: 2px solid #facc15;
3350 color: #ffffff;
3351 outline: none;
3352 transition: transform 0.3s, opacity 0.3s, box-shadow 0.3s, border-color 0.3s, background-color 0.3s, color 0.3s;
3353 }
3354
3355 html[data-estilo="saiyan"] input:focus,
3356 html[data-estilo="saiyan"] select:focus,
3357 html[data-estilo="saiyan"] textarea:focus,
3358 html[data-estilo="saiyan"] .form-control:focus,
3359 html[data-estilo="saiyan"] .select-materia:focus,
3360 html[data-estilo="saiyan"] .input-search:focus {
3361 border-color: #facc15;
3362 box-shadow: 0 0 15px #facc15;
3363 }
3364
3365 html[data-estilo="saiyan"] select option { background: #0f172a; color: #ffffff; }
3366
3367 html[data-estilo="saiyan"] input::placeholder,
3368 html[data-estilo="saiyan"] textarea::placeholder { color: #64748b; }
3369
3370 html[data-estilo="saiyan"] label,
3371 html[data-estilo="saiyan"] legend,
3372 html[data-estilo="saiyan"] th { color: #ffffff; }
3373
3374 html[data-estilo="saiyan"] td { color: #f8fafc; }
3375 html[data-estilo="saiyan"] hr { border-color: #facc15; }
3376
3377 /* Alerts, badges, avatares */
3378 html[data-estilo="saiyan"] .alert {
3379 border: 2px solid #facc15;
3380 background: #1e3a8a;
3381 color: #ffffff;
3382 }
3383
3384 html[data-estilo="saiyan"] .alert-error {
3385 background: #7f1d1d;
3386 color: #fecaca;
3387 border-color: #fca5a5;
3388 }
3389
3390 html[data-estilo="saiyan"] .alert-success {
3391 background: #14532d;
3392 color: #bbf7d0;
3393 border-color: #86efac;
3394 }
3395
3396 html[data-estilo="saiyan"] .badge-primary,
3397 html[data-estilo="saiyan"] .badge-materia,
3398 html[data-estilo="saiyan"] .badge-verified,
3399 html[data-estilo="saiyan"] .badge-solved,
3400 html[data-estilo="saiyan"] .hub-badge.badge-solucion,
3401 html[data-estilo="saiyan"] .hub-badge.badge-solved {
3402 background: #f97316;
3403 color: #ffffff;
3404 border: 1px solid #facc15;
3405 font-weight: 700;
3406 letter-spacing: 1px;
3407 text-transform: uppercase;
3408 }
3409
3410 html[data-estilo="saiyan"] .badge-success {
3411 background: rgba(74, 222, 128, 0.15);
3412 color: #bbf7d0;
3413 border: 1px solid #4ade80;
3414 }
3415
3416 html[data-estilo="saiyan"] .badge-interacted {
3417 background: rgba(250, 204, 21, 0.2);
3418 color: #facc15;
3419 border: 1px solid #facc15;
3420 }
3421
3422 html[data-estilo="saiyan"] .hub-badge {
3423 background: #f97316;
3424 color: #ffffff;
3425 border: 1px solid #facc15;
3426 letter-spacing: 0.5px;
3427 text-transform: uppercase;
3428 }
3429
3430 html[data-estilo="saiyan"] .avatar,
3431 html[data-estilo="saiyan"] .hub-avatar {
3432 border: 2px solid #facc15;
3433 }
3434
3435 html[data-estilo="saiyan"] .follow-btn {
3436 background: #f97316;
3437 border: 2px solid #facc15;
3438 color: #ffffff;
3439 font-weight: 900;
3440 text-transform: uppercase;
3441 }
3442
3443 html[data-estilo="saiyan"] .follow-btn:hover {
3444 background: #facc15;
3445 color: #1e3a8a;
3446 box-shadow: 0 0 15px #facc15;
3447 }
3448
3449 html[data-estilo="saiyan"] .follow-btn.siguiendo {
3450 background: #ffffff;
3451 color: #1e3a8a;
3452 border-color: #ffffff;
3453 }
3454
3455 /* Toast */
3456 html[data-estilo="saiyan"] .toast {
3457 background: #1e3a8a;
3458 color: #ffffff;
3459 border: 2px solid #facc15;
3460 box-shadow: 0 15px 40px rgba(2, 6, 23, 0.5);
3461 }
3462
3463 html[data-estilo="saiyan"] .toast-info { border-left-width: 4px; }
3464 html[data-estilo="saiyan"] .toast-success { border-color: #4ade80; }
3465 html[data-estilo="saiyan"] .toast-error { border-color: #f87171; }
3466
3467 /* ============================================================
3468 POP-UP DE BIENVENIDA: CÁPSULA HOI-POI
3469 ============================================================ */
3470 html[data-estilo="saiyan"] .welcome-overlay {
3471 background-color: rgba(1, 5, 10, 0.85);
3472 backdrop-filter: none;
3473 }
3474
3475 html[data-estilo="saiyan"] .welcome-popup {
3476 background: #ffffff;
3477 border: 10px solid #1e3a8a;
3478 box-shadow: 0 0 100px rgba(250, 204, 21, 0.8), 0 0 30px rgba(249, 115, 22, 0.5);
3479 padding: 40px 34px;
3480 max-width: 460px;
3481 animation: capsuleExplode 0.6s ease-out forwards;
3482 }
3483
3484 html[data-estilo="saiyan"] .welcome-popup::before,
3485 html[data-estilo="saiyan"] .welcome-popup::after {
3486 content: '';
3487 position: absolute;
3488 left: 0;
3489 width: 100%;
3490 height: 10px;
3491 background: none;
3492 box-shadow: none;
3493 animation: none;
3494 }
3495
3496 html[data-estilo="saiyan"] .welcome-popup::after {
3497 background-image: repeating-linear-gradient(45deg, #facc15 0, #facc15 12px, transparent 12px, transparent 24px);
3498 }
3499
3500 html[data-estilo="saiyan"] .welcome-popup::before {
3501 background: #f97316;
3502 }
3503
3504 html[data-estilo="saiyan"] .popup-tag {
3505 color: #f97316;
3506 font-size: 0;
3507 letter-spacing: 3px;
3508 text-transform: uppercase;
3509 }
3510
3511 html[data-estilo="saiyan"] .popup-tag::after {
3512 content: '// Z-FIGHTERS DOJO // NIVEL SUPERIOR //';
3513 font-size: 0.8rem;
3514 letter-spacing: 3px;
3515 color: #f97316;
3516 }
3517
3518 html[data-estilo="saiyan"] .pulse-mini {
3519 background-color: #facc15;
3520 box-shadow: 0 0 6px #facc15;
3521 }
3522
3523 html[data-estilo="saiyan"] .popup-title {
3524 color: #1e3a8a;
3525 font-size: 3.2rem;
3526 letter-spacing: 2px;
3527 line-height: 0.9;
3528 text-transform: uppercase;
3529 text-shadow: 3px 3px 0px #facc15;
3530 }
3531
3532 html[data-estilo="saiyan"] .popup-username {
3533 background: transparent;
3534 border: none;
3535 box-shadow: none;
3536 padding: 0;
3537 color: #1e3a8a;
3538 font-weight: 900;
3539 letter-spacing: 1px;
3540 text-transform: uppercase;
3541 }
3542
3543 html[data-estilo="saiyan"] .popup-status {
3544 font-size: 0;
3545 font-style: normal;
3546 }
3547
3548 html[data-estilo="saiyan"] .popup-status::after {
3549 content: 'NIVEL DE PODER: MÁXIMO • SESIÓN INICIADA';
3550 font-size: 0.85rem;
3551 font-style: normal;
3552 font-weight: bold;
3553 font-family: Consolas, monospace;
3554 color: #f97316;
3555 letter-spacing: 1px;
3556 }
3557
3558 html[data-estilo="saiyan"] .welcome-popup,
3559 html[data-estilo="saiyan"] .popup-tag,
3560 html[data-estilo="saiyan"] .popup-title,
3561 html[data-estilo="saiyan"] .popup-username,
3562 html[data-estilo="saiyan"] .popup-status { text-align: center; }
3563
3564 /* ============================================================
3565 COMPONENTES DEL PROTOTIPO ADAPTADOS (inicio real)
3566 ============================================================ */
3567
3568 /* Botón de lanzar duda (ataque del dojo) */
3569 html[data-estilo="saiyan"] .btn-publicar {
3570 background: #facc15;
3571 color: #1e3a8a;
3572 border: 2px solid #ffffff;
3573 box-shadow: 0 0 15px rgba(250, 204, 21, 0.6);
3574 font-weight: 900;
3575 letter-spacing: 1px;
3576 text-transform: uppercase;
3577 transition: transform 0.3s ease, opacity 0.3s ease, box-shadow 0.3s ease, border-color 0.3s ease, background-color 0.3s ease, color 0.3s ease;
3578 }
3579
3580 html[data-estilo="saiyan"] .btn-publicar:hover {
3581 transform: scale(1.04);
3582 background: #ffffff;
3583 box-shadow: 0 0 25px #ffffff;
3584 }
3585
3586 html[data-estilo="saiyan"] .banner-title {
3587 color: #ffffff;
3588 letter-spacing: 1.5px;
3589 text-shadow: 2px 2px 0px #f97316;
3590 }
3591
3592 html[data-estilo="saiyan"] .banner-sub { color: #bfdbfe; }
3593
3594 /* Progreso de carrera dorado */
3595 html[data-estilo="saiyan"] .progress-bar {
3596 height: 10px;
3597 background: #0f172a;
3598 border: 2px solid #facc15;
3599 overflow: hidden;
3600 box-shadow: 0 0 10px rgba(250, 204, 21, 0.2);
3601 }
3602
3603 html[data-estilo="saiyan"] .progress-fill {
3604 background: #facc15;
3605 box-shadow: 0 0 10px #facc15;
3606 transition: width 1.6s cubic-bezier(0.17, 0.84, 0.44, 1) 0.4s;
3607 }
3608
3609 html[data-estilo="saiyan"] .progress-labels {
3610 color: #bfdbfe;
3611 font-size: 0.78rem;
3612 font-weight: 600;
3613 }
3614
3615 /* Publicaciones y widgets */
3616 html[data-estilo="saiyan"] .post-card,
3617 html[data-estilo="saiyan"] .side-card,
3618 html[data-estilo="saiyan"] .widget-card {
3619 background: #1e3a8a;
3620 border: 3px solid #facc15;
3621 box-shadow: 0 15px 40px rgba(0, 0, 0, 0.4);
3622 transition: transform 0.3s ease, opacity 0.3s ease, box-shadow 0.3s ease, border-color 0.3s ease, background-color 0.3s ease, color 0.3s ease;
3623 }
3624
3625 html[data-estilo="saiyan"] .post-card:hover,
3626 html[data-estilo="saiyan"] .side-card:hover,
3627 html[data-estilo="saiyan"] .widget-card:hover {
3628 transform: translateY(-3px);
3629 box-shadow: 0 20px 50px rgba(250, 204, 21, 0.25);
3630 }
3631
3632 html[data-estilo="saiyan"] .widget-time {
3633 color: #facc15;
3634 font-weight: 900;
3635 text-transform: uppercase;
3636 letter-spacing: 1px;
3637 }
3638
3639 html[data-estilo="saiyan"] .widget-title {
3640 color: #ffffff;
3641 letter-spacing: 1px;
3642 }
3643
3644 html[data-estilo="saiyan"] .widget-desc { color: #bfdbfe; }
3645
3646 html[data-estilo="saiyan"] .btn-widget {
3647 display: block;
3648 width: 100%;
3649 text-align: center;
3650 background: #f97316;
3651 color: #ffffff;
3652 border: 2px solid #facc15;
3653 font-weight: 900;
3654 letter-spacing: 1px;
3655 text-transform: uppercase;
3656 transition: transform 0.3s, opacity 0.3s, box-shadow 0.3s, border-color 0.3s, background-color 0.3s, color 0.3s;
3657 }
3658
3659 html[data-estilo="saiyan"] .btn-widget:hover {
3660 background: #facc15;
3661 color: #1e3a8a;
3662 box-shadow: 0 0 15px #facc15;
3663 }
3664
3665 /* Zona de combate / caja de dudas */
3666 html[data-estilo="saiyan"] .maps-banner .banner-content { color: #ffffff; }
3667
3668 html[data-estilo="saiyan"] .empty-state h2 { color: #ffffff; }
3669 html[data-estilo="saiyan"] .empty-state p,
3670 html[data-estilo="saiyan"] .filter-note { color: #bfdbfe; }
3671
3672 /* ============================================================
3673 COMUNIDAD: FORO, RESPUESTAS, APUNTES, TIPS, MODALES
3674 ============================================================ */
3675 html[data-estilo="saiyan"] .hub-filter-bar {
3676 background: #1e3a8a;
3677 border: 2px solid #facc15;
3678 }
3679
3680 html[data-estilo="saiyan"] .hub-tabs button {
3681 background: transparent;
3682 color: #bfdbfe;
3683 border: 2px solid transparent;
3684 text-transform: uppercase;
3685 letter-spacing: 0.5px;
3686 transition: transform 0.25s ease, opacity 0.25s ease, box-shadow 0.25s ease, border-color 0.25s ease, background-color 0.25s ease, color 0.25s ease;
3687 }
3688
3689 html[data-estilo="saiyan"] .hub-tabs button:hover {
3690 color: #ffffff;
3691 border-color: #facc15;
3692 box-shadow: 0 0 12px rgba(250, 204, 21, 0.4);
3693 }
3694
3695 html[data-estilo="saiyan"] .hub-tabs button.active {
3696 background: #facc15;
3697 color: #1e3a8a;
3698 border: 2px solid #facc15;
3699 font-weight: 900;
3700 }
3701
3702 html[data-estilo="saiyan"] .foro-autor-line strong,
3703 html[data-estilo="saiyan"] .user-data-line strong { color: #ffffff; }
3704 html[data-estilo="saiyan"] .foro-autor-line span,
3705 html[data-estilo="saiyan"] .user-data-line span { color: #bfdbfe; }
3706
3707 html[data-estilo="saiyan"] .post-title {
3708 color: #ffffff;
3709 letter-spacing: 1px;
3710 }
3711
3712 html[data-estilo="saiyan"] .post-desc {
3713 color: #f8fafc;
3714 line-height: 1.55;
3715 }
3716
3717 html[data-estilo="saiyan"] .post-desc code {
3718 background: #0f172a;
3719 border: 1px solid #facc15;
3720 color: #facc15;
3721 }
3722
3723 html[data-estilo="saiyan"] .solved-box {
3724 background: rgba(250, 204, 21, 0.12);
3725 border: 1px solid #facc15;
3726 color: #ffffff;
3727 box-shadow: 0 0 20px rgba(250, 204, 21, 0.3);
3728 }
3729
3730 html[data-estilo="saiyan"] .btn-link,
3731 html[data-estilo="saiyan"] .foro-action {
3732 color: #facc15;
3733 background: transparent;
3734 transition: transform 0.25s ease, opacity 0.25s ease, box-shadow 0.25s ease, border-color 0.25s ease, background-color 0.25s ease, color 0.25s ease;
3735 text-transform: uppercase;
3736 letter-spacing: 0.5px;
3737 }
3738
3739 html[data-estilo="saiyan"] .btn-link:hover,
3740 html[data-estilo="saiyan"] .foro-action:hover {
3741 color: #ffffff;
3742 background: #f97316;
3743 }
3744
3745 html[data-estilo="saiyan"] .apunte-card,
3746 html[data-estilo="saiyan"] .tip-card {
3747 background: #1e3a8a;
3748 border: 3px solid #facc15;
3749 transition: transform 0.3s ease, opacity 0.3s ease, box-shadow 0.3s ease, border-color 0.3s ease, background-color 0.3s ease, color 0.3s ease;
3750 }
3751
3752 html[data-estilo="saiyan"] .apunte-card:hover,
3753 html[data-estilo="saiyan"] .tip-card:hover {
3754 transform: translateY(-3px);
3755 box-shadow: 0 20px 50px rgba(250, 204, 21, 0.25);
3756 }
3757
3758 html[data-estilo="saiyan"] .file-icon {
3759 background: #f97316;
3760 border: 1px solid #facc15;
3761 color: #ffffff;
3762 }
3763
3764 html[data-estilo="saiyan"] .apunte-details h4 { color: #ffffff; }
3765 html[data-estilo="saiyan"] .apunte-details p { color: #bfdbfe; }
3766
3767 html[data-estilo="saiyan"] .tip-title,
3768 html[data-estilo="saiyan"] .tip-card h4 { color: #ffffff; }
3769 html[data-estilo="saiyan"] .tip-text { color: #f8fafc; }
3770 html[data-estilo="saiyan"] .tip-text code {
3771 background: #0f172a;
3772 border: 1px solid #facc15;
3773 color: #facc15;
3774 }
3775
3776 html[data-estilo="saiyan"] .vote-btn {
3777 background: #0f172a;
3778 border: 2px solid #facc15;
3779 color: #bfdbfe;
3780 transition: transform 0.25s ease, opacity 0.25s ease, box-shadow 0.25s ease, border-color 0.25s ease, background-color 0.25s ease, color 0.25s ease;
3781 }
3782
3783 html[data-estilo="saiyan"] .vote-btn:hover {
3784 border-color: #facc15;
3785 color: #facc15;
3786 box-shadow: 0 0 12px rgba(250, 204, 21, 0.4);
3787 }
3788
3789 html[data-estilo="saiyan"] .vote-btn.votado {
3790 border-color: #f97316;
3791 color: #f97316;
3792 box-shadow: 0 0 12px rgba(249, 115, 22, 0.5);
3793 }
3794
3795 /* Modales del hub */
3796 html[data-estilo="saiyan"] .hub-modal-overlay {
3797 background-color: rgba(1, 5, 10, 0.7);
3798 backdrop-filter: none;
3799 }
3800
3801 html[data-estilo="saiyan"] .hub-modal {
3802 background: #1e3a8a;
3803 border: 3px solid #facc15;
3804 box-shadow: 0 0 80px rgba(250, 204, 21, 0.5);
3805 }
3806
3807 html[data-estilo="saiyan"] .hub-modal h3,
3808 html[data-estilo="saiyan"] .hub-modal h4 { color: #ffffff; }
3809 html[data-estilo="saiyan"] .hub-modal .modal-sub { color: #bfdbfe; }
3810 html[data-estilo="saiyan"] .hub-modal label { color: #ffffff; }
3811 html[data-estilo="saiyan"] .modal-msg { color: #f8fafc; }
3812
3813 /* Modal de duplicado / respuestas */
3814 html[data-estilo="saiyan"] .dup-modal { border: 3px solid #facc15; }
3815
3816 html[data-estilo="saiyan"] .dup-notice {
3817 background: rgba(250, 204, 21, 0.12);
3818 border: 1px solid #facc15;
3819 box-shadow: 0 0 20px rgba(250, 204, 21, 0.3);
3820 }
3821
3822 html[data-estilo="saiyan"] .dup-titulo { color: #ffffff; }
3823 html[data-estilo="saiyan"] .dup-notice p,
3824 html[data-estilo="saiyan"] .dup-por { color: #bfdbfe; }
3825
3826 html[data-estilo="saiyan"] .dup-question {
3827 background: #1e3a8a;
3828 border-left: 8px solid #facc15;
3829 }
3830
3831 html[data-estilo="saiyan"] .dup-section-title {
3832 color: #ffffff;
3833 text-transform: uppercase;
3834 letter-spacing: 0.5px;
3835 border-bottom-color: #facc15;
3836 }
3837
3838 html[data-estilo="saiyan"] .dup-respuestas,
3839 html[data-estilo="saiyan"] .dup-tips,
3840 html[data-estilo="saiyan"] .dup-recursos { border-color: #facc15; }
3841
3842 html[data-estilo="saiyan"] .dup-vacio { color: #bfdbfe; }
3843
3844 /* Respuestas a un post */
3845 html[data-estilo="saiyan"] .hub-respuesta {
3846 background: #1e3a8a;
3847 border: 2px solid #facc15;
3848 border-left: 8px solid #ffffff;
3849 box-shadow: 0 15px 40px rgba(0, 0, 0, 0.4);
3850 transition: transform 0.3s ease, opacity 0.3s ease, box-shadow 0.3s ease, border-color 0.3s ease, background-color 0.3s ease, color 0.3s ease;
3851 }
3852
3853 html[data-estilo="saiyan"] .hub-respuesta:hover {
3854 transform: translateY(-3px);
3855 box-shadow: 0 20px 50px rgba(250, 204, 21, 0.25);
3856 }
3857
3858 html[data-estilo="saiyan"] .respuesta-autor {
3859 color: #facc15;
3860 font-weight: 900;
3861 text-transform: uppercase;
3862 letter-spacing: 0.5px;
3863 text-shadow: 1px 1px 0px #f97316;
3864 }
3865
3866 html[data-estilo="saiyan"] .respuesta-texto {
3867 color: #f8fafc;
3868 line-height: 1.55;
3869 }
3870
3871 /* ============================================================
3872 MENSAJES: CHAT SAIYAN
3873 ============================================================ */
3874 html[data-estilo="saiyan"] .messages-container {
3875 --hub-border: #facc15;
3876 --hub-accent: #f97316;
3877 --hub-accent-dark: #c2410c;
3878 --hub-accent-soft: rgba(250, 204, 21, 0.12);
3879 --hub-muted: #bfdbfe;
3880 background: rgba(30, 58, 138, 0.92);
3881 border: 2px solid #facc15;
3882 box-shadow: 0 0 40px rgba(250, 204, 21, 0.2);
3883 }
3884
3885 html[data-estilo="saiyan"] .chat-sidebar {
3886 background: linear-gradient(180deg, rgba(23, 37, 84, 0.95) 0%, rgba(15, 23, 42, 0.98) 100%);
3887 border-right: 2px solid #facc15;
3888 }
3889
3890 html[data-estilo="saiyan"] .chat-search-box { border-bottom-color: #facc15; }
3891 html[data-estilo="saiyan"] .chat-search-box input {
3892 background: #0f172a;
3893 border: 2px solid #facc15;
3894 color: #ffffff;
3895 }
3896
3897 html[data-estilo="saiyan"] .chat-search-box input:focus {
3898 border-color: #facc15;
3899 box-shadow: 0 0 15px #facc15;
3900 }
3901
3902 html[data-estilo="saiyan"] .chat-item {
3903 background: rgba(15, 23, 42, 0.6);
3904 border-bottom: 1px solid #facc15;
3905 transition: transform 0.25s ease, opacity 0.25s ease, box-shadow 0.25s ease, border-color 0.25s ease, background-color 0.25s ease, color 0.25s ease;
3906 }
3907
3908 html[data-estilo="saiyan"] .chat-item:hover {
3909 background: rgba(249, 115, 22, 0.15);
3910 }
3911
3912 html[data-estilo="saiyan"] .chat-item.active {
3913 background: rgba(250, 204, 21, 0.2);
3914 border-left: 4px solid #facc15;
3915 box-shadow: inset 0 0 12px rgba(250, 204, 21, 0.2);
3916 }
3917
3918 html[data-estilo="saiyan"] .chat-item-header strong { color: #ffffff; }
3919 html[data-estilo="saiyan"] .chat-item-header span,
3920 html[data-estilo="saiyan"] .chat-item-preview { color: #bfdbfe; }
3921
3922 html[data-estilo="saiyan"] .chat-window { background: rgba(15, 23, 42, 0.55); }
3923
3924 html[data-estilo="saiyan"] .chat-header {
3925 background: #1e3a8a;
3926 border-bottom: 2px solid #facc15;
3927 }
3928
3929 html[data-estilo="saiyan"] .chat-header-user h3 { color: #ffffff; }
3930 html[data-estilo="saiyan"] .chat-header-user span { color: #bfdbfe; }
3931
3932 html[data-estilo="saiyan"] .chat-body {
3933 background-color: rgba(15, 23, 42, 0.55);
3934 background-image: radial-gradient(rgba(250, 204, 21, 0.07) 1px, transparent 1px);
3935 background-size: 26px 26px;
3936 }
3937
3938 html[data-estilo="saiyan"] .message {
3939 background: #1e3a8a;
3940 border: 2px solid #facc15;
3941 border-left: 8px solid #ffffff;
3942 box-shadow: 0 15px 40px rgba(0, 0, 0, 0.4);
3943 transition: transform 0.3s ease, opacity 0.3s ease, box-shadow 0.3s ease, border-color 0.3s ease, background-color 0.3s ease, color 0.3s ease;
3944 }
3945
3946 html[data-estilo="saiyan"] .message.received:hover,
3947 html[data-estilo="saiyan"] .message.sent:hover {
3948 transform: translateY(-2px);
3949 box-shadow: 0 20px 50px rgba(250, 204, 21, 0.25);
3950 }
3951
3952 html[data-estilo="saiyan"] .message.sent {
3953 background: linear-gradient(135deg, #f97316 0%, #ea580c 100%);
3954 border: 2px solid #facc15;
3955 border-left: 8px solid #facc15;
3956 box-shadow: 0 15px 40px rgba(0, 0, 0, 0.4);
3957 }
3958
3959 html[data-estilo="saiyan"] .message-time { color: #bfdbfe; }
3960
3961 html[data-estilo="saiyan"] .message-texto {
3962 color: #ffffff;
3963 line-height: 1.5;
3964 }
3965
3966 html[data-estilo="saiyan"] .message-attachment {
3967 background: #0f172a;
3968 border: 2px solid #facc15;
3969 }
3970
3971 html[data-estilo="saiyan"] .message.sent .message-attachment {
3972 background: rgba(15, 23, 42, 0.25);
3973 border-color: #ffffff;
3974 }
3975
3976 html[data-estilo="saiyan"] .attachment-icon {
3977 background: #f97316;
3978 border: 1px solid #facc15;
3979 color: #ffffff;
3980 }
3981
3982 html[data-estilo="saiyan"] .message.sent .attachment-icon {
3983 background: rgba(255, 255, 255, 0.2);
3984 border-color: #ffffff;
3985 color: #ffffff;
3986 }
3987
3988 html[data-estilo="saiyan"] .attachment-nombre { color: #ffffff; }
3989 html[data-estilo="saiyan"] .attachment-peso { color: #bfdbfe; }
3990
3991 html[data-estilo="saiyan"] .adjunto-descargar {
3992 background: transparent;
3993 border: 2px solid #facc15;
3994 color: #facc15;
3995 transition: transform 0.25s ease, opacity 0.25s ease, box-shadow 0.25s ease, border-color 0.25s ease, background-color 0.25s ease, color 0.25s ease;
3996 text-transform: uppercase;
3997 font-weight: 900;
3998 }
3999
4000 html[data-estilo="saiyan"] .adjunto-descargar:hover {
4001 background: #facc15;
4002 color: #1e3a8a;
4003 box-shadow: 0 0 15px #facc15;
4004 }
4005
4006 html[data-estilo="saiyan"] .message.sent .adjunto-descargar {
4007 border-color: #ffffff;
4008 color: #ffffff;
4009 }
4010
4011 html[data-estilo="saiyan"] .message.sent .adjunto-descargar:hover {
4012 background: #ffffff;
4013 color: #1e3a8a;
4014 box-shadow: 0 0 15px #ffffff;
4015 }
4016
4017 html[data-estilo="saiyan"] .chat-input-bar {
4018 background: #1e3a8a;
4019 border-top: 2px solid #facc15;
4020 }
4021
4022 html[data-estilo="saiyan"] .chat-input-bar input {
4023 background: #0f172a;
4024 border: 2px solid #facc15;
4025 color: #ffffff;
4026 outline: none;
4027 }
4028
4029 html[data-estilo="saiyan"] .chat-input-bar input:focus {
4030 border-color: #facc15;
4031 box-shadow: 0 0 15px #facc15;
4032 }
4033
4034 html[data-estilo="saiyan"] .chat-empty { background-color: rgba(15, 23, 42, 0.55); }
4035 html[data-estilo="saiyan"] .chat-empty p,
4036 html[data-estilo="saiyan"] .chat-empty span { color: #bfdbfe; }
4037
4038 html[data-estilo="saiyan"] .adjunto-pendiente {
4039 background: rgba(250, 204, 21, 0.12);
4040 border: 1px solid #facc15;
4041 color: #ffffff;
4042 }
4043
4044 html[data-estilo="saiyan"] .adjunto-quitar { color: #f97316; }
4045
4046 /* ============================================================
4047 PERFIL: STATS, CERTIFICADOS, ACTIVIDAD, DISCOVERY
4048 ============================================================ */
4049 html[data-estilo="saiyan"] .profile-name {
4050 color: #ffffff;
4051 letter-spacing: 1px;
4052 text-shadow: 2px 2px 0px #f97316;
4053 }
4054
4055 html[data-estilo="saiyan"] .profile-sub,
4056 html[data-estilo="saiyan"] .discover-empty { color: #bfdbfe; }
4057
4058 html[data-estilo="saiyan"] .red-stat .number,
4059 html[data-estilo="saiyan"] .stat-box .number {
4060 color: #facc15;
4061 font-weight: 900;
4062 text-shadow: 2px 2px 0px #f97316;
4063 }
4064
4065 html[data-estilo="saiyan"] .red-stat .label,
4066 html[data-estilo="saiyan"] .stat-box .label { color: #bfdbfe; }
4067
4068 html[data-estilo="saiyan"] .discover-person,
4069 html[data-estilo="saiyan"] .certificate-item {
4070 background: #1e3a8a;
4071 border: 2px solid #facc15;
4072 border-left: 8px solid #ffffff;
4073 transition: transform 0.3s ease, opacity 0.3s ease, box-shadow 0.3s ease, border-color 0.3s ease, background-color 0.3s ease, color 0.3s ease;
4074 }
4075
4076 html[data-estilo="saiyan"] .discover-person:hover,
4077 html[data-estilo="saiyan"] .certificate-item:hover {
4078 transform: translateY(-3px);
4079 box-shadow: 0 20px 50px rgba(250, 204, 21, 0.25);
4080 }
4081
4082 html[data-estilo="saiyan"] .certificate-item.active {
4083 border-left-color: #f97316;
4084 box-shadow: inset 0 0 15px rgba(249, 115, 22, 0.2);
4085 }
4086
4087 html[data-estilo="saiyan"] .discover-info strong,
4088 html[data-estilo="saiyan"] .cert-title,
4089 html[data-estilo="saiyan"] .activity-item strong { color: #ffffff; }
4090
4091 html[data-estilo="saiyan"] .cert-desc,
4092 html[data-estilo="saiyan"] .activity-item { color: #bfdbfe; }
4093
4094 html[data-estilo="saiyan"] .badge-green {
4095 background: rgba(74, 222, 128, 0.15);
4096 color: #bbf7d0;
4097 border: 1px solid #4ade80;
4098 }
4099
4100 html[data-estilo="saiyan"] .badge-gray {
4101 background: rgba(15, 23, 42, 0.6);
4102 color: #94a3b8;
4103 border: 1px solid #334155;
4104 }
4105
4106 html[data-estilo="saiyan"] .proposito-modal {
4107 background: #1e3a8a;
4108 border: 3px solid #facc15;
4109 box-shadow: 0 0 80px rgba(250, 204, 21, 0.5);
4110 }
4111
4112 html[data-estilo="saiyan"] .proposito-modal-sub { color: #bfdbfe; }
4113
4114 /* ============================================================================
4115 CORRECCIÓN DE FONDOS BLANCOS RESIDUALES
4116 Contenedores de perfil.css / usuario.css que aún usan #fff o #f9fafb y que
4117 los skins deben re-tematizar (propósito de vida, aportes, respuestas, etc.)
4118 ============================================================================ */
4119
4120 /* --- Cyber --- */
4121 html[data-estilo="cyber"] .perfil-container .card {
4122 background: #161b22;
4123 border: 1px solid #30363d;
4124 }
4125 html[data-estilo="cyber"] .purpose-box {
4126 background: #0d1117;
4127 border: 1px solid #21262d;
4128 border-left: 3px solid #3fb950;
4129 }
4130 html[data-estilo="cyber"] .purpose-box strong { color: #3fb950; }
4131 html[data-estilo="cyber"] .purpose-box p { color: #c9d1d9; }
4132 html[data-estilo="cyber"] .section-heading,
4133 html[data-estilo="cyber"] .subsection-heading,
4134 html[data-estilo="cyber"] .sub-heading {
4135 color: #e6edf3;
4136 border-bottom-color: #21262d;
4137 }
4138 html[data-estilo="cyber"] .public-item {
4139 background: #161b22;
4140 border-color: #30363d;
4141 }
4142 html[data-estilo="cyber"] .public-item strong { color: #e6edf3; }
4143 html[data-estilo="cyber"] .public-item p,
4144 html[data-estilo="cyber"] .public-item .item-meta { color: #8b949e; }
4145 html[data-estilo="cyber"] .avatar-modal-content {
4146 background: #161b22;
4147 border: 1px solid #30363d;
4148 }
4149 html[data-estilo="cyber"] .materia-tag {
4150 background: rgba(46, 160, 67, 0.12);
4151 color: #3fb950;
4152 border-color: rgba(46, 160, 67, 0.35);
4153 }
4154 html[data-estilo="cyber"] .prof-detail-list { color: #8b949e; }
4155 html[data-estilo="cyber"] .prof-detail-list strong { color: #e6edf3; }
4156
4157 /* --- Medieval --- */
4158 html[data-estilo="medieval"] .perfil-container .card {
4159 background: linear-gradient(135deg, rgba(21, 15, 10, 0.92) 0%, rgba(8, 6, 4, 0.96) 100%);
4160 border: 2px solid #3a2e1d;
4161 border-left: 6px solid #d4af37;
4162 }
4163 html[data-estilo="medieval"] .purpose-box {
4164 background: rgba(21, 15, 10, 0.6);
4165 border: 1px solid #3a2e1d;
4166 border-left: 3px solid #d4af37;
4167 }
4168 html[data-estilo="medieval"] .purpose-box strong { color: #d4af37; }
4169 html[data-estilo="medieval"] .purpose-box p { color: #cbb89b; }
4170 html[data-estilo="medieval"] .section-heading,
4171 html[data-estilo="medieval"] .subsection-heading,
4172 html[data-estilo="medieval"] .sub-heading {
4173 color: #f3e5ab;
4174 border-bottom-color: #3a2e1d;
4175 }
4176 html[data-estilo="medieval"] .public-item {
4177 background: rgba(21, 15, 10, 0.6);
4178 border-color: #3a2e1d;
4179 }
4180 html[data-estilo="medieval"] .public-item strong { color: #f3e5ab; }
4181 html[data-estilo="medieval"] .public-item p,
4182 html[data-estilo="medieval"] .public-item .item-meta { color: #a39e93; }
4183 html[data-estilo="medieval"] .avatar-modal-content {
4184 background: #1a130c;
4185 border: 1px solid #3a2e1d;
4186 }
4187 html[data-estilo="medieval"] .materia-tag {
4188 background: rgba(212, 175, 55, 0.12);
4189 color: #f3e5ab;
4190 border-color: #8a6d1f;
4191 }
4192 html[data-estilo="medieval"] .prof-detail-list { color: #a39e93; }
4193 html[data-estilo="medieval"] .prof-detail-list strong { color: #f3e5ab; }
4194
4195 /* --- Saiyan --- */
4196 html[data-estilo="saiyan"] .perfil-container .card {
4197 background: #1e3a8a;
4198 border: 3px solid #facc15;
4199 border-left: 8px solid #ffffff;
4200 }
4201 html[data-estilo="saiyan"] .purpose-box {
4202 background: #0f172a;
4203 border: 1px solid #facc15;
4204 border-left: 3px solid #f97316;
4205 }
4206 html[data-estilo="saiyan"] .purpose-box strong { color: #facc15; }
4207 html[data-estilo="saiyan"] .purpose-box p { color: #ffffff; }
4208 html[data-estilo="saiyan"] .section-heading,
4209 html[data-estilo="saiyan"] .subsection-heading,
4210 html[data-estilo="saiyan"] .sub-heading {
4211 color: #ffffff;
4212 border-bottom-color: #facc15;
4213 }
4214 html[data-estilo="saiyan"] .public-item {
4215 background: #1e3a8a;
4216 border-color: #facc15;
4217 }
4218 html[data-estilo="saiyan"] .public-item strong { color: #facc15; }
4219 html[data-estilo="saiyan"] .public-item p,
4220 html[data-estilo="saiyan"] .public-item .item-meta { color: #ffffff; }
4221 html[data-estilo="saiyan"] .avatar-modal-content {
4222 background: #1e3a8a;
4223 border: 1px solid #facc15;
4224 }
4225 html[data-estilo="saiyan"] .materia-tag {
4226 background: rgba(249, 115, 22, 0.18);
4227 color: #facc15;
4228 border-color: #f97316;
4229 }
4230 html[data-estilo="saiyan"] .prof-detail-list { color: #bfdbfe; }
4231 html[data-estilo="saiyan"] .prof-detail-list strong { color: #facc15; }
4232
4233 /* --- Recuadros de respuestas/archivos incrustados de Inicio (.embed-box) --- */
4234 html[data-estilo="cyber"] .inicio-container .embed-box {
4235 background-color: #0d1117;
4236 border-left-color: #3fb950;
4237 }
4238 html[data-estilo="cyber"] .inicio-container .embed-box strong { color: #3fb950; }
4239 html[data-estilo="cyber"] .inicio-container .embed-box p { color: #c9d1d9; }
4240 html[data-estilo="cyber"] .inicio-container .embed-box.prof-box {
4241 background-color: #0b1520;
4242 border-left-color: #38bdf8;
4243 }
4244 html[data-estilo="cyber"] .inicio-container .embed-box code { background: #21262d; }
4245
4246 html[data-estilo="medieval"] .inicio-container .embed-box {
4247 background-color: rgba(21, 15, 10, 0.6);
4248 border-left-color: #d4af37;
4249 }
4250 html[data-estilo="medieval"] .inicio-container .embed-box strong { color: #f3e5ab; }
4251 html[data-estilo="medieval"] .inicio-container .embed-box p { color: #cbb89b; }
4252 html[data-estilo="medieval"] .inicio-container .embed-box.prof-box {
4253 background-color: #14202e;
4254 border-left-color: #8ab4f8;
4255 }
4256 html[data-estilo="medieval"] .inicio-container .embed-box code { background: #3a2e1d; }
4257
4258 html[data-estilo="saiyan"] .inicio-container .embed-box {
4259 background-color: #0f172a;
4260 border-left-color: #f97316;
4261 }
4262 html[data-estilo="saiyan"] .inicio-container .embed-box strong { color: #facc15; }
4263 html[data-estilo="saiyan"] .inicio-container .embed-box p { color: #ffffff; }
4264 html[data-estilo="saiyan"] .inicio-container .embed-box.prof-box {
4265 background-color: #16233f;
4266 border-left-color: #93c5fd;
4267 }
4268 html[data-estilo="saiyan"] .inicio-container .embed-box code { background: #334155; }
4269
4270 /* --- Recuadros de estadísticas (.stat-box / .red-stat) de Perfil y Usuario --- */
4271 html[data-estilo="cyber"] .stat-box {
4272 background: #0d1117;
4273 border: 1px solid #21262d;
4274 }
4275 html[data-estilo="cyber"] .red-stat {
4276 background: #0d1117;
4277 border: 1px solid #21262d;
4278 }
4279
4280 html[data-estilo="medieval"] .stat-box {
4281 background: rgba(21, 15, 10, 0.6);
4282 border: 1px solid #3a2e1d;
4283 }
4284 html[data-estilo="medieval"] .red-stat {
4285 background: rgba(21, 15, 10, 0.6);
4286 border: 1px solid #3a2e1d;
4287 }
4288
4289 html[data-estilo="saiyan"] .stat-box {
4290 background: #0f172a;
4291 border: 1px solid #facc15;
4292 }
4293 html[data-estilo="saiyan"] .red-stat {
4294 background: #0f172a;
4295 border: 1px solid #facc15;
4296 }
4297
4298 /* ============================================================
4299 PANEL ADMINISTRATIVO : TARJETAS KPI, TABLAS Y CABECERAS
4300 (corrección de fondos blancos residuales en admin.css)
4301 ============================================================ */
4302 /* --- Cyber --- */
4303 html[data-estilo="cyber"] .admin-container .kpi-card {
4304 background: #161b22;
4305 border: 1px solid #30363d;
4306 border-top: 3px solid #3fb950;
4307 }
4308 html[data-estilo="cyber"] .admin-container .kpi-card.alert { border-top-color: #dc2626; }
4309 html[data-estilo="cyber"] .admin-container .kpi-value { color: #e6edf3; }
4310 html[data-estilo="cyber"] .admin-container .kpi-label { color: #8b949e; }
4311 html[data-estilo="cyber"] .admin-container .kpi-sub { color: #8b949e; }
4312 html[data-estilo="cyber"] .admin-container .admin-title h2,
4313 html[data-estilo="cyber"] .admin-container .section-header { color: #e6edf3; }
4314 html[data-estilo="cyber"] .admin-container .admin-title p { color: #8b949e; }
4315 html[data-estilo="cyber"] .admin-container .admin-table th {
4316 background: #0d1117;
4317 color: #c9d1d9;
4318 border-bottom-color: #30363d;
4319 }
4320 html[data-estilo="cyber"] .admin-container .admin-table td {
4321 border-bottom-color: #21262d;
4322 color: #c9d1d9;
4323 }
4324 html[data-estilo="cyber"] .admin-container .admin-table tr:hover { background: #161b22; }
4325 html[data-estilo="cyber"] .admin-container .form-group label { color: #c9d1d9; }
4326
4327 /* --- Medieval --- */
4328 html[data-estilo="medieval"] .admin-container .kpi-card {
4329 background: linear-gradient(135deg, rgba(21, 15, 10, 0.92) 0%, rgba(8, 6, 4, 0.96) 100%);
4330 border: 1px solid #3a2e1d;
4331 border-top: 3px solid #d4af37;
4332 }
4333 html[data-estilo="medieval"] .admin-container .kpi-card.alert { border-top-color: #b91c1c; }
4334 html[data-estilo="medieval"] .admin-container .kpi-value { color: #f3e5ab; }
4335 html[data-estilo="medieval"] .admin-container .kpi-label { color: #a39e93; }
4336 html[data-estilo="medieval"] .admin-container .kpi-sub { color: #a39e93; }
4337 html[data-estilo="medieval"] .admin-container .admin-title h2,
4338 html[data-estilo="medieval"] .admin-container .section-header { color: #f3e5ab; }
4339 html[data-estilo="medieval"] .admin-container .admin-title p { color: #a39e93; }
4340 html[data-estilo="medieval"] .admin-container .admin-table th {
4341 background: #1a130c;
4342 color: #f3e5ab;
4343 border-bottom-color: #3a2e1d;
4344 }
4345 html[data-estilo="medieval"] .admin-container .admin-table td {
4346 border-bottom-color: #3a2e1d;
4347 color: #cbb89b;
4348 }
4349 html[data-estilo="medieval"] .admin-container .admin-table tr:hover { background: rgba(21, 15, 10, 0.6); }
4350 html[data-estilo="medieval"] .admin-container .form-group label { color: #cbb89b; }
4351
4352 /* --- Saiyan --- */
4353 html[data-estilo="saiyan"] .admin-container .kpi-card {
4354 background: #1e3a8a;
4355 border: 2px solid #facc15;
4356 border-top: 4px solid #f97316;
4357 }
4358 html[data-estilo="saiyan"] .admin-container .kpi-card.alert { border-top-color: #f97316; }
4359 html[data-estilo="saiyan"] .admin-container .kpi-value {
4360 color: #facc15;
4361 font-weight: 900;
4362 text-shadow: 2px 2px 0px #f97316;
4363 }
4364 html[data-estilo="saiyan"] .admin-container .kpi-label { color: #ffffff; }
4365 html[data-estilo="saiyan"] .admin-container .kpi-sub { color: #bfdbfe; }
4366 html[data-estilo="saiyan"] .admin-container .admin-title h2,
4367 html[data-estilo="saiyan"] .admin-container .section-header { color: #ffffff; }
4368 html[data-estilo="saiyan"] .admin-container .admin-title p { color: #bfdbfe; }
4369 html[data-estilo="saiyan"] .admin-container .admin-table th {
4370 background: #0f172a;
4371 color: #facc15;
4372 border-bottom-color: #facc15;
4373 }
4374 html[data-estilo="saiyan"] .admin-container .admin-table td {
4375 border-bottom-color: #facc15;
4376 color: #ffffff;
4377 }
4378 html[data-estilo="saiyan"] .admin-container .admin-table tr:hover { background: #16233f; }
4379 html[data-estilo="saiyan"] .admin-container .form-group label { color: #bfdbfe; }
4380
4381 /* ============================================================
4382 PANEL DOCENTE : TARJETAS KPI, TABLAS Y MODAL DE ASESORIAS
4383 ============================================================ */
4384 /* --- Cyber --- */
4385 html[data-estilo="cyber"] .docente-kpi {
4386 background: #161b22;
4387 border: 1px solid #30363d;
4388 border-top: 3px solid #38bdf8;
4389 }
4390 html[data-estilo="cyber"] .docente-kpi .val { color: #e6edf3; }
4391 html[data-estilo="cyber"] .docente-kpi .lbl { color: #8b949e; }
4392 html[data-estilo="cyber"] .docente-header .header-info p { color: #8b949e; }
4393 html[data-estilo="cyber"] .docente-section-header h3 { border-bottom-color: #21262d; color: #e6edf3; }
4394 html[data-estilo="cyber"] .docente-table th { background: #0d1117; color: #c9d1d9; border-bottom-color: #30363d; }
4395 html[data-estilo="cyber"] .docente-table td { border-bottom-color: #21262d; color: #c9d1d9; }
4396 html[data-estilo="cyber"] .docente-meta { color: #8b949e; }
4397 html[data-estilo="cyber"] .docente-asistencia-modal { background: #161b22; border: 1px solid #30363d; }
4398 html[data-estilo="cyber"] .docente-asistencia-modal h3 { color: #e6edf3; }
4399 html[data-estilo="cyber"] .docente-asistencia-modal label { color: #c9d1d9; }
4400 html[data-estilo="cyber"] .docente-asistencia-modal input,
4401 html[data-estilo="cyber"] .docente-asistencia-modal select,
4402 html[data-estilo="cyber"] .docente-asistencia-modal textarea { background: #0d1117; color: #e6edf3; border-color: #30363d; }
4403
4404 /* --- Medieval --- */
4405 html[data-estilo="medieval"] .docente-kpi {
4406 background: linear-gradient(135deg, rgba(21, 15, 10, 0.92) 0%, rgba(8, 6, 4, 0.96) 100%);
4407 border: 1px solid #3a2e1d;
4408 border-top: 3px solid #d4af37;
4409 }
4410 html[data-estilo="medieval"] .docente-kpi .val { color: #f3e5ab; }
4411 html[data-estilo="medieval"] .docente-kpi .lbl { color: #a39e93; }
4412 html[data-estilo="medieval"] .docente-header .header-info p { color: #a39e93; }
4413 html[data-estilo="medieval"] .docente-section-header h3 { border-bottom-color: #3a2e1d; color: #f3e5ab; }
4414 html[data-estilo="medieval"] .docente-table th { background: #1a130c; color: #f3e5ab; border-bottom-color: #3a2e1d; }
4415 html[data-estilo="medieval"] .docente-table td { border-bottom-color: #3a2e1d; color: #cbb89b; }
4416 html[data-estilo="medieval"] .docente-meta { color: #a39e93; }
4417 html[data-estilo="medieval"] .docente-asistencia-modal { background: #1a130c; border: 1px solid #3a2e1d; }
4418 html[data-estilo="medieval"] .docente-asistencia-modal h3 { color: #f3e5ab; }
4419 html[data-estilo="medieval"] .docente-asistencia-modal label { color: #cbb89b; }
4420 html[data-estilo="medieval"] .docente-asistencia-modal input,
4421 html[data-estilo="medieval"] .docente-asistencia-modal select,
4422 html[data-estilo="medieval"] .docente-asistencia-modal textarea { background: #120d07; color: #f3e5ab; border-color: #3a2e1d; }
4423
4424 /* --- Saiyan --- */
4425 html[data-estilo="saiyan"] .docente-kpi {
4426 background: #1e3a8a;
4427 border: 2px solid #facc15;
4428 border-top: 4px solid #f97316;
4429 }
4430 html[data-estilo="saiyan"] .docente-kpi .val {
4431 color: #facc15;
4432 font-weight: 900;
4433 text-shadow: 2px 2px 0px #f97316;
4434 }
4435 html[data-estilo="saiyan"] .docente-kpi .lbl { color: #ffffff; }
4436 html[data-estilo="saiyan"] .docente-header .header-info p { color: #bfdbfe; }
4437 html[data-estilo="saiyan"] .docente-section-header h3 { border-bottom-color: #facc15; color: #ffffff; }
4438 html[data-estilo="saiyan"] .docente-table th { background: #0f172a; color: #facc15; border-bottom-color: #facc15; }
4439 html[data-estilo="saiyan"] .docente-table td { border-bottom-color: #facc15; color: #ffffff; }
4440 html[data-estilo="saiyan"] .docente-meta { color: #bfdbfe; }
4441 html[data-estilo="saiyan"] .docente-asistencia-modal { background: #1e3a8a; border: 2px solid #facc15; }
4442 html[data-estilo="saiyan"] .docente-asistencia-modal h3 { color: #ffffff; }
4443 html[data-estilo="saiyan"] .docente-asistencia-modal label { color: #bfdbfe; }
4444 html[data-estilo="saiyan"] .docente-asistencia-modal input,
4445 html[data-estilo="saiyan"] .docente-asistencia-modal select,
4446 html[data-estilo="saiyan"] .docente-asistencia-modal textarea { background: #0f172a; color: #ffffff; border-color: #facc15; }
4447 /* ============================================================
4448 ESTILO: CYBER NOIR EDITION
4449 Callejon nocturno con neon rojo, lluvia digital y expedientes.
4450 Mockup: "Cyber Noir Edition". Inyectado por estilos.js.
4451 ============================================================ */
4452
4453 /* --- Paleta global del skin --- */
4454 html[data-estilo="noir"] {
4455 --accent: #e11d48;
4456 --accent-dark: #9f1239;
4457 --accent-mid: #fb7185;
4458 --accent-bright: #fda4af;
4459 --accent-deep: #3a0011;
4460 --accent-soft: #14050a;
4461 --accent-soft-border: #3a0011;
4462 --accent-contrast: #080305;
4463
4464 --primary-color: #e11d48;
4465 --secondary-color: #fb7185;
4466 --link-color: #fb7185;
4467 --heading-color: #ffffff;
4468 --text-color: #e2e8f0;
4469
4470 --sidebar-bg: #14050a;
4471 --sidebar-border: #e11d48;
4472 --sidebar-text: #94a3b8;
4473 --sidebar-text-hover: #ffffff;
4474 --sidebar-item-hover-bg: rgba(225, 29, 72, 0.2);
4475 --sidebar-item-active-bg: #e11d48;
4476 --sidebar-accent: #fb7185;
4477
4478 --topbar-bg: rgba(17, 6, 9, 0.9);
4479
4480 --btn-primary-bg: #e11d48;
4481 --btn-primary-text: #ffffff;
4482 --btn-outline-border: #e11d48;
4483 --btn-outline-text: #fb7185;
4484 }
4485
4486 /* --- Tipografia y geometria --- */
4487 html[data-estilo="noir"] * {
4488 font-family: 'Share Tech Mono', 'Special Elite', 'Courier New', monospace;
4489 border-radius: 0 !important;
4490 }
4491
4492 html[data-estilo="noir"] body {
4493 background-color: #080305;
4494 color: #f1f5f9;
4495 position: relative;
4496 }
4497
4498 html[data-estilo="noir"] a { color: #fb7185; }
4499
4500 html[data-estilo="noir"] h1,
4501 html[data-estilo="noir"] h2,
4502 html[data-estilo="noir"] h3,
4503 html[data-estilo="noir"] h4 {
4504 color: #ffffff;
4505 letter-spacing: 0.5px;
4506 }
4507
4508 html[data-estilo="noir"] .page-title { text-shadow: 0 0 12px rgba(225, 29, 72, 0.5); }
4509 html[data-estilo="noir"] .page-description { color: #94a3b8; }
4510
4511 html[data-estilo="noir"] .app-layout {
4512 position: relative;
4513 z-index: 2;
4514 }
4515
4516 /* ============================================================
4517 FONDO: CALLEJON NOIR Y LLUVIA DIGITAL OBLICUA
4518 ============================================================ */
4519 html[data-estilo="noir"] .noir-bg-viewport {
4520 position: fixed;
4521 top: 0; left: 0;
4522 width: 100vw;
4523 height: 100vh;
4524 pointer-events: none;
4525 z-index: 0;
4526 overflow: hidden;
4527 transform-style: preserve-3d;
4528 }
4529
4530 html[data-estilo="noir"] .noir-svg-layer {
4531 position: absolute;
4532 top: -15%;
4533 left: -15%;
4534 width: 130vw;
4535 height: 130vh;
4536 transform: translate3d(0px, 0px, 0px) scale(1) rotateX(12deg);
4537 transition: transform 1.6s cubic-bezier(0.16, 1, 0.3, 1);
4538 }
4539
4540 html[data-estilo="noir"] .rain-streak {
4541 stroke: #e11d48;
4542 stroke-width: 1.5;
4543 opacity: 0.6;
4544 stroke-dasharray: 20, 40;
4545 animation: noirRain 1.2s infinite linear;
4546 }
4547
4548 @keyframes noirRain {
4549 0% { transform: translateY(-100px); }
4550 100% { transform: translateY(300px); }
4551 }
4552
4553 html[data-estilo="noir"] .neon-sign {
4554 fill: none;
4555 stroke: #ff0055;
4556 stroke-width: 3;
4557 filter: drop-shadow(0 0 12px #ff0055);
4558 animation: noirNeon 3s infinite;
4559 }
4560
4561 @keyframes noirNeon {
4562 0%, 19%, 21%, 23%, 25%, 54%, 56%, 100% { opacity: 1; filter: drop-shadow(0 0 12px #ff0055); }
4563 20%, 24%, 55% { opacity: 0.3; filter: drop-shadow(0 0 2px #ff0055); }
4564 }
4565
4566 html[data-estilo="noir"] .atmosphere-overlay {
4567 position: fixed;
4568 top: 0; left: 0;
4569 width: 100vw;
4570 height: 100vh;
4571 background: radial-gradient(circle at 30% 30%, rgba(225, 29, 72, 0.12) 0%, rgba(8, 3, 5, 0.55) 85%);
4572 pointer-events: none;
4573 z-index: 1;
4574 }
4575
4576 /* --- Cortina de transicion (barrido noir) --- */
4577 html[data-estilo="noir"] .noir-blade-transition {
4578 position: fixed;
4579 top: 0; left: 0;
4580 width: 100vw;
4581 height: 100vh;
4582 background: linear-gradient(135deg, #e11d48 0%, #3a0011 50%, #080305 100%);
4583 z-index: 9999;
4584 clip-path: polygon(0 0, 0 0, 0 100%, 0 100%);
4585 transition: clip-path 0.55s cubic-bezier(0.77, 0, 0.175, 1);
4586 pointer-events: none;
4587 border-right: 5px solid #ffffff;
4588 }
4589
4590 html[data-estilo="noir"] .noir-blade-transition.active {
4591 clip-path: polygon(0 0, 100% 0, 100% 100%, 0 100%);
4592 }
4593
4594 /* ============================================================
4595 SIDEBAR: COMANDANCIA NOIR
4596 ============================================================ */
4597 html[data-estilo="noir"] .sidebar {
4598 background: linear-gradient(180deg, #14050a 0%, #080305 100%);
4599 border-right: 3px solid #e11d48;
4600 box-shadow: 20px 0 60px rgba(0, 0, 0, 0.95);
4601 }
4602
4603 html[data-estilo="noir"] .sidebar-header {
4604 border-bottom: 2px solid #e11d48;
4605 }
4606
4607 html[data-estilo="noir"] .sidebar-header h1 {
4608 color: #ffffff;
4609 font-family: 'Special Elite', 'Share Tech Mono', monospace;
4610 font-size: 1.3rem;
4611 letter-spacing: 2px;
4612 text-transform: uppercase;
4613 text-shadow: 2px 2px 0px #e11d48;
4614 }
4615
4616 html[data-estilo="noir"] .sidebar-header small { color: #94a3b8; }
4617
4618 html[data-estilo="noir"] .sidebar-user {
4619 background: rgba(225, 29, 72, 0.1);
4620 border: 2px solid #e11d48;
4621 }
4622
4623 html[data-estilo="noir"] .sidebar-user small {
4624 color: #ffffff;
4625 font-weight: bold;
4626 letter-spacing: 0.5px;
4627 }
4628
4629 html[data-estilo="noir"] .sidebar-avatar {
4630 border: 2px solid #ffffff;
4631 box-shadow: 0 0 10px rgba(225, 29, 72, 0.6);
4632 }
4633
4634 html[data-estilo="noir"] .sidebar-nav a {
4635 color: #94a3b8;
4636 border-left: 4px solid transparent;
4637 text-transform: uppercase;
4638 letter-spacing: 1px;
4639 font-weight: bold;
4640 transition: transform 0.25s ease, opacity 0.25s ease, box-shadow 0.25s ease, border-color 0.25s ease, background-color 0.25s ease, color 0.25s ease;
4641 }
4642
4643 html[data-estilo="noir"] .sidebar-nav a:hover {
4644 background: rgba(225, 29, 72, 0.2);
4645 color: #ffffff;
4646 border-left-color: #e11d48;
4647 padding-left: 18px;
4648 }
4649
4650 html[data-estilo="noir"] .sidebar-nav a.active {
4651 background: #e11d48;
4652 color: #ffffff;
4653 border-left-color: #ffffff;
4654 box-shadow: inset 0 0 15px rgba(255, 255, 255, 0.4);
4655 }
4656
4657 html[data-estilo="noir"] .sidebar-footer {
4658 border-top: 2px solid rgba(225, 29, 72, 0.5);
4659 }
4660
4661 html[data-estilo="noir"] .sidebar-footer .btn {
4662 background: #2b000d;
4663 border: 2px solid #e11d48;
4664 color: #fb7185;
4665 text-transform: uppercase;
4666 font-weight: bold;
4667 letter-spacing: 1.5px;
4668 }
4669
4670 html[data-estilo="noir"] .sidebar-footer .btn:hover {
4671 background: #e11d48;
4672 color: #ffffff;
4673 box-shadow: 0 0 25px rgba(225, 29, 72, 0.9);
4674 }
4675
4676 /* ============================================================
4677 TOPBAR
4678 ============================================================ */
4679 html[data-estilo="noir"] .topbar {
4680 background: var(--topbar-bg);
4681 border-bottom: 2px solid rgba(225, 29, 72, 0.5);
4682 backdrop-filter: none;
4683 }
4684
4685 html[data-estilo="noir"] .menu-toggle {
4686 color: #e11d48;
4687 background: rgba(17, 6, 9, 0.9);
4688 border: 2px solid #e11d48;
4689 box-shadow: 0 0 10px rgba(0, 0, 0, 0.8);
4690 }
4691
4692 html[data-estilo="noir"] .menu-toggle:hover {
4693 transform: scale(1.1);
4694 border-color: #ffffff;
4695 box-shadow: 0 0 20px rgba(225, 29, 72, 0.8);
4696 }
4697
4698 html[data-estilo="noir"] .menu-backdrop { background: rgba(0, 0, 0, 0.6); }
4699
4700 /* --- Global search --- */
4701 html[data-estilo="noir"] .global-search-input {
4702 background: rgba(17, 6, 9, 0.9);
4703 border: 2px solid #e11d48;
4704 color: #ffffff;
4705 box-shadow: inset 0 0 10px rgba(0, 0, 0, 0.8);
4706 }
4707
4708 html[data-estilo="noir"] .global-search-input::placeholder { color: #9f5463; }
4709
4710 html[data-estilo="noir"] .global-search-input:focus {
4711 border-color: #ffffff;
4712 box-shadow: 0 0 25px rgba(225, 29, 72, 0.5), inset 0 0 10px rgba(0, 0, 0, 0.8);
4713 }
4714
4715 html[data-estilo="noir"] .global-search-dropdown {
4716 background: #110609;
4717 border: 2px solid #e11d48;
4718 box-shadow: 0 20px 50px rgba(0, 0, 0, 0.9);
4719 }
4720
4721 html[data-estilo="noir"] .global-search-item { border-bottom: 1px solid #3a0011; }
4722 html[data-estilo="noir"] .global-search-item:hover { background: #1c0a10; }
4723
4724 html[data-estilo="noir"] .global-search-info strong { color: #ffffff; }
4725 html[data-estilo="noir"] .global-search-info span { color: #94a3b8; }
4726
4727 html[data-estilo="noir"] .global-search-chat {
4728 border: 1px solid #e11d48;
4729 color: #fb7185;
4730 background: rgba(225, 29, 72, 0.08);
4731 }
4732
4733 html[data-estilo="noir"] .global-search-chat:hover {
4734 background: #e11d48;
4735 color: #ffffff;
4736 }
4737
4738 html[data-estilo="noir"] .global-search-empty { color: #94a3b8; }
4739
4740 /* --- Notificaciones --- */
4741 html[data-estilo="noir"] .notif-toggle {
4742 background: rgba(17, 6, 9, 0.9);
4743 border: 2px solid #e11d48;
4744 color: #e11d48;
4745 box-shadow: 0 0 10px rgba(0, 0, 0, 0.8);
4746 }
4747
4748 html[data-estilo="noir"] .notif-toggle:hover {
4749 transform: scale(1.1);
4750 background: #e11d48;
4751 color: #ffffff;
4752 box-shadow: 0 0 25px rgba(225, 29, 72, 0.8);
4753 }
4754
4755 html[data-estilo="noir"] .notif-badge {
4756 background: #e11d48;
4757 color: #ffffff;
4758 box-shadow: 0 0 8px #e11d48;
4759 }
4760
4761 html[data-estilo="noir"] .notif-panel {
4762 background: #14050a;
4763 border: 2px solid #e11d48;
4764 box-shadow: 0 20px 50px rgba(0, 0, 0, 0.9);
4765 }
4766
4767 html[data-estilo="noir"] .notif-panel-head { border-bottom: 1px solid #3a0011; }
4768 html[data-estilo="noir"] .notif-marcar-todas { color: #fb7185; }
4769 html[data-estilo="noir"] .notif-marcar-todas:hover { color: #ffffff; }
4770 html[data-estilo="noir"] .notif-item:hover { background: #1c0a10; }
4771 html[data-estilo="noir"] .notif-item-info strong { color: #ffffff; }
4772 html[data-estilo="noir"] .notif-item-info span { color: #94a3b8; }
4773 html[data-estilo="noir"] .notif-item-badge {
4774 background: rgba(225, 29, 72, 0.2);
4775 color: #fda4af;
4776 }
4777
4778 html[data-estilo="noir"] .notif-vacio { color: #94a3b8; }
4779
4780 /* ============================================================
4781 CONTENIDO Y COMPONENTES
4782 ============================================================ */
4783 html[data-estilo="noir"] .main-content { background: transparent; }
4784
4785 html[data-estilo="noir"] .main-content > * {
4786 opacity: 0;
4787 transform: translateY(22px) scale(0.98);
4788 animation: viewEntrance 0.6s cubic-bezier(0.16, 1, 0.3, 1) forwards;
4789 }
4790
4791 html[data-estilo="noir"] .main-content > *:nth-child(1) { animation-delay: 0.05s; }
4792 html[data-estilo="noir"] .main-content > *:nth-child(2) { animation-delay: 0.12s; }
4793 html[data-estilo="noir"] .main-content > *:nth-child(3) { animation-delay: 0.19s; }
4794 html[data-estilo="noir"] .main-content > *:nth-child(4) { animation-delay: 0.26s; }
4795
4796 html[data-estilo="noir"] .card {
4797 background: linear-gradient(135deg, rgba(24, 8, 14, 0.92) 0%, rgba(8, 3, 5, 0.96) 100%);
4798 border: 2px solid #e11d48;
4799 border-left: 8px solid #e11d48;
4800 box-shadow: 0 15px 40px rgba(0, 0, 0, 0.9);
4801 position: relative;
4802 overflow: hidden;
4803 backdrop-filter: none;
4804 transition: transform 0.35s cubic-bezier(0.16, 1, 0.3, 1), opacity 0.35s cubic-bezier(0.16, 1, 0.3, 1), box-shadow 0.35s cubic-bezier(0.16, 1, 0.3, 1), border-color 0.35s cubic-bezier(0.16, 1, 0.3, 1), background-color 0.35s cubic-bezier(0.16, 1, 0.3, 1), color 0.35s cubic-bezier(0.16, 1, 0.3, 1);
4805 }
4806
4807 html[data-estilo="noir"] .card::after {
4808 content: '//';
4809 position: absolute;
4810 top: 10px;
4811 right: 15px;
4812 font-size: 1.2rem;
4813 color: rgba(225, 29, 72, 0.3);
4814 pointer-events: none;
4815 }
4816
4817 html[data-estilo="noir"] .card:hover {
4818 border-color: #ffffff;
4819 border-left-color: #ffffff;
4820 box-shadow: 0 20px 60px rgba(225, 29, 72, 0.35);
4821 transform: translateY(-3px);
4822 }
4823
4824 html[data-estilo="noir"] .card-title {
4825 color: #ffffff;
4826 font-weight: 900;
4827 }
4828
4829 html[data-estilo="noir"] .card p,
4830 html[data-estilo="noir"] .card li { color: #cbd5e1; }
4831 html[data-estilo="noir"] .card strong { color: #ffffff; }
4832
4833 /* --- Botones --- */
4834 html[data-estilo="noir"] .btn {
4835 border: 2px solid #e11d48;
4836 color: #f1f5f9;
4837 background: rgba(17, 6, 9, 0.9);
4838 text-transform: uppercase;
4839 letter-spacing: 1px;
4840 font-weight: bold;
4841 transition: transform 0.25s cubic-bezier(0.16, 1, 0.3, 1), opacity 0.25s cubic-bezier(0.16, 1, 0.3, 1), box-shadow 0.25s cubic-bezier(0.16, 1, 0.3, 1), border-color 0.25s cubic-bezier(0.16, 1, 0.3, 1), background-color 0.25s cubic-bezier(0.16, 1, 0.3, 1), color 0.25s cubic-bezier(0.16, 1, 0.3, 1);
4842 }
4843
4844 html[data-estilo="noir"] .btn:hover {
4845 border-color: #ffffff;
4846 box-shadow: 0 0 20px rgba(225, 29, 72, 0.8);
4847 color: #ffffff;
4848 }
4849
4850 html[data-estilo="noir"] .btn-primary,
4851 html[data-estilo="noir"] .btn-primary:hover {
4852 background: #e11d48;
4853 border: 2px solid #ffffff;
4854 color: #ffffff;
4855 box-shadow: 0 0 20px rgba(225, 29, 72, 0.6);
4856 animation: noirPulse 3s infinite;
4857 }
4858
4859 html[data-estilo="noir"] .btn-primary:hover { transform: scale(1.03); background: #ffffff; color: #080305; box-shadow: 0 0 30px rgba(255, 255, 255, 0.6); }
4860
4861 @keyframes noirPulse {
4862 0%, 100% { box-shadow: 0 0 15px rgba(225, 29, 72, 0.6); }
4863 50% { box-shadow: 0 0 30px rgba(255, 255, 255, 0.8); }
4864 }
4865
4866 html[data-estilo="noir"] .btn-secondary {
4867 background: rgba(17, 6, 9, 0.9);
4868 border: 2px solid #e11d48;
4869 color: #fb7185;
4870 }
4871
4872 html[data-estilo="noir"] .btn-outline {
4873 background: transparent;
4874 border: 2px solid #e11d48;
4875 color: #fb7185;
4876 }
4877
4878 html[data-estilo="noir"] .btn-outline:hover {
4879 background: #e11d48;
4880 color: #ffffff;
4881 box-shadow: 0 0 20px rgba(225, 29, 72, 0.8);
4882 }
4883
4884 html[data-estilo="noir"] .btn-danger {
4885 border: 2px solid #ff2d55;
4886 color: #ff2d55;
4887 background: transparent;
4888 }
4889
4890 html[data-estilo="noir"] .btn-danger:hover {
4891 background: #ff2d55;
4892 color: #ffffff;
4893 }
4894
4895 html[data-estilo="noir"] .btn-success {
4896 border: 2px solid #22c55e;
4897 color: #4ade80;
4898 background: transparent;
4899 }
4900
4901 html[data-estilo="noir"] .btn-success:hover {
4902 background: #22c55e;
4903 color: #080305;
4904 }
4905
4906 /* Botones solid/outline de paneles admin y docente */
4907 html[data-estilo="noir"] .btn-solid {
4908 background: #e11d48;
4909 border: 2px solid #ffffff;
4910 color: #ffffff;
4911 box-shadow: 0 0 15px rgba(225, 29, 72, 0.6);
4912 }
4913
4914 html[data-estilo="noir"] .btn-solid:hover {
4915 background: #ffffff;
4916 color: #080305;
4917 border-color: #ffffff;
4918 }
4919
4920 html[data-estilo="noir"] .btn-danger-clean {
4921 background: #2b000d;
4922 border: 2px solid #e11d48;
4923 color: #fb7185;
4924 }
4925
4926 html[data-estilo="noir"] .btn-danger-clean:hover {
4927 background: #e11d48;
4928 color: #ffffff;
4929 }
4930
4931 html[data-estilo="noir"] .btn-success-clean {
4932 background: #052e11;
4933 border: 2px solid #22c55e;
4934 color: #4ade80;
4935 }
4936
4937 html[data-estilo="noir"] .btn-success-clean:hover {
4938 background: #22c55e;
4939 color: #080305;
4940 }
4941
4942 /* --- Formularios --- */
4943 html[data-estilo="noir"] input,
4944 html[data-estilo="noir"] select,
4945 html[data-estilo="noir"] textarea,
4946 html[data-estilo="noir"] .form-control {
4947 background: rgba(8, 3, 5, 0.9);
4948 border: 2px solid #e11d48;
4949 color: #ffffff;
4950 box-shadow: inset 0 0 8px rgba(0, 0, 0, 0.8);
4951 outline: none;
4952 transition: transform 0.3s, opacity 0.3s, box-shadow 0.3s, border-color 0.3s, background-color 0.3s, color 0.3s;
4953 }
4954
4955 html[data-estilo="noir"] input:focus,
4956 html[data-estilo="noir"] select:focus,
4957 html[data-estilo="noir"] textarea:focus,
4958 html[data-estilo="noir"] .form-control:focus {
4959 border-color: #ffffff;
4960 box-shadow: 0 0 20px rgba(225, 29, 72, 0.5), inset 0 0 8px rgba(0, 0, 0, 0.8);
4961 }
4962
4963 html[data-estilo="noir"] input::placeholder,
4964 html[data-estilo="noir"] textarea::placeholder,
4965 html[data-estilo="noir"] .form-control::placeholder { color: #9f5463; }
4966
4967 html[data-estilo="noir"] label { color: #cbd5e1; }
4968
4969 /* --- Insignias y avatares --- */
4970 html[data-estilo="noir"] .avatar {
4971 border: 2px solid #e11d48;
4972 box-shadow: 0 0 8px rgba(225, 29, 72, 0.4);
4973 }
4974
4975 html[data-estilo="noir"] .badge-info,
4976 html[data-estilo="noir"] .badge-primary {
4977 background: rgba(225, 29, 72, 0.2);
4978 color: #fda4af;
4979 border: 1px solid #e11d48;
4980 }
4981
4982 html[data-estilo="noir"] .badge-warning {
4983 background: rgba(245, 158, 11, 0.15);
4984 color: #fbbf24;
4985 border: 1px solid #b45309;
4986 }
4987
4988 html[data-estilo="noir"] .badge-success,
4989 html[data-estilo="noir"] .badge-green {
4990 background: rgba(34, 197, 94, 0.15);
4991 color: #4ade80;
4992 border: 1px solid #22c55e;
4993 }
4994
4995 html[data-estilo="noir"] .badge-danger,
4996 html[data-estilo="noir"] .badge-gray {
4997 background: rgba(225, 29, 72, 0.15);
4998 color: #94a3b8;
4999 border: 1px solid #e11d48;
5000 }
Showing first 5,000 of 9,462 lines. View raw