fifth part of syncing LCARStrek with Firefox 34 windows theme changes
[themes.git] / LCARStrek / browser / customizableui / panelUIOverlay.css
index eb70a50bc525d0fe1e798cae86f0db6ddb737529..1f0c04a92c7368096009b8b7e1a312c2a0d35ab1 100644 (file)
 
 /* === BEGIN panelUIOverlay.inc.css === */
 
-.panel-subviews {
-  background-color: #000000;
-  -moz-margin-start: 38px;
+#PanelUI-popup #PanelUI-contents:empty {
+  height: 128px;
+}
+
+#PanelUI-popup #PanelUI-contents:empty::before {
+  content: "";
+  background-image: url("chrome://browser/skin/customizableui/whimsy-bw.png");
+  display: block;
+  width: 64px;
+  height: 64px;
+  position: absolute;
+  transition: transform 1s ease-out;
+  animation: whimsyMoveX 3.05s linear 0s infinite alternate,
+             whimsyMoveY 3.4s linear 0s infinite alternate;
+}
+
+#PanelUI-popup #PanelUI-contents:active:empty::before {
+  animation: whimsyMoveX 3.05s linear 0s infinite alternate,
+             whimsyMoveY 3.4s linear 0s infinite alternate,
+             whimsyRotate 1s linear 0s infinite normal;
+}
+
+#PanelUI-popup #PanelUI-contents:-moz-locale-dir(rtl):empty::before {
+  animation: whimsyMoveXRTL 3.05s linear 0s infinite alternate,
+             whimsyMoveY 3.4s linear 0s infinite alternate;
+}
+
+#PanelUI-popup #PanelUI-contents:-moz-locale-dir(rtl):active:empty::before {
+  animation: whimsyMoveXRTL 3.05s linear 0s infinite alternate,
+             whimsyMoveY 3.4s linear 0s infinite alternate,
+             whimsyRotate 1s linear 0s infinite normal;
+}
+
+#PanelUI-popup #PanelUI-contents:empty:hover::before {
+  background-image: url("chrome://browser/skin/customizableui/whimsy.png");
+}
+
+@media (min-resolution: 2dppx) {
+  #PanelUI-popup #PanelUI-contents:empty::before {
+    background-image: url("chrome://browser/skin/customizableui/whimsy-bw@2x.png");
+    background-size: 64px 64px;
+  }
+  #PanelUI-popup #PanelUI-contents:empty:hover::before {
+    background-image: url("chrome://browser/skin/customizableui/whimsy@2x.png");
+  }
+}
+
+@keyframes whimsyMoveX {
+  /* These values are adjusted for the padding on the panel. */
+  from { margin-left: -9px; } to { margin-left: calc(100% - 55px); }
+}
+
+@keyframes whimsyMoveXRTL {
+  /* These values are adjusted for the padding on the panel. */
+  from { margin-right: -9px; } to { margin-right: calc(100% - 55px); }
+}
+
+@keyframes whimsyMoveY {
+  /* These values are adjusted for the padding and height of the panel. */
+  from { margin-top: -.5em; } to { margin-top: calc(64px - .5em); }
+}
+
+@keyframes whimsyRotate {
+  to { transform: perspective(5000px) rotateY(360deg); }
+}
+
+#customization-panelHolder {
+  border-radius: 4px;
+}
+
+#PanelUI-button {
+  -moz-margin-start: 3px;
 }
 
-.panel-subviews:-moz-locale-dir(rtl) {
+#PanelUI-button:-moz-locale-dir(rtl) {
+}
+
+.panel-subviews {
+  padding: 4px;
+  -moz-margin-start: 38px;
 }
 
 .panel-viewstack[viewtype="main"] > .panel-subviews {
-  transform: translateX(21em);
+  transform: translateX(22.35em);
 }
 
 .panel-viewstack[viewtype="main"] > .panel-subviews:-moz-locale-dir(rtl) {
-  transform: translateX(-21em);
+  transform: translateX(-22.35em);
+}
+
+panelmultiview[nosubviews=true] > .panel-viewcontainer > .panel-viewstack > .panel-subviews {
+  display: none;
 }
 
 .panel-viewstack:not([viewtype="main"]) > .panel-mainview > #PanelUI-mainView {
   -moz-box-flex: 1;
 }
 
+.panel-subview-body {
+  overflow-y: auto;
+  overflow-x: hidden;
+  -moz-box-flex: 1;
+}
+
+#PanelUI-popup .panel-subview-body {
+  margin: -4px;
+  padding: 4px 4px;
+}
+
+.panel-subview-header,
+.subviewbutton.panel-subview-footer {
+  box-sizing: border-box;
+/*  min-height: 41px; */
+  padding: 3px;
+}
+
+.panel-subview-header {
+  margin: 0 0 4px;
+  background-color: #A09090;
+  color: #000000;
+  border-radius: 4px;
+}
+
+.panel-subview-footer {
+  border-top: 1px solid #A09090;
+}
+
+.cui-widget-panelview .panel-subview-header {
+  display: none;
+}
+
+.cui-widget-panelview .subviewbutton.panel-subview-footer {
+  margin: 4px 0 0;
+  -moz-box-pack: center;
+}
+
 #PanelUI-mainView {
   display: flex;
   flex-direction: column;
+  border-radius: 4px;
 }
 
 #app-extension-point-end > #PanelUI-menu-button {
   padding: .5em 0;
 }
 
