* html #poststuff {
	height: 100%; /* kill peekaboo bug in IE */
}

/* This is the Holly Hack \*/
* html .wrap { height: 1% }
/* For Win IE's eyes only */

body {
	border: none;
}
a {
	border-bottom: 1px solid #69c;
	color: #00019b;
	text-decoration: none;
}

a.delete:hover {
	background: #c00;
	color: #fff;
}

#devnews h4 {
	font-family: Georgia, "Times New Roman", Times, serif;
	font-size: 18px;
	font-weight: normal;
}

#planetnews ul {
	list-style: none;
	margin: 0;
	padding: 0;
}

#planetnews li {
	width: 17%;
	margin: 1%;
	float: left;
}

#planetnews li a {
	display: block;
	padding: .5em;
	background: #ddd;
	height: 6em;
	overflow: hidden;
}

#planetnews cite {
	font-size: 11px;
}

#planetnews li .post {
	font-family: Georgia, "Times New Roman", Times, serif;
	font-size: 18px;
	display: block;
	height: 60px;
	overflow: hidden;
}

#planetnews .hidden {
	display: none;
}

.readmore {
	clear: both;
	text-align: right;
	margin-right: 5em;
}

.widefat {
	width: 100%;
}

.widefat td, .widefat th {
	padding: 5px 6px;
}

.widefat th {
	text-align: left;
}

.plugins p {
	margin: 4px;
	padding: 0;
}

.plugins .name {
	font-size: 16px;
}

.import-system {
	font-size: 16px;
}

thead, .thead {
	background: #dfdfdf
}

#import-upload-form {
	margin: auto;
	background: #eee;
	padding: 1em;
}

a.view, a.edit, a.delete, a.view:hover, a.edit:hover, a.delete:hover {
	border-bottom: none;
	display: block;
	padding: 5px 0;
	text-align: center;
}

a.view:hover, a.edit:hover {
	background: #ccc;
	color: #036;
}

a:visited {
	color: #004;
}

a:hover {
	color: #069;
}

body	{
	background: #f9fcfe;
	color: #000;
	margin: 0;
	padding: 0;
}

body, td {
	font: 13px "Lucida Grande", "Lucida Sans Unicode", Tahoma, Verdana, sans-serif;
}

fieldset {
	border: none;
	padding: 3px;
}

fieldset label.selectit {
	display: block;
	font-size: 11px;
	padding: 0 2px;
}

fieldset label.selectit:hover {
	background: #e9e9e9;
}

fieldset legend {
	padding: .1em .3em;
}

fieldset.options {
	padding: 1em;
}

fieldset.options legend {
	font-size: 1.5em;
	font-weight: bold;
	font-family: Georgia, "Times New Roman", Times, serif;
}

form, label input {
	margin: 0;
	padding: 0;
}

h2 {
	color: #333;
	font: normal 32px Georgia, "Times New Roman", Times, serif;
	margin: 5px 10px;
	background: url( images/heading-bg.gif ) repeat-x bottom;
}

img {
	border: 0;
}

input:focus, textarea:focus, label:focus {
	background: #fff;
	border: 1px solid #686868;
}

label {
	cursor: pointer;
}

li, dd {
	margin-bottom: 6px;
}

p, li, dl, dd, dt {
	line-height: 140%;
}

textarea, input, select {
	background: #f4f4f4;
	border: 1px solid #b2b2b2;
	color: #000;
	font: 13px Verdana, Arial, Helvetica, sans-serif;
	margin: 1px;
	padding: 3px;
}

#uploading {
	border-style: none;
	padding: 0;
	margin-bottom: 16px;
	height: 18em;
	width: 100%;
}

form#upload th {
	text-align: right;
}

form#upload #post_content, form#upload #post_title {
	width: 250px;
}

form#upload #post_content {
	height: 50px;
}

.attpreview {
	width: 1px; /* hug */
	text-align: center;
}

.alignleft {
	float: left
}

.alignright {
	float: right;
}

.alternate {
	background: #f1f1f1;
}

.anchors {
	margin: 10px 20px 10px 20px;
}

.available-theme {
	width: 30%;
	margin: 0 1em;
	float: left;
	text-align: center;
	height: 28em;
	overflow: hidden;
}

