##// END OF EJS Templates
fixed ldap issue and small template fix
marcink -
r748:88338675 beta
parent child Browse files
Show More
@@ -1,536 +1,536 b''
1 1 #!/usr/bin/env python
2 2 # encoding: utf-8
3 3 # authentication and permission libraries
4 4 # Copyright (C) 2009-2010 Marcin Kuzminski <marcin@python-works.com>
5 5 #
6 6 # This program is free software; you can redistribute it and/or
7 7 # modify it under the terms of the GNU General Public License
8 8 # as published by the Free Software Foundation; version 2
9 9 # of the License or (at your opinion) any later version of the license.
10 10 #
11 11 # This program is distributed in the hope that it will be useful,
12 12 # but WITHOUT ANY WARRANTY; without even the implied warranty of
13 13 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 14 # GNU General Public License for more details.
15 15 #
16 16 # You should have received a copy of the GNU General Public License
17 17 # along with this program; if not, write to the Free Software
18 18 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
19 19 # MA 02110-1301, USA.
20 20 """
21 21 Created on April 4, 2010
22 22
23 23 @author: marcink
24 24 """
25 25 from pylons import config, session, url, request
26 26 from pylons.controllers.util import abort, redirect
27 27 from rhodecode.lib.exceptions import *
28 28 from rhodecode.lib.utils import get_repo_slug
29 29 from rhodecode.lib.auth_ldap import AuthLdap
30 30 from rhodecode.model import meta
31 31 from rhodecode.model.user import UserModel
32 32 from rhodecode.model.caching_query import FromCache
33 33 from rhodecode.model.db import User, RepoToPerm, Repository, Permission, \
34 34 UserToPerm
35 35 import bcrypt
36 36 from decorator import decorator
37 37 import logging
38 38 import random
39 39 import traceback
40 40
41 41 log = logging.getLogger(__name__)
42 42
43 43 class PasswordGenerator(object):
44 44 """This is a simple class for generating password from
45 45 different sets of characters
46 46 usage:
47 47 passwd_gen = PasswordGenerator()
48 48 #print 8-letter password containing only big and small letters of alphabet
49 49 print passwd_gen.gen_password(8, passwd_gen.ALPHABETS_BIG_SMALL)
50 50 """
51 51 ALPHABETS_NUM = r'''1234567890'''#[0]
52 52 ALPHABETS_SMALL = r'''qwertyuiopasdfghjklzxcvbnm'''#[1]
53 53 ALPHABETS_BIG = r'''QWERTYUIOPASDFGHJKLZXCVBNM'''#[2]
54 54 ALPHABETS_SPECIAL = r'''`-=[]\;',./~!@#$%^&*()_+{}|:"<>?''' #[3]
55 55 ALPHABETS_FULL = ALPHABETS_BIG + ALPHABETS_SMALL + ALPHABETS_NUM + ALPHABETS_SPECIAL#[4]
56 56 ALPHABETS_ALPHANUM = ALPHABETS_BIG + ALPHABETS_SMALL + ALPHABETS_NUM#[5]
57 57 ALPHABETS_BIG_SMALL = ALPHABETS_BIG + ALPHABETS_SMALL
58 58 ALPHABETS_ALPHANUM_BIG = ALPHABETS_BIG + ALPHABETS_NUM#[6]
59 59 ALPHABETS_ALPHANUM_SMALL = ALPHABETS_SMALL + ALPHABETS_NUM#[7]
60 60
61 61 def __init__(self, passwd=''):
62 62 self.passwd = passwd
63 63
64 64 def gen_password(self, len, type):
65 65 self.passwd = ''.join([random.choice(type) for _ in xrange(len)])
66 66 return self.passwd
67 67
68 68
69 69 def get_crypt_password(password):
70 70 """Cryptographic function used for password hashing based on sha1
71 71 :param password: password to hash
72 72 """
73 73 return bcrypt.hashpw(password, bcrypt.gensalt(10))
74 74
75 75 def check_password(password, hashed):
76 76 return bcrypt.hashpw(password, hashed) == hashed
77 77
78 78 def authfunc(environ, username, password):
79 79 """
80 80 Authentication function used in Mercurial/Git/ and access control,
81 81 firstly checks for db authentication then if ldap is enabled for ldap
82 82 authentication, also creates ldap user if not in database
83 83
84 84 :param environ: needed only for using in Basic auth, can be None
85 85 :param username: username
86 86 :param password: password
87 87 """
88 88 user_model = UserModel()
89 89 user = user_model.get_by_username(username, cache=False)
90 90
91 91 if user is not None and user.is_ldap is False:
92 92 if user.active:
93 93
94 94 if user.username == 'default' and user.active:
95 95 log.info('user %s authenticated correctly', username)
96 96 return True
97 97
98 98 elif user.username == username and check_password(password, user.password):
99 99 log.info('user %s authenticated correctly', username)
100 100 return True
101 101 else:
102 102 log.error('user %s is disabled', username)
103 103
104 104
105 105 else:
106 106
107 107 #since ldap is searching in case insensitive check if this user is still
108 108 #not in our system
109 109 username = username.lower()
110 110 user_obj = user_model.get_by_username(username, cache=False,
111 111 case_insensitive=True)
112 if user_obj is not None:
112 if user_obj is not None and user_obj.is_ldap is False:
113 113 return False
114 114
115 115 from rhodecode.model.settings import SettingsModel
116 116 ldap_settings = SettingsModel().get_ldap_settings()
117 117
118 118 #======================================================================
119 119 # FALLBACK TO LDAP AUTH IN ENABLE
120 120 #======================================================================
121 121 if ldap_settings.get('ldap_active', False):
122 122
123 123 kwargs = {
124 124 'server':ldap_settings.get('ldap_host', ''),
125 125 'base_dn':ldap_settings.get('ldap_base_dn', ''),
126 126 'port':ldap_settings.get('ldap_port'),
127 127 'bind_dn':ldap_settings.get('ldap_dn_user'),
128 128 'bind_pass':ldap_settings.get('ldap_dn_pass'),
129 129 'use_ldaps':ldap_settings.get('ldap_ldaps'),
130 130 'ldap_version':3,
131 131 }
132 132 log.debug('Checking for ldap authentication')
133 133 try:
134 134 aldap = AuthLdap(**kwargs)
135 135 res = aldap.authenticate_ldap(username, password)
136 136
137 137 authenticated = res[1]['uid'][0] == username
138 138
139 139 if authenticated and user_model.create_ldap(username, password):
140 140 log.info('created new ldap user')
141 141
142 142 return authenticated
143 143 except (LdapUsernameError, LdapPasswordError):
144 144 return False
145 145 except:
146 146 log.error(traceback.format_exc())
147 147 return False
148 148 return False
149 149
150 150 class AuthUser(object):
151 151 """
152 152 A simple object that handles a mercurial username for authentication
153 153 """
154 154 def __init__(self):
155 155 self.username = 'None'
156 156 self.name = ''
157 157 self.lastname = ''
158 158 self.email = ''
159 159 self.user_id = None
160 160 self.is_authenticated = False
161 161 self.is_admin = False
162 162 self.permissions = {}
163 163
164 164 def __repr__(self):
165 165 return "<AuthUser('id:%s:%s')>" % (self.user_id, self.username)
166 166
167 167 def set_available_permissions(config):
168 168 """
169 169 This function will propagate pylons globals with all available defined
170 170 permission given in db. We don't wannt to check each time from db for new
171 171 permissions since adding a new permission also requires application restart
172 172 ie. to decorate new views with the newly created permission
173 173 :param config:
174 174 """
175 175 log.info('getting information about all available permissions')
176 176 try:
177 177 sa = meta.Session()
178 178 all_perms = sa.query(Permission).all()
179 179 except:
180 180 pass
181 181 finally:
182 182 meta.Session.remove()
183 183
184 184 config['available_permissions'] = [x.permission_name for x in all_perms]
185 185
186 186 def set_base_path(config):
187 187 config['base_path'] = config['pylons.app_globals'].base_path
188 188
189 189
190 190 def fill_perms(user):
191 191 """
192 192 Fills user permission attribute with permissions taken from database
193 193 :param user:
194 194 """
195 195
196 196 sa = meta.Session()
197 197 user.permissions['repositories'] = {}
198 198 user.permissions['global'] = set()
199 199
200 200 #===========================================================================
201 201 # fetch default permissions
202 202 #===========================================================================
203 203 default_user = UserModel().get_by_username('default', cache=True)
204 204
205 205 default_perms = sa.query(RepoToPerm, Repository, Permission)\
206 206 .join((Repository, RepoToPerm.repository_id == Repository.repo_id))\
207 207 .join((Permission, RepoToPerm.permission_id == Permission.permission_id))\
208 208 .filter(RepoToPerm.user == default_user).all()
209 209
210 210 if user.is_admin:
211 211 #=======================================================================
212 212 # #admin have all default rights set to admin
213 213 #=======================================================================
214 214 user.permissions['global'].add('hg.admin')
215 215
216 216 for perm in default_perms:
217 217 p = 'repository.admin'
218 218 user.permissions['repositories'][perm.RepoToPerm.repository.repo_name] = p
219 219
220 220 else:
221 221 #=======================================================================
222 222 # set default permissions
223 223 #=======================================================================
224 224
225 225 #default global
226 226 default_global_perms = sa.query(UserToPerm)\
227 227 .filter(UserToPerm.user == sa.query(User)\
228 228 .filter(User.username == 'default').one())
229 229
230 230 for perm in default_global_perms:
231 231 user.permissions['global'].add(perm.permission.permission_name)
232 232
233 233 #default repositories
234 234 for perm in default_perms:
235 235 if perm.Repository.private and not perm.Repository.user_id == user.user_id:
236 236 #disable defaults for private repos,
237 237 p = 'repository.none'
238 238 elif perm.Repository.user_id == user.user_id:
239 239 #set admin if owner
240 240 p = 'repository.admin'
241 241 else:
242 242 p = perm.Permission.permission_name
243 243
244 244 user.permissions['repositories'][perm.RepoToPerm.repository.repo_name] = p
245 245
246 246 #=======================================================================
247 247 # #overwrite default with user permissions if any
248 248 #=======================================================================
249 249 user_perms = sa.query(RepoToPerm, Permission, Repository)\
250 250 .join((Repository, RepoToPerm.repository_id == Repository.repo_id))\
251 251 .join((Permission, RepoToPerm.permission_id == Permission.permission_id))\
252 252 .filter(RepoToPerm.user_id == user.user_id).all()
253 253
254 254 for perm in user_perms:
255 255 if perm.Repository.user_id == user.user_id:#set admin if owner
256 256 p = 'repository.admin'
257 257 else:
258 258 p = perm.Permission.permission_name
259 259 user.permissions['repositories'][perm.RepoToPerm.repository.repo_name] = p
260 260 meta.Session.remove()
261 261 return user
262 262
263 263 def get_user(session):
264 264 """
265 265 Gets user from session, and wraps permissions into user
266 266 :param session:
267 267 """
268 268 user = session.get('rhodecode_user', AuthUser())
269 269 #if the user is not logged in we check for anonymous access
270 270 #if user is logged and it's a default user check if we still have anonymous
271 271 #access enabled
272 272 if user.user_id is None or user.username == 'default':
273 273 anonymous_user = UserModel().get_by_username('default', cache=True)
274 274 if anonymous_user.active is True:
275 275 #then we set this user is logged in
276 276 user.is_authenticated = True
277 277 user.user_id = anonymous_user.user_id
278 278 else:
279 279 user.is_authenticated = False
280 280
281 281 if user.is_authenticated:
282 282 user = UserModel().fill_data(user)
283 283
284 284 user = fill_perms(user)
285 285 session['rhodecode_user'] = user
286 286 session.save()
287 287 return user
288 288
289 289 #===============================================================================
290 290 # CHECK DECORATORS
291 291 #===============================================================================
292 292 class LoginRequired(object):
293 293 """Must be logged in to execute this function else redirect to login page"""
294 294
295 295 def __call__(self, func):
296 296 return decorator(self.__wrapper, func)
297 297
298 298 def __wrapper(self, func, *fargs, **fkwargs):
299 299 user = session.get('rhodecode_user', AuthUser())
300 300 log.debug('Checking login required for user:%s', user.username)
301 301 if user.is_authenticated:
302 302 log.debug('user %s is authenticated', user.username)
303 303 return func(*fargs, **fkwargs)
304 304 else:
305 305 log.warn('user %s not authenticated', user.username)
306 306
307 307 p = ''
308 308 if request.environ.get('SCRIPT_NAME') != '/':
309 309 p += request.environ.get('SCRIPT_NAME')
310 310
311 311 p += request.environ.get('PATH_INFO')
312 312 if request.environ.get('QUERY_STRING'):
313 313 p += '?' + request.environ.get('QUERY_STRING')
314 314
315 315 log.debug('redirecting to login page with %s', p)
316 316 return redirect(url('login_home', came_from=p))
317 317
318 318 class PermsDecorator(object):
319 319 """Base class for decorators"""
320 320
321 321 def __init__(self, *required_perms):
322 322 available_perms = config['available_permissions']
323 323 for perm in required_perms:
324 324 if perm not in available_perms:
325 325 raise Exception("'%s' permission is not defined" % perm)
326 326 self.required_perms = set(required_perms)
327 327 self.user_perms = None
328 328
329 329 def __call__(self, func):
330 330 return decorator(self.__wrapper, func)
331 331
332 332
333 333 def __wrapper(self, func, *fargs, **fkwargs):
334 334 # _wrapper.__name__ = func.__name__
335 335 # _wrapper.__dict__.update(func.__dict__)
336 336 # _wrapper.__doc__ = func.__doc__
337 337 self.user = session.get('rhodecode_user', AuthUser())
338 338 self.user_perms = self.user.permissions
339 339 log.debug('checking %s permissions %s for %s %s',
340 340 self.__class__.__name__, self.required_perms, func.__name__,
341 341 self.user)
342 342
343 343 if self.check_permissions():
344 344 log.debug('Permission granted for %s %s', func.__name__, self.user)
345 345
346 346 return func(*fargs, **fkwargs)
347 347
348 348 else:
349 349 log.warning('Permission denied for %s %s', func.__name__, self.user)
350 350 #redirect with forbidden ret code
351 351 return abort(403)
352 352
353 353
354 354
355 355 def check_permissions(self):
356 356 """Dummy function for overriding"""
357 357 raise Exception('You have to write this function in child class')
358 358
359 359 class HasPermissionAllDecorator(PermsDecorator):
360 360 """Checks for access permission for all given predicates. All of them
361 361 have to be meet in order to fulfill the request
362 362 """
363 363
364 364 def check_permissions(self):
365 365 if self.required_perms.issubset(self.user_perms.get('global')):
366 366 return True
367 367 return False
368 368
369 369
370 370 class HasPermissionAnyDecorator(PermsDecorator):
371 371 """Checks for access permission for any of given predicates. In order to
372 372 fulfill the request any of predicates must be meet
373 373 """
374 374
375 375 def check_permissions(self):
376 376 if self.required_perms.intersection(self.user_perms.get('global')):
377 377 return True
378 378 return False
379 379
380 380 class HasRepoPermissionAllDecorator(PermsDecorator):
381 381 """Checks for access permission for all given predicates for specific
382 382 repository. All of them have to be meet in order to fulfill the request
383 383 """
384 384
385 385 def check_permissions(self):
386 386 repo_name = get_repo_slug(request)
387 387 try:
388 388 user_perms = set([self.user_perms['repositories'][repo_name]])
389 389 except KeyError:
390 390 return False
391 391 if self.required_perms.issubset(user_perms):
392 392 return True
393 393 return False
394 394
395 395
396 396 class HasRepoPermissionAnyDecorator(PermsDecorator):
397 397 """Checks for access permission for any of given predicates for specific
398 398 repository. In order to fulfill the request any of predicates must be meet
399 399 """
400 400
401 401 def check_permissions(self):
402 402 repo_name = get_repo_slug(request)
403 403
404 404 try:
405 405 user_perms = set([self.user_perms['repositories'][repo_name]])
406 406 except KeyError:
407 407 return False
408 408 if self.required_perms.intersection(user_perms):
409 409 return True
410 410 return False
411 411 #===============================================================================
412 412 # CHECK FUNCTIONS
413 413 #===============================================================================
414 414
415 415 class PermsFunction(object):
416 416 """Base function for other check functions"""
417 417
418 418 def __init__(self, *perms):
419 419 available_perms = config['available_permissions']
420 420
421 421 for perm in perms:
422 422 if perm not in available_perms:
423 423 raise Exception("'%s' permission in not defined" % perm)
424 424 self.required_perms = set(perms)
425 425 self.user_perms = None
426 426 self.granted_for = ''
427 427 self.repo_name = None
428 428
429 429 def __call__(self, check_Location=''):
430 430 user = session.get('rhodecode_user', False)
431 431 if not user:
432 432 return False
433 433 self.user_perms = user.permissions
434 434 self.granted_for = user.username
435 435 log.debug('checking %s %s %s', self.__class__.__name__,
436 436 self.required_perms, user)
437 437
438 438 if self.check_permissions():
439 439 log.debug('Permission granted for %s @ %s %s', self.granted_for,
440 440 check_Location, user)
441 441 return True
442 442
443 443 else:
444 444 log.warning('Permission denied for %s @ %s %s', self.granted_for,
445 445 check_Location, user)
446 446 return False
447 447
448 448 def check_permissions(self):
449 449 """Dummy function for overriding"""
450 450 raise Exception('You have to write this function in child class')
451 451
452 452 class HasPermissionAll(PermsFunction):
453 453 def check_permissions(self):
454 454 if self.required_perms.issubset(self.user_perms.get('global')):
455 455 return True
456 456 return False
457 457
458 458 class HasPermissionAny(PermsFunction):
459 459 def check_permissions(self):
460 460 if self.required_perms.intersection(self.user_perms.get('global')):
461 461 return True
462 462 return False
463 463
464 464 class HasRepoPermissionAll(PermsFunction):
465 465
466 466 def __call__(self, repo_name=None, check_Location=''):
467 467 self.repo_name = repo_name
468 468 return super(HasRepoPermissionAll, self).__call__(check_Location)
469 469
470 470 def check_permissions(self):
471 471 if not self.repo_name:
472 472 self.repo_name = get_repo_slug(request)
473 473
474 474 try:
475 475 self.user_perms = set([self.user_perms['repositories']\
476 476 [self.repo_name]])
477 477 except KeyError:
478 478 return False
479 479 self.granted_for = self.repo_name
480 480 if self.required_perms.issubset(self.user_perms):
481 481 return True
482 482 return False
483 483
484 484 class HasRepoPermissionAny(PermsFunction):
485 485
486 486 def __call__(self, repo_name=None, check_Location=''):
487 487 self.repo_name = repo_name
488 488 return super(HasRepoPermissionAny, self).__call__(check_Location)
489 489
490 490 def check_permissions(self):
491 491 if not self.repo_name:
492 492 self.repo_name = get_repo_slug(request)
493 493
494 494 try:
495 495 self.user_perms = set([self.user_perms['repositories']\
496 496 [self.repo_name]])
497 497 except KeyError:
498 498 return False
499 499 self.granted_for = self.repo_name
500 500 if self.required_perms.intersection(self.user_perms):
501 501 return True
502 502 return False
503 503
504 504 #===============================================================================
505 505 # SPECIAL VERSION TO HANDLE MIDDLEWARE AUTH
506 506 #===============================================================================
507 507
508 508 class HasPermissionAnyMiddleware(object):
509 509 def __init__(self, *perms):
510 510 self.required_perms = set(perms)
511 511
512 512 def __call__(self, user, repo_name):
513 513 usr = AuthUser()
514 514 usr.user_id = user.user_id
515 515 usr.username = user.username
516 516 usr.is_admin = user.admin
517 517
518 518 try:
519 519 self.user_perms = set([fill_perms(usr)\
520 520 .permissions['repositories'][repo_name]])
521 521 except:
522 522 self.user_perms = set()
523 523 self.granted_for = ''
524 524 self.username = user.username
525 525 self.repo_name = repo_name
526 526 return self.check_permissions()
527 527
528 528 def check_permissions(self):
529 529 log.debug('checking mercurial protocol '
530 530 'permissions for user:%s repository:%s',
531 531 self.username, self.repo_name)
532 532 if self.required_perms.intersection(self.user_perms):
533 533 log.debug('permission granted')
534 534 return True
535 535 log.debug('permission denied')
536 536 return False
@@ -1,2381 +1,2381 b''
1 1 html,body,div,span,applet,object,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,abbr,acronym,address,big,cite,code,del,dfn,em,font,img,ins,kbd,q,s,samp,small,strike,strong,sub,sup,tt,var,b,u,i,center,dl,dt,dd,ol,ul,li,fieldset,form,label,legend,table,caption,tbody,tfoot,thead,tr,th,td {
2 2 border:0;
3 3 outline:0;
4 4 font-size:100%;
5 5 vertical-align:baseline;
6 6 background:transparent;
7 7 margin:0;
8 8 padding:0;
9 9 }
10 10
11 11 body {
12 12 line-height:1;
13 13 height:100%;
14 14 background:url("../images/background.png") repeat scroll 0 0 #B0B0B0;
15 15 font-family:Lucida Grande, Verdana, Lucida Sans Regular, Lucida Sans Unicode, Arial, sans-serif;
16 16 font-size:12px;
17 17 color:#000;
18 18 margin:0;
19 19 padding:0;
20 20 }
21 21
22 22 ol,ul {
23 23 list-style:none;
24 24 }
25 25
26 26 blockquote,q {
27 27 quotes:none;
28 28 }
29 29
30 30 blockquote:before,blockquote:after,q:before,q:after {
31 31 content:none;
32 32 }
33 33
34 34 :focus {
35 35 outline:0;
36 36 }
37 37
38 38 del {
39 39 text-decoration:line-through;
40 40 }
41 41
42 42 table {
43 43 border-collapse:collapse;
44 44 border-spacing:0;
45 45 }
46 46
47 47 html {
48 48 height:100%;
49 49 }
50 50
51 51 a {
52 52 color:#003367;
53 53 text-decoration:none;
54 54 cursor:pointer;
55 55 font-weight:700;
56 56 }
57 57
58 58 a:hover {
59 59 color:#316293;
60 60 text-decoration:underline;
61 61 }
62 62
63 63 h1,h2,h3,h4,h5,h6 {
64 64 color:#292929;
65 65 font-weight:700;
66 66 }
67 67
68 68 h1 {
69 69 font-size:22px;
70 70 }
71 71
72 72 h2 {
73 73 font-size:20px;
74 74 }
75 75
76 76 h3 {
77 77 font-size:18px;
78 78 }
79 79
80 80 h4 {
81 81 font-size:16px;
82 82 }
83 83
84 84 h5 {
85 85 font-size:14px;
86 86 }
87 87
88 88 h6 {
89 89 font-size:11px;
90 90 }
91 91
92 92 ul.circle {
93 93 list-style-type:circle;
94 94 }
95 95
96 96 ul.disc {
97 97 list-style-type:disc;
98 98 }
99 99
100 100 ul.square {
101 101 list-style-type:square;
102 102 }
103 103
104 104 ol.lower-roman {
105 105 list-style-type:lower-roman;
106 106 }
107 107
108 108 ol.upper-roman {
109 109 list-style-type:upper-roman;
110 110 }
111 111
112 112 ol.lower-alpha {
113 113 list-style-type:lower-alpha;
114 114 }
115 115
116 116 ol.upper-alpha {
117 117 list-style-type:upper-alpha;
118 118 }
119 119
120 120 ol.decimal {
121 121 list-style-type:decimal;
122 122 }
123 123
124 124 div.color {
125 125 clear:both;
126 126 overflow:hidden;
127 127 position:absolute;
128 128 background:#FFF;
129 129 margin:7px 0 0 60px;
130 130 padding:1px 1px 1px 0;
131 131 }
132 132
133 133 div.color a {
134 134 width:15px;
135 135 height:15px;
136 136 display:block;
137 137 float:left;
138 138 margin:0 0 0 1px;
139 139 padding:0;
140 140 }
141 141
142 142 div.options {
143 143 clear:both;
144 144 overflow:hidden;
145 145 position:absolute;
146 146 background:#FFF;
147 147 margin:7px 0 0 162px;
148 148 padding:0;
149 149 }
150 150
151 151 div.options a {
152 152 height:1%;
153 153 display:block;
154 154 text-decoration:none;
155 155 margin:0;
156 156 padding:3px 8px;
157 157 }
158 158
159 159 .top-left-rounded-corner {
160 160 -webkit-border-top-left-radius: 8px;
161 161 -khtml-border-radius-topleft: 8px;
162 162 -moz-border-radius-topleft: 8px;
163 163 border-top-left-radius: 8px;
164 164 }
165 165
166 166 .top-right-rounded-corner {
167 167 -webkit-border-top-right-radius: 8px;
168 168 -khtml-border-radius-topright: 8px;
169 169 -moz-border-radius-topright: 8px;
170 170 border-top-right-radius: 8px;
171 171 }
172 172
173 173 .bottom-left-rounded-corner {
174 174 -webkit-border-bottom-left-radius: 8px;
175 175 -khtml-border-radius-bottomleft: 8px;
176 176 -moz-border-radius-bottomleft: 8px;
177 177 border-bottom-left-radius: 8px;
178 178 }
179 179
180 180 .bottom-right-rounded-corner {
181 181 -webkit-border-bottom-right-radius: 8px;
182 182 -khtml-border-radius-bottomright: 8px;
183 183 -moz-border-radius-bottomright: 8px;
184 184 border-bottom-right-radius: 8px;
185 185 }
186 186
187 187
188 188 #header {
189 189 margin:0;
190 190 padding:0 30px;
191 191 }
192 192
193 193 #header ul#logged-user li {
194 194 list-style:none;
195 195 float:left;
196 196 border-left:1px solid #bbb;
197 197 border-right:1px solid #a5a5a5;
198 198 margin:-2px 0 0;
199 199 padding:10px 12px;
200 200 }
201 201
202 202 #header ul#logged-user li.first {
203 203 border-left:none;
204 204 margin:-6px;
205 205 }
206 206
207 207 #header ul#logged-user li.first div.account {
208 208 padding-top:4px;
209 209 float:left;
210 210 }
211 211
212 212 #header ul#logged-user li.last {
213 213 border-right:none;
214 214 }
215 215
216 216 #header ul#logged-user li a {
217 217 color:#4e4e4e;
218 218 font-weight:700;
219 219 text-decoration:none;
220 220 }
221 221
222 222 #header ul#logged-user li a:hover {
223 223 color:#376ea6;
224 224 text-decoration:underline;
225 225 }
226 226
227 227 #header ul#logged-user li.highlight a {
228 228 color:#fff;
229 229 }
230 230
231 231 #header ul#logged-user li.highlight a:hover {
232 232 color:#376ea6;
233 233 }
234 234
235 235 #header #header-inner {
236 236 height:40px;
237 237 clear:both;
238 238 position:relative;
239 239 background:#003367 url("../images/header_inner.png") repeat-x;
240 240 border-bottom:2px solid #fff;
241 241 margin:0;
242 242 padding:0;
243 243 }
244 244
245 245 #header #header-inner #home a {
246 246 height:40px;
247 247 width:46px;
248 248 display:block;
249 249 background:url("../images/button_home.png");
250 250 background-position:0 0;
251 251 margin:0;
252 252 padding:0;
253 253 }
254 254
255 255 #header #header-inner #home a:hover {
256 256 background-position:0 -40px;
257 257 }
258 258
259 259 #header #header-inner #logo h1 {
260 260 color:#FFF;
261 261 font-size:18px;
262 262 margin:10px 0 0 13px;
263 263 padding:0;
264 264 }
265 265
266 266 #header #header-inner #logo a {
267 267 color:#fff;
268 268 text-decoration:none;
269 269 }
270 270
271 271 #header #header-inner #logo a:hover {
272 272 color:#bfe3ff;
273 273 }
274 274
275 275 #header #header-inner #quick,#header #header-inner #quick ul {
276 276 position:relative;
277 277 float:right;
278 278 list-style-type:none;
279 279 list-style-position:outside;
280 280 margin:10px 5px 0 0;
281 281 padding:0;
282 282 }
283 283
284 284 #header #header-inner #quick li {
285 285 position:relative;
286 286 float:left;
287 287 margin:0 5px 0 0;
288 288 padding:0;
289 289 }
290 290
291 291 #header #header-inner #quick li a {
292 292 top:0;
293 293 left:0;
294 294 height:1%;
295 295 display:block;
296 296 clear:both;
297 297 overflow:hidden;
298 298 color:#FFF;
299 299 font-weight:700;
300 300 text-decoration:none;
301 301 background:#369 url("../../images/quick_l.png") no-repeat top left;
302 302 padding:0;
303 303 }
304 304
305 305 #header #header-inner #quick li span.short {
306 306 padding:9px 6px 8px 6px;
307 307 }
308 308
309 309 #header #header-inner #quick li span {
310 310 top:0;
311 311 right:0;
312 312 height:1%;
313 313 display:block;
314 314 float:left;
315 315 background:url("../../images/quick_r.png") no-repeat top right;
316 316 border-left:1px solid #3f6f9f;
317 317 margin:0;
318 318 padding:10px 12px 8px 10px;
319 319 }
320 320
321 321 #header #header-inner #quick li span.normal {
322 322 border:none;
323 323 padding:10px 12px 8px;
324 324 }
325 325
326 326 #header #header-inner #quick li span.icon {
327 327 top:0;
328 328 left:0;
329 329 border-left:none;
330 330 background:url("../../images/quick_l.png") no-repeat top left;
331 331 border-right:1px solid #2e5c89;
332 332 padding:8px 8px 4px;
333 333 }
334 334
335 335 #header #header-inner #quick li span.icon_short {
336 336 top:0;
337 337 left:0;
338 338 border-left:none;
339 339 background:url("../../images/quick_l.png") no-repeat top left;
340 340 border-right:1px solid #2e5c89;
341 341 padding:9px 4px 4px;
342 342 }
343 343
344 344 #header #header-inner #quick li a:hover {
345 345 background:#4e4e4e url("../../images/quick_l_selected.png") no-repeat top left;
346 346 }
347 347
348 348 #header #header-inner #quick li a:hover span {
349 349 border-left:1px solid #545454;
350 350 background:url("../../images/quick_r_selected.png") no-repeat top right;
351 351 }
352 352
353 353 #header #header-inner #quick li a:hover span.icon,#header #header-inner #quick li a:hover span.icon_short {
354 354 border-left:none;
355 355 border-right:1px solid #464646;
356 356 background:url("../../images/quick_l_selected.png") no-repeat top left;
357 357 }
358 358
359 359
360 360 #header #header-inner #quick ul {
361 361 top:29px;
362 362 right:0;
363 363 min-width:200px;
364 364 display:none;
365 365 position:absolute;
366 366 background:#FFF;
367 367 border:1px solid #666;
368 368 border-top:1px solid #003367;
369 369 z-index:100;
370 370 margin:0;
371 371 padding:0;
372 372 }
373 373
374 374 #header #header-inner #quick ul.repo_switcher {
375 375 max-height:275px;
376 376 overflow-x:hidden;
377 377 overflow-y:auto;
378 378 }
379 379
380 380 #header #header-inner #quick .repo_switcher_type{
381 381 position:absolute;
382 382 left:0;
383 383 top:9px;
384 384
385 385 }
386 386 #header #header-inner #quick li ul li {
387 387 border-bottom:1px solid #ddd;
388 388 }
389 389
390 390 #header #header-inner #quick li ul li a {
391 391 width:182px;
392 392 height:auto;
393 393 display:block;
394 394 float:left;
395 395 background:#FFF;
396 396 color:#003367;
397 397 font-weight:400;
398 398 margin:0;
399 399 padding:7px 9px;
400 400 }
401 401
402 402 #header #header-inner #quick li ul li a:hover {
403 403 color:#000;
404 404 background:#FFF;
405 405 }
406 406
407 407 #header #header-inner #quick ul ul {
408 408 top:auto;
409 409 }
410 410
411 411 #header #header-inner #quick li ul ul {
412 412 right:200px;
413 413 max-height:275px;
414 414 overflow:auto;
415 415 overflow-x:hidden;
416 416 white-space:normal;
417 417 }
418 418
419 419 #header #header-inner #quick li ul li a.journal,#header #header-inner #quick li ul li a.journal:hover {
420 420 background:url("../images/icons/book.png") no-repeat scroll 4px 9px #FFF;
421 421 width:167px;
422 422 margin:0;
423 423 padding:12px 9px 7px 24px;
424 424 }
425 425
426 426 #header #header-inner #quick li ul li a.private_repo,#header #header-inner #quick li ul li a.private_repo:hover {
427 427 background:url("../images/icons/lock.png") no-repeat scroll 4px 9px #FFF;
428 428 min-width:167px;
429 429 margin:0;
430 430 padding:12px 9px 7px 24px;
431 431 }
432 432
433 433 #header #header-inner #quick li ul li a.public_repo,#header #header-inner #quick li ul li a.public_repo:hover {
434 434 background:url("../images/icons/lock_open.png") no-repeat scroll 4px 9px #FFF;
435 435 min-width:167px;
436 436 margin:0;
437 437 padding:12px 9px 7px 24px;
438 438 }
439 439
440 440 #header #header-inner #quick li ul li a.hg,#header #header-inner #quick li ul li a.hg:hover {
441 441 background:url("../images/icons/hgicon.png") no-repeat scroll 4px 9px #FFF;
442 442 min-width:167px;
443 443 margin:0 0 0 14px;
444 444 padding:12px 9px 7px 24px;
445 445 }
446 446
447 447 #header #header-inner #quick li ul li a.git,#header #header-inner #quick li ul li a.git:hover {
448 448 background:url("../images/icons/giticon.png") no-repeat scroll 4px 9px #FFF;
449 449 min-width:167px;
450 450 margin:0 0 0 14px;
451 451 padding:12px 9px 7px 24px;
452 452 }
453 453
454 454 #header #header-inner #quick li ul li a.repos,#header #header-inner #quick li ul li a.repos:hover {
455 455 background:url("../images/icons/database_edit.png") no-repeat scroll 4px 9px #FFF;
456 456 width:167px;
457 457 margin:0;
458 458 padding:12px 9px 7px 24px;
459 459 }
460 460
461 461 #header #header-inner #quick li ul li a.users,#header #header-inner #quick li ul li a.users:hover {
462 462 background:#FFF url("../images/icons/user_edit.png") no-repeat 4px 9px;
463 463 width:167px;
464 464 margin:0;
465 465 padding:12px 9px 7px 24px;
466 466 }
467 467
468 468 #header #header-inner #quick li ul li a.settings,#header #header-inner #quick li ul li a.settings:hover {
469 469 background:#FFF url("../images/icons/cog.png") no-repeat 4px 9px;
470 470 width:167px;
471 471 margin:0;
472 472 padding:12px 9px 7px 24px;
473 473 }
474 474
475 475 #header #header-inner #quick li ul li a.permissions,#header #header-inner #quick li ul li a.permissions:hover {
476 476 background:#FFF url("../images/icons/key.png") no-repeat 4px 9px;
477 477 width:167px;
478 478 margin:0;
479 479 padding:12px 9px 7px 24px;
480 480 }
481 481
482 482 #header #header-inner #quick li ul li a.fork,#header #header-inner #quick li ul li a.fork:hover {
483 483 background:#FFF url("../images/icons/arrow_divide.png") no-repeat 4px 9px;
484 484 width:167px;
485 485 margin:0;
486 486 padding:12px 9px 7px 24px;
487 487 }
488 488
489 489 #header #header-inner #quick li ul li a.search,#header #header-inner #quick li ul li a.search:hover {
490 490 background:#FFF url("../images/icons/search_16.png") no-repeat 4px 9px;
491 491 width:167px;
492 492 margin:0;
493 493 padding:12px 9px 7px 24px;
494 494 }
495 495
496 496 #header #header-inner #quick li ul li a.delete,#header #header-inner #quick li ul li a.delete:hover {
497 497 background:#FFF url("../images/icons/delete.png") no-repeat 4px 9px;
498 498 width:167px;
499 499 margin:0;
500 500 padding:12px 9px 7px 24px;
501 501 }
502 502
503 503 #header #header-inner #quick li ul li a.branches,#header #header-inner #quick li ul li a.branches:hover {
504 504 background:#FFF url("../images/icons/arrow_branch.png") no-repeat 4px 9px;
505 505 width:167px;
506 506 margin:0;
507 507 padding:12px 9px 7px 24px;
508 508 }
509 509
510 510 #header #header-inner #quick li ul li a.tags,#header #header-inner #quick li ul li a.tags:hover {
511 511 background:#FFF url("../images/icons/tag_blue.png") no-repeat 4px 9px;
512 512 width:167px;
513 513 margin:0;
514 514 padding:12px 9px 7px 24px;
515 515 }
516 516
517 517 #header #header-inner #quick li ul li a.admin,#header #header-inner #quick li ul li a.admin:hover {
518 518 background:#FFF url("../images/icons/cog_edit.png") no-repeat 4px 9px;
519 519 width:167px;
520 520 margin:0;
521 521 padding:12px 9px 7px 24px;
522 522 }
523 523
524 524 #content #left {
525 525 left:0;
526 526 width:280px;
527 527 position:absolute;
528 528 }
529 529
530 530 #content #right {
531 531 margin:0 60px 10px 290px;
532 532 }
533 533
534 534 #content div.box {
535 535 clear:both;
536 536 overflow:hidden;
537 537 background:#fff;
538 538 margin:0 0 10px;
539 539 padding:0 0 10px;
540 540 }
541 541
542 542 #content div.box-left {
543 543 width:49%;
544 544 clear:none;
545 545 float:left;
546 546 margin:0 0 10px;
547 547 }
548 548
549 549 #content div.box-right {
550 550 width:49%;
551 551 clear:none;
552 552 float:right;
553 553 margin:0 0 10px;
554 554 }
555 555
556 556 #content div.box div.title {
557 557 clear:both;
558 558 overflow:hidden;
559 559 background:#369 url("../images/header_inner.png") repeat-x;
560 560 margin:0 0 20px;
561 561 padding:0;
562 562 }
563 563
564 564 #content div.box div.title h5 {
565 565 float:left;
566 566 border:none;
567 567 color:#fff;
568 568 text-transform:uppercase;
569 569 margin:0;
570 570 padding:11px 0 11px 10px;
571 571 }
572 572
573 573 #content div.box div.title ul.links li {
574 574 list-style:none;
575 575 float:left;
576 576 margin:0;
577 577 padding:0;
578 578 }
579 579
580 580 #content div.box div.title ul.links li a {
581 581 height:1%;
582 582 display:block;
583 583 float:left;
584 584 border-left:1px solid #316293;
585 585 color:#fff;
586 586 font-size:11px;
587 587 font-weight:700;
588 588 text-decoration:none;
589 589 margin:0;
590 590 padding:13px 16px 12px;
591 591 }
592 592
593 593 #content div.box h1,#content div.box h2,#content div.box h3,#content div.box h4,#content div.box h5,#content div.box h6 {
594 594 clear:both;
595 595 overflow:hidden;
596 596 border-bottom:1px solid #DDD;
597 597 margin:10px 20px;
598 598 padding:0 0 15px;
599 599 }
600 600
601 601 #content div.box p {
602 602 color:#5f5f5f;
603 603 font-size:12px;
604 604 line-height:150%;
605 605 margin:0 24px 10px;
606 606 padding:0;
607 607 }
608 608
609 609 #content div.box blockquote {
610 610 border-left:4px solid #DDD;
611 611 color:#5f5f5f;
612 612 font-size:11px;
613 613 line-height:150%;
614 614 margin:0 34px;
615 615 padding:0 0 0 14px;
616 616 }
617 617
618 618 #content div.box blockquote p {
619 619 margin:10px 0;
620 620 padding:0;
621 621 }
622 622
623 623 #content div.box dl {
624 624 margin:10px 24px;
625 625 }
626 626
627 627 #content div.box dt {
628 628 font-size:12px;
629 629 margin:0;
630 630 }
631 631
632 632 #content div.box dd {
633 633 font-size:12px;
634 634 margin:0;
635 635 padding:8px 0 8px 15px;
636 636 }
637 637
638 638 #content div.box li {
639 639 font-size:12px;
640 640 padding:4px 0;
641 641 }
642 642
643 643 #content div.box ul.disc,#content div.box ul.circle {
644 644 margin:10px 24px 10px 38px;
645 645 }
646 646
647 647 #content div.box ul.square {
648 648 margin:10px 24px 10px 40px;
649 649 }
650 650
651 651 #content div.box img.left {
652 652 border:none;
653 653 float:left;
654 654 margin:10px 10px 10px 0;
655 655 }
656 656
657 657 #content div.box img.right {
658 658 border:none;
659 659 float:right;
660 660 margin:10px 0 10px 10px;
661 661 }
662 662
663 663 #content div.box div.messages {
664 664 clear:both;
665 665 overflow:hidden;
666 666 margin:0 20px;
667 667 padding:0;
668 668 }
669 669
670 670 #content div.box div.message {
671 671 clear:both;
672 672 overflow:hidden;
673 673 margin:0;
674 674 padding:10px 0;
675 675 }
676 676
677 677 #content div.box div.message a {
678 678 font-weight:400 !important;
679 679 }
680 680
681 681 #content div.box div.message div.image {
682 682 float:left;
683 683 margin:9px 0 0 5px;
684 684 padding:6px;
685 685 }
686 686
687 687 #content div.box div.message div.image img {
688 688 vertical-align:middle;
689 689 margin:0;
690 690 }
691 691
692 692 #content div.box div.message div.text {
693 693 float:left;
694 694 margin:0;
695 695 padding:9px 6px;
696 696 }
697 697
698 698 #content div.box div.message div.dismiss a {
699 699 height:16px;
700 700 width:16px;
701 701 display:block;
702 702 background:url("../images/icons/cross.png") no-repeat;
703 703 margin:15px 14px 0 0;
704 704 padding:0;
705 705 }
706 706
707 707 #content div.box div.message div.text h1,#content div.box div.message div.text h2,#content div.box div.message div.text h3,#content div.box div.message div.text h4,#content div.box div.message div.text h5,#content div.box div.message div.text h6 {
708 708 border:none;
709 709 margin:0;
710 710 padding:0;
711 711 }
712 712
713 713 #content div.box div.message div.text span {
714 714 height:1%;
715 715 display:block;
716 716 margin:0;
717 717 padding:5px 0 0;
718 718 }
719 719
720 720 #content div.box div.message-error {
721 721 height:1%;
722 722 clear:both;
723 723 overflow:hidden;
724 724 background:#FBE3E4;
725 725 border:1px solid #FBC2C4;
726 726 color:#860006;
727 727 }
728 728
729 729 #content div.box div.message-error h6 {
730 730 color:#860006;
731 731 }
732 732
733 733 #content div.box div.message-warning {
734 734 height:1%;
735 735 clear:both;
736 736 overflow:hidden;
737 737 background:#FFF6BF;
738 738 border:1px solid #FFD324;
739 739 color:#5f5200;
740 740 }
741 741
742 742 #content div.box div.message-warning h6 {
743 743 color:#5f5200;
744 744 }
745 745
746 746 #content div.box div.message-notice {
747 747 height:1%;
748 748 clear:both;
749 749 overflow:hidden;
750 750 background:#8FBDE0;
751 751 border:1px solid #6BACDE;
752 752 color:#003863;
753 753 }
754 754
755 755 #content div.box div.message-notice h6 {
756 756 color:#003863;
757 757 }
758 758
759 759 #content div.box div.message-success {
760 760 height:1%;
761 761 clear:both;
762 762 overflow:hidden;
763 763 background:#E6EFC2;
764 764 border:1px solid #C6D880;
765 765 color:#4e6100;
766 766 }
767 767
768 768 #content div.box div.message-success h6 {
769 769 color:#4e6100;
770 770 }
771 771
772 772 #content div.box div.form div.fields div.field {
773 773 height:1%;
774 774 border-bottom:1px solid #DDD;
775 775 clear:both;
776 776 margin:0;
777 777 padding:10px 0;
778 778 }
779 779
780 780 #content div.box div.form div.fields div.field-first {
781 781 padding:0 0 10px;
782 782 }
783 783
784 784 #content div.box div.form div.fields div.field-noborder {
785 785 border-bottom:0 !important;
786 786 }
787 787
788 788 #content div.box div.form div.fields div.field span.error-message {
789 789 height:1%;
790 790 display:inline-block;
791 791 color:red;
792 792 margin:8px 0 0 4px;
793 793 padding:0;
794 794 }
795 795
796 796 #content div.box div.form div.fields div.field span.success {
797 797 height:1%;
798 798 display:block;
799 799 color:#316309;
800 800 margin:8px 0 0;
801 801 padding:0;
802 802 }
803 803
804 804 #content div.box div.form div.fields div.field div.label {
805 805 left:80px;
806 806 width:auto;
807 807 position:absolute;
808 808 margin:0;
809 809 padding:8px 0 0 5px;
810 810 }
811 811
812 812 #content div.box-left div.form div.fields div.field div.label,#content div.box-right div.form div.fields div.field div.label {
813 813 clear:both;
814 814 overflow:hidden;
815 815 left:0;
816 816 width:auto;
817 817 position:relative;
818 818 margin:0;
819 819 padding:0 0 8px;
820 820 }
821 821
822 822 #content div.box div.form div.fields div.field div.label-select {
823 823 padding:5px 0 0 5px;
824 824 }
825 825
826 826 #content div.box-left div.form div.fields div.field div.label-select,#content div.box-right div.form div.fields div.field div.label-select {
827 827 padding:0 0 8px;
828 828 }
829 829
830 830 #content div.box-left div.form div.fields div.field div.label-textarea,#content div.box-right div.form div.fields div.field div.label-textarea {
831 831 padding:0 0 8px !important;
832 832 }
833 833
834 834 #content div.box div.form div.fields div.field div.label label {
835 835 color:#393939;
836 836 font-weight:700;
837 837 }
838 838
839 839 #content div.box div.form div.fields div.field div.input {
840 840 margin:0 0 0 200px;
841 841 }
842 842 #content div.box-left div.form div.fields div.field div.input,#content div.box-right div.form div.fields div.field div.input {
843 843 margin:0 0 0 0px;
844 844 }
845 845
846 846 #content div.box div.form div.fields div.field div.input input {
847 847 background:#FFF;
848 848 border-top:1px solid #b3b3b3;
849 849 border-left:1px solid #b3b3b3;
850 850 border-right:1px solid #eaeaea;
851 851 border-bottom:1px solid #eaeaea;
852 852 color:#000;
853 853 font-family:Lucida Grande, Verdana, Lucida Sans Regular, Lucida Sans Unicode, Arial, sans-serif;
854 854 font-size:11px;
855 855 margin:0;
856 856 padding:7px 7px 6px;
857 857 }
858 858
859 859
860 860
861 861 #content div.box div.form div.fields div.field div.input input.small {
862 862 width:30%;
863 863 }
864 864
865 865 #content div.box div.form div.fields div.field div.input input.medium {
866 866 width:55%;
867 867 }
868 868
869 869 #content div.box div.form div.fields div.field div.input input.large {
870 870 width:85%;
871 871 }
872 872
873 873 #content div.box div.form div.fields div.field div.input input.date {
874 874 width:177px;
875 875 }
876 876
877 877 #content div.box div.form div.fields div.field div.input input.button {
878 878 background:#D4D0C8;
879 879 border-top:1px solid #FFF;
880 880 border-left:1px solid #FFF;
881 881 border-right:1px solid #404040;
882 882 border-bottom:1px solid #404040;
883 883 color:#000;
884 884 margin:0;
885 885 padding:4px 8px;
886 886 }
887 887
888 888 #content div.box div.form div.fields div.field div.input a.ui-input-file {
889 889 width:28px;
890 890 height:28px;
891 891 display:inline;
892 892 position:absolute;
893 893 overflow:hidden;
894 894 cursor:pointer;
895 895 background:#e5e3e3 url("../images/button_browse.png") no-repeat;
896 896 border:none;
897 897 text-decoration:none;
898 898 margin:0 0 0 6px;
899 899 padding:0;
900 900 }
901 901
902 902 #content div.box div.form div.fields div.field div.textarea {
903 903 border-top:1px solid #b3b3b3;
904 904 border-left:1px solid #b3b3b3;
905 905 border-right:1px solid #eaeaea;
906 906 border-bottom:1px solid #eaeaea;
907 907 margin:0 0 0 200px;
908 908 padding:10px;
909 909 }
910 910
911 911 #content div.box div.form div.fields div.field div.textarea-editor {
912 912 border:1px solid #ddd;
913 913 padding:0;
914 914 }
915 915
916 916 #content div.box div.form div.fields div.field div.textarea textarea {
917 917 width:100%;
918 918 height:220px;
919 919 overflow:hidden;
920 920 background:#FFF;
921 921 color:#000;
922 922 font-family:Lucida Grande, Verdana, Lucida Sans Regular, Lucida Sans Unicode, Arial, sans-serif;
923 923 font-size:11px;
924 924 outline:none;
925 925 border-width:0;
926 926 margin:0;
927 927 padding:0;
928 928 }
929 929
930 930 #content div.box-left div.form div.fields div.field div.textarea textarea,#content div.box-right div.form div.fields div.field div.textarea textarea {
931 931 width:100%;
932 932 height:100px;
933 933 }
934 934
935 935 #content div.box div.form div.fields div.field div.textarea table {
936 936 width:100%;
937 937 border:none;
938 938 margin:0;
939 939 padding:0;
940 940 }
941 941
942 942 #content div.box div.form div.fields div.field div.textarea table td {
943 943 background:#DDD;
944 944 border:none;
945 945 padding:0;
946 946 }
947 947
948 948 #content div.box div.form div.fields div.field div.textarea table td table {
949 949 width:auto;
950 950 border:none;
951 951 margin:0;
952 952 padding:0;
953 953 }
954 954
955 955 #content div.box div.form div.fields div.field div.textarea table td table td {
956 956 font-family:Lucida Grande, Verdana, Lucida Sans Regular, Lucida Sans Unicode, Arial, sans-serif;
957 957 font-size:11px;
958 958 padding:5px 5px 5px 0;
959 959 }
960 960
961 961 #content div.box div.form div.fields div.field div.textarea table td table td a.mceButtonActive {
962 962 background:#b1b1b1;
963 963 }
964 964
965 965 #content div.box div.form div.fields div.field div.select a.ui-selectmenu {
966 966 color:#565656;
967 967 text-decoration:none;
968 968 }
969 969
970 970 #content div.box div.form div.fields div.field input[type=text]:focus,#content div.box div.form div.fields div.field input[type=password]:focus,#content div.box div.form div.fields div.field input[type=file]:focus,#content div.box div.form div.fields div.field textarea:focus,#content div.box div.form div.fields div.field select:focus {
971 971 background:#f6f6f6;
972 972 border-color:#666;
973 973 }
974 974
975 975 div.form div.fields div.field div.button {
976 976 margin:0;
977 977 padding:0 0 0 8px;
978 978 }
979 979
980 980 div.form div.fields div.field div.highlight .ui-state-default {
981 981 background:#4e85bb url("../images/button_highlight.png") repeat-x;
982 982 border-top:1px solid #5c91a4;
983 983 border-left:1px solid #2a6f89;
984 984 border-right:1px solid #2b7089;
985 985 border-bottom:1px solid #1a6480;
986 986 color:#FFF;
987 987 margin:0;
988 988 padding:6px 12px;
989 989 }
990 990
991 991 div.form div.fields div.field div.highlight .ui-state-hover {
992 992 background:#46a0c1 url("../images/button_highlight_selected.png") repeat-x;
993 993 border-top:1px solid #78acbf;
994 994 border-left:1px solid #34819e;
995 995 border-right:1px solid #35829f;
996 996 border-bottom:1px solid #257897;
997 997 color:#FFF;
998 998 margin:0;
999 999 padding:6px 12px;
1000 1000 }
1001 1001
1002 1002 #content div.box div.form div.fields div.buttons div.highlight input.ui-state-default {
1003 1003 background:#4e85bb url("../../images/button_highlight.png") repeat-x;
1004 1004 border-top:1px solid #5c91a4;
1005 1005 border-left:1px solid #2a6f89;
1006 1006 border-right:1px solid #2b7089;
1007 1007 border-bottom:1px solid #1a6480;
1008 1008 color:#fff;
1009 1009 margin:0;
1010 1010 padding:6px 12px;
1011 1011 }
1012 1012
1013 1013 #content div.box div.form div.fields div.buttons div.highlight input.ui-state-hover {
1014 1014 background:#46a0c1 url("../../images/button_highlight_selected.png") repeat-x;
1015 1015 border-top:1px solid #78acbf;
1016 1016 border-left:1px solid #34819e;
1017 1017 border-right:1px solid #35829f;
1018 1018 border-bottom:1px solid #257897;
1019 1019 color:#fff;
1020 1020 margin:0;
1021 1021 padding:6px 12px;
1022 1022 }
1023 1023
1024 1024 #content div.box table {
1025 1025 width:100%;
1026 1026 border-collapse:collapse;
1027 1027 margin:0;
1028 1028 padding:0;
1029 1029 }
1030 1030
1031 1031 #content div.box table th {
1032 1032 background:#eee;
1033 1033 border-bottom:1px solid #ddd;
1034 1034 padding:5px 0px 5px 5px;
1035 1035 }
1036 1036
1037 1037 #content div.box table th.left {
1038 1038 text-align:left;
1039 1039 }
1040 1040
1041 1041 #content div.box table th.right {
1042 1042 text-align:right;
1043 1043 }
1044 1044
1045 1045 #content div.box table th.center {
1046 1046 text-align:center;
1047 1047 }
1048 1048
1049 1049 #content div.box table th.selected {
1050 1050 vertical-align:middle;
1051 1051 padding:0;
1052 1052 }
1053 1053
1054 1054 #content div.box table td {
1055 1055 background:#fff;
1056 1056 border-bottom:1px solid #cdcdcd;
1057 1057 vertical-align:middle;
1058 1058 padding:5px;
1059 1059 }
1060 1060
1061 1061 #content div.box table tr.selected td {
1062 1062 background:#FFC;
1063 1063 }
1064 1064
1065 1065 #content div.box table td.selected {
1066 1066 width:3%;
1067 1067 text-align:center;
1068 1068 vertical-align:middle;
1069 1069 padding:0;
1070 1070 }
1071 1071
1072 1072 #content div.box table td.action {
1073 1073 width:45%;
1074 1074 text-align:left;
1075 1075 }
1076 1076
1077 1077 #content div.box table td.date {
1078 1078 width:33%;
1079 1079 text-align:center;
1080 1080 }
1081 1081
1082 1082 #content div.box div.action {
1083 1083 float:right;
1084 1084 background:#FFF;
1085 1085 text-align:right;
1086 1086 margin:10px 0 0;
1087 1087 padding:0;
1088 1088 }
1089 1089
1090 1090 #content div.box div.action select {
1091 1091 font-family:Lucida Grande, Verdana, Lucida Sans Regular, Lucida Sans Unicode, Arial, sans-serif;
1092 1092 font-size:11px;
1093 1093 margin:0;
1094 1094 }
1095 1095
1096 1096 #content div.box div.action .ui-selectmenu {
1097 1097 margin:0;
1098 1098 padding:0;
1099 1099 }
1100 1100
1101 1101 #content div.box div.pagination {
1102 1102 height:1%;
1103 1103 clear:both;
1104 1104 overflow:hidden;
1105 1105 margin:10px 0 0;
1106 1106 padding:0;
1107 1107 }
1108 1108
1109 1109 #content div.box div.pagination ul.pager {
1110 1110 float:right;
1111 1111 text-align:right;
1112 1112 margin:0;
1113 1113 padding:0;
1114 1114 }
1115 1115
1116 1116 #content div.box div.pagination ul.pager li {
1117 1117 height:1%;
1118 1118 float:left;
1119 1119 list-style:none;
1120 1120 background:#ebebeb url("../images/pager.png") repeat-x;
1121 1121 border-top:1px solid #dedede;
1122 1122 border-left:1px solid #cfcfcf;
1123 1123 border-right:1px solid #c4c4c4;
1124 1124 border-bottom:1px solid #c4c4c4;
1125 1125 color:#4A4A4A;
1126 1126 font-weight:700;
1127 1127 margin:0 0 0 4px;
1128 1128 padding:0;
1129 1129 }
1130 1130
1131 1131 #content div.box div.pagination ul.pager li.separator {
1132 1132 padding:6px;
1133 1133 }
1134 1134
1135 1135 #content div.box div.pagination ul.pager li.current {
1136 1136 background:#b4b4b4 url("../images/pager_selected.png") repeat-x;
1137 1137 border-top:1px solid #ccc;
1138 1138 border-left:1px solid #bebebe;
1139 1139 border-right:1px solid #b1b1b1;
1140 1140 border-bottom:1px solid #afafaf;
1141 1141 color:#515151;
1142 1142 padding:6px;
1143 1143 }
1144 1144
1145 1145 #content div.box div.pagination ul.pager li a {
1146 1146 height:1%;
1147 1147 display:block;
1148 1148 float:left;
1149 1149 color:#515151;
1150 1150 text-decoration:none;
1151 1151 margin:0;
1152 1152 padding:6px;
1153 1153 }
1154 1154
1155 1155 #content div.box div.pagination ul.pager li a:hover,#content div.box div.pagination ul.pager li a:active {
1156 1156 background:#b4b4b4 url("../images/pager_selected.png") repeat-x;
1157 1157 border-top:1px solid #ccc;
1158 1158 border-left:1px solid #bebebe;
1159 1159 border-right:1px solid #b1b1b1;
1160 1160 border-bottom:1px solid #afafaf;
1161 1161 margin:-1px;
1162 1162 }
1163 1163
1164 1164 #content div.box div.pagination-wh {
1165 1165 height:1%;
1166 1166 clear:both;
1167 1167 overflow:hidden;
1168 1168 text-align:right;
1169 1169 margin:10px 0 0;
1170 1170 padding:0;
1171 1171 }
1172 1172
1173 1173 #content div.box div.pagination-right {
1174 1174 float:right;
1175 1175 }
1176 1176
1177 1177 #content div.box div.pagination-wh a,#content div.box div.pagination-wh span.pager_dotdot {
1178 1178 height:1%;
1179 1179 float:left;
1180 1180 background:#ebebeb url("../images/pager.png") repeat-x;
1181 1181 border-top:1px solid #dedede;
1182 1182 border-left:1px solid #cfcfcf;
1183 1183 border-right:1px solid #c4c4c4;
1184 1184 border-bottom:1px solid #c4c4c4;
1185 1185 color:#4A4A4A;
1186 1186 font-weight:700;
1187 1187 margin:0 0 0 4px;
1188 1188 padding:6px;
1189 1189 }
1190 1190
1191 1191 #content div.box div.pagination-wh span.pager_curpage {
1192 1192 height:1%;
1193 1193 float:left;
1194 1194 background:#b4b4b4 url("../images/pager_selected.png") repeat-x;
1195 1195 border-top:1px solid #ccc;
1196 1196 border-left:1px solid #bebebe;
1197 1197 border-right:1px solid #b1b1b1;
1198 1198 border-bottom:1px solid #afafaf;
1199 1199 color:#515151;
1200 1200 font-weight:700;
1201 1201 margin:0 0 0 4px;
1202 1202 padding:6px;
1203 1203 }
1204 1204
1205 1205 #content div.box div.pagination-wh a:hover,#content div.box div.pagination-wh a:active {
1206 1206 background:#b4b4b4 url("../images/pager_selected.png") repeat-x;
1207 1207 border-top:1px solid #ccc;
1208 1208 border-left:1px solid #bebebe;
1209 1209 border-right:1px solid #b1b1b1;
1210 1210 border-bottom:1px solid #afafaf;
1211 1211 text-decoration:none;
1212 1212 }
1213 1213
1214 1214 #content div.box div.traffic div.legend {
1215 1215 clear:both;
1216 1216 overflow:hidden;
1217 1217 border-bottom:1px solid #ddd;
1218 1218 margin:0 0 10px;
1219 1219 padding:0 0 10px;
1220 1220 }
1221 1221
1222 1222 #content div.box div.traffic div.legend h6 {
1223 1223 float:left;
1224 1224 border:none;
1225 1225 margin:0;
1226 1226 padding:0;
1227 1227 }
1228 1228
1229 1229 #content div.box div.traffic div.legend li {
1230 1230 list-style:none;
1231 1231 float:left;
1232 1232 font-size:11px;
1233 1233 margin:0;
1234 1234 padding:0 8px 0 4px;
1235 1235 }
1236 1236
1237 1237 #content div.box div.traffic div.legend li.visits {
1238 1238 border-left:12px solid #edc240;
1239 1239 }
1240 1240
1241 1241 #content div.box div.traffic div.legend li.pageviews {
1242 1242 border-left:12px solid #afd8f8;
1243 1243 }
1244 1244
1245 1245 #content div.box div.traffic table {
1246 1246 width:auto;
1247 1247 }
1248 1248
1249 1249 #content div.box div.traffic table td {
1250 1250 background:transparent;
1251 1251 border:none;
1252 1252 padding:2px 3px 3px;
1253 1253 }
1254 1254
1255 1255 #content div.box div.traffic table td.legendLabel {
1256 1256 padding:0 3px 2px;
1257 1257 }
1258 1258
1259 1259 #footer {
1260 1260 clear:both;
1261 1261 overflow:hidden;
1262 1262 text-align:right;
1263 1263 margin:0;
1264 1264 padding:0 30px 4px;
1265 1265 margin:-10px 0 0;
1266 1266 }
1267 1267
1268 1268 #footer div#footer-inner {
1269 1269 background:url("../images/header_inner.png") repeat-x scroll 0 0 #003367;
1270 1270 border-top:2px solid #FFFFFF;
1271 1271 }
1272 1272
1273 1273 #footer div#footer-inner p {
1274 1274 padding:15px 25px 15px 0;
1275 1275 color:#FFF;
1276 1276 font-weight:700;
1277 1277 }
1278 1278 #footer div#footer-inner .footer-link {
1279 1279 float:left;
1280 1280 padding-left:10px;
1281 1281 }
1282 1282 #footer div#footer-inner .footer-link a {
1283 1283 color:#FFF;
1284 1284 }
1285 1285
1286 1286 #login div.title {
1287 1287 width:420px;
1288 1288 clear:both;
1289 1289 overflow:hidden;
1290 1290 position:relative;
1291 1291 background:#003367 url("../../images/header_inner.png") repeat-x;
1292 1292 margin:0 auto;
1293 1293 padding:0;
1294 1294 }
1295 1295
1296 1296 #login div.inner {
1297 1297 width:380px;
1298 1298 background:#FFF url("../images/login.png") no-repeat top left;
1299 1299 border-top:none;
1300 1300 border-bottom:none;
1301 1301 margin:0 auto;
1302 1302 padding:20px;
1303 1303 }
1304 1304
1305 1305 #login div.form div.fields div.field div.label {
1306 1306 width:173px;
1307 1307 float:left;
1308 1308 text-align:right;
1309 1309 margin:2px 10px 0 0;
1310 1310 padding:5px 0 0 5px;
1311 1311 }
1312 1312
1313 1313 #login div.form div.fields div.field div.input input {
1314 1314 width:176px;
1315 1315 background:#FFF;
1316 1316 border-top:1px solid #b3b3b3;
1317 1317 border-left:1px solid #b3b3b3;
1318 1318 border-right:1px solid #eaeaea;
1319 1319 border-bottom:1px solid #eaeaea;
1320 1320 color:#000;
1321 1321 font-family:Lucida Grande, Verdana, Lucida Sans Regular, Lucida Sans Unicode, Arial, sans-serif;
1322 1322 font-size:11px;
1323 1323 margin:0;
1324 1324 padding:7px 7px 6px;
1325 1325 }
1326 1326
1327 1327 #login div.form div.fields div.buttons {
1328 1328 clear:both;
1329 1329 overflow:hidden;
1330 1330 border-top:1px solid #DDD;
1331 1331 text-align:right;
1332 1332 margin:0;
1333 1333 padding:10px 0 0;
1334 1334 }
1335 1335
1336 1336 #login div.form div.links {
1337 1337 clear:both;
1338 1338 overflow:hidden;
1339 1339 margin:10px 0 0;
1340 1340 padding:0 0 2px;
1341 1341 }
1342 1342
1343 1343 #register div.title {
1344 1344 clear:both;
1345 1345 overflow:hidden;
1346 1346 position:relative;
1347 1347 background:#003367 url("../images/header_inner.png") repeat-x;
1348 1348 margin:0 auto;
1349 1349 padding:0;
1350 1350 }
1351 1351
1352 1352 #register div.inner {
1353 1353 background:#FFF;
1354 1354 border-top:none;
1355 1355 border-bottom:none;
1356 1356 margin:0 auto;
1357 1357 padding:20px;
1358 1358 }
1359 1359
1360 1360 #register div.form div.fields div.field div.label {
1361 1361 width:135px;
1362 1362 float:left;
1363 1363 text-align:right;
1364 1364 margin:2px 10px 0 0;
1365 1365 padding:5px 0 0 5px;
1366 1366 }
1367 1367
1368 1368 #register div.form div.fields div.field div.input input {
1369 1369 width:300px;
1370 1370 background:#FFF;
1371 1371 border-top:1px solid #b3b3b3;
1372 1372 border-left:1px solid #b3b3b3;
1373 1373 border-right:1px solid #eaeaea;
1374 1374 border-bottom:1px solid #eaeaea;
1375 1375 color:#000;
1376 1376 font-family:Lucida Grande, Verdana, Lucida Sans Regular, Lucida Sans Unicode, Arial, sans-serif;
1377 1377 font-size:11px;
1378 1378 margin:0;
1379 1379 padding:7px 7px 6px;
1380 1380 }
1381 1381
1382 1382 #register div.form div.fields div.buttons {
1383 1383 clear:both;
1384 1384 overflow:hidden;
1385 1385 border-top:1px solid #DDD;
1386 1386 text-align:left;
1387 1387 margin:0;
1388 1388 padding:10px 0 0 114px;
1389 1389 }
1390 1390
1391 1391 #register div.form div.fields div.buttons div.highlight input.ui-state-default {
1392 1392 background:url("../images/button_highlight.png") repeat-x scroll 0 0 #4E85BB;
1393 1393 color:#FFF;
1394 1394 border-color:#5C91A4 #2B7089 #1A6480 #2A6F89;
1395 1395 border-style:solid;
1396 1396 border-width:1px;
1397 1397 }
1398 1398
1399 1399 #register div.form div.activation_msg {
1400 1400 padding-top:4px;
1401 1401 padding-bottom:4px;
1402 1402 }
1403 1403
1404 1404 .trending_language_tbl,.trending_language_tbl td {
1405 1405 border:0 !important;
1406 1406 margin:0 !important;
1407 1407 padding:0 !important;
1408 1408 }
1409 1409
1410 1410 .trending_language {
1411 1411 background-color:#003367;
1412 1412 color:#FFF;
1413 1413 display:block;
1414 1414 min-width:20px;
1415 1415 text-decoration:none;
1416 1416 height:12px;
1417 1417 margin-bottom:4px;
1418 1418 margin-left:5px;
1419 1419 white-space:pre;
1420 1420 padding:3px;
1421 1421 }
1422 1422
1423 1423 h3.files_location {
1424 1424 font-size:1.8em;
1425 1425 font-weight:700;
1426 1426 border-bottom:none !important;
1427 1427 margin:10px 0 !important;
1428 1428 }
1429 1429
1430 1430 #files_data dl dt {
1431 1431 float:left;
1432 1432 width:115px;
1433 1433 margin:0 !important;
1434 1434 padding:5px;
1435 1435 }
1436 1436
1437 1437 #files_data dl dd {
1438 1438 margin:0 !important;
1439 1439 padding:5px !important;
1440 1440 }
1441 1441
1442 1442 #changeset_content {
1443 1443 border:1px solid #CCC;
1444 1444 padding:5px;
1445 1445 }
1446 1446
1447 1447 #changeset_content .container {
1448 1448 min-height:120px;
1449 1449 font-size:1.2em;
1450 1450 overflow:hidden;
1451 1451 }
1452 1452
1453 1453 #changeset_content .container .right {
1454 1454 float:right;
1455 1455 width:25%;
1456 1456 text-align:right;
1457 1457 }
1458 1458
1459 1459 #changeset_content .container .left .message {
1460 1460 font-style:italic;
1461 1461 color:#556CB5;
1462 1462 white-space:pre-wrap;
1463 1463 }
1464 1464
1465 1465 .cs_files .cs_added {
1466 1466 background:url("../images/icons/page_white_add.png") no-repeat scroll 3px;
1467 1467 height:16px;
1468 1468 padding-left:20px;
1469 1469 margin-top:7px;
1470 1470 text-align:left;
1471 1471 }
1472 1472
1473 1473 .cs_files .cs_changed {
1474 1474 background:url("../images/icons/page_white_edit.png") no-repeat scroll 3px;
1475 1475 height:16px;
1476 1476 padding-left:20px;
1477 1477 margin-top:7px;
1478 1478 text-align:left;
1479 1479 }
1480 1480
1481 1481 .cs_files .cs_removed {
1482 1482 background:url("../images/icons/page_white_delete.png") no-repeat scroll 3px;
1483 1483 height:16px;
1484 1484 padding-left:20px;
1485 1485 margin-top:7px;
1486 1486 text-align:left;
1487 1487 }
1488 1488
1489 1489 #graph {
1490 1490 overflow:hidden;
1491 1491 }
1492 1492
1493 1493 #graph_nodes {
1494 1494 width:160px;
1495 1495 float:left;
1496 1496 margin-left:-50px;
1497 1497 margin-top:5px;
1498 1498 }
1499 1499
1500 1500 #graph_content {
1501 1501 width:800px;
1502 1502 float:left;
1503 1503 }
1504 1504
1505 1505 #graph_content .container_header {
1506 1506 border:1px solid #CCC;
1507 1507 padding:10px;
1508 1508 }
1509 1509
1510 1510 #graph_content .container {
1511 1511 border-bottom:1px solid #CCC;
1512 1512 border-left:1px solid #CCC;
1513 1513 border-right:1px solid #CCC;
1514 1514 min-height:80px;
1515 1515 overflow:hidden;
1516 1516 font-size:1.2em;
1517 1517 }
1518 1518
1519 1519 #graph_content .container .right {
1520 1520 float:right;
1521 1521 width:28%;
1522 1522 text-align:right;
1523 1523 padding-bottom:5px;
1524 1524 }
1525 1525
1526 1526 #graph_content .container .left .date {
1527 1527 font-weight:700;
1528 1528 padding-bottom:5px;
1529 1529 }
1530 1530
1531 1531 #graph_content .container .left .message {
1532 1532 font-size:100%;
1533 1533 padding-top:3px;
1534 1534 white-space:pre-wrap;
1535 1535 }
1536 1536
1537 1537 .right div {
1538 1538 clear:both;
1539 1539 }
1540 1540
1541 1541 .right .changes .added,.changed,.removed {
1542 1542 border:1px solid #DDD;
1543 1543 display:block;
1544 1544 float:right;
1545 1545 text-align:center;
1546 1546 min-width:15px;
1547 1547 }
1548 1548
1549 1549 .right .changes .added {
1550 1550 background:#BFB;
1551 1551 }
1552 1552
1553 1553 .right .changes .changed {
1554 1554 background:#FD8;
1555 1555 }
1556 1556
1557 1557 .right .changes .removed {
1558 1558 background:#F88;
1559 1559 }
1560 1560
1561 1561 .right .merge {
1562 1562 vertical-align:top;
1563 1563 font-size:0.75em;
1564 1564 font-weight:700;
1565 1565 }
1566 1566
1567 1567 .right .parent {
1568 1568 font-size:90%;
1569 1569 font-family:monospace;
1570 1570 }
1571 1571
1572 1572 .right .logtags .branchtag {
1573 1573 background:#FFF url("../images/icons/arrow_branch.png") no-repeat right 6px;
1574 1574 display:block;
1575 1575 font-size:0.8em;
1576 1576 padding:11px 16px 0 0;
1577 1577 }
1578 1578
1579 1579 .right .logtags .tagtag {
1580 1580 background:#FFF url("../images/icons/tag_blue.png") no-repeat right 6px;
1581 1581 display:block;
1582 1582 font-size:0.8em;
1583 1583 padding:11px 16px 0 0;
1584 1584 }
1585 1585
1586 1586 div.browserblock {
1587 1587 overflow:hidden;
1588 1588 border:1px solid #ccc;
1589 1589 background:#f8f8f8;
1590 1590 font-size:100%;
1591 1591 line-height:125%;
1592 1592 padding:0;
1593 1593 }
1594 1594
1595 1595 div.browserblock .browser-header {
1596 1596 border-bottom:1px solid #CCC;
1597 1597 background:#FFF;
1598 1598 color:blue;
1599 1599 padding:10px 0;
1600 1600 }
1601 1601
1602 1602 div.browserblock .browser-header span {
1603 1603 margin-left:25px;
1604 1604 font-weight:700;
1605 1605 }
1606 1606
1607 1607 div.browserblock .browser-body {
1608 1608 background:#EEE;
1609 1609 }
1610 1610
1611 1611 table.code-browser {
1612 1612 border-collapse:collapse;
1613 1613 width:100%;
1614 1614 }
1615 1615
1616 1616 table.code-browser tr {
1617 1617 margin:3px;
1618 1618 }
1619 1619
1620 1620 table.code-browser thead th {
1621 1621 background-color:#EEE;
1622 1622 height:20px;
1623 1623 font-size:1.1em;
1624 1624 font-weight:700;
1625 1625 text-align:left;
1626 1626 padding-left:10px;
1627 1627 }
1628 1628
1629 1629 table.code-browser tbody td {
1630 1630 padding-left:10px;
1631 1631 height:20px;
1632 1632 }
1633 1633
1634 1634 table.code-browser .browser-file {
1635 1635 background:url("../images/icons/document_16.png") no-repeat scroll 3px;
1636 1636 height:16px;
1637 1637 padding-left:20px;
1638 1638 text-align:left;
1639 1639 }
1640 1640
1641 1641 table.code-browser .browser-dir {
1642 1642 background:url("../images/icons/folder_16.png") no-repeat scroll 3px;
1643 1643 height:16px;
1644 1644 padding-left:20px;
1645 1645 text-align:left;
1646 1646 }
1647 1647
1648 1648 .box .search {
1649 1649 clear:both;
1650 1650 overflow:hidden;
1651 1651 margin:0;
1652 1652 padding:0 20px 10px;
1653 1653 }
1654 1654
1655 1655 .box .search div.search_path {
1656 1656 background:none repeat scroll 0 0 #EEE;
1657 1657 border:1px solid #CCC;
1658 1658 color:blue;
1659 1659 margin-bottom:10px;
1660 1660 padding:10px 0;
1661 1661 }
1662 1662
1663 1663 .box .search div.search_path div.link {
1664 1664 font-weight:700;
1665 1665 margin-left:25px;
1666 1666 }
1667 1667
1668 1668 .box .search div.search_path div.link a {
1669 1669 color:#003367;
1670 1670 cursor:pointer;
1671 1671 text-decoration:none;
1672 1672 }
1673 1673
1674 1674 #path_unlock {
1675 1675 color:red;
1676 1676 font-size:1.2em;
1677 1677 padding-left:4px;
1678 1678 }
1679 1679
1680 1680 .info_box * {
1681 1681 background:url("../../images/pager.png") repeat-x scroll 0 0 #EBEBEB;
1682 1682 color:#4A4A4A;
1683 1683 font-weight:700;
1684 1684 height:1%;
1685 1685 display:inline;
1686 1686 border-color:#DEDEDE #C4C4C4 #C4C4C4 #CFCFCF;
1687 1687 border-style:solid;
1688 1688 border-width:1px;
1689 1689 padding:4px 6px;
1690 1690 }
1691 1691
1692 1692 .info_box span {
1693 1693 margin-left:3px;
1694 1694 margin-right:3px;
1695 1695 }
1696 1696
1697 1697 .info_box input#at_rev {
1698 1698 text-align:center;
1699 1699 padding:5px 3px 3px 2px;
1700 1700 }
1701 1701
1702 1702 .info_box input#view {
1703 1703 text-align:center;
1704 1704 padding:4px 3px 2px 2px;
1705 1705 }
1706 1706
1707 1707 .yui-overlay,.yui-panel-container {
1708 1708 visibility:hidden;
1709 1709 position:absolute;
1710 1710 z-index:2;
1711 1711 }
1712 1712
1713 1713 .yui-tt {
1714 1714 visibility:hidden;
1715 1715 position:absolute;
1716 1716 color:#666;
1717 1717 background-color:#FFF;
1718 1718 font-family:arial, helvetica, verdana, sans-serif;
1719 1719 border:2px solid #003367;
1720 1720 font:100% sans-serif;
1721 1721 width:auto;
1722 1722 opacity:1px;
1723 1723 padding:8px;
1724 1724 white-space: pre;
1725 1725 }
1726 1726
1727 1727 .ac {
1728 1728 vertical-align:top;
1729 1729 }
1730 1730
1731 1731 .ac .yui-ac {
1732 1732 position:relative;
1733 1733 font-family:arial;
1734 1734 font-size:100%;
1735 1735 }
1736 1736
1737 1737 .ac .perm_ac {
1738 1738 width:15em;
1739 1739 }
1740 1740
1741 1741 .ac .yui-ac-input {
1742 1742 width:100%;
1743 1743 }
1744 1744
1745 1745 .ac .yui-ac-container {
1746 1746 position:absolute;
1747 1747 top:1.6em;
1748 1748 width:100%;
1749 1749 }
1750 1750
1751 1751 .ac .yui-ac-content {
1752 1752 position:absolute;
1753 1753 width:100%;
1754 1754 border:1px solid gray;
1755 1755 background:#fff;
1756 1756 overflow:hidden;
1757 1757 z-index:9050;
1758 1758 }
1759 1759
1760 1760 .ac .yui-ac-shadow {
1761 1761 position:absolute;
1762 1762 width:100%;
1763 1763 background:#000;
1764 1764 -moz-opacity:0.1px;
1765 1765 opacity:.10;
1766 1766 filter:alpha(opacity = 10);
1767 1767 z-index:9049;
1768 1768 margin:.3em;
1769 1769 }
1770 1770
1771 1771 .ac .yui-ac-content ul {
1772 1772 width:100%;
1773 1773 margin:0;
1774 1774 padding:0;
1775 1775 }
1776 1776
1777 1777 .ac .yui-ac-content li {
1778 1778 cursor:default;
1779 1779 white-space:nowrap;
1780 1780 margin:0;
1781 1781 padding:2px 5px;
1782 1782 }
1783 1783
1784 1784 .ac .yui-ac-content li.yui-ac-prehighlight {
1785 1785 background:#B3D4FF;
1786 1786 }
1787 1787
1788 1788 .ac .yui-ac-content li.yui-ac-highlight {
1789 1789 background:#556CB5;
1790 1790 color:#FFF;
1791 1791 }
1792 1792
1793 1793 .follow{
1794 1794 background:url("../images/icons/heart_add.png") no-repeat scroll 3px;
1795 1795 height: 16px;
1796 1796 width: 20px;
1797 1797 cursor: pointer;
1798 1798 display: block;
1799 1799 float: right;
1800 1800 margin-top: 2px;
1801 1801 }
1802 1802
1803 1803 .following{
1804 1804 background:url("../images/icons/heart_delete.png") no-repeat scroll 3px;
1805 1805 height: 16px;
1806 1806 width: 20px;
1807 1807 cursor: pointer;
1808 1808 display: block;
1809 1809 float: right;
1810 1810 margin-top: 2px;
1811 1811 }
1812 1812
1813 1813 .currently_following{
1814 1814
1815 1815 padding-left: 10px;
1816 1816 padding-bottom:5px;
1817 1817
1818 1818 }
1819 1819
1820 1820
1821 1821
1822 1822 .add_icon {
1823 1823 background:url("../images/icons/add.png") no-repeat scroll 3px;
1824 1824 height:16px;
1825 1825 padding-left:20px;
1826 1826 padding-top:1px;
1827 1827 text-align:left;
1828 1828 }
1829 1829
1830 1830 .edit_icon {
1831 1831 background:url("../images/icons/folder_edit.png") no-repeat scroll 3px;
1832 1832 height:16px;
1833 1833 padding-left:20px;
1834 1834 padding-top:1px;
1835 1835 text-align:left;
1836 1836 }
1837 1837
1838 1838 .delete_icon {
1839 1839 background:url("../images/icons/delete.png") no-repeat scroll 3px;
1840 1840 height:16px;
1841 1841 padding-left:20px;
1842 1842 padding-top:1px;
1843 1843 text-align:left;
1844 1844 }
1845 1845
1846 1846 .refresh_icon {
1847 1847 background:url("../images/icons/arrow_refresh.png") no-repeat scroll 3px;
1848 1848 height:16px;
1849 1849 padding-left:20px;
1850 1850 padding-top:1px;
1851 1851 text-align:left;
1852 1852 }
1853 1853
1854 1854 .rss_icon {
1855 1855 background:url("../images/icons/rss_16.png") no-repeat scroll 3px;
1856 1856 height:16px;
1857 1857 padding-left:20px;
1858 1858 padding-top:1px;
1859 1859 text-align:left;
1860 1860 }
1861 1861
1862 1862 .atom_icon {
1863 1863 background:url("../images/icons/atom.png") no-repeat scroll 3px;
1864 1864 height:16px;
1865 1865 padding-left:20px;
1866 1866 padding-top:1px;
1867 1867 text-align:left;
1868 1868 }
1869 1869
1870 1870 .archive_icon {
1871 1871 background:url("../images/icons/compress.png") no-repeat scroll 3px;
1872 1872 height:16px;
1873 1873 padding-left:20px;
1874 1874 text-align:left;
1875 1875 padding-top:1px;
1876 1876 }
1877 1877
1878 1878 .action_button {
1879 1879 border:0;
1880 1880 display:block;
1881 1881 }
1882 1882
1883 1883 .action_button:hover {
1884 1884 border:0;
1885 1885 text-decoration:underline;
1886 1886 cursor:pointer;
1887 1887 }
1888 1888
1889 1889 #switch_repos {
1890 1890 position:absolute;
1891 1891 height:25px;
1892 1892 z-index:1;
1893 1893 }
1894 1894
1895 1895 #switch_repos select {
1896 1896 min-width:150px;
1897 1897 max-height:250px;
1898 1898 z-index:1;
1899 1899 }
1900 1900
1901 1901 .breadcrumbs {
1902 1902 border:medium none;
1903 1903 color:#FFF;
1904 1904 float:left;
1905 1905 text-transform:uppercase;
1906 1906 font-weight:700;
1907 1907 font-size:14px;
1908 1908 margin:0;
1909 1909 padding:11px 0 11px 10px;
1910 1910 }
1911 1911
1912 1912 .breadcrumbs a {
1913 1913 color:#FFF;
1914 1914 }
1915 1915
1916 1916 .flash_msg ul {
1917 1917 margin:0;
1918 1918 padding:0 0 10px;
1919 1919 }
1920 1920
1921 1921 .error_msg {
1922 1922 background-color:#FFCFCF;
1923 1923 background-image:url("../../images/icons/error_msg.png");
1924 1924 border:1px solid #FF9595;
1925 1925 color:#C30;
1926 1926 }
1927 1927
1928 1928 .warning_msg {
1929 1929 background-color:#FFFBCC;
1930 1930 background-image:url("../../images/icons/warning_msg.png");
1931 1931 border:1px solid #FFF35E;
1932 1932 color:#C69E00;
1933 1933 }
1934 1934
1935 1935 .success_msg {
1936 1936 background-color:#D5FFCF;
1937 1937 background-image:url("../../images/icons/success_msg.png");
1938 1938 border:1px solid #97FF88;
1939 1939 color:#090;
1940 1940 }
1941 1941
1942 1942 .notice_msg {
1943 1943 background-color:#DCE3FF;
1944 1944 background-image:url("../../images/icons/notice_msg.png");
1945 1945 border:1px solid #93A8FF;
1946 1946 color:#556CB5;
1947 1947 }
1948 1948
1949 1949 .success_msg,.error_msg,.notice_msg,.warning_msg {
1950 1950 background-position:10px center;
1951 1951 background-repeat:no-repeat;
1952 1952 font-size:12px;
1953 1953 font-weight:700;
1954 1954 min-height:14px;
1955 1955 line-height:14px;
1956 1956 margin-bottom:0;
1957 1957 margin-top:0;
1958 1958 display:block;
1959 1959 overflow:auto;
1960 1960 padding:6px 10px 6px 40px;
1961 1961 }
1962 1962
1963 1963 #msg_close {
1964 1964 background:transparent url("../../icons/cross_grey_small.png") no-repeat scroll 0 0;
1965 1965 cursor:pointer;
1966 1966 height:16px;
1967 1967 position:absolute;
1968 1968 right:5px;
1969 1969 top:5px;
1970 1970 width:16px;
1971 1971 }
1972 1972
1973 1973 div#legend_container table,div#legend_choices table {
1974 1974 width:auto !important;
1975 1975 }
1976 1976
1977 1977 table#permissions_manage {
1978 1978 width:0 !important;
1979 1979 }
1980 1980
1981 1981 table#permissions_manage span.private_repo_msg {
1982 1982 font-size:0.8em;
1983 1983 opacity:0.6px;
1984 1984 }
1985 1985
1986 1986 table#permissions_manage td.private_repo_msg {
1987 1987 font-size:0.8em;
1988 1988 }
1989 1989
1990 1990 table#permissions_manage tr#add_perm_input td {
1991 1991 vertical-align:middle;
1992 1992 }
1993 1993
1994 1994 div.gravatar {
1995 1995 background-color:#FFF;
1996 1996 border:1px solid #D0D0D0;
1997 1997 float:left;
1998 1998 margin-right:0.7em;
1999 1999 padding:2px 2px 0;
2000 2000 }
2001 2001
2002 2002 #header,#content,#footer {
2003 2003 min-width:1024px;
2004 2004 }
2005 2005
2006 2006 #content {
2007 2007 min-height:100%;
2008 2008 clear:both;
2009 2009 overflow:hidden;
2010 2010 padding:14px 30px;
2011 2011 }
2012 2012
2013 2013 #content div.box div.title div.search {
2014 2014 background:url("../../images/title_link.png") no-repeat top left;
2015 2015 border-left:1px solid #316293;
2016 2016 }
2017 2017
2018 2018 #content div.box div.title div.search div.input input {
2019 2019 border:1px solid #316293;
2020 2020 }
2021 2021
2022 2022 #content div.box div.title div.search div.button input.ui-state-default {
2023 2023 background:#4e85bb url("../../images/button_highlight.png") repeat-x;
2024 2024 border:1px solid #316293;
2025 2025 border-left:none;
2026 2026 color:#FFF;
2027 2027 }
2028 2028
2029 2029 #content div.box div.title div.search div.button input.ui-state-hover {
2030 2030 background:#46a0c1 url("../../images/button_highlight_selected.png") repeat-x;
2031 2031 border:1px solid #316293;
2032 2032 border-left:none;
2033 2033 color:#FFF;
2034 2034 }
2035 2035
2036 2036 #content div.box div.form div.fields div.field div.highlight .ui-state-default {
2037 2037 background:#4e85bb url("../../images/button_highlight.png") repeat-x;
2038 2038 border-top:1px solid #5c91a4;
2039 2039 border-left:1px solid #2a6f89;
2040 2040 border-right:1px solid #2b7089;
2041 2041 border-bottom:1px solid #1a6480;
2042 2042 color:#fff;
2043 2043 }
2044 2044
2045 2045 #content div.box div.form div.fields div.field div.highlight .ui-state-hover {
2046 2046 background:#46a0c1 url("../../images/button_highlight_selected.png") repeat-x;
2047 2047 border-top:1px solid #78acbf;
2048 2048 border-left:1px solid #34819e;
2049 2049 border-right:1px solid #35829f;
2050 2050 border-bottom:1px solid #257897;
2051 2051 color:#fff;
2052 2052 }
2053 2053
2054 2054 ins,div.options a:hover {
2055 2055 text-decoration:none;
2056 2056 }
2057 2057
2058 2058 img,#header #header-inner #quick li a:hover span.normal,#header #header-inner #quick li ul li.last,#content div.box div.form div.fields div.field div.textarea table td table td a,#clone_url {
2059 2059 border:none;
2060 2060 }
2061 2061
2062 2062 img.icon,.right .merge img {
2063 2063 vertical-align:bottom;
2064 2064 }
2065 2065
2066 2066 #header ul#logged-user,#content div.box div.title ul.links,#content div.box div.message div.dismiss,#content div.box div.traffic div.legend ul {
2067 2067 float:right;
2068 2068 margin:0;
2069 2069 padding:0;
2070 2070 }
2071 2071
2072 2072 #header #header-inner #home,#header #header-inner #logo,#content div.box ul.left,#content div.box ol.left,#content div.box div.pagination-left,div#commit_history,div#legend_data,div#legend_container,div#legend_choices {
2073 2073 float:left;
2074 2074 }
2075 2075
2076 2076 #header #header-inner #quick li:hover ul ul,#header #header-inner #quick li:hover ul ul ul,#header #header-inner #quick li:hover ul ul ul ul,#content #left #menu ul.closed,#content #left #menu li ul.collapsed,.yui-tt-shadow {
2077 2077 display:none;
2078 2078 }
2079 2079
2080 2080 #header #header-inner #quick li:hover ul,#header #header-inner #quick li li:hover ul,#header #header-inner #quick li li li:hover ul,#header #header-inner #quick li li li li:hover ul,#content #left #menu ul.opened,#content #left #menu li ul.expanded {
2081 2081 display:block;
2082 2082 }
2083 2083
2084 2084 #content div.box div.title ul.links li a:hover,#content div.box div.title ul.links li.ui-tabs-selected a {
2085 2085 color:#bfe3ff;
2086 2086 }
2087 2087
2088 2088 #content div.box ol.lower-roman,#content div.box ol.upper-roman,#content div.box ol.lower-alpha,#content div.box ol.upper-alpha,#content div.box ol.decimal {
2089 2089 margin:10px 24px 10px 44px;
2090 2090 }
2091 2091
2092 2092 #content div.box div.form,#content div.box div.table,#content div.box div.traffic {
2093 2093 clear:both;
2094 2094 overflow:hidden;
2095 2095 margin:0;
2096 2096 padding:0 20px 10px;
2097 2097 }
2098 2098
2099 2099 #content div.box div.form div.fields,#login div.form,#login div.form div.fields,#register div.form,#register div.form div.fields {
2100 2100 clear:both;
2101 2101 overflow:hidden;
2102 2102 margin:0;
2103 2103 padding:0;
2104 2104 }
2105 2105
2106 2106 #content div.box div.form div.fields div.field div.label span,#login div.form div.fields div.field div.label span,#register div.form div.fields div.field div.label span {
2107 2107 height:1%;
2108 2108 display:block;
2109 2109 color:#363636;
2110 2110 margin:0;
2111 2111 padding:2px 0 0;
2112 2112 }
2113 2113
2114 2114 #content div.box div.form div.fields div.field div.input input.error,#login div.form div.fields div.field div.input input.error,#register div.form div.fields div.field div.input input.error {
2115 2115 background:#FBE3E4;
2116 2116 border-top:1px solid #e1b2b3;
2117 2117 border-left:1px solid #e1b2b3;
2118 2118 border-right:1px solid #FBC2C4;
2119 2119 border-bottom:1px solid #FBC2C4;
2120 2120 }
2121 2121
2122 2122 #content div.box div.form div.fields div.field div.input input.success,#login div.form div.fields div.field div.input input.success,#register div.form div.fields div.field div.input input.success {
2123 2123 background:#E6EFC2;
2124 2124 border-top:1px solid #cebb98;
2125 2125 border-left:1px solid #cebb98;
2126 2126 border-right:1px solid #c6d880;
2127 2127 border-bottom:1px solid #c6d880;
2128 2128 }
2129 2129
2130 2130 #content div.box-left div.form div.fields div.field div.textarea,#content div.box-right div.form div.fields div.field div.textarea,#content div.box div.form div.fields div.field div.select select,#content div.box table th.selected input,#content div.box table td.selected input {
2131 2131 margin:0;
2132 2132 }
2133 2133
2134 2134 #content div.box-left div.form div.fields div.field div.select,#content div.box-left div.form div.fields div.field div.checkboxes,#content div.box-left div.form div.fields div.field div.radios,#content div.box-right div.form div.fields div.field div.select,#content div.box-right div.form div.fields div.field div.checkboxes,#content div.box-right div.form div.fields div.field div.radios{
2135 2135 margin:0 0 0 0px !important;
2136 2136 padding:0;
2137 2137 }
2138 2138
2139 2139 #content div.box div.form div.fields div.field div.select,#content div.box div.form div.fields div.field div.checkboxes,#content div.box div.form div.fields div.field div.radios {
2140 2140 margin:0 0 0 200px;
2141 2141 padding:0;
2142 2142 }
2143 2143
2144 2144
2145 2145 #content div.box div.form div.fields div.field div.select a:hover,#content div.box div.form div.fields div.field div.select a.ui-selectmenu:hover,#content div.box div.action a:hover {
2146 2146 color:#000;
2147 2147 text-decoration:none;
2148 2148 }
2149 2149
2150 2150 #content div.box div.form div.fields div.field div.select a.ui-selectmenu-focus,#content div.box div.action a.ui-selectmenu-focus {
2151 2151 border:1px solid #666;
2152 2152 }
2153 2153
2154 2154 #content div.box div.form div.fields div.field div.checkboxes div.checkbox,#content div.box div.form div.fields div.field div.radios div.radio {
2155 2155 clear:both;
2156 2156 overflow:hidden;
2157 2157 margin:0;
2158 2158 padding:8px 0 2px;
2159 2159 }
2160 2160
2161 2161 #content div.box div.form div.fields div.field div.checkboxes div.checkbox input,#content div.box div.form div.fields div.field div.radios div.radio input {
2162 2162 float:left;
2163 2163 margin:0;
2164 2164 }
2165 2165
2166 2166 #content div.box div.form div.fields div.field div.checkboxes div.checkbox label,#content div.box div.form div.fields div.field div.radios div.radio label {
2167 2167 height:1%;
2168 2168 display:block;
2169 2169 float:left;
2170 2170 margin:2px 0 0 4px;
2171 2171 }
2172 2172
2173 2173 div.form div.fields div.field div.button input,#content div.box div.form div.fields div.buttons input,div.form div.fields div.buttons input,#content div.box div.action div.button input {
2174 2174 color:#000;
2175 2175 font-family:Lucida Grande, Verdana, Lucida Sans Regular, Lucida Sans Unicode, Arial, sans-serif;
2176 2176 font-size:11px;
2177 2177 font-weight:700;
2178 2178 margin:0;
2179 2179 }
2180 2180
2181 2181 div.form div.fields div.field div.button .ui-state-default,#content div.box div.form div.fields div.buttons input.ui-state-default {
2182 2182 background:#e5e3e3 url("../images/button.png") repeat-x;
2183 2183 border-top:1px solid #DDD;
2184 2184 border-left:1px solid #c6c6c6;
2185 2185 border-right:1px solid #DDD;
2186 2186 border-bottom:1px solid #c6c6c6;
2187 2187 color:#515151;
2188 2188 outline:none;
2189 2189 margin:0;
2190 2190 padding:6px 12px;
2191 2191 }
2192 2192
2193 2193 div.form div.fields div.field div.button .ui-state-hover,#content div.box div.form div.fields div.buttons input.ui-state-hover {
2194 2194 background:#b4b4b4 url("../images/button_selected.png") repeat-x;
2195 2195 border-top:1px solid #ccc;
2196 2196 border-left:1px solid #bebebe;
2197 2197 border-right:1px solid #b1b1b1;
2198 2198 border-bottom:1px solid #afafaf;
2199 2199 color:#515151;
2200 2200 outline:none;
2201 2201 margin:0;
2202 2202 padding:6px 12px;
2203 2203 }
2204 2204
2205 2205 div.form div.fields div.field div.highlight,#content div.box div.form div.fields div.buttons div.highlight {
2206 2206 display:inline;
2207 2207 }
2208 2208
2209 2209 #content div.box div.form div.fields div.buttons,div.form div.fields div.buttons {
2210 2210 margin:10px 0 0 200px;
2211 2211 padding:0;
2212 2212 }
2213 2213
2214 2214 #content div.box-left div.form div.fields div.buttons,#content div.box-right div.form div.fields div.buttons,div.box-left div.form div.fields div.buttons,div.box-right div.form div.fields div.buttons {
2215 2215 margin:10px 0 0;
2216 2216 }
2217 2217
2218 2218 #content div.box table td.user,#content div.box table td.address {
2219 2219 width:10%;
2220 2220 text-align:center;
2221 2221 }
2222 2222
2223 2223 #content div.box div.action div.button,#login div.form div.fields div.field div.input div.link,#register div.form div.fields div.field div.input div.link {
2224 2224 text-align:right;
2225 2225 margin:6px 0 0;
2226 2226 padding:0;
2227 2227 }
2228 2228
2229 2229 #content div.box div.action div.button input.ui-state-default,#login div.form div.fields div.buttons input.ui-state-default,#register div.form div.fields div.buttons input.ui-state-default {
2230 2230 background:#e5e3e3 url("../images/button.png") repeat-x;
2231 2231 border-top:1px solid #DDD;
2232 2232 border-left:1px solid #c6c6c6;
2233 2233 border-right:1px solid #DDD;
2234 2234 border-bottom:1px solid #c6c6c6;
2235 2235 color:#515151;
2236 2236 margin:0;
2237 2237 padding:6px 12px;
2238 2238 }
2239 2239
2240 2240 #content div.box div.action div.button input.ui-state-hover,#login div.form div.fields div.buttons input.ui-state-hover,#register div.form div.fields div.buttons input.ui-state-hover {
2241 2241 background:#b4b4b4 url("../images/button_selected.png") repeat-x;
2242 2242 border-top:1px solid #ccc;
2243 2243 border-left:1px solid #bebebe;
2244 2244 border-right:1px solid #b1b1b1;
2245 2245 border-bottom:1px solid #afafaf;
2246 2246 color:#515151;
2247 2247 margin:0;
2248 2248 padding:6px 12px;
2249 2249 }
2250 2250
2251 2251 #content div.box div.pagination div.results,#content div.box div.pagination-wh div.results {
2252 2252 text-align:left;
2253 2253 float:left;
2254 2254 margin:0;
2255 2255 padding:0;
2256 2256 }
2257 2257
2258 2258 #content div.box div.pagination div.results span,#content div.box div.pagination-wh div.results span {
2259 2259 height:1%;
2260 2260 display:block;
2261 2261 float:left;
2262 2262 background:#ebebeb url("../images/pager.png") repeat-x;
2263 2263 border-top:1px solid #dedede;
2264 2264 border-left:1px solid #cfcfcf;
2265 2265 border-right:1px solid #c4c4c4;
2266 2266 border-bottom:1px solid #c4c4c4;
2267 2267 color:#4A4A4A;
2268 2268 font-weight:700;
2269 2269 margin:0;
2270 2270 padding:6px 8px;
2271 2271 }
2272 2272
2273 2273 #content div.box div.pagination ul.pager li.disabled,#content div.box div.pagination-wh a.disabled {
2274 2274 color:#B4B4B4;
2275 2275 padding:6px;
2276 2276 }
2277 2277
2278 2278 #login,#register {
2279 2279 width:520px;
2280 2280 margin:10% auto 0;
2281 2281 padding:0;
2282 2282 }
2283 2283
2284 2284 #login div.color,#register div.color {
2285 2285 clear:both;
2286 2286 overflow:hidden;
2287 2287 background:#FFF;
2288 2288 margin:10px auto 0;
2289 2289 padding:3px 3px 3px 0;
2290 2290 }
2291 2291
2292 2292 #login div.color a,#register div.color a {
2293 2293 width:20px;
2294 2294 height:20px;
2295 2295 display:block;
2296 2296 float:left;
2297 2297 margin:0 0 0 3px;
2298 2298 padding:0;
2299 2299 }
2300 2300
2301 2301 #login div.title h5,#register div.title h5 {
2302 2302 color:#fff;
2303 2303 margin:10px;
2304 2304 padding:0;
2305 2305 }
2306 2306
2307 2307 #login div.form div.fields div.field,#register div.form div.fields div.field {
2308 2308 clear:both;
2309 2309 overflow:hidden;
2310 2310 margin:0;
2311 2311 padding:0 0 10px;
2312 2312 }
2313 2313
2314 2314 #login div.form div.fields div.field span.error-message,#register div.form div.fields div.field span.error-message {
2315 2315 height:1%;
2316 2316 display:block;
2317 2317 color:red;
2318 2318 margin:8px 0 0;
2319 2319 padding:0;
2320 width: 320px;
2320 max-width: 320px;
2321 2321 }
2322 2322
2323 2323 #login div.form div.fields div.field div.label label,#register div.form div.fields div.field div.label label {
2324 2324 color:#000;
2325 2325 font-weight:700;
2326 2326 }
2327 2327
2328 2328 #login div.form div.fields div.field div.input,#register div.form div.fields div.field div.input {
2329 2329 float:left;
2330 2330 margin:0;
2331 2331 padding:0;
2332 2332 }
2333 2333
2334 2334 #login div.form div.fields div.field div.checkbox,#register div.form div.fields div.field div.checkbox {
2335 2335 margin:0 0 0 184px;
2336 2336 padding:0;
2337 2337 }
2338 2338
2339 2339 #login div.form div.fields div.field div.checkbox label,#register div.form div.fields div.field div.checkbox label {
2340 2340 color:#565656;
2341 2341 font-weight:700;
2342 2342 }
2343 2343
2344 2344 #login div.form div.fields div.buttons input,#register div.form div.fields div.buttons input {
2345 2345 color:#000;
2346 2346 font-size:1em;
2347 2347 font-weight:700;
2348 2348 font-family:Verdana, Helvetica, Sans-Serif;
2349 2349 margin:0;
2350 2350 }
2351 2351
2352 2352 #changeset_content .container .wrapper,#graph_content .container .wrapper {
2353 2353 width:600px;
2354 2354 }
2355 2355
2356 2356 #changeset_content .container .left,#graph_content .container .left {
2357 2357 float:left;
2358 2358 width:70%;
2359 2359 padding-left:5px;
2360 2360 }
2361 2361
2362 2362 #changeset_content .container .left .date,.ac .match {
2363 2363 font-weight:700;
2364 2364 padding-top: 5px;
2365 2365 padding-bottom:5px;
2366 2366 }
2367 2367
2368 2368 div#legend_container table td,div#legend_choices table td {
2369 2369 border:none !important;
2370 2370 height:20px !important;
2371 2371 padding:0 !important;
2372 2372 }
2373 2373
2374 2374 #q_filter{
2375 2375 border:0 none;
2376 2376 color:#AAAAAA;
2377 2377 margin-bottom:-4px;
2378 2378 margin-top:-4px;
2379 2379 padding-left:3px;
2380 2380 }
2381 2381
General Comments 0
You need to be logged in to leave comments. Login now