-toolbaritem[cui-areatype="menu-panel"][sdkstylewidget="true"]:not(.panel-wide-item) > .toolbarbutton-text,
-#bookmarks-menu-button > toolbarbutton > .toolbarbutton-text,
-:-moz-any(#PanelUI-contents,#widget-overflow-list) > toolbarpaletteitem > toolbaritem > toolbarbutton > .toolbarbutton-text,
-:-moz-any(#PanelUI-contents,#widget-overflow-list) > toolbaritem > toolbarbutton > .toolbarbutton-text,
-:-moz-any(#PanelUI-contents,#widget-overflow-list) > toolbarpaletteitem > toolbarbutton > .toolbarbutton-text,
-:-moz-any(#PanelUI-contents,#widget-overflow-list) > toolbarbutton > .toolbarbutton-text {
-  font-size: 10px;
+.panelUI-grid .toolbarbutton-1 > .toolbarbutton-menubutton-button > .toolbarbutton-multiline-text,
+.panelUI-grid .toolbarbutton-1 > .toolbarbutton-multiline-text {
+/*  line-height: 1.1;*/
+  max-height: 2.2em;
+}
+
+.panelUI-grid .toolbarbutton-1:not([auto-hyphens="off"]) > .toolbarbutton-menubutton-button > .toolbarbutton-multiline-text,
+.panelUI-grid .toolbarbutton-1:not([auto-hyphens="off"]) > .toolbarbutton-multiline-text {
+  -moz-hyphens: auto;
+}
+
+.panelUI-grid:not([customize-transitioning]) .toolbarbutton-1 > .toolbarbutton-menubutton-button > .toolbarbutton-multiline-text,
+.panelUI-grid:not([customize-transitioning]) .toolbarbutton-1 > .toolbarbutton-multiline-text {
+  position: absolute;
+  clip: rect(auto, auto, 2.3em, auto);
+}
+
+.panelUI-grid .toolbarbutton-1 > .toolbarbutton-text,
+.panelUI-grid .toolbarbutton-1 > .toolbarbutton-multiline-text {
+  text-align: center;
+  /* Need to override toolkit theming which sets margin: 0 !important; */
+  margin: 2px 0 0 !important;
+}
+
+.panelUI-grid .toolbarbutton-1 > .toolbarbutton-menubutton-button > .toolbarbutton-multiline-text {
+  text-align: center;
+  margin: -1px 0 0;
 }
 
 #wrapper-edit-controls:-moz-any([place="palette"],[place="panel"]) > #edit-controls,
@@ -69,109 +206,231 @@ toolbaritem[cui-areatype="menu-panel"][sdkstylewidget="true"]:not(.panel-wide-it
   -moz-margin-start: 0;
 }
 
-#PanelUI-contents,
+#PanelUI-contents {
+  max-width: 22.35em;
+}
+
+#BMB_bookmarksPopup,
 .panel-mainview:not([panelid="PanelUI-popup"]) {
-  max-width: 21em;
+  max-width: 30em;
 }
 
 panelview:not([mainview]) .toolbarbutton-text,
-#customizationui-widget-panel toolbarbutton > .toolbarbutton-text {
+.cui-widget-panel toolbarbutton > .toolbarbutton-text {
   text-align: start;
-  -moz-padding-start: 8px;
   display: -moz-box;
 }
 
+.cui-widget-panel > .panel-arrowcontainer > .panel-arrowcontent {
+  padding: 0;
+}
+
+.cui-widget-panel.cui-widget-panelWithFooter > .panel-arrowcontainer > .panel-arrowcontent {
+  padding-bottom: 0;
+}
+
+.cui-widget-panel > :-moz-any(menu,menuitem,toolbarbutton):first-child {
+  border-radius: 4px 4px 0 0;
+}
+
+.cui-widget-panel > :-moz-any(menu,menuitem,toolbarbutton):last-child {
+  border-radius: 0 0 4px 4px;
+}
+
 #PanelUI-contents {
   display: block;
-  flex: auto;
+  flex: 1 0 main-size;
   margin-left: auto;
   margin-right: auto;
-  max-width: 21em;
+  max-width: 22.35em;
 }
 
 #PanelUI-contents-scroller {
   overflow-y: auto;
   overflow-x: hidden;
-  width: 21em;
-  padding-left: 5px;
-  padding-right: 5px;
+  width: 22.35em;
   flex: auto;
 }
 
-#edit-controls:-moz-any(:not([cui-areatype="toolbar"]),.overflowedItem) > toolbarbutton > .toolbarbutton-icon,
-#zoom-controls:-moz-any(:not([cui-areatype="toolbar"]),.overflowedItem) > toolbarbutton > .toolbarbutton-icon {
+.toolbaritem-combined-buttons:-moz-any(:not([cui-areatype="toolbar"]), [overflowedItem=true]) > toolbarbutton > .toolbarbutton-icon {
   min-width: 0;
   min-height: 0;
   margin: 0;
 }
 
 toolbaritem[cui-areatype="menu-panel"][sdkstylewidget="true"]:not(.panel-wide-item),
-#PanelUI-contents toolbarbutton,
-toolbarpaletteitem[place="panel"] > toolbarbutton,
-toolbarpaletteitem[place="palette"] > toolbarbutton,
-toolbarpaletteitem[place="panel"] > toolbaritem > toolbarbutton,
-toolbarpaletteitem[place="palette"] > toolbaritem > toolbarbutton,
-.panel-customization-placeholder {
+.panelUI-grid .toolbarbutton-1,
+.panel-customization-placeholder-child {
   -moz-appearance: none;
   -moz-box-orient: vertical;
-  min-width: 7em;
-  max-width: 7em;
-  height: 6em;
-  max-height: 6em;
+  width: calc(22.35em / 3 - 0.1px - 2px); /* LCARStrek: XXX: found out to be needed to fit the icons */
+  height: calc(51px + 2.2em);
+}
+
+/* In order to have button labels constrained appropriately, items inside the toolbarpaletteitem
+ * should have a min-width set so they abide by the width set above (which they do outside of
+ * customize mode because they're in a flexed container) */
+toolbarpaletteitem[place="panel"]:not([haswideitem=true]) > .toolbarbutton-1 {
+  min-width: 0.01px;
+}
+
+/* Help SDK buttons fit in. */
+toolbarpaletteitem[place="palette"] > toolbarbutton[sdk-button="true"] > .toolbarbutton-icon,
+toolbarbutton[sdk-button="true"][cui-areatype="menu-panel"] > .toolbarbutton-icon {
+  height: 32px;
+  width: 32px;
+}
+
+.customization-palette .toolbarbutton-1 {
+  -moz-appearance: none;
+  -moz-box-orient: vertical;
+}
+
+.panelUI-grid .toolbarbutton-1 > .toolbarbutton-menubutton-button {
+  -moz-appearance: none;
+  -moz-box-orient: vertical;
+  width: calc(22.35em / 3 - 0.1px - 2px);
+  height: calc(49px + 2.2em);
+  border: 0;
+}
+
+.panelUI-grid .toolbarbutton-1 > .toolbarbutton-menubutton-button > .toolbarbutton-text,
+.panelUI-grid .toolbarbutton-1 > .toolbarbutton-menubutton-button > .toolbarbutton-multiline-text {
+  margin-top: 2px; /* Hack needed to get the label of type=menu-button aligned with other buttons */
+}
+
+.panel-customization-placeholder-child {
+  margin: 6px 0 0;
+/*  padding: 2px 6px;*/
+}
+
+.panelUI-grid .toolbarbutton-1[type="menu"] {
+  background-image: url("chrome://global/skin/arrow/arrow-down-sharp.gif");
+  background-position: right 3px top 16px;
+  background-repeat: no-repeat;
+}
+
+.panelUI-grid .toolbarbutton-1[type="menu"]:-moz-locale-dir(rtl) {
+  background-position: left 3px top 16px;
+}
+
+.panelUI-grid .toolbarbutton-1 > .toolbarbutton-menu-dropmarker {
+  display: none;
+}
+
+.panelUI-grid .toolbarbutton-1 > .toolbarbutton-menubutton-dropmarker {
+  -moz-box-align: center;
+  width: 16px;
+  -moz-margin-start: -16px;
+  height: 51px;
+  margin-bottom: 2.2em;
   padding: 0;
-  margin: 0;
 }
 
-.panel-customization-placeholder[expand],
-.panel-customization-placeholder[contract] {
-  transition-property: width;
-  transition-duration: 170ms;
-  transition-delay: 20ms;
-  transition-timing-function: ease-in-out;
-  min-width: 0;
-  max-width: none;
+.panelUI-grid .toolbarbutton-1:not([buttonover]):not([disabled]):-moz-any([open],:hover:active) > .toolbarbutton-menubutton-dropmarker {
+  border-radius: 0 0 0 2px;
 }
 
-.panel-combined-button[disabled] > .toolbarbutton-icon {
-  opacity: .5;
+.panelUI-grid .toolbarbutton-1:not([buttonover]):not([disabled]):-moz-any([open],:hover:active)> .toolbarbutton-menubutton-dropmarker:-moz-locale-dir(rtl) {
+  border-radius: 0 0 2px 0;
 }
 
-toolbaritem[cui-areatype="menu-panel"][sdkstylewidget="true"] {
-  width: 7em;
+#main-window:not([customizing]) .panel-combined-button[disabled] > .toolbarbutton-icon {
+/*  opacity: .5; */
+}
+
+toolbaritem[cui-areatype="menu-panel"][sdkstylewidget="true"]:not(.panel-wide-item) {
+  width: calc(22.35em / 3 - 0.1px);
   margin: 0 !important;
 }
 
-toolbaritem[cui-areatype="menu-panel"][sdkstylewidget="true"]:not(.panel-wide-widget) {
+toolbaritem[cui-areatype="menu-panel"][sdkstylewidget="true"]:not(.panel-wide-item) {
   -moz-box-align: center;
   -moz-box-pack: center;
 }
 
 toolbaritem[cui-areatype="menu-panel"][sdkstylewidget="true"] > iframe {
-  margin: calc(5em / 12) auto;
+  margin: 4px auto;
+}
+
+#PanelUI-multiView[viewtype="subview"] > .panel-viewcontainer > .panel-viewstack > .panel-mainview >  #PanelUI-mainView {
+}
+
+#PanelUI-multiView[viewtype="subview"] #PanelUI-mainView > #PanelUI-contents-scroller > #PanelUI-contents > .panel-wide-item,
+#PanelUI-multiView[viewtype="subview"] #PanelUI-mainView > #PanelUI-contents-scroller > #PanelUI-contents > .toolbarbutton-1:not([panel-multiview-anchor="true"]),
+#PanelUI-multiView[viewtype="subview"] #PanelUI-mainView > #PanelUI-footer > #PanelUI-fxa-status,
+#PanelUI-multiView[viewtype="subview"] #PanelUI-mainView > #PanelUI-footer > #PanelUI-footer-inner > toolbarseparator,
+#PanelUI-multiView[viewtype="subview"] #PanelUI-mainView > #PanelUI-footer > #PanelUI-footer-inner > #PanelUI-customize,
+#PanelUI-multiView[viewtype="subview"] #PanelUI-mainView > #PanelUI-footer > #PanelUI-footer-inner > #PanelUI-help:not([panel-multiview-anchor="true"]) {
+  opacity: .5;
+}
+
+/*
+ * XXXgijs: this is a workaround for a layout issue that was caused by these iframes,
+ * which was affecting subview display. Because of this, we're hiding the iframe *only*
+ * when displaying a subview. The discerning user might notice this, but it's not nearly
+ * as bad as the brokenness.
+ * This hack should be removed once https://bugzilla.mozilla.org/show_bug.cgi?id=975375
+ * is addressed.
+ */
+#PanelUI-multiView[viewtype="subview"] toolbaritem[cui-areatype="menu-panel"][sdkstylewidget="true"]:not(.panel-wide-item) > iframe {
+  visibility: hidden;
 }
 
 toolbaritem[cui-areatype="menu-panel"][sdkstylewidget="true"]:not(.panel-wide-item) > .toolbarbutton-text {
   text-align: center;
 }
 
-.panel-customization-placeholder-child > .toolbarbutton-icon,
-#bookmarks-menu-button[cui-areatype="menu-panel"] > .toolbarbutton-menubutton-button > .toolbarbutton-icon,
-toolbarbutton[cui-areatype="menu-panel"] > .toolbarbutton-icon,
-toolbaritem[cui-areatype="menu-panel"] > toolbarbutton > .toolbarbutton-icon,
-toolbarpaletteitem[place="palette"] > #bookmarks-menu-button > .toolbarbutton-menubutton-button > .toolbarbutton-icon,
-toolbarpaletteitem[place="palette"] > toolbarbutton > .toolbarbutton-icon,
-toolbarpaletteitem[place="palette"] > toolbaritem > toolbarbutton > .toolbarbutton-icon {
-  min-width: calc(8em / 3);
-  min-height: calc(8em / 3);
-  margin: calc(5em / 12);
+.panelUI-grid .toolbarbutton-1 > .toolbarbutton-menubutton-button > .toolbarbutton-icon,
+.panelUI-grid .toolbarbutton-1 > .toolbarbutton-icon,
+.panelUI-grid .toolbarbutton-1 > .toolbarbutton-badge-container,
+.customization-palette .toolbarbutton-1 > .toolbarbutton-menubutton-button > .toolbarbutton-icon,
+.customization-palette .toolbarbutton-1 > .toolbarbutton-icon,
+.customization-palette .toolbarbutton-1 > .toolbarbutton-badge-container,
+.panelUI-grid #bookmarks-toolbar-placeholder > .toolbarbutton-icon,
+.customization-palette #bookmarks-toolbar-placeholder > .toolbarbutton-icon,
+.panel-customization-placeholder-child > .toolbarbutton-icon {
+  min-width: 32px;
+  min-height: 32px;
+  /* Explanation for the below formula (A / B - C)
+     A
+       Each button is 22.35em / 3 - 0.1px wide
+     B
+       Each button has two margins.
+     C (44px / 2 = 22px)
+       The button icon is 32 pixels wide.
+       The button has 12px of horizontal padding (6 on each side).
+       The button has 0px of horizontal border (0 on each side).
+       Total width of button's icon + button padding should therefore be 44px,
+       which means each horizontal margin should be the half the button's width - (44/2) px.
+  */
+  margin: 4px calc((22.35em / 3 - 0.1px) / 2 - 22px);
+}
+
+/* above we treat the container as the icon for the margins, that is so the
+/* badge itself is positioned correctly. Here we make sure that the icon itself
+/* has the minum size we want, but no padding/margin. */
+.panelUI-grid .toolbarbutton-1 > .toolbarbutton-badge-container > .toolbarbutton-icon {
+  min-width: 32px;
+  min-height: 32px;
+  margin: 0;
+  padding: 0;
 }
 
 toolbarpaletteitem[place="palette"] > toolbaritem > toolbarbutton {
   -moz-box-flex: 1;
 }
 
-#edit-controls:-moz-any(:not([cui-areatype="toolbar"]),.overflowedItem) > #copy-button,
-#zoom-controls:-moz-any(:not([cui-areatype="toolbar"]),.overflowedItem) > #zoom-reset-button {
+#personal-bookmarks[overflowedItem=true] > #bookmarks-toolbar-placeholder {
+  -moz-box-flex: 1;
+}
+
+#personal-bookmarks[cui-areatype="toolbar"][overflowedItem=true] > #bookmarks-toolbar-placeholder > .toolbarbutton-icon {
+  -moz-margin-end: 2px;
+}
+
+#edit-controls:-moz-any(:not([cui-areatype="toolbar"]), [overflowedItem=true]) > #copy-button,
+#zoom-controls:-moz-any(:not([cui-areatype="toolbar"]), [overflowedItem=true]) > #zoom-reset-button {
   border-left: none;
   border-right: none;
   border-radius: 0;
@@ -185,38 +444,109 @@ toolbarpaletteitem[place="palette"] > toolbaritem > toolbarbutton {
 
 #PanelUI-footer {
   display: flex;
-  background-color: #000000;
-  border-top: 1px solid #9C9CFF;
+  flex-shrink: 0;
+  flex-direction: column;
+/*  background-color: hsla(210,4%,10%,.07);*/
   padding: 0;
   margin: 0;
-  min-height: 4em;
+/*  min-height: 4em;*/
+  border-bottom-right-radius: 4px;
+  border-bottom-left-radius: 4px;
+}
+
+#PanelUI-footer-inner {
+  display: flex;
+  border-top: 1px solid #9C9CFF;
+}
+
+#PanelUI-multiView[viewtype="subview"] #PanelUI-footer-inner {
+  position: relative;
+}
+
+#PanelUI-footer-inner > toolbarseparator {
+  border: 0;
+  border-left: 1px solid #9C9CFF;
+  margin: 0;
+}
+
+#PanelUI-footer-inner:hover > toolbarseparator {
+/*  margin: 0;*/
 }
 
 #PanelUI-help,