.available-theme a.screenshot {
	width: 250px;
	height: 200px;
	display: block;
	margin: auto;
	background: #f1f1f1;
	border: 1px solid #ccc;
	margin-bottom: 10px;
	overflow: hidden;
}

.available-theme a.screenshot:hover {
/*	border: 1px solid #666;*/
}

.available-theme img {
	width: 100%;
}

.checkbox {
	background: #fff;
	border: none;
	margin: 0;
	padding: 0;
}

.code {
	font-family: "Courier New", Courier, monospace;
}

.commentlist li {
	border-bottom: 1px solid #ccc;
	padding: 1em 1em .2em;
	margin: 0;
}

.commentlist li li {
	border-bottom: 0px;
	padding: 0;
}

.commentlist p {
	padding: 0;
	margin: 0 0 .8em;
}

.clear {
	clear: both;
	height: 2px;
}

.hidden {
	display: none;
}

.navigation {
	display: block;
	text-align: center;
	margin-top: 10px;
	margin-bottom: 30px;
}

.post-categories {
	display: inline;
	margin: 0;
	padding: 0;
}

.post-categories li, #ed_toolbar {
	display: inline;
}

.quicktags, .search {
	background: #ccc;
	color: #000;
	font: 12px Georgia, "Times New Roman", Times, serif;
}

.submit input, .submit input:focus, .button, .button:focus {
	background: url( images/fade-butt.png );
	border: 3px double #999;
	border-left-color: #ccc;
	border-top-color: #ccc;
	color: #333;
	padding: 0.25em;
}

.submit input:active, .button:active {
	background: #f4f4f4;
	border: 3px double #ccc;
	border-left-color: #999;
	border-top-color: #999;
}

.button, .button:focus {
	padding: 0.15em;
}

* html .button {
	padding: 0;
}

.submit, .editform th, #postcustomsubmit {
	text-align: right;
}

.optiontable {
	width: 100%;
}

.optiontable td, .optiontable th {
	padding: .5em;
}

.optiontable th {
	width: 33%;
	text-align: right;
	font-size: 1.3em;
	font-weight: normal;
}

.unapproved {
	color: #888;
}

.unapproved a:link {
	color: #b9bcff;
}

.unapproved a:visited {
	color: #696dff;
}

.unapproved a:hover {
	color: #009ef0;
}

.approve {
	display: none;
}

.unapproved .approve {
	display: inline;
}

.unapproved .unapprove {
	display: none;
}

.updated, .confirm {
	background: #CFEBF7 url(images/notice.gif) no-repeat 1em;
	border: 1px solid #2580B2;
	margin: 1em 5% 10px;
	padding: 0 1em 0 3em;
}

.error {
	background: #FFEFF7;
	border: 1px solid #c69;
	margin: 1em 5% 10px;
	padding: 0 1em 0 1em;
}

.wrap {
	background: #fff;
	border: 1px solid #ccc;
	clear: both;
	margin: 15px 5%;
	padding: 1em;
}

.narrow {
	width: 450px;
	margin: auto;
}

.narrow p {
	line-height: 150%;
}

.wrap h2 {
	margin: 0 0 .5em;
	clear: both;
}

* html .wrap h2 {
	margin-top: 1em;
}

table .vers {
	text-align: center;
}

textarea.all-options, input.all-options {
	width: 250px;
}

input.disabled, textarea.disabled {
	background: #ccc;
}

#adminmenu {
	background: #83B4D8;
	border-top: 3px solid #448abd;
	margin: 0;
	padding: .2em .2em .3em 2em;
}

#adminmenu .current, #submenu .current {
	font-weight: bold;
	text-decoration: none;
}

#adminmenu a {
	color: #000;
	font-size: 14px;
	font-weight: normal;
	margin: 0;
	padding: 3px 5px;
	border-bottom: none;
}

#adminmenu a:hover, #adminmenu a.current {
	background: #ddeaf4;
	color: #333;
}

#adminmenu li, #submenu li {
	display: inline;
	line-height: 200%;
	list-style: none;
	text-align: center;
	white-space: nowrap;
}

#adminmenu a.current {
	background: #0d324f;
	border-right: 2px solid #4f96c8;
	border-top: 1px solid #96c0de;
	color: #fff;
	padding-bottom: 8px;
}

