From 037af6890fe6fdb84a08d3c86083e847c90ec0ad Mon Sep 17 00:00:00 2001
From: Aleksander Machniak <alec@alec.pl>
Date: Tue, 22 Oct 2013 08:17:26 -0400
Subject: [PATCH] Fix vulnerability in handling _session argument of utils/save-prefs (#1489382)

---
 skins/larry/styles.css |  864 +++++++++++++++++++++++++++++++++++++++++++++++++++------
 1 files changed, 770 insertions(+), 94 deletions(-)

diff --git a/skins/larry/styles.css b/skins/larry/styles.css
index 4b11ffb..39f01f7 100644
--- a/skins/larry/styles.css
+++ b/skins/larry/styles.css
@@ -1,15 +1,13 @@
 /**
  * Roundcube webmail styles for skin "Larry"
  *
- * Copyright (c) 2011, The Roundcube Dev Team
+ * Copyright (c) 2012, The Roundcube Dev Team
  * Screendesign by FLINT / Büro für Gestaltung, bueroflint.com
  *
  * The contents are subject to the Creative Commons Attribution-ShareAlike
  * License. It is allowed to copy, distribute, transmit and to adapt the work
  * by keeping credits to the original autors in the README file.
  * See http://creativecommons.org/licenses/by-sa/3.0/ for details.
- *
- * $Id$
  */
 
 body {
@@ -18,6 +16,11 @@
 	color: #333;
 	background: url(images/linen.jpg) repeat #d1d5d8;
 	margin: 0;
+}
+
+body.noscroll {
+	/* also avoids bounce effect in Chrome and Safari */
+	overflow: hidden;
 }
 
 a {
@@ -54,6 +57,7 @@
 	-moz-box-shadow: 0 0 5px 2px rgba(71,135,177, 0.9);
 	-webkit-box-shadow: 0 0 5px 2px rgba(71,135,177, 0.9);
 	-o-box-shadow: 0 0 5px 2px rgba(71,135,177, 0.9);
+	outline: none;
 }
 
 input.placeholder,
@@ -61,10 +65,15 @@
 	color: #aaa;
 }
 
-select.selector {
-	padding: 2px 4px;
+.bold {
+	font-weight: bold;
 }
 
+/* fixes vertical alignment of checkboxes and labels */
+label input,
+label span {
+	vertical-align: middle;
+}
 
 /*** buttons ***/
 
@@ -219,6 +228,7 @@
 
 a.button.disabled span.inner {
 	opacity: 0.4;
+	filter: alpha(opacity=40);
 }
 
 a.button.pressed,
@@ -235,7 +245,7 @@
 .pagenav.dark a.button {
 	font-weight: bold;
 	border-color: #e6e6e6;
-	background: #f7f7f7;
+	background: #d8d8d8;
 	background: -moz-linear-gradient(top, #d8d8d8 0%, #bababa 100%);
 	background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#d8d8d8), color-stop(100%,#bababa));
 	background: -o-linear-gradient(top, #d8d8d8 0%, #bababa 100%);
@@ -259,6 +269,8 @@
 .pagenav a.button {
 	padding: 1px 3px;
 	height: 16px;
+	vertical-align: middle;
+	margin-bottom: 1px;
 }
 
 .pagenav a.button span.inner {
@@ -308,9 +320,14 @@
 
 .pagenav .countdisplay {
 	display: inline-block;
-	padding:0 1em;
+	padding: 3px 1em 0 1em;
 	text-shadow: 0px 1px 1px #fff;
 	min-width: 16em;
+}
+
+.pagenavbuttons {
+	position: relative;
+	top: -2px;
 }
 
 a.iconbutton {
@@ -318,12 +335,13 @@
 	width: 24px;
 	height: 18px;
 	text-decoration: none;
-	text-indent: -1000px;
+	text-indent: -5000px;
 	background: url(images/buttons.png) -1000px 0 no-repeat;
 }
 
 a.iconbutton.disabled {
 	opacity: 0.4;
+	filter: alpha(opacity=40);
 	cursor: default;
 }
 
@@ -343,6 +361,7 @@
 	display: inline-block;
 	color: #888;
 	text-decoration: none;
+	white-space: nowrap;
 	padding: 2px 8px 2px 20px;
 	background: url(images/buttons.png) -1000px 0 no-repeat;
 }
@@ -360,7 +379,7 @@
 }
 
 a.iconlink.remove {
-	background-position: -7px -377px;
+	background-position: -7px -378px;
 }
 
 a.iconlink.cancel {
@@ -395,7 +414,7 @@
 
 #message div.warning {
 	color: #960;
-	background-position: 0 -25px;
+	background-position: 0 -86px;
 }
 
 #message div.error {
@@ -405,11 +424,22 @@
 
 #message div.confirmation {
 	color: #093;
-	background-position: 0 -86px;
+	background-position: 0 -25px;
 }
 
 #message div.loading {
 	background: url(images/ajaxloader.gif) 2px 6px no-repeat;
+}
+
+#message div a,
+#message div span {
+	padding-right: 0.5em;
+	text-decoration: none;
+}
+
+#message div a:hover {
+	text-decoration: underline;
+	cursor: pointer;
 }
 
 #message.statusbar {
@@ -432,8 +462,55 @@
 	text-overflow: ellipsis;
 }
 