+#PanelUI-fxa-status,
 #PanelUI-customize,
 #PanelUI-quit {
   margin: 0;
-  padding: 10px 0;
-  -moz-appearance: none;
+  padding: 11px 0;
+  box-sizing: border-box;
+  min-height: 40px;
   box-shadow: none;
-  background-image: none;
-  border: 1px solid transparent;
-  border-bottom-style: none;
+  border: none;
   border-radius: 0;
   transition: background-color;
-  -moz-box-orient: vertical;
-  flex: 1 1 33.33%;
+  -moz-box-orient: horizontal;
+}
+
+#PanelUI-fxa-status {
+  border-top: 1px solid #9C9CFF;
+  border-bottom: 1px solid transparent;
+  margin-bottom: -1px;
+}
+
+#PanelUI-fxa-status > .toolbarbutton-text {
+  width: 0; /* Fancy cropping solution for flexbox. */
+}
+
+#PanelUI-help[panel-multiview-anchor="true"] {
+  -moz-image-region: rect(0, 32px, 16px, 16px);
+}
+
+#PanelUI-help,
+#PanelUI-quit {
+  min-width: 44px;
 }
-:-moz-any(#PanelUI-help, #PanelUI-customize, #PanelUI-quit) > .toolbarbutton-icon {
-  margin: 0 0 3px;
+
+#PanelUI-fxa-status > .toolbarbutton-text,
+#PanelUI-customize > .toolbarbutton-text {
+  margin: 0;
+  padding: 0 6px;
+  text-align: start;
+}
+
+#PanelUI-help > .toolbarbutton-text,
+#PanelUI-quit > .toolbarbutton-text {
+  display: none;
+}
+
+#PanelUI-help > .toolbarbutton-icon,
+#PanelUI-quit > .toolbarbutton-icon {
+  -moz-margin-end: 0;
+}
+
+#PanelUI-customize {
+  flex: 1;
+  -moz-padding-start: 15px;
+  -moz-border-start-style: none;
+}
+
+#PanelUI-fxa-status {
+  list-style-image: url("chrome://browser/skin/syncFx-horizontalbar.png");
+}
+
+#PanelUI-fxa-status[status="active"] {
+  list-style-image: url("chrome://browser/skin/syncFxProgress-horizontalbar.png");
 }
 
 #PanelUI-customize {
   list-style-image: url("chrome://browser/skin/menuPanel-customize.png");
 }
 