#submenu, #minisub {
	background: #0d324f;
	border-bottom: none;
	margin: 0;
	padding: 3px 2em 0 3em;
}

#minisub {
	height: 6px;
}

#submenu .current {
	background: #f9fcfe;
	border-top: 1px solid #045290;
	border-right: 2px solid #045290;
	color: #000;
}

#submenu a {
	border: none;
	color: #fff;
	font-size: 12px;
	padding: .3em .4em .4em;
}

#submenu a:hover {
	background: #ddeaf4;
	color: #393939;
}

#submenu li {
	line-height: 180%;
	height: 25px;
}

#categorydiv input, #poststatusdiv input, #commentstatusdiv input, #pingstatusdiv input {
	border: none;
}

#postdiv, #titlediv, #guiddiv, #tagdiv {
	margin: 0 8px 0 0;
	padding: 0;
}

#postdivrich {
	margin: 0;
	padding: 0;
}

#content {
	margin: 0;
	width: 100%;
}

#postdivrich #content {
	padding: 5px;
	line-height: 140%;
}

#titlediv input, #guiddiv input, #tagdiv input {
	margin: 0;
	width: 100%;
}

#currenttheme img {
	float: left;
	border: 1px solid #666;
	margin-right: 1em;
	margin-bottom: 1.5em;
	width: 300px;
}

input.delete:hover {
	background: #ce0000;
	color: #fff;
}

#deletebookmarks:hover {
	background: #ce0000;
	color: #fff;
}

#postdivrich #quicktags {
	background: #f0f0ee;
	padding: 0;
	border: 1px solid #ccc;
	border-bottom: none;
}

#postdiv #quicktags {
	padding-right: 6px;
}

#postdivrich #quicktags {
	display: none;
}

#quicktags #ed_toolbar {
	padding: 0 2px;
}

#ed_toolbar input {
	background: #fff url( images/fade-butt.png ) repeat-x 0 -2px;
	margin: 3px 2px 2px;
}

#quicktags #ed_strong {
	font-weight: bold;
}

#quicktags #ed_link {
	color: blue;
	text-decoration: underline;
}

#quicktags #ed_del {
	text-decoration: line-through;
}

#quicktags #ed_em {
	font-style: italic;
}

#quicktags #ed_code {
	font-family: "Courier New", Courier, mono;
	margin-bottom: 3px;
}

#title {
	font-size: 1.7em;
	padding: 4px 3px;
}

#postexcerpt div, #attachmentlinks div {
	margin-right: 8px;
}

#attachmentlinks textarea {
	width: 100%;
	height: 2.5em;
	margin-bottom: 6px;
}

* html #postexcerpt .dbx-toggle-open, * html #postexcerpt .dbx-toggle-open {
	padding-right: 8px;
}

#excerpt, .attachmentlinks {
	margin: 0;
	height: 4em;
	width: 100%;
}

#footer {
	clear: both;
	height: 35px;
	padding-left: 40px;
	margin: 15px 5%;
	background: url('images/logo-ghost.png') no-repeat top left;
}

#footer p {
	margin: 0;
	padding: 5px 0;
}

#login {
	position: relative;
	background: url('images/login-bkg-tile.gif') no-repeat top center;
	color: #fff;
	margin: 5em auto 1em;
	padding: 20px 0 0;
	width: 425px;
	_width: 390px;
}

#login form {
	background: url('images/login-bkg-bottom.gif') no-repeat bottom center;
	padding: 0 50px 25px;
	_width: 325px;
	_margin: 0 auto;
	min-height: 200px;
	height: auto !important; /* min-height fast hack */
	height: 200px;
}

#login #login_error {
	background: #0e3350;
	border: 1px solid #2571ab;
	color: #ebcd4e;
	font-size: 11px;
	font-weight: bold;
	padding: .6em;
	width: 310px;
	margin: 0 50px;
	text-align: center;
}

#login p { 
	font-size: 12px;
}

#login p.message { 
	width: 310px;
	margin: 0 auto 1em;
}

#login #login_error a {
	color: #ebcd4e;
	border-color: #ebcd4e;
}

#login #send {
	color: #fff;
	text-align: left;
	font-weight: normal;
	font-size: 1.1em;
	_width: 325px;
	_margin: 0 auto 15px;
}