+.ui-dialog.error .ui-dialog-title,
+.ui-dialog.warning .ui-dialog-title,
+.ui-dialog.confirmation .ui-dialog-title {
+	padding-left: 25px;
+	background: url(images/messages.png) 0 5px no-repeat;
+	text-shadow: 0 1px 1px #fff;
+}
+
+.ui-dialog.warning .ui-dialog-title {
+	color: #960;
+	background-position: 0 -90px;
+}
+
+.ui-dialog.error .ui-dialog-title {
+	color: #cf2734;
+	background-position: 0 -60px;
+}
+
+.ui-dialog.confirmation .ui-dialog-title {
+	color: #093;
+	background-position: 0 -30px;
+}
+
+.ui-dialog.popupmessage .ui-dialog-titlebar {
+	padding: 8px 1em 4px 1em;
+	background: #e3e3e3;
+	background: -moz-linear-gradient(top, #e3e3e3 0%, #cfcfcf 100%);
+	background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#e3e3e3), color-stop(100%,#cfcfcf));
+	background: -o-linear-gradient(top, #e3e3e3 0%, #cfcfcf 100%);
+	background: -ms-linear-gradient(top, #e3e3e3 0%, #cfcfcf 100%);
+	background: linear-gradient(top, #e3e3e3 0%, #cfcfcf 100%);
+}
+
+.ui-dialog.popupmessage .ui-widget-content {
+	font-size: 12px;
+	background: #eee;
+	background: -moz-linear-gradient(top, #eee 0%, #dcdcdc 100%);
+	background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#eee), color-stop(100%,#dcdcdc));
+	background: -o-linear-gradient(top, #eee 0%, #dcdcdc 100%);
+	background: -ms-linear-gradient(top, #eee 0%, #dcdcdc 100%);
+	background: linear-gradient(top, #eee 0%, #dcdcdc 100%);
+}
+
 
 /*** basic page layout ***/
+
+#header {
+	overflow-x: hidden; /* Chrome bug #1488851 */
+}
 
 #topline {
 	height: 18px;
@@ -441,18 +518,20 @@
 	border-bottom: 1px solid #4f4f4f;
 	padding: 2px 0 2px 10px;
 	color: #aaa;
+	text-align: center;
 }
 
 #topnav {
+	position: relative;
 	height: 46px;
 	margin-bottom: 10px;
 	padding: 0 0 0 10px;
-	background: #3a3a3a;
-	background: -moz-linear-gradient(top, rgba(64,64,64,1) 0%, rgba(6,6,6,1) 100%);
-	background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,rgba(64,64,64,1)), color-stop(100%,rgba(6,6,6,1)));
-	background: -o-linear-gradient(top, rgba(64,64,64,1) 0%,rgba(6,6,6,1) 100%);
-	background: -ms-linear-gradient(top, rgba(64,64,64,1) 0%,rgba(6,6,6,1) 100%);
-	background: linear-gradient(top, rgba(64,64,64,1) 0%,rgba(6,6,6,1) 100%);
+	background: #111;
+	background: -moz-linear-gradient(top, #404040 0%, #060606 100%);
+	background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#404040), color-stop(100%,#060606));
+	background: -o-linear-gradient(top, #404040 0%, #060606 100%);
+	background: -ms-linear-gradient(top, #404040 0%, #060606 100%);
+	background: linear-gradient(top, #404040 0%, #060606 100%);
 }
 
 #topline a,
@@ -461,13 +540,13 @@
 	text-decoration: none;
 }
 
-#topline a:hover,
-#topnav a:hover {
+#topline a:hover {
 	text-decoration: underline;
 }
 
 #toplogo {
 	padding-top: 2px;
+	cursor: pointer;
 }
 
 .topleft {
@@ -500,8 +579,156 @@
 	color: #fff;
 }
 
+#taskbar .button-logout {
+	display: none;
+}
+
+#taskbar a.button-logout span.button-inner {
+	background-position: -2px -1791px;
+}
+
+#taskbar a.button-logout:hover span.button-inner {
+	background-position: -2px -1829px;
+}
+
+
+/*** minimal version of the page header ***/
+
+.minimal #topline {
+	position: fixed;
+	top: -18px;
+	background: #444;
+	z-index: 5000;
+	width: 100%;
+	height: 22px;
+	-moz-box-sizing: border-box;
+	box-sizing: border-box;
+}
+
+.minimal #topline:hover {
+	top: 0px;
+	opacity: 0.94;
+	filter: alpha(opacity=94);
+	-webkit-transition: top 0.3s ease-in-out;
+	-moz-transition: top 0.3s ease-in-out;
+	-o-transition: top 0.3s ease-in-out;
+	transition: top 0.3s ease-in-out;
+}
+
+.extwin #topline,
+.extwin #topline:hover {
+	position: static;
+	top: 0px;
+	height: 18px;
+	width: auto;
+	-moz-box-sizing: content-box;
+	box-sizing: content-box;
+	opacity: 0.999;
+}
+
+.partwin #topline {
+	position: absolute;
+	right: 6px;
+	top: 18px;
+	width: auto;
+	z-index: 100;
+	background: transparent;
+	background: none;
+	border: 0;
+}
+
+.minimal #topline a.button-logout {
+	display: none;
+}
+
+.minimal #topline span.username {
+	display: inline-block;
+	padding-top: 2px;
+}
+
+.minimal #topnav {
+	position: relative;
+	top: 4px;
+	height: 42px;
+}
+
+.minimal #taskbar a {
+	position: relative;
+	padding: 10px 10px 0 6px;
+	height: 32px;
+}
+
+.minimal #taskbar .button-logout {
+	display: inline-block;
+}
+
+.minimal #taskbar .button-inner {
+	top: -4px;
+	padding: 0;
+	height: 24px !important;
+	width: 27px;
+	text-indent: -5000px;
+}
+
+#taskbar .tooltip {
+	display: none;
+}
+
+.minimal #taskbar .tooltip {
+	position: absolute;
+	top: -500px;
+	right: 2px;
+	display: inline-block;
+	padding: 2px 8px 3px 8px;
+	background: #444;
+	background: -moz-linear-gradient(top, #444 0%, #333 100%);
+	background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#444), color-stop(100%,#333));
+	background: -o-linear-gradient(top, #444 0%, #333 100%);
+	background: -ms-linear-gradient(top, #444 0%, #333 100%);
+	background: linear-gradient(top, #444 0%, #333 100%);
+	color: #eee;
+	font-weight: bold;
+	white-space: nowrap;
+	border: 1px solid #777;
+	box-shadow: 0 1px 5px 0 #333;
+	-moz-box-shadow: 0 1px 5px 0 #333;
+	-webkit-box-shadow: 0 1px 5px 0 #333;
+	-o-box-shadow: 0 1px 5px 0 #333;
+	z-index: 200;
+	white-space: nowrap;
+	text-shadow: 0px 1px 1px #000;
+}
+
+.minimal #taskbar .tooltip:after {
+	content: "";
+	position: absolute;
+	top: -4px;
+	right: 15px;
+	border-style: solid;
+	border-width: 0 4px 4px;
+	border-color: #888 transparent;
+	/* reduce the damage in FF3.0 */
+	display: block; 
+	width: 0;
+	z-index: 251;
+}
+
+.ie8 .minimal #taskbar .tooltip:after {
+	top: -6px;
+}
+
+.minimal #taskbar a:hover .tooltip {
+	display: block;
+	top: 39px;
+}
+
 
 /*** taskbar ***/