+#customization-panelHolder #PanelUI-customize {
+  list-style-image: url("chrome://browser/skin/customizableui/menuPanel-customizeFinish.png");
+}
+
 #PanelUI-help {
-  -moz-border-start-style: none;
   list-style-image: url("chrome://browser/skin/menuPanel-help.png");
 }
 
@@ -225,6 +555,7 @@ toolbarpaletteitem[place="palette"] > toolbaritem > toolbarbutton {
   list-style-image: url("chrome://browser/skin/menuPanel-exit.png");
 }
 
+#PanelUI-fxa-status,
 #PanelUI-customize,
 #PanelUI-help,
 #PanelUI-quit {
@@ -245,84 +576,189 @@ toolbarpaletteitem[place="palette"] > toolbaritem > toolbarbutton {
   -moz-image-region: rect(0, 48px, 16px, 32px);
 }
 
+#PanelUI-fxa-status:not([disabled]):hover,
 #PanelUI-help:not([disabled]):hover,
 #PanelUI-customize:hover,
 #PanelUI-quit:not([disabled]):hover {
-/*  border-color: rgba(8,25,42,0.2);
-  border-top-color: rgba(8,25,42,0.1);
-  background-color: rgba(0,0,0,0.1);
-  box-shadow: none;*/
 }
 
-#main-window[customize-entered] #PanelUI-customize {
+#PanelUI-fxa-status:not([disabled]):hover:active,
+#PanelUI-help:not([disabled]):hover:active,
+#PanelUI-customize:hover:active,
+#PanelUI-quit:not([disabled]):hover:active {
+}
+
+#PanelUI-fxa-status:not([disabled]):hover,
+#PanelUI-fxa-status:not([disabled]):hover:active {
+}
+
+#PanelUI-quit:not([disabled]):hover {
+  background-color: #FF0000;
+}
+
+#PanelUI-quit:not([disabled]):hover:active {
+  background-color: #FF9F00;
+}
+
+#customization-panelHolder #PanelUI-customize {
   color: #FFCF00;
   background-color: #008484;
+  text-shadow: none;
+  margin-top: -1px;
 }
 
-#main-window[customize-entered] #PanelUI-customize:hover,
-#main-window[customize-entered] #PanelUI-customize:hover:active {
-  color: #000000;
+#customization-panelHolder #PanelUI-customize + toolbarseparator {
+  display: none;
+}
+
+#customization-panelHolder #PanelUI-customize:hover,
+#customization-panelHolder #PanelUI-customize:hover:active {
   background-color: #FFCF00;
+  color: #000000;
 }
 
+#customization-palette .toolbarbutton-multiline-text,
 #customization-palette .toolbarbutton-text {
   display: none;
 }
 
-panelview toolbarbutton,
-#widget-overflow-list > toolbarbutton,
-.customizationmode-button,
-#edit-controls:-moz-any(:not([cui-areatype="toolbar"]),.overflowedItem) > toolbarbutton,
-#zoom-controls:-moz-any(:not([cui-areatype="toolbar"]),.overflowedItem) > toolbarbutton,
-#BMB_bookmarksPopup > menu,
-#BMB_bookmarksPopup > menuitem {
-  -moz-appearance: none;
-  padding: 2px 6px;
-/*  background-color: hsla(210,4%,10%,0);
+panelview .toolbarbutton-1,
+.subviewbutton,
+.widget-overflow-list .toolbarbutton-1,
+.panelUI-grid .toolbarbutton-1 > .toolbarbutton-menubutton-button,
+.toolbaritem-combined-buttons:-moz-any(:not([cui-areatype="toolbar"]), [overflowedItem=true]) > toolbarbutton {
+/*  padding: 0 6px;
+  background-color: hsla(210,4%,10%,0);
   border-radius: 2px;
-  border: 1px solid;
+  border-style: solid;
   border-color: hsla(210,4%,10%,0);*/
-  transition-property: background-color, border-color;
-  transition-duration: 150ms;
 }
 
 panelview .toolbarbutton-1,
-#widget-overflow-list > toolbarbutton {
+.subviewbutton,
+.widget-overflow-list .toolbarbutton-1,
+.toolbaritem-combined-buttons:-moz-any(:not([cui-areatype="toolbar"]), [overflowedItem=true]) > toolbarbutton {
+  border-width: 0;
+}
+
+.subviewbutton.panel-subview-footer {
+/*  border-radius: 0; */
+  margin: 2px 0 0;
+}
+
+.subviewbutton.panel-subview-footer > .menu-text {
+  -moz-margin-start: 0px !important;
+  -moz-padding-start: 6px;
+  -moz-padding-end: 6px;
+  -moz-box-flex: 0;
+  text-align: center;
+}
+
+.subviewbutton.panel-subview-footer > .toolbarbutton-icon {
+  margin: 0;
+}
+
+.subviewbutton.panel-subview-footer > .toolbarbutton-text {
+  text-align: center;
+  padding: 0;
+}
+
+.subviewbutton.panel-subview-footer > .menu-accel-container {
+  -moz-padding-start: 6px;
+}
+
+.subviewbutton:not(.panel-subview-footer) {
+  margin: 0;
+}
+
+.subviewbutton:not(.panel-subview-footer) > .toolbarbutton-text,
+/* Bookmark items need a more specific selector. */
+.PanelUI-subView .subviewbutton:not(.panel-subview-footer) > .menu-text,
+.PanelUI-subView .subviewbutton:not(.panel-subview-footer) > .menu-iconic-text {
+/*  font: menu;*/
+}
+
+.PanelUI-subView .subviewbutton[shortcut]::after {
+  content: attr(shortcut);
+  float: right;
+  color: #A09090;
+}
+
+.PanelUI-subView.cui-widget-panelview .subviewbutton[shortcut]::after {
+  -moz-margin-start: 10px;
+}
+
+/* This is a <label> but it should fit in with the menu font- and colorwise. */
+#PanelUI-characterEncodingView-autodetect-label {
+  font: menu;
+  color: inherit;
+}
+
+.cui-widget-panelview .subviewbutton:not(.panel-subview-footer) {
+/*  margin-left: 4px;
+  margin-right: 4px;*/
+}
+
+panelview .toolbarbutton-1,
+.widget-overflow-list .toolbarbutton-1 {
   margin-top: 6px;
 }