#login h1 a {
	margin: 0 auto;
	height: 88px;
	width: 320px;
	display: block;
	border-bottom: none;
	text-indent: -9999px;
}

#login .message {
	font-size: 10pt;
	text-align: center;
}

#login .register {
	font-size: 20px;
}

#login input {
	padding: 4px;
}

.login ul, #protected #login .bottom {
	list-style: none;
	width: 325px;
	margin: 0 auto;
	padding: 0;
	line-height: 1.2;
}

.login ul li {
	font-size: 11px;
}

.login ul li a {
	color: #0d324f;
	border: none;
}

#login ul li a:hover {
	color: #fff;
}

#login .input {
	font-size: 1.8em;
	margin-top: 3px;
	width: 97%;
}

#login p label { 
	font-size: 11px;
}

#login #submit {
	margin: 0;
	font-size: 15px;
}

.plugins p {
}

#login .fullwidth {
	width: 320px;
}

#searchform fieldset {
	float: left;
	margin: 0 1.5ex 1em 0;
	padding: 0;
}

#searchform fieldset legend {
	padding: 0 0 .2em 1px;
}
	
#searchform #s {
	padding: 4px 3px;
}

#searchform #post-query-submit {
	float: left;
	margin: 14px 0 1em;
	position: relative;
	top: .35em;
}

#postcustom .updatemeta, #postcustom .deletemeta {
	margin: auto;
}

#postcustom table {
	border: 1px solid #ccc;
	margin: 0;
	width: 100%;
}

#postcustom table input, #postcustom table textarea {
	width: 95%;
}

#poststuff {
	margin-right: 16em;
}

#save {
	width: 15em;
}

#template div {
	margin-right: 190px;
}

* html #template div {
	margin-right: 0;
}

#template, #template div, #editcat, #addcat {
	zoom: 1;
}

#template textarea {
	font: small 'Courier New', Courier, monospace;
	width: 97%;
}

#templateside {
	float: right;
	width: 170px;
	overflow: hidden;
}

#templateside h3, #postcustom p.submit {
	margin: 0;
}

#templateside ol, #templateside ul {
	list-style: none;
	margin: .5em;
	padding: 0;
}

#user_info {
	position: absolute;
	right: 1em;
	top: 0;
	color: #fff;
	font-size: .9em;
}

#user_info a {
	color: #fff;
}

#wphead {
	background: #14568a;
	padding: .8em 19em .8em 2em;
	color: #c3def1;
}

#wphead a {
	color: #fff;
}

#wphead h1 {
	font-size: 2.5em;
	font-weight: normal;
	letter-spacing: -.05em;
	margin: 0;
	font-family: Georgia, "Times New Roman", Times, serif;
}

#wphead h1 span#viewsite {
	font-size: .4em;
	letter-spacing: 0;
}

#zeitgeist {
	background: #eee;
	border: 1px solid #c5c5c5;
	float: right;
	font-size: 90%;
	margin-bottom: .5em;
	margin-left: 1em;
	margin-top: .5em;
	padding: 1em;
	width: 40%;
}

#zeitgeist h2, fieldset legend a {
	background: none;
}

* html #zeitgeist h2 {
	padding-top: 10px;
}

#zeitgeist h3 {
	border-bottom: 1px solid #ccc;
	font-size: 16px;
	margin: 1em 0 0;
}

#zeitgeist h3 cite {
	font-size: 12px;
	font-style: normal;
}

#zeitgeist li, #zeitgeist p {
	margin: .2em 0;
}

#zeitgeist ul {
	margin: 0 0 .3em .6em;
	padding: 0 0 0 .6em;
}

.active td {
	background: #BEB;
}
.active .name {
	background: #9C9;
}
.alternate.active td {
	background: #ADA;
}
.alternate.active .name {
	background: #8B8;
}

#namediv, #emaildiv, #uridiv {
	float: left;
}

#ajax-response {
	padding: .5em;
}

/* A handy div class for hiding controls.
Some browsers will disable them when you
set display:none; */
.zerosize {
	height: 0;
	width: 0;
	margin: 0;
	border: 0;
	padding: 0;
	overflow: hidden;
	position: absolute;
}