+
+#taskbar {
+	position: relative;
+	padding-right: 18px;
+}
 
 #taskbar a {
 	display: inline-block;
@@ -560,6 +787,22 @@
 	background-position: 0 -168px;
 }
 
+#taskbar .minmodetoggle {
+	position: absolute;
+	top: 0;
+	right: 0;
+	display: block;
+	width: 19px;
+	height: 46px;
+	cursor: pointer;
+	background: url(images/buttons.png) -35px -1778px no-repeat;
+}
+
+.minimal #taskbar .minmodetoggle {
+	height: 42px;
+	background-position: -35px -1820px;
+}
+
 #mainscreen {
 	position: absolute;
 	top: 88px;
@@ -568,8 +811,24 @@
 	bottom: 20px;
 }
 
+.minimal #mainscreen {
+	top: 62px;
+}
+
+.minimal #mainscreen.offset {
+	top: 102px;
+}
+
+.partwin #mainscreen {
+	top: 60px
+}
+
+.extwin #mainscreen {
+	top: 40px;
+}
+
 #mainscreen.offset {
-	top: 130px;
+	top: 132px;
 }
 
 #mainscreen .offset {
@@ -579,11 +838,21 @@
 .uibox {
 	border: 1px solid #a3a3a3;
 	border-radius: 4px;
+	overflow: hidden;
 	box-shadow: 0 0 2px #999;
 	-o-box-shadow: 0 0 2px #999;
 	-webkit-box-shadow: 0 0 2px #999;
 	-moz-box-shadow: 0 0 2px #999;
 	background: #fff;
+}
+
+.minwidth {
+	position: absolute;
+	top: 0;
+	left: 0;
+	bottom: 0;
+	width: 100%;
+	min-width: 1024px;
 }
 
 .scroller {
@@ -608,6 +877,15 @@
 	background-repeat: no-repeat;
 }
 
+/* fix scrolling within iframes in webkit browsers on touch devices */
+@media screen and (-webkit-min-device-pixel-ratio:0) and (max-device-width:1024px) {
+	.iframebox {
+		overflow: auto;
+		-webkit-overflow-scrolling: touch;
+	}
+}
+
+
 /*** lists ***/
 
 .listbox {
@@ -621,7 +899,8 @@
 	left: 0;
 	width: 100%;
 	bottom: 0;
-	overflow: auto;
+	overflow-x: hidden;
+	overflow-y: auto;
 }
 
 .listbox .scroller.withfooter {
@@ -636,11 +915,17 @@
 .uibox .listing thead td {
 	font-size: 12px;
 	font-weight: bold;
-	padding: 10px 8px 8px 8px;
+	padding: 10px 8px 3px 8px;
+	height: 20px;  /* doesn't affect table-cells in FF */
 	margin: 0;
 	text-shadow: 0px 1px 1px #fff;
 	border-bottom: 1px solid #bbd3da;
 	white-space: nowrap;
+}
+
+.uibox .listing thead td {
+	padding-bottom: 8px;
+	height: auto;
 }
 
 .uibox .boxtitle,
@@ -670,23 +955,33 @@
 	text-shadow: 0px 1px 1px #fff;
 	text-decoration: none;
 	cursor: default;
-	padding: 7px 8px 5px 8px;
+	padding: 6px 8px 2px 8px;
+	height: 17px; /* doesn't affect table-cells in FF */
 	white-space: nowrap;
 }
 
 .listing tbody td {
 	display: table-cell;
+	padding-bottom: 5px;
+	height: auto;
+	min-height: 14px;
+}
+
+.webkit .listing tbody td {
+	height: 14px;
 }
 
 .listbox .listitem.selected,
 .listbox .tablink.selected,