+
 /*
-panelview toolbarbutton:not(:-moz-any([disabled],[checked="true"],[open],:active)):hover,
-#widget-overflow-list > toolbarbutton:not(:-moz-any([disabled],[checked="true"],[open],:active)):hover,
-.customizationmode-button,
-#edit-controls:-moz-any(:not([cui-areatype="toolbar"]),.overflowedItem) > toolbarbutton:not(:-moz-any([disabled],[checked="true"],[open],:active)):hover,
-#zoom-controls:-moz-any(:not([cui-areatype="toolbar"]),.overflowedItem) > toolbarbutton:not(:-moz-any([disabled],[checked="true"],[open],:active)):hover,
-#edit-controls:-moz-any(:not([cui-areatype="toolbar"]),.overflowedItem):not(:-moz-any([disabled],[checked="true"],[open],:active)):hover,
-#zoom-controls:-moz-any(:not([cui-areatype="toolbar"]),.overflowedItem):not(:-moz-any([disabled],[checked="true"],[open],:active)):hover,
-#BMB_bookmarksPopup > menu:not(:-moz-any([disabled],[checked="true"],[open],:active)):hover,
-#BMB_bookmarksPopup > menuitem:not(:-moz-any([disabled],[checked="true"],[open],:active)):hover {
+panelview .toolbarbutton-1:not(:-moz-any([disabled],[open],:active)):hover,
+toolbarbutton.subviewbutton:not(:-moz-any([disabled],[open],:active)):hover,
+menu.subviewbutton:not(:-moz-any([disabled],:active))[_moz-menuactive],
+menuitem.subviewbutton:not(:-moz-any([disabled],:active))[_moz-menuactive],
+.widget-overflow-list .toolbarbutton-1:not(:-moz-any([disabled],[open],:active)):hover,
+.toolbaritem-combined-buttons:-moz-any(:not([cui-areatype="toolbar"]), [overflowedItem=true])
+    > toolbarbutton:not(:-moz-any([disabled],[checked="true"],[open],:active)):hover {
   background-color: hsla(210,4%,10%,.08);
-  border-color: hsla(210,4%,10%,.1);
+  border-color: hsla(210,4%,10%,.11);
+}
+
+.toolbaritem-combined-buttons:-moz-any(:not([cui-areatype="toolbar"]), [overflowedItem=true]):not(:-moz-any([disabled],[open],:active)):hover {
+  border-color: hsla(210,4%,10%,.11);
+}
+
+panelview .toolbarbutton-1:-moz-any(:not([disabled]):-moz-any([open],:hover:active),[checked=true]),
+toolbarbutton.subviewbutton:not([disabled]):-moz-any([open],:hover:active),
+menu.subviewbutton:not([disabled])[_moz-menuactive]:active,
+menuitem.subviewbutton:not([disabled])[_moz-menuactive]:active,
+.widget-overflow-list .toolbarbutton-1:not([disabled]):-moz-any([open],:hover:active),
+.toolbaritem-combined-buttons:-moz-any(:not([cui-areatype="toolbar"]), [overflowedItem=true])
+    > toolbarbutton:not([disabled]):-moz-any([open],:hover:active) {
+  background-color: hsla(210,4%,10%,.12);
+  border-color: hsla(210,4%,10%,.14);
+  box-shadow: 0 1px 0 hsla(210,4%,10%,.03) inset;
+}
+
+.subviewbutton.panel-subview-footer {
+  margin: 4px -4px -4px;
+  background-color: hsla(210,4%,10%,.07);
+  border-top: 1px solid hsla(210,4%,10%,.12);
+  border-radius: 0;
+  color: hsl(0,0%,25%)
+}
+
+menuitem.panel-subview-footer:not(:-moz-any([disabled],[open],:active)):hover,
+.subviewbutton.panel-subview-footer:not(:-moz-any([disabled],[open],:active)):hover {
+  background-color: hsla(210,4%,10%,.1);
+  border-top: 1px solid hsla(210,4%,10%,.12);
 }
 
-panelview toolbarbutton:not([disabled]):-moz-any([open],[checked="true"],:hover:active),
-.customizationmode-button:not([disabled]):-moz-any([open],[checked="true"],:hover:active),
-#widget-overflow-list > toolbarbutton:not([disabled]):-moz-any([open],[checked="true"],:hover:active),
-#edit-controls:-moz-any(:not([cui-areatype="toolbar"]),.overflowedItem) > toolbarbutton:not([disabled]):-moz-any([open],[checked="true"],:hover:active),
-#zoom-controls:-moz-any(:not([cui-areatype="toolbar"]),.overflowedItem) > toolbarbutton:not([disabled]):-moz-any([open],[checked="true"],:hover:active),
-#BMB_bookmarksPopup > menu:not([disabled]):-moz-any([open],[checked="true"],:hover:active),
-#BMB_bookmarksPopup > menuitem:not([disabled]):-moz-any([open],[checked="true"],:hover:active) {
+menuitem.panel-subview-footer:not([disabled]):-moz-any([open],:hover:active),
+.subviewbutton.panel-subview-footer:not([disabled]):-moz-any([open],:hover:active) {
   background-color: hsla(210,4%,10%,.15);
-  border-color: hsla(210,4%,10%,.15);
-  box-shadow: 0 1px 0 hsla(210,4%,10%,.05) inset;
+  border-top: 1px solid hsla(210,4%,10%,.12);
+  box-shadow: 0 1px 0 hsla(210,4%,10%,.05) inset;
 }
-*/
-#BMB_bookmarksPopup > menu,
-#BMB_bookmarksPopup > menuitem {
-  font: inherit;
+
+#BMB_bookmarksPopup .subviewbutton {
+  font: menu;
+  font-weight: normal;
 }
 
-#BMB_bookmarksPopup > menu:not([disabled="true"]),
-#BMB_bookmarksPopup > menuitem:not([disabled="true"]) {
+#BMB_bookmarksPopup .subviewbutton:not([disabled="true"]) {
   color: inherit;
 }
 
@@ -333,12 +769,63 @@ panelview toolbarbutton:not([disabled]):-moz-any([open],[checked="true"],:hover:
   margin-bottom: 0;
 }
 
-panelview toolbarseparator,
-#BMB_bookmarksPopup > menuseparator {
+/ Remove padding on xul:arrowscrollbox to avoid extra padding on footer /
+#BMB_bookmarksPopup arrowscrollbox {
+  padding-bottom: 0px;
+}
+
+#BMB_bookmarksPopup menupopup > .bookmarks-actions-menuseparator {
+  / Hide bottom separator as the styled footer includes a top border serving the same purpose /
+  display: none;
+}
+
+/ Popups with only one item don't have a footer /
+#BMB_bookmarksPopup menupopup[placespopup=true][singleitempopup=true] > hbox > .popup-internal-box > .arrowscrollbox-scrollbox > .scrollbox-innerbox,
+/ These popups never have a footer /
+#BMB_bookmarksToolbarPopup > hbox > .popup-internal-box > .arrowscrollbox-scrollbox > .scrollbox-innerbox,
+#BMB_unsortedBookmarksPopup > hbox > .popup-internal-box > .arrowscrollbox-scrollbox > .scrollbox-innerbox {
+  / And so they need some bottom padding: /
+  padding-bottom: 4px;
+}
+
+/ Disabled (empty) item is always alone and never has an icon, so fix its left padding /
+#BMB_bookmarksPopup menupopup[emptyplacesresult] .bookmark-item.subviewbutton {
+  padding-left: 6px;
+}
+*/
+
+.PanelUI-subView menuseparator,
+.PanelUI-subView toolbarseparator,
+.cui-widget-panelview menuseparator {
   -moz-appearance: none;
   min-height: 0;
-  border-top: 1px solid ThreeDShadow;
-  margin: 5px 0;
+  border-top: 1px solid #9C9CFF;
+  margin: 2px 0;
+  padding: 0;
+}
+
+.PanelUI-subView menuseparator,
+.PanelUI-subView toolbarseparator {
+/*  -moz-margin-start: -5px;
+  -moz-margin-end: -4px;*/
+}
+
+.PanelUI-subView menuseparator.small-separator,
+.PanelUI-subView toolbarseparator.small-separator {
+/*  margin-left: 5px;
+  margin-right: 5px;*/
+}
+
+.cui-widget-panelview menuseparator.small-separator {
+/*  margin-left: 10px;
+  margin-right: 10px;*/
+}
+
+.subviewbutton > .menu-accel-container {
+  -moz-box-pack: start;
+  -moz-margin-start: 10px;
+  -moz-margin-end: auto;
+  color: #A09090;
 }
 
 #PanelUI-historyItems > toolbarbutton {
@@ -352,22 +839,56 @@ panelview toolbarseparator,
   height: 16px;
 }
 