/* Box stuff */
.dbx-clone {
	position: absolute;
	visibility: hidden;
}
.dbx-clone, .dbx-clone .dbx-handle-cursor {
	cursor: move !important;
}
.dbx-dummy {
	display: block;
	width: 0;
	height: 0;
	overflow: hidden;
}
.dbx-group, .dbx-box, .dbx-handle {
	position: relative;
	display: block;
}

#grabit {
	width: 188px;
}

* html #themeselect {
	padding: 0 3px;
	height: 22px;
}

/****************************************************************
avoid padding, margins or borders on dbx-box,
to reduce visual discrepancies between it and the clone.
overall, dbx-box is best left as visually unstyled as possible
*****************************************************************/
.dbx-box {
	margin: 0;
	padding: 0;
	border: none;
}

/* Can change this */
#moremeta fieldset, #advancedstuff fieldset {
	margin-bottom: 1em;
}
#moremeta fieldset div {
	margin: 2px 0 0 0;
	padding: 7px;
}
#moremeta {
	line-height: 130%;
	margin-right: 15px;
	position: absolute;
	right: 5%;
	width: 14.5em;
}
#moremeta select {
	width: 96%;
}

#slugdiv input, #passworddiv input, #authordiv select, #thumbdiv input, #parentdiv input {
	margin-top: .5em;
	width: 90%;
}

#moremeta h3, #advancedstuff h3 {
	padding: 3px;
	font-weight: normal;
	font-size: 13px;
}

#advancedstuff div {
	margin-top: .5em;
}

#categorydiv ul {
	list-style: none;
	padding: 0;
	margin-left: 10px;
}

#categorychecklist {
	height: 12em;
	overflow: auto;
	margin-top: 8px;
}

#categorychecklist li {
	margin: 0;
	padding: 0;
}

#ajaxcat input {
	border: 1px solid #ccc;
}

#your-profile #rich_editing {
	border: none;
	background: #fff;
}

#your-profile fieldset {
	border: 1px solid #ccc;
	float: left;
	width: 40%;
	padding: .5em 2em 1em;
	margin: 1em 1em 1em 0;
}

#your-profile fieldset input {
	width: 100%;
	font-size: 20px;
	padding: 2px;
}

#your-profile fieldset textarea {
	width: 100%;
	padding: 2px;
}

#your-profile legend {
	font-family: Georgia, "Times New Roman", Times, serif;
	font-size: 22px;
}

/* default box styles */

/* toggle state of inner content area */
.dbx-box-open .dbx-content {
	display: block;
}
.dbx-box-closed .dbx-content {
	display: none;
}

#moremeta .dbx-content {
	background: url(images/box-butt.gif) no-repeat bottom right;
	padding-bottom: 15px;
	padding-right: 2px;
}

#moremeta fieldset.dbx-box-closed {
	background: url(images/box-butt.gif) no-repeat bottom;
	padding-bottom: 9px;
}

/* handles */

.dbx-handle {
	background: #2685af;
	padding: 6px 1em 2px;
	font-size: 12px;
	margin: 0;
	color: #E3EFF5;
}

#moremeta .dbx-handle {
	padding: 6px 1em 2px;
	font-size: 12px;
	background: #2685af url(images/box-head.gif) no-repeat right;
}

#moremeta .dbx-box {
	background: url(images/box-bg.gif) repeat-y right;
}

#advancedstuff h3.dbx-handle {
	margin-left: 7px;
	margin-bottom: -7px;
	padding: 6px 1em 0 3px;
	height: 19px;
	font-size: 12px;
	background: #2685af url(images/box-head-right.gif) no-repeat top right;
}

#advancedstuff div.dbx-h-andle-wrapper {
	margin: 0 0 0 -7px;
	background: #fff url(images/box-head-left.gif) no-repeat top left;
}

#advancedstuff div.dbx-content {
	margin-left: 8px;
	background: url(images/box-bg-right.gif) repeat-y right;
	padding: 10px 10px 15px 0;
}

#postexcerpt div.dbx-content {
	margin-right: 0;
	padding-right: 17px;
}

#advancedstuff div.dbx-c-ontent-wrapper {
	margin-left: -7px;
	margin-right: 0;
	background: url(images/box-bg-left.gif) repeat-y left;
}

