main
css 294 lines 6.29 KB
Raw
1 /* MAPS Connect - Base */
2
3 :root {
4 --primary-color: #ffffff;
5 --secondary-color: #7c3aed;
6 --success-color: #10b981;
7 --danger-color: #ef4444;
8 --warning-color: #f59e0b;
9 --gray-50: #f9fafb;
10 --gray-100: #f3f4f6;
11 --gray-200: #e5e7eb;
12 --gray-300: #d1d5db;
13 --gray-600: #4b5563;
14 --gray-800: #1f2937;
15 --gray-900: #111827;
16 --sidebar-width: 260px;
17 --header-height: 60px;
18 --border-radius: 4px;
19
20 /* Paleta de acento (verde por defecto; se personaliza con js/colores.js) */
21 --accent: #087527;
22 --accent-dark: #005a2b;
23 --accent-mid: #2ea043;
24 --accent-bright: #3fb950;
25 --accent-deep: #064913;
26 --accent-soft: #e8f5e9;
27 --accent-soft-border: #c8e6c9;
28 --accent-contrast: #ffffff;
29
30 /* Texto del contenido (independiente del sidebar) */
31 --text-color: #000000;
32 --heading-color: #111827;
33 --link-color: #087527;
34
35 /* Sidebar (independiente del texto) */
36 --sidebar-bg: #064913;
37 --sidebar-border: #087527;
38 --sidebar-text: #d1d5db;
39 --sidebar-text-hover: #ffffff;
40 --sidebar-item-hover-bg: #087527;
41 --sidebar-item-active-bg: #087527;
42 --sidebar-accent: #a3e635;
43
44 /* Topbar */
45 --topbar-bg: #087527;
46 --topbar-text: #ffffff;
47
48 /* Botones */
49 --btn-primary-bg: var(--primary-color);
50 --btn-primary-text: #2db849;
51 --btn-outline-border: var(--primary-color);
52 --btn-outline-text: var(--primary-color);
53 }
54
55 * {
56 margin: 0;
57 padding: 0;
58 box-sizing: border-box;
59 }
60
61 body {
62 font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', sans-serif;
63 background-color: var(--gray-100);
64 color: var(--text-color);
65 line-height: 1.5;
66 }
67
68 a {
69 color: var(--link-color);
70 text-decoration: none;
71 }
72
73 a:hover {
74 text-decoration: underline;
75 }
76
77 h1, h2, h3 {
78 color: var(--heading-color);
79 margin-bottom: 0.5rem;
80 }
81
82 .page-title {
83 font-size: 1.5rem;
84 margin-bottom: 1.5rem;
85 }
86
87 .page-description {
88 color: var(--gray-600);
89 margin-bottom: 1.5rem;
90 }
91
92 /* ============================================================
93 MODO OSCURO
94 Se activa añadiendo la clase "dark-mode" al elemento <html>.
95 Las variables se redefinen y la mayoría de componentes la
96 heredan; los colores fijos se sobrescriben con bloques .dark-mode.
97 ============================================================ */
98 html.dark-mode {
99 --primary-color: #2ea043;
100 --secondary-color: #8b5cf6;
101 --gray-50: #161b22;
102 --gray-100: #0d1117;
103 --gray-200: #21262d;
104 --gray-300: #30363d;
105 --gray-600: #8b949e;
106 --gray-800: #c9d1d9;
107 --gray-900: #e6edf3;
108 --text-color: #e6edf3;
109 --heading-color: #ffffff;
110 --link-color: #3fb950;
111 --btn-outline-border: #ffffff;
112 --btn-outline-text: #ffffff;
113
114 background-color: #0d1117;
115 color: #e6edf3;
116 }
117
118 html.dark-mode body {
119 background-color: #0d1117;
120 color: #e6edf3;
121 }
122
123 html.dark-mode .card {
124 background: #161b22;
125 border-color: #30363d;
126 }
127
128 html.dark-mode .form-control {
129 background: #0d1117;
130 color: #e6edf3;
131 border-color: #30363d;
132 }
133
134 html.dark-mode .form-control::placeholder {
135 color: #8b949e;
136 }
137
138 html.dark-mode .global-search-input,
139 html.dark-mode .global-search-dropdown,
140 html.dark-mode .notif-toggle,
141 html.dark-mode .notif-panel {
142 background: #161b22;
143 color: #e6edf3;
144 border-color: #30363d;
145 }
146
147 html.dark-mode .global-search-info strong,
148 html.dark-mode .notif-item-info strong {
149 color: #e6edf3;
150 }
151
152 html.dark-mode .global-search-info span,
153 html.dark-mode .notif-item-info span {
154 color: #8b949e;
155 }
156
157 html.dark-mode .global-search-item:hover,
158 html.dark-mode .notif-item:hover,
159 html.dark-mode .notif-toggle:hover {
160 background: #21262d;
161 }
162
163 html.dark-mode .toast {
164 background: #21262d;
165 color: #e6edf3;
166 border-color: #30363d;
167 }
168
169 html.dark-mode .alert-error {
170 background: #3a1d1d;
171 color: #fecaca;
172 border-color: #7f1d1d;
173 }
174
175 html.dark-mode .alert-success {
176 background: #12291d;
177 color: #a7f3d0;
178 border-color: #14532d;
179 }
180
181 html.dark-mode .follow-btn {
182 border-color: var(--accent-bright, #3fb950);
183 color: var(--accent-bright, #3fb950);
184 }
185
186 html.dark-mode .follow-btn:hover {
187 background: rgba(62, 185, 80, 0.15);
188 }
189
190 html.dark-mode .follow-btn.siguiendo {
191 background: var(--accent-bright, #3fb950);
192 color: var(--accent-contrast, #04160a);
193 }
194
195 /* Toggle de tema en Ajustes */
196 .tema-switch {
197 position: relative;
198 display: inline-block;
199 width: 54px;
200 height: 30px;
201 vertical-align: middle;
202 }
203 .tema-switch input {
204 opacity: 0;
205 width: 0;
206 height: 0;
207 }
208 .tema-switch .slider {
209 position: absolute;
210 cursor: pointer;
211 inset: 0;
212 background-color: var(--gray-300);
213 transition: background-color 0.2s ease;
214 border-radius: 999px;
215 }
216 .tema-switch .slider::before {
217 content: '';
218 position: absolute;
219 height: 24px;
220 width: 24px;
221 left: 3px;
222 bottom: 3px;
223 background: #ffffff;
224 transition: transform 0.2s ease;
225 border-radius: 50%;
226 }
227 .tema-switch input:checked + .slider {
228 background-color: var(--primary-color, #2ea043);
229 }
230 .tema-switch input:checked + .slider::before {
231 transform: translateX(24px);
232 }
233
234 .login-page html.dark-mode,
235 html.dark-mode .login-page .auth-layout,
236 html.dark-mode .register-page .auth-layout {
237 background-color: #0d1117;
238 }
239
240 /* ============================================================
241 MODO OSCURO — REFUERZO GLOBAL (controles, tablas, listas)
242 Aplica a todas las páginas para que todo se vea parejo.
243 ============================================================ */
244 html.dark-mode input,
245 html.dark-mode select,
246 html.dark-mode textarea {
247 background-color: #0d1117;
248 color: #e6edf3;
249 border-color: #30363d;
250 }
251
252 html.dark-mode select option {
253 background-color: #161b22;
254 color: #e6edf3;
255 }
256
257 html.dark-mode input::placeholder,
258 html.dark-mode textarea::placeholder {
259 color: #8b949e;
260 }
261
262 html.dark-mode label,
263 html.dark-mode legend {
264 color: #e6edf3;
265 }
266
267 html.dark-mode th {
268 color: #e6edf3;
269 }
270
271 html.dark-mode td {
272 color: #c9d1d9;
273 }
274
275 html.dark-mode hr {
276 border-color: #30363d;
277 }
278
279 html.dark-mode .btn-outline {
280 color: #e6edf3;
281 }
282
283 html.dark-mode .btn-secondary {
284 color: #ffffff;
285 }
286
287 html.dark-mode .pagina-body,
288 html.dark-mode .muestra-list-item,
289 html.dark-mode .visita-item,
290 html.dark-mode .estadistica-box,
291 html.dark-mode .item-lista {
292 background-color: #161b22;
293 color: #e6edf3;
294 }