-#PanelUI-footer.panel-multiview-anchor,
-#PanelUI-footer.panel-multiview-anchor > #PanelUI-help,
-toolbarbutton.panel-multiview-anchor {
-/*  background-color: Highlight;
-  background-image: linear-gradient(rgba(255,255,255,0.3), rgba(255,255,255,0));
-  background-repeat: repeat-x;
-  color: HighlightText;*/
+toolbarbutton[panel-multiview-anchor="true"],
+toolbarbutton[panel-multiview-anchor="true"] > .toolbarbutton-menubutton-button {
+  color: #000000;
+  background-color: #008484;
+}
+
+#PanelUI-help[panel-multiview-anchor="true"] + toolbarseparator {
+  display: none;
+}
+
+#PanelUI-help[panel-multiview-anchor="true"] {
+  background-image: none;
+}
+
+#PanelUI-help[panel-multiview-anchor="true"]::after {
+  content: "";
+  position: absolute;
+  top: 0;
+  height: 100%;
+  width: 38px;
+  background-image: url("chrome://browser/skin/customizableui/subView-arrow-back-inverted.png");
+  background-repeat: no-repeat;
+  background-color: #008484;
+  background-position: left 10px center, 0; /* this doesn't need to be changed for RTL */
+}
+
+toolbarbutton[panel-multiview-anchor="true"] {
+  background-image: url("chrome://browser/skin/customizableui/subView-arrow-back-inverted.png");
+  background-position: right calc((22.35em / 3 - 0.1px) / 2 - 38px + 2px) center;
+  background-repeat: no-repeat;
 }
 
-toolbarpaletteitem[place="palette"] > #bookmarks-menu-button > .toolbarbutton-menubutton-dropmarker,
+toolbarbutton[panel-multiview-anchor="true"]:-moz-locale-dir(rtl) {
+  background-image: url("chrome://browser/skin/customizableui/subView-arrow-back-inverted-rtl.png");
+  background-position: left calc((22.35em / 3 - 0.1px) / 2 - 38px + 2px) center;
+}
+
+toolbarpaletteitem[place="palette"] > .toolbarbutton-1 > .toolbarbutton-menubutton-dropmarker,
 #bookmarks-menu-button[cui-areatype="menu-panel"] > .toolbarbutton-menubutton-dropmarker {
   display: none;
 }
 
+#search-container[cui-areatype="menu-panel"],
+#wrapper-search-container[place="panel"] {
+  width: 22.35em;
+}
+
 #search-container[cui-areatype="menu-panel"] {
-  width: 21em;
+  margin-top: 6px;
+  margin-bottom: 6px;
 }
 
 toolbarpaletteitem[place="palette"] > #search-container {
@@ -375,148 +896,336 @@ toolbarpaletteitem[place="palette"] > #search-container {
   width: 7em;
 }
 
-#edit-controls:-moz-any(:not([cui-areatype="toolbar"]),.overflowedItem),
-#zoom-controls:-moz-any(:not([cui-areatype="toolbar"]),.overflowedItem) {
-/*  background-color: hsla(210,4%,10%,0);
-  border-radius: 2px;
-  border: 1px solid;
-  border-color: hsla(210,4%,10%,0);
-  border-bottom-color: hsla(210,4%,10%,.1);*/
+.toolbaritem-combined-buttons:-moz-any(:not([cui-areatype="toolbar"]), [overflowedItem=true]) {
   padding: 0;
-  margin-bottom: -1px;
   transition-property: background-color, border-color;
   transition-duration: 150ms;
 }
 
-#edit-controls:-moz-any(:not([cui-areatype="toolbar"]),.overflowedItem) > toolbarbutton,
-#zoom-controls:-moz-any(:not([cui-areatype="toolbar"]),.overflowedItem) > toolbarbutton {
+/* Make direct siblings overlap borders: */
+.toolbaritem-combined-buttons + .toolbaritem-combined-buttons:-moz-any(:not([cui-areatype="toolbar"]), [overflowedItem=true]) {
+/*  border-top-color: transparent !important; */
+}
+
+.toolbaritem-combined-buttons + .toolbaritem-combined-buttons:-moz-any(:not([cui-areatype="toolbar"]), [overflowedItem=true]),
+toolbarpaletteitem[haswideitem][place="panel"] + toolbarpaletteitem[haswideitem][place="panel"] {
+/*  margin-top: -1px; */
+}
+
+.toolbaritem-combined-buttons:-moz-any(:not([cui-areatype="toolbar"]), [overflowedItem=true]) > toolbarbutton {
   border: 0;
   padding: .5em;
   margin: 0;
   -moz-box-flex: 1;
-  /* reduce the width with 2px for each button to compensate for two separators
-     of 3px. */
-  min-width: calc(7em - 2px);
-  max-width: calc(7em - 2px);
-  height: auto;
+  min-width: calc(22.35em / 3 - 0.1px);
+  max-width: calc(22.35em / 3 - 0.1px);
+  /* We'd prefer to use height: auto here but it leads to layout bugs in the panel. Cope:
+     1.2em for line height + 2 * .5em padding + margin on the label (2 * 2px) */
+  height: calc(2.2em + 4px);
   max-height: none;
   -moz-box-orient: horizontal;
 }
 
-#edit-controls:-moz-any(:not([cui-areatype="toolbar"]),.overflowedItem) > toolbarbutton[disabled] > .toolbarbutton-icon,
-#zoom-controls:-moz-any(:not([cui-areatype="toolbar"]),.overflowedItem) > toolbarbutton[disabled] > .toolbarbutton-icon {
-  opacity: .25;
+#edit-controls:-moz-any(:not([cui-areatype="toolbar"]), [overflowedItem=true]) > #copy-button,
+#zoom-controls:-moz-any(:not([cui-areatype="toolbar"]), [overflowedItem=true]) > #zoom-reset-button {
+  /* reduce the width with 2px for this button to compensate for two separators
+     of 1px. */
+  min-width: calc(22.35em / 3 - 0.1px - 2px);
+  max-width: calc(22.35em / 3 - 0.1px - 2px);
+}
+
+#main-window:not([customizing]) .toolbaritem-combined-buttons:-moz-any(:not([cui-areatype="toolbar"]), [overflowedItem=true]) > toolbarbutton[disabled] > .toolbarbutton-icon {
+/*  opacity: .25; */
 }
 
 #zoom-controls[cui-areatype="toolbar"] > #zoom-reset-button > .toolbarbutton-text {
   min-width: 7ch;
 }
 
-#edit-controls:-moz-any(:not([cui-areatype="toolbar"]),.overflowedItem) > #cut-button:-moz-locale-dir(ltr),
-#edit-controls:-moz-any(:not([cui-areatype="toolbar"]),.overflowedItem) > #paste-button:-moz-locale-dir(rtl),
-#zoom-controls:-moz-any(:not([cui-areatype="toolbar"]),.overflowedItem) > #zoom-out-button:-moz-locale-dir(ltr),
-#zoom-controls:-moz-any(:not([cui-areatype="toolbar"]),.overflowedItem) > #zoom-in-button:-moz-locale-dir(rtl) {
+#edit-controls:-moz-any(:not([cui-areatype="toolbar"]), [overflowedItem=true]) > #cut-button:-moz-locale-dir(ltr),
+#edit-controls:-moz-any(:not([cui-areatype="toolbar"]), [overflowedItem=true]) > #paste-button:-moz-locale-dir(rtl),
+#zoom-controls:-moz-any(:not([cui-areatype="toolbar"]), [overflowedItem=true]) > #zoom-out-button:-moz-locale-dir(ltr),
+#zoom-controls:-moz-any(:not([cui-areatype="toolbar"]), [overflowedItem=true]) > #zoom-in-button:-moz-locale-dir(rtl) {
   border-top-right-radius: 0;
   border-bottom-right-radius: 0;
 }
 
-#edit-controls:-moz-any(:not([cui-areatype="toolbar"]),.overflowedItem) > #cut-button:-moz-locale-dir(rtl),
-#edit-controls:-moz-any(:not([cui-areatype="toolbar"]),.overflowedItem) > #paste-button:-moz-locale-dir(ltr),
-#zoom-controls:-moz-any(:not([cui-areatype="toolbar"]),.overflowedItem) > #zoom-out-button:-moz-locale-dir(rtl),
-#zoom-controls:-moz-any(:not([cui-areatype="toolbar"]),.overflowedItem) > #zoom-in-button:-moz-locale-dir(ltr) {
+#edit-controls:-moz-any(:not([cui-areatype="toolbar"]), [overflowedItem=true]) > #cut-button:-moz-locale-dir(rtl),
+#edit-controls:-moz-any(:not([cui-areatype="toolbar"]), [overflowedItem=true]) > #paste-button:-moz-locale-dir(ltr),
+#zoom-controls:-moz-any(:not([cui-areatype="toolbar"]), [overflowedItem=true]) > #zoom-out-button:-moz-locale-dir(rtl),
+#zoom-controls:-moz-any(:not([cui-areatype="toolbar"]), [overflowedItem=true]) > #zoom-in-button:-moz-locale-dir(ltr) {
   border-top-left-radius: 0;
   border-bottom-left-radius: 0;
 }
 