#advancedstuff fieldset.dbx-box {
	padding-bottom: 9px;
	margin-left: 6px;
	background: url(images/box-butt-right.gif) no-repeat bottom right;
}

#advancedstuff div.dbx-b-ox-wrapper {
	background: url(images/box-butt-left.gif) no-repeat bottom left;
}

#advancedstuff .dbx-box-closed div.dbx-c-ontent-wrapper {
	padding-bottom: 2px;
	background: url(images/box-butt-left.gif) no-repeat bottom left;
}

#advancedstuff .dbx-box {
	background: url(images/box-butt-right.gif) no-repeat bottom right;
}

/* handle cursors */
.dbx-handle-cursor {
	cursor: move;
}

/* toggle images */
a.dbx-toggle, a.dbx-toggle:visited {
	display: block;
	overflow: hidden;
	background-image: url( images/toggle.gif );
	position: absolute;
	top: 0;
	right: 0;
	background-repeat: no-repeat;
	border: 0;
	margin: 0;
	padding: 0;
}

#moremeta a.dbx-toggle, #moremeta a.dbx-toggle-open:visited {
	height: 25px;
	width: 27px;
	background-position: 0 0;
}

#moremeta a.dbx-toggle-open, #moremeta a.dbx-toggle-open:visited {
	height: 25px;
	width: 27px;
	background-position: 0 -25px;
}

#advancedstuff a.dbx-toggle, #advancedstuff a.dbx-toggle-open:visited {
	height: 22px;
	width: 22px;
	top: 3px;
	right: 5px;
	background-position: 0 -3px;
}

#advancedstuff a.dbx-toggle-open, #advancedstuff a.dbx-toggle-open:visited {
	height: 22px;
	width: 22px;
	top: 3px;
	right: 5px;
	background-position: 0 -28px;
}

#categorychecklist {
	margin-right: 6px;
}

/* additional clone styles */
.dbx-clone {
	opacity: 0.8;
	-moz-opacity: 0.8;
	-khtml-opacity: 0.8;
	filter: alpha(opacity=80);
}

#newcat {
	width: 120px;
	margin-right: 5px;
}

input #catadd {
	background: #a4a4a4;
	border-bottom: 1px solid #898989;
	border-left: 1px solid #bcbcbc;
	border-right: 1px solid #898989;
	border-top: 1px solid #bcbcbc;
	color: #fff;
	font-size: 10px;
	padding: 0;
	margin: 0;
	font-weight: bold;
	height: 20px;
	margin-bottom: 2px;
	text-align: center;
	width: 37px;
}

#howto {
	font-size: 11px;
	margin: 0 5px;
	display: block;
}

#jaxcat {
	margin: 0;
	padding: 0;
}

#ajax-response.alignleft {
	margin-left: 2em;
}

#postdivrich #edButtons {
	padding-left: 3px;
}

#postdivrich #content, #postdivrich #content:active {
	border: 1px solid #ccc;
}

#edButtons input, #edButtons input:active {
	margin: 0 2px -1px;
}

#edButtons input.edButtonFore, #edButtons input.edButtonFore:active {
	background: #f0f0ee;
	border-bottom: 1px solid #f0f0ee;
}

#edButtons input.edButtonBack, #edButtons input.edButtonBack:active {
	background: #fff url( images/fade-butt.png ) repeat-x 0 15px;
	border-bottom: 1px solid #ccc;
}

.page-numbers {
	padding: 4px 7px;
	border: 1px solid #fff;
	margin-right: 3px;
}

a.page-numbers {
	border: 1px solid #ccc;
}

a.page-numbers:hover {
	border: 1px solid #999;
}

.page-numbers.current {
	border: 1px solid #999;
	font-weight: bold;
}

.pagenav span {
	font-weight: bold;
	margin: 0 6px;
}

a.view-link {
	position: absolute;
	right: 5%;
	margin-right: 220px;
	text-decoration:underline;
}

#update-nag, .plugin-update {
	border-bottom: 1px solid #ccc;
	border-top: 1px solid #ccc;
	background: #fffeeb;
	line-height: 29px;
	font-size: 12px;
	color: #555;
	text-align: center;
} 

#update-nag a, .plugin-update a {
	font-size: 1.1em;
}
#update-nag a:link, .plugin-update a:link {
	color: #036;
}