-.listbox .listitem.selected a,
-.listbox .tablink.selected a,
+.listbox .listitem.selected > a,
+.listbox .tablink.selected > a,
+.listing tbody tr.unfocused td,
 .listing tbody tr.selected td,
 .listing li.selected,
-.listing li.selected a {
+.listing li.selected > a {
 	color: #004458;
 	font-weight: bold;
+	background-color: #c7e3ef;
 }
 
 ul.listing {
@@ -700,9 +995,17 @@
 	background-color: #d9ecf4;
 }
 
+ul.listing li ul {
+	border-top: 1px solid #bbd3da;
+}
+
 ul.listing li.droptarget,
 table.listing tr.droptarget td {
-	background-color: #c7e3ef;
+	background-color: #e8e798;
+}
+
+.listbox table.listing {
+	background-color: #d9ecf4;
 }
 
 table.listing,
@@ -714,6 +1017,32 @@
 
 table.layout td {
 	vertical-align: top;
+}
+
+ul.treelist li {
+	position: relative;
+}
+
+ul.treelist li div.treetoggle {
+	position: absolute;
+	top: 13px;
+	left: 19px;
+	width: 13px;
+	height: 13px;
+	background: url(images/listicons.png) -3px -144px no-repeat;
+	cursor: pointer;
+}
+
+ul.treelist li div.treetoggle.expanded {
+	background-position: -3px -168px;
+}
+
+ul.treelist li.selected > div.collapsed {
+	background-position: -23px -144px;
+}
+
+ul.treelist li.selected > div.expanded {
+	background-position: -23px -168px;
 }
 
 .listbox .boxfooter {
@@ -731,6 +1060,10 @@
 	overflow: hidden;
 }
 
+.uibox .boxfooter {
+	border-radius: 0 0 4px 4px;
+}
+
 .boxfooter .listbutton {
 	display: inline-block;
 	text-decoration: none;
@@ -741,28 +1074,54 @@
 	margin-top: 1px;
 }
 
+.uibox .boxfooter .listbutton:first-child {
+	border-radius: 0 0 0 4px;
+}
+
 .boxfooter .listbutton .inner {
 	display: inline-block;
 	width: 48px;
 	height: 35px;
-	text-indent: -1000px;
+	text-indent: -5000px;
 	background: url(images/buttons.png) -1000px 0 no-repeat;
 }
 
 .boxfooter .listbutton.add .inner {
-	background-position: 10px -1291px;
+	background-position: 10px -1301px;
 }
 
 .boxfooter .listbutton.delete .inner {
-	background-position: 10px -1332px;
+	background-position: 10px -1342px;
 }
 
 .boxfooter .listbutton.groupactions .inner {
-	background-position: 5px -1372px;
+	background-position: 5px -1382px;
+}
+
+.boxfooter .listbutton.addto .inner {
+	background-position: 5px -1422px;
+}
+
+.boxfooter .listbutton.addcc .inner {
+	background-position: 5px -1462px;
+}
+
+.boxfooter .listbutton.addbcc {
+	width: 54px;
+}
+
+.boxfooter .listbutton.addbcc .inner {
+	width: 54px;
+	background-position: 2px -1502px;
+}
+
+.boxfooter .listbutton.removegroup .inner {
+	background-position: 5px -1540px;
 }
 
 .boxfooter .listbutton.disabled .inner {
 	opacity: 0.4;
+	filter: alpha(opacity=40);
 }
 
 .boxfooter .countdisplay {
@@ -786,6 +1145,7 @@
 	height: 13px;
 	width: 14px;
 	text-indent: 1000px;
+	vertical-align: bottom;
 	overflow: hidden;
 	background: url(images/buttons.png) -4px -286px no-repeat;
 }
@@ -804,6 +1164,7 @@
 
 .boxpagenav a.icon.disabled {
 	opacity: 0.4;
+	filter: alpha(opacity=40);
 }
 
 .centerbox {
@@ -843,12 +1204,14 @@
 	font-weight: bold;
 	background: #d6eaf3;
 	background: -moz-linear-gradient(left, #e3f2f6 0, #d6eaf3 14px, #d6eaf3 100%);
-	background: -webkit-gradient(linear, left top, right top, color-stop(0,#e3f2f6), color-stop(14px,#d6eaf3), color-stop(100%,#d6eaf3));
+	background: -webkit-gradient(linear, left top, right top, color-stop(0,#e3f2f6), color-stop(8%,#d6eaf3), color-stop(100%,#d6eaf3));
 	background: -o-linear-gradient(left, #e3f2f6 0, #d6eaf3 14px, #d6eaf3 100%);
 	background: -ms-linear-gradient(left, #e3f2f6 0, #d6eaf3 14px ,#d6eaf3 100%);
 	background: linear-gradient(left, #e3f2f6 0, #d6eaf3 14px, #d6eaf3 100%);
 	border-left: 1px solid #bbd3da;
 	padding: 8px 7px;
+	overflow: hidden;
+	text-overflow: ellipsis;
 }
 
 .records-table.sortheader thead td {
@@ -858,13 +1221,15 @@
 .records-table thead td a,
 .records-table thead td span {
 	display: block;
-	padding: 8px 7px;
+	padding: 7px 7px;
 	color: #69939e;
 	text-decoration: none;
+	overflow: hidden;
+	text-overflow: ellipsis;
 }
 
 .records-table tbody td {
-	padding: 3px 7px;
+	padding: 2px 7px;
 	border-bottom: 1px solid #ddd;
 	border-left: 1px dotted #bbd3da;
 	white-space: nowrap;
@@ -877,13 +1242,6 @@
 .records-table thead tr td:first-child,
 .records-table tbody tr td:first-child {
 	border-left: 0;
-}
-
-.records-table tbody td a {
-	color: #333;
-	text-decoration: none;
-	white-space: nowrap;
-	cursor: default;
 }
 
 .records-table tr.selected td {
@@ -903,7 +1261,7 @@
 
 .records-table tr.unfocused td {
 	color: #fff !important;
-	background: #4db0d2;
+	background: #4db0d2 !important;
 }
 
 .records-table tr.unfocused td a,
@@ -931,8 +1289,12 @@
 	margin: 38px 0 10px 0;
 }
 
-body.iframe.footerbuttons {
-	margin-bottom: 42px;
+body.iframe.error {
+	background: #ededed;
+}
+
+body.iframe.floatingbuttons {
+	margin-bottom: 40px;
 }
 
 body.iframe.fullheight {
@@ -959,14 +1321,27 @@
 	z-index: 100;
 }
 
-body.iframe .footerbuttons {
+body.iframe .footerleft.floating,
+#composeview-bottom .formbuttons.floating {
 	position: fixed;
 	left: 0;
 	bottom: 0;
 	width: 100%;
 	z-index: 110;
 	background: #fff;
-	padding: 8px;
+	padding-top: 8px;
+	padding-bottom: 12px;
+}
+
+body.iframe .footerleft.floating:before,
+#composeview-bottom .formbuttons.floating:before {
+	content: " ";
+	position: absolute;
+	top: -6px;
+	left: 0;
+	width: 100%;
+	height: 6px;
+	background: url(images/overflowshadow.png) top center no-repeat;
 }
 
 .boxcontent {
@@ -982,8 +1357,16 @@
 	overflow: auto;
 }
 
+.iframebox {
+	position: absolute;
+	top: 0;
+	left: 0;
+	right: 0;
+	bottom: 28px;
+}
+
 .footerleft {
-	padding: 0 12px;
+	padding: 0 12px 4px 12px;
 }
 
 .propform fieldset {
@@ -1083,13 +1466,22 @@
 	padding-top: 10px;
 }
 
+#login-form .noscriptwarning {
+	margin: 0 auto;
+	width: 430px;
+	color: #cf2734;
+	font-size: 110%;
+	font-weight: bold;
+}
+
 #login-form td.input {
+	width: 80%;
 	padding: 8px;
 }
 
 #login-form input[type="text"],
 #login-form input[type="password"] {
-	width: 24em;
+	width: 100%;
 	border-color: #666;
 }
 
@@ -1098,11 +1490,11 @@
 	text-shadow: 0px 1px 1px #fff;
 	border-color: #f9f9f9;
 	background: #f9f9f9;
-	background: -moz-linear-gradient(top, rgba(249,249,249,1) 0%, rgba(226,226,226,1) 100%);
-	background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,rgba(249,249,249,1)), color-stop(100%,rgba(226,226,226,1)));
-	background: -o-linear-gradient(top, rgba(249,249,249,1) 0%,rgba(226,226,226,1) 100%);
-	background: -ms-linear-gradient(top, rgba(249,249,249,1) 0%,rgba(226,226,226,1) 100%);
-	background: linear-gradient(top, rgba(249,249,249,1) 0%,rgba(226,226,226,1) 100%);
+	background: -moz-linear-gradient(top, #f9f9f9 0%, #e2e2e2 100%);
+	background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#f9f9f9), color-stop(100%,#e2e2e2));
+	background: -o-linear-gradient(top, #f9f9f9 0%, #e2e2e2 100%);
+	background: -ms-linear-gradient(top, #f9f9f9 0%, #e2e2e2 100%);
+	background: linear-gradient(top, #f9f9f9 0%, #e2e2e2 100%);
 	box-shadow: inset 0 1px 0 0 #fff;
 	-moz-box-shadow: inset 0 1px 0 0 #fff;
 	-webkit-box-shadow: inset 0 1px 0 0 #fff;
@@ -1119,14 +1511,20 @@
 
 #login-form input.button:active {
 	color: #333;
-	background: -moz-linear-gradient(top, rgba(220,220,220,1) 0%, rgba(249,249,249,1) 100%);
-	background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,rgba(220,220,220,1)), color-stop(100%,rgba(249,249,249,1)));
-	background: -o-linear-gradient(top, rgba(220,220,220,1) 0%,rgba(249,249,249,1) 100%);
-	background: -ms-linear-gradient(top, rgba(220,220,220,1) 0%,rgba(249,249,249,1) 100%);
-	background: linear-gradient(top, rgba(220,220,220,1) 0%,rgba(249,249,249,1) 100%);
+	background: -moz-linear-gradient(top, #dcdcdc 0%, #f9f9f9 100%);
+	background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#dcdcdc), color-stop(100%,#f9f9f9));
+	background: -o-linear-gradient(top, #dcdcdc 0%, #f9f9f9 100%);
+	background: -ms-linear-gradient(top, #dcdcdc 0%, #f9f9f9 100%);
+	background: linear-gradient(top, #dcdcdc 0%, #f9f9f9 100%);
+}
+
+#login-form form table {
+	width: 98%;
 }
 
 #login-form td.title {
+	width: 20%;
+	white-space: nowrap;
 	color: #cecece;
 	text-shadow: 0px 1px 1px black;
 	text-align: right;
@@ -1145,12 +1543,12 @@
 #login-form #message {
 	min-height: 40px;
 	padding: 5px 25px;
+	text-align: center;
 }
 
 #login-form #message div {
-	display: block;
-	width: 200px;
-	margin: 0 auto;
+	display: inline-block;
+	padding-right: 0;
 }
 
 #bottomline {
@@ -1163,33 +1561,52 @@
 
 /*** quicksearch **/
 
-#quicksearchbar {
-	width: 100%;
+.searchbox {
+	position: relative;
 }
 
+#quicksearchbar {
+	position: absolute;
+	right: 1px;
+	top: 2px;
+	width: 240px;
+}
+
+.searchbox input,
 #quicksearchbar input {
 	width: 176px;
 	margin: 0;
-	padding: 5px 26px 5px 38px;
+	padding: 3px 30px 3px 34px;
+	height: 18px;
 	background: #f1f1f1;
-	border-color: #a3a3a3;
+	border-color: #ababab;
 	font-weight: bold;
+	font-size: 11px;
 }
 
+.searchbox #searchmenulink,
 #quicksearchbar #searchmenulink {
 	position: absolute;
 	top: 5px;
-	left: 8px;
+	left: 6px;
 }
 
+.searchbox #searchreset,
 #quicksearchbar #searchreset {
 	position: absolute;
 	top: 4px;
-	right: 3px;
+	right: 1px;
 }
 
 
 /*** toolbar ***/
+
+.toolbar .spacer {
+	display: inline-block;
+	width: 24px;
+	height: 40px;
+	padding: 0;
+}
 
 .toolbar a.button {
 	text-align: center;
@@ -1197,6 +1614,7 @@
 	color: #555;
 	min-width: 50px;
 	max-width: 75px;
+	height: 13px;
 	overflow: hidden;
 	text-overflow: ellipsis;
 	white-space: nowrap;
@@ -1208,10 +1626,12 @@
 	-o-box-shadow: none;
 	background: url(images/buttons.png) -100px 0 no-repeat transparent;
 	border: 0;
+	border-radius: 0;
 }
 
 .toolbar a.button.disabled {
-	opacity: 0.5;
+	opacity: 0.4;
+	filter: alpha(opacity=40);
 }
 
 .dropbutton {
@@ -1222,24 +1642,40 @@
 .dropbutton .dropbuttontip {
 	display: block;
 	position: absolute;
-	right: 2px;
+	right: 0;
 	top: 0;
 	height: 42px;
 	width: 18px;
-	background: url(images/buttons.png) -24px -1249px no-repeat;
+	background: url(images/buttons.png) 0 -1255px no-repeat;
 	cursor: pointer;
 }
 
 .dropbutton .dropbuttontip:hover {
-	background-position: 0 -1249px;
+	background-position: -26px -1255px;
+}
+
+.dropbutton a.button.disabled + .dropbuttontip {
+	opacity: 0.5;
+	filter: alpha(opacity=50);
+}
+
+.dropbutton a.button.disabled + .dropbuttontip:hover {
+	background-position: 0 -1255px;
+}
+
+.dropbutton a.button {
+    margin-left: 0;
+    padding-left: 0;
+    margin-right: 0;
+    padding-right: 0;
 }
 
 .toolbar a.button.back {
-	background-position: 0 -1210px;
+	background-position: 0 -1216px;
 }
 
 .toolbar a.button.checkmail {
-	background-position: center -1170px;
+	background-position: center -1176px;
 }
 
 .toolbar a.button.compose {
@@ -1251,12 +1687,13 @@
 }
 
 .toolbar a.button.reply-all {
-	background-position: center -610px;
+	min-width: 64px;
+	background-position: left -610px;
 }
 
 .toolbar a.button.forward {
-	min-width: 74px;
-	background-position: center -650px;
+	min-width: 64px;
+	background-position: left -650px;
 }
 
 .toolbar a.button.delete {
@@ -1275,7 +1712,10 @@
 	background-position: center -810px;
 }
 
-.toolbar a.button.markmessage,
+.toolbar a.button.markmessage {
+	background-position: center -1094px;
+}
+
 .toolbar a.button.more {
 	background-position: center -850px;
 }
@@ -1285,7 +1725,17 @@
 }
 
 .toolbar a.button.spellcheck {
-	background-position: center -930px;
+	min-width: 64px;
+	background-position: left -930px;
+}
+
+.toolbar a.button.spellcheck.selected {
+	background-position: left -1620px;
+	color: #1978a1;
+}
+
+.toolbar a.button.insertsig {
+	background-position: center -1135px;
 }
 
 .toolbar a.button.search {
@@ -1293,12 +1743,25 @@
 }
 
 .toolbar a.button.import {
-	background-position: center -1010px;
+	background-position: center -1012px;
 }
 
 .toolbar a.button.export {
-	background-position: center -1050px;
+	background-position: center -1054px;
 }
+
+.toolbar a.button.send {
+	background-position: center -1660px;
+}
+
+.toolbar a.button.savedraft {
+	background-position: center -1700px;
+}
+
+.toolbar a.button.close {
+	background-position: 0 -1745px;
+}
+
 
 a.menuselector {
 	display: inline-block;
@@ -1312,11 +1775,15 @@
 	background: linear-gradient(top, #f8f8f8 0%, #dddddd 100%);
 	text-decoration: none;
 	color: #333;
+	cursor: pointer;
+	white-space: nowrap;
 }
 
 a.menuselector .handle {
 	display: inline-block;
-	padding: 3px 32px 4px 8px;
+	padding: 0 32px 0 6px;
+	height: 20px;
+	line-height: 19px;
 	text-shadow: 0px 1px 1px #fff;
 	background: url(images/selector.png) right center no-repeat;
 	border-radius: 4px;
@@ -1332,6 +1799,44 @@
 	text-decoration: none;
 }
 
+select.decorated {
+	position: relative;
+	z-index: 10;
+	opacity: 0;
+	height: 22px;
+	cursor: pointer;
+	filter: alpha(opacity=0);
+	-khtml-appearance: none;
+	-webkit-appearance: none;
+}
+
+html.opera select.decorated {
+	opacity: 1;
+}
+
+select.decorated option {
+	color: #fff;
+	background: #444;
+	border: 0;
+	border-top: 1px solid #5a5a5a;
+	border-bottom: 1px solid #333;
+	text-shadow: 0px 1px 1px #333;
+	padding: 4px 6px;
+	outline: none;
+}
+
+
+/*** quota indicator ***/
+
+#quotadisplay {
+	left: 6px;
+	font-size: 12px;
+	font-weight: bold;
+	text-shadow: 0px 1px 1px #fff;
+	padding-left: 30px;
+	height: 18px;
+	background: url(images/quota.png) -100px 0 no-repeat;
+}
 
 /*** popup menus ***/
 
@@ -1376,12 +1881,14 @@
 }
 
 .googie_list tr:first-child td,
-ul.toolbarmenu li:first-child {
+ul.toolbarmenu li:first-child,
+select.decorated option:first-child {
 	border-top: 0;
 }
 
 .googie_list tr:last-child td,
-ul.toolbarmenu li:last-child {
+ul.toolbarmenu li:last-child,
+select.decorated option:last-child {
 	border-bottom: 0;
 }
 
@@ -1395,6 +1902,10 @@
 	padding: 6px 10px 6px 10px;
 }
 
+.googie_list td span {
+	padding: 3px 10px;
+}
+
 .googie_list td span,
 ul.toolbarmenu li a.active {
 	color: #fff;
@@ -1403,7 +1914,9 @@
 
 .googie_list td.googie_list_onhover,
 ul.toolbarmenu li a.active:hover,
-#rcmKSearchpane ul li.selected {
+#rcmKSearchpane ul li.selected,
+select.decorated option:hover,
+select.decorated option[selected='selected'] {
 	background-color: #00aad6;
 	background: -moz-linear-gradient(top, #00aad6 0%, #008fc9 100%);
 	background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#00aad6), color-stop(100%,#008fc9));
@@ -1412,8 +1925,13 @@
 	background: linear-gradient(top, #00aad6 0%, #008fc9 100%);
 }
 
-ul.toolbarmenu.iconized li a {
+ul.toolbarmenu.iconized li a,
+ul.toolbarmenu.selectable li a {
 	padding-left: 30px;
+}
+
+ul.toolbarmenu.selectable li a.selected {
+	background: url(images/messages.png) 4px -27px no-repeat;
 }
 
 ul.toolbarmenu li label {
@@ -1431,15 +1949,18 @@
 ul.toolbarmenu li span.icon {
 	display: block;
 	min-height: 14px;
-	padding: 4px 4px 4px 24px;
+	padding: 4px 4px 1px 24px;
+	height: 17px;
 	background-image: url(images/listicons.png);
 	background-position: -100px 0;
 	background-repeat: no-repeat;
 	opacity: 0.2;
+	filter: alpha(opacity=20);
 }
 
 ul.toolbarmenu li a.active span.icon {
 	opacity: 0.99;
+	filter: alpha(opacity=100);
 }
 
 ul.toolbarmenu li span.read {
@@ -1509,6 +2030,7 @@
 	min-height: 14px;
 	padding: 6px 10px 6px 10px;
 	border: 0;
+	cursor: default;
 }
 
 .popupdialog {
@@ -1571,6 +2093,7 @@
 	color: #ccc;
 	white-space: nowrap;
 	opacity: 0.92;
+	filter: alpha(opacity=92);
 	text-shadow: 0px 1px 1px #333;
 }
 
@@ -1585,16 +2108,166 @@
 	/* reduce the damage in FF3.0 */
 	display: block; 
 	width: 0;
+	z-index: 251;
 }
 
-._draglayercopy:before {
+.draglayercopy:before {
 	position: absolute;
-	bottom: -5px;
+	bottom: -6px;
 	left: -6px;
 	content: " ";
-	width: 15px;
-	height: 15px;
-	background: url(images/buttons.png) -8px -360px no-repeat;
+	width: 16px;
+	height: 16px;
+	background: url(images/buttons.png) -7px -358px no-repeat;
+	z-index: 255;
+}
+
+
+/*** attachment list ***/
+
+.attachmentslist {
+	list-style: none;
+	margin: 0;
+	padding: 0;
+	overflow: hidden;
+	text-overflow: ellipsis;
+}
+
+.attachmentslist li {
+	display: block;
+	position: relative;
+	background: url(images/filetypes.png) 0 0 no-repeat;
+	margin-bottom: 1px;
+}
+
+.attachmentslist li.pdf {
+	background-position: 0 -26px;
+}
+
+.attachmentslist li.doc,
+.attachmentslist li.docx,
+.attachmentslist li.msword {
+	background-position: 0 -52px;
+}
+
+.attachmentslist li.odt {
+	background-position: 0 -78px;
+}
+
+.attachmentslist li.xls,
+.attachmentslist li.xlsx,
+.attachmentslist li.msexcel {
+	background-position: 0 -104px;
+}
+
+.attachmentslist li.ods {
+	background-position: 0 -130px;
+}
+
+.attachmentslist li.zip,
+.attachmentslist li.gz {
+	background-position: 0 -156px;
+}
+
+.attachmentslist li.rar {
+	background-position: 0 -182px;
+}
+
+.attachmentslist li.image {
+	background-position: 0 -208px;
+}
+
+.attachmentslist li.jpg,
+.attachmentslist li.jpeg {
+	background-position: 0 -234px;
+}
+
+.attachmentslist li.png {
+	background-position: 0 -260px;
+}
+
+.attachmentslist li.m4p {
+	background-position: 0 -286px;
+}
+
+.attachmentslist li.mp3,
+.attachmentslist li.audio {
+	background-position: 0 -312px;
+}
+
+.attachmentslist li.video {
+	background-position: 0 -338px;
+}
+
+.attachmentslist li.txt,
+.attachmentslist li.text {
+	background-position: 0 -416px;
+}
+
+.attachmentslist li.ics,
+.attachmentslist li.calendar {
+	background-position: 0 -364px;
+}
+
+.attachmentslist li.vcard {
+	background-position: 0 -390px;
+}
+
+.attachmentslist li.sig,
+.attachmentslist li.pgp-signature,
+.attachmentslist li.pkcs7-signature {
+	background-position: 0 -442px;
+}
+
+.attachmentslist li.html {
+	background-position: 0 -468px;
+}
+
+.attachmentslist li.eml,
+.attachmentslist li.rfc822 {
+	background-position: 0 -494px;
+}
+
+.attachmentslist li a,
+#compose-attachments ul li {
+	display: block;
+	color: #333;
+	font-weight: bold;
+	padding: 8px 4px 3px 30px;
+	text-shadow: 0px 1px 1px #fff;
+	text-decoration: none;
+	white-space: nowrap;
+	overflow: hidden;
+	text-overflow: ellipsis;
+}
+
+#compose-attachments ul li {
+	padding-right: 28px;
+}
+
+.attachmentslist li a:hover {
+	text-decoration: underline;
+}
+
+.attachmentslist li.uploading {
+	background: url(images/ajaxloader.gif) 2px 6px no-repeat;
+}
+
+.attachmentslist li a.delete,
+.attachmentslist li a.cancelupload {
+	position: absolute;
+	top: 6px;
+	right: 0;
+	width: 24px;
+	height: 18px;
+	padding: 0;
+	text-decoration: none;
+	text-indent: -5000px;
+	background: url(images/buttons.png) -7px -337px no-repeat;
+}
+
+.attachmentslist li a.cancelupload {
+	background-position: -7px -377px;
 }
 
 
@@ -1604,6 +2277,11 @@
 	margin-bottom: 12px;
 	padding-top: 15px;
 	height: 27px;
+	white-space: nowrap;
+}
+
+.ui-dialog-content .tabsbar {
+	margin-bottom: 0;
 }
 
 .tabsbar .tablink {
@@ -1637,7 +2315,7 @@
 
 .tabsbar .tablink.selected a {
 	color: #004458;
-	background: #fff;
+	background: #f6f6f6;
 	background: -moz-linear-gradient(top, #fff 40%, #efefef 100%);
 	background: -webkit-gradient(linear, left top, left bottom, color-stop(40%,#fff), color-stop(100%,#efefef));
 	background: -o-linear-gradient(top, #fff 40%, #efefef 100%);
@@ -1650,5 +2328,3 @@
 	padding: 0;
 	margin-left: 0;
 }
-
-

--
Gitblit v1.9.1