-#edit-controls > separator,
-#zoom-controls > separator {
+.toolbaritem-combined-buttons > separator {
+  -moz-appearance: none;
   width: 3px;
   -moz-box-align: stretch;
-/*  background-image: linear-gradient(to bottom, hsla(0,0%,100%,0), hsla(0,0%,100%,.3) 40%, hsla(0,0%,100%,.3) 60%, hsla(0,0%,100%,0)),
-                    linear-gradient(to bottom, hsla(210,54%,20%,0), hsla(210,54%,20%,.15) 40%, hsla(210,54%,20%,.15) 60%, hsla(210,54%,20%,0)),
-                    linear-gradient(to bottom, hsla(0,0%,100%,0), hsla(0,0%,100%,.3) 40%, hsla(0,0%,100%,.3) 60%, hsla(0,0%,100%,0));
-  background-size: 1px, 1px, 1px;
-  background-position: 0 0, 1px 0, 2px 0;
-  background-repeat: no-repeat;*/
+}
+
+.toolbaritem-combined-buttons:-moz-any(:not([cui-areatype="toolbar"]), [overflowedItem=true]) > separator {
+  margin: .5em 0;
+  width: 1px;
+  height: auto;
+/*  background: hsla(210,4%,10%,.15);*/
+  transition-property: margin;
+  transition-duration: 10ms;
+  transition-timing-function: ease;
+}
+
+.toolbaritem-combined-buttons:-moz-any(:not([cui-areatype="toolbar"]), [overflowedItem=true]):hover > separator {
+  margin: 0;
 }
 
 #widget-overflow > .panel-arrowcontainer > .panel-arrowcontent {
   padding: 0;
 }
 
+.cui-widget-panelview,
 #widget-overflow-scroller {
-  max-height: 30em;
   overflow-y: auto;
   overflow-x: hidden;
+}
+
+#widget-overflow-scroller {
+  max-height: 30em;
   margin-top: 10px;
   margin-bottom: 10px;
 }
 
 #widget-overflow-list {
-  width: 21em;
+  width: 22.35em;
   padding-left: 10px;
   padding-right: 10px;
 }
 
-#widget-overflow-list > .overflowedItem {
+toolbaritem[overflowedItem=true],
+toolbarbutton[overflowedItem=true] {
   width: 100%;
-  max-width: 21em;
+  max-width: 22.35em;
   min-height: 36px;
   background-repeat: no-repeat;
   background-position: 0 center;
 }
 
-#widget-overflow-list > toolbarbutton,
-#widget-overflow-list > toolbarbutton > toolbarbutton {
+.widget-overflow-list .toolbarbutton-1,
+.widget-overflow-list .toolbarbutton-1 > .toolbarbutton-menubutton-button {
   -moz-box-align: center;
   -moz-box-orient: horizontal;
 }
 
-#widget-overflow-list > toolbarbutton > .toolbarbutton-text,
-#widget-overflow-list > #bookmarks-menu-button > toolbarbutton > .toolbarbutton-text {
+.widget-overflow-list .toolbarbutton-1:not(.toolbarbutton-combined) > .toolbarbutton-text,
+.widget-overflow-list .toolbarbutton-1 > .toolbarbutton-menubutton-button > .toolbarbutton-text {
   text-align: start;
   -moz-padding-start: .5em;
 }
 
-#widget-overflow-list > #edit-controls,
-#widget-overflow-list > #zoom-controls {
+#widget-overflow-list > .toolbaritem-combined-buttons {
   min-height: 28px;
 }
 
-#PanelUI-developerItems > toolbarbutton[checked="true"],
-#PanelUI-bookmarks > toolbarbutton[checked="true"],
-.PanelUI-characterEncodingView-list > toolbarbutton[current] {
-  -moz-padding-start: 4px;
+.widget-overflow-list .toolbarbutton-1 > .toolbarbutton-menubutton-button::after {
+  content: "";
+  display: -moz-box;
+  width: 1px;
+  height: 18px;
+  -moz-margin-end: -1px;
 }
 
-#PanelUI-developerItems > toolbarbutton[checked="true"] > .toolbarbutton-text,
-#PanelUI-bookmarks > toolbarbutton[checked="true"] > .toolbarbutton-text,
-.PanelUI-characterEncodingView-list > toolbarbutton[current] > .toolbarbutton-text,
-#customizationui-widget-panel .PanelUI-characterEncodingView-list > toolbarbutton[current] > .toolbarbutton-text {
-  -moz-padding-start: 0px;
+.subviewbutton[checked="true"] {
+  background-image: url("chrome://global/skin/menu/menu-check.gif");
+  background-position: top 5px left 4px;
+  background-repeat: no-repeat;
 }
 
-#BMB_bookmarksPopup > menuitem[checked="true"]::before,
-#PanelUI-bookmarks > toolbarbutton[checked="true"]::before,
-#PanelUI-developerItems > toolbarbutton[checked="true"]::before,
-.PanelUI-characterEncodingView-list > toolbarbutton[current]::before {
-  content: "✓";
-  display: -moz-box;
-  width: 12px;
+.subviewbutton[checked="true"]:-moz-locale-dir(rtl) {
+  background-position: top 5px right 4px;
 }
 
-#PanelUI-bookmarks > toolbarbutton[checked="true"]::before,
-#PanelUI-developerItems > toolbarbutton[checked="true"]::before,
-.PanelUI-characterEncodingView-list > toolbarbutton[current]::before {
-  -moz-margin-end: -2px;
+.subviewbutton[checked="true"]:hover {
+  background-image: url("chrome://global/skin/menu/menu-check-hover.gif");
 }
 
-#BMB_bookmarksPopup > menuitem[checked="true"] > .menu-iconic-left {
+.subbiewbutton > .menu-iconic-left {
+  -moz-margin-end: 3px;
+}
+menuitem[checked="true"].subviewbutton > .menu-iconic-left {
+  visibility: hidden;
+}
+
+.panel-mainview[panelid=customizationui-widget-panel],
+#customizationui-widget-multiview > .panel-viewcontainer,
+#customizationui-widget-multiview > .panel-viewcontainer > .panel-viewstack,
+#PanelUI-panicView > .panel-subview-body,
+#PanelUI-panicView {
+  overflow: visible;
+  color: #FF9F00;
+}
+
+#customizationui-widget-multiview[mainViewId="PanelUI-panicView"] > .panel-viewcontainer,
+#customizationui-widget-multiview[mainViewId="PanelUI-panicView"] > .panel-viewcontainer > .panel-viewstack,
+#customizationui-widget-multiview[mainViewId="PanelUI-panicView"] > .panel-viewcontainer > .panel-viewstack > .panel-mainview,
+/* NB: currentsubview attribute is temporary as a safe workaround for a layout problem with this
+ * panel. Do not rely on it, it *will* go away again. */
+#PanelUI-multiView[currentsubview="PanelUI-panicView"] > .panel-viewcontainer > .panel-viewstack > .panel-subviews,
+#PanelUI-panicView > .panel-subview-body,
+#PanelUI-panicView {
+  overflow: visible;
+}
+
+#PanelUI-panicView.cui-widget-panelview {
+  min-width: 280px;
+}
+
+#PanelUI-panic-timeframe {
+  padding: 15px;
+  border-bottom: 1px solid #A09090;
+}
+
+#panic-button-success-icon,
+#PanelUI-panic-timeframe-icon,
+#PanelUI-panic-timeframe-icon-small {
+  background-color: transparent;
+  -moz-margin-end: 10px;
+}
+
+#panic-button-success-icon,
+#PanelUI-panic-timeframe-icon {
+  list-style-image: url(chrome://browser/skin/panic-panel/header.png);
+  max-height: 48px;
+  width: 48px;
+}
+
+#PanelUI-panic-timeframe-icon-small {
+  list-style-image: url(chrome://browser/skin/panic-panel/header-small.png);
+  max-height: 32px;
+  width: 32px;
+}
+
+/* current attribute is only set when in use as a subview instead of a main view */
+#PanelUI-panicView[current] #PanelUI-panic-timeframe-icon {
+  display: none;
+}
+
+#PanelUI-panicView.cui-widget-panelview #PanelUI-panic-timeframe-icon-small {
   display: none;
 }
 
+#panic-button-success-header,
+#PanelUI-panic-header {
+  -moz-box-align: center;
+  margin-bottom: 5px;
+}
+
+#PanelUI-panicView.cui-widget-panelview #PanelUI-panic-header {
+  margin-bottom: 0;
+}
+
+#PanelUI-panic-timeframe-icon-small:-moz-locale-dir(rtl),
+#PanelUI-panic-timeframe-icon:-moz-locale-dir(rtl) {
+  transform: scaleX(-1);
+}
+
+/*
+.subviewradio {
+}
+
+.subviewradio@buttonStateHover@ {
+}
+
+.subviewradio[selected],
+.subviewradio[selected]:hover,
+.subviewradio@buttonStateActive@ {
+}
+
+.subviewradio > .radio-check {
+}
+
+.subviewradio > .radio-check[selected] {
+}
+*/
+
+#PanelUI-panic-explanations {
+  padding: 10px 10px 0;
+}
+
+#PanelUI-panic-actionlist-main-label {
+  color: #A09090;
+  font-size: 0.9em;
+}
+
+.PanelUI-panic-actionlist {
+  -moz-padding-start: 20px;
+  padding-top: 2px;
+  padding-bottom: 2px;
+  background-size: 16px 16px;
+  background-repeat: no-repeat;
+  background-color: transparent;
+  background-position: center left;
+}
+
+.PanelUI-panic-actionlist:-moz-locale-dir(rtl) {
+  background-position: center right;
+}
+
+#PanelUI-panic-actionlist-cookies {
+  background-image: -moz-image-rect(url(chrome://browser/skin/panic-panel/icons.png), 0, 16, 16, 0);
+}
+
+#PanelUI-panic-actionlist-history {
+  background-image: -moz-image-rect(url(chrome://browser/skin/panic-panel/icons.png), 0, 32, 16, 16);
+}
+
+#PanelUI-panic-actionlist-windows {
+  background-image: -moz-image-rect(url(chrome://browser/skin/panic-panel/icons.png), 0, 48, 16, 32);
+}
+
+#PanelUI-panic-actionlist-newwindow {
+  background-image: -moz-image-rect(url(chrome://browser/skin/panic-panel/icons.png), 0, 64, 16, 48);
+}
+
+#PanelUI-panic-warning {
+  color: #FF0000;
+  text-align: center;
+  width: 100%;
+  margin-top: 20px;
+}
+
+#PanelUI-panic-view-button {
+  background-color: #FF0000;
+  color: #000000;
+}
+
+#PanelUI-panic-view-button:hover {
+  background-color: #FFCF00;
+}
+
+#PanelUI-panic-view-button:hover:active {
+  background-color: #FF9F00;
+}
+
+#PanelUI-panic-view-button > .toolbarbutton-text {
+  text-align: center;
+  text-shadow: none;
+}
+
+#panic-button-success-closebutton {
+}
+
+#panic-button-success-closebutton:hover {
+}
+
+#panic-button-success-closebutton:hover:active {
+}
+
 /* === END panelUIOverlay.inc.css === */
 
+.panel-subviews {
+  background-color: #000000;
+}
+
 #PanelUI-contents #zoom-out-btn {
   padding-left: 12px;
   padding-right: 12px;
@@ -527,17 +1236,105 @@ toolbarpaletteitem[place="palette"] > #search-container {
   padding-right: 12px;
 }
 
-#BMB_bookmarksPopup > menu,
-#BMB_bookmarksPopup > menuitem {
-  padding-top: 1px;
-  padding-bottom: 1px;
+/* bookmark panel submenus */
+
+#BMB_bookmarksPopup menupopup[placespopup=true] {
+/*  background: transparent;
+  border: none;
+  padding: 6px;*/
+}
+
+#BMB_bookmarksPopup menupopup[placespopup=true] > hbox {
+  /* emulating chrome://browser/content/places/menu.xml#places-popup-arrow but without the arrow */
+/*  background: #FFF;
+  border: 1px solid rgba(0,0,0,0.25);
+  border-radius: 3.5px;
+  margin-top: -4px;*/
+}
+
+#BMB_bookmarksPopup menupopup {
+/*  padding-top: 2px;*/
 }
 
-#BMB_bookmarksPopup > menu > .menu-text,
-#BMB_bookmarksPopup > menuitem > .menu-text,
-#BMB_bookmarksPopup > menu > .menu-iconic-text,
-#BMB_bookmarksPopup > menuitem > .menu-iconic-text,
-#BMB_bookmarksPopup > menuseparator {
+/* Add some space at the top because there are no headers: */
+#BMB_bookmarksPopup menupopup[placespopup=true] > hbox > .popup-internal-box > .arrowscrollbox-scrollbox > .scrollbox-innerbox  {
+/*  padding-top: 4px;*/
+}
+
+/* bookmark panel separator */
+#BMB_bookmarksPopup menuseparator {
   padding-top: 0;
   padding-bottom: 0;
 }
+
+.subviewbutton > .menu-right,
+.subviewbutton > .menu-iconic-left {
+/*  padding-top: 1px;
+  margin-top: 1px;
+  margin-bottom: 2px;*/
+}
+
+/* Disabled empty item looks too small otherwise, because it has no icon. */
+menuitem.subviewbutton[disabled]:not(.menuitem-iconic),
+/* Same for checkbox menu items, whose icons lose size due to -moz-appearance: none: */
+menuitem[type="checkbox"].subviewbutton {
+  /* This is 16px for an icon + 3px for its margins + 1px for its padding +
+   * 2px for its border, see above */
+/*  min-height: 22px;*/
+}
+
+.subviewbutton > .toolbarbutton-text {
+/*  padding-top: 3px;
+  padding-bottom: 3px;*/
+}
+
+.widget-overflow-list .toolbarbutton-1 > .toolbarbutton-menubutton-button {
+  -moz-appearance: none;
+  border: 0;
+  -moz-margin-start: 3px;
+}
+
+.widget-overflow-list .toolbarbutton-1 > .toolbarbutton-menubutton-dropmarker {
+  padding: 0 2px;
+  -moz-padding-start: 0;
+  height: 18px;
+}
+
+menu.subviewbutton > .menu-right:-moz-locale-dir(rtl) {
+/*  transform: scaleX(-1); */
+}
+
+.widget-overflow-list .toolbarbutton-1 > .toolbarbutton-menubutton-dropmarker > .dropmarker-icon {
+  padding: 0 6px;
+}
+
+.subviewbutton > .toolbarbutton-text {
+  -moz-padding-start: 16px;
+}
+
+.subviewbutton:-moz-any([image],[targetURI],.cui-withicon, .restoreallitem, .bookmark-item) > .toolbarbutton-text {
+  -moz-padding-start: 0;
+}
+
+/* subviewbutton entries for social sidebars have images that come from external
+/* sources, and are not guaranteed to be the size we want, so force the size on
+/* those icons. */
+toolbarbutton.social-provider-menuitem > .toolbarbutton-icon {
+  width: 16px;
+  height: 16px;
+}
+
+.subviewbutton:-moz-any([image],[targetURI],.cui-withicon, .restoreallitem, .bookmark-item)[checked="true"] > .toolbarbutton-icon {
+  visibility: hidden;
+}
+
+menu.subviewbutton > .menu-right {
+  list-style-image: url("chrome://global/skin/menu/menu-arrow.gif");
+}
+menu.subviewbutton:hover > .menu-right,
+menu.subviewbutton[_moz-menuactive="true"] > .menu-right {
+  list-style-image: url("chrome://global/skin/menu/menu-arrow-hover.gif");
+}
+menu[disabled="true"].subviewbutton > .menu-right {
+  list-style-image: url("chrome://global/skin/menu/menu-arrow-disabled.gif");
+}