← Back to team overview

launchpad-reviewers team mailing list archive

[Merge] lp:~huwshimi/launchpad/css-file-split-891896 into lp:launchpad

 

Huw Wilkins has proposed merging lp:~huwshimi/launchpad/css-file-split-891896 into lp:launchpad.

Requested reviews:
  Launchpad code reviewers (launchpad-reviewers)
Related bugs:
  Bug #891896 in Launchpad itself: "CSS files should be split"
  https://bugs.launchpad.net/launchpad/+bug/891896

For more details, see:
https://code.launchpad.net/~huwshimi/launchpad/css-file-split-891896/+merge/82636

Split our CSS file into the structure as per https://dev.launchpad.net/UI/CSSRestructure
This is not much more than moving the CSS around. I will be fixing and rewriting some of the CSS, but we need to land this initial change before I break too many other branches, or they break this one.

I also modified the css build script to look for the new files and to automatically grab any files that are added to the components directory.
-- 
https://code.launchpad.net/~huwshimi/launchpad/css-file-split-891896/+merge/82636
Your team Launchpad code reviewers is requested to review the proposed merge of lp:~huwshimi/launchpad/css-file-split-891896 into lp:launchpad.
=== modified file 'buildout-templates/bin/combine-css.in'
--- buildout-templates/bin/combine-css.in	2011-10-28 18:01:20 +0000
+++ buildout-templates/bin/combine-css.in	2011-11-18 05:36:26 +0000
@@ -42,9 +42,23 @@
     GALLERY_ACCORDION + 'gallery-accordion-core.css',
     GALLERY_ACCORDION + 'skins/sam/gallery-accordion-skin.css',
     'build/sprite.css',
-    # This one goes at the end because it's our main stylesheet and should
+    # Include our main stylesheets at the end so they
     # take precedence over the others.
-    'style-3-0.css']
+    'css/base.css',
+    'css/colours.css',
+    'css/forms.css',
+    'css/typography.css',
+    'css/layout.css',
+    'css/modifiers.css']
+
+# Get all the component css files so we don't have to edit this file every
+# time a new component is added
+component_dir = 'css/components'
+component_path = os.path.abspath(os.path.join(icing, component_dir))
+for root, dirs, files in os.walk(component_path):
+    for file in files:
+        if file.endswith('.css'):
+            names.append('%s/%s' % (component_dir, file))
 
 absolute_names = []
 for name in names:

=== added directory 'lib/canonical/launchpad/icing/css'
=== added file 'lib/canonical/launchpad/icing/css/base.css'
--- lib/canonical/launchpad/icing/css/base.css	1970-01-01 00:00:00 +0000
+++ lib/canonical/launchpad/icing/css/base.css	2011-11-18 05:36:26 +0000
@@ -0,0 +1,378 @@
+body {
+    font-family: 'UbuntuBeta Regular', Ubuntu, 'Bitstream Vera Sans', 'DejaVu Sans', Tahoma, sans-serif;
+    font-size: 12px;
+    line-height: 18px; /* The same as the sprite height. */
+    color: #333;
+    }
+body.private {
+    /* It must be obvious to the user that the context is private */
+    background: url("/@@/private-y-bg") top left repeat-y;
+    }
+/* Override for when the feature flag is active */
+body.feature-flag-bugs-private-notification-enabled.private {
+    background-image: none;
+    }
+body.private .private-disallow {
+    /* We want to disable/hide some actions on private artifacts */
+    display: none
+    }
+.private-only {
+    /* We want to only show some items on private artifacts */
+    display: none;
+    }
+body.private .private-only {
+    /* We want to only show some items on private artifacts */
+    display: block;
+    }
+* html body {
+    /* stops floats dropping in IE 5.5/6 */
+    word-wrap: break-word;
+    }
+
+hr {
+    display: none;
+    }
+
+dt {
+    margin-bottom: .3em;
+    margin-top: 0.5em;
+    font-weight: bold;
+    }
+dt dfn {
+    font-weight: bold;
+    }
+dd {
+    margin-bottom: .8em;
+    }
+dl.faq dd {
+    margin: 1em 0 2em 4em;
+    }
+.contributors dt strong {
+    padding-left: 1em;
+    }
+ol {
+    margin-left: 1.8em;
+    }
+ol li {
+    list-style: decimal outside;
+    }
+li {
+    padding-bottom: .3em;
+    }
+ul.news, li.news {
+    list-style-type: none;
+    margin-bottom: 1em;
+    }
+ul.architecture, li.architecture {
+    list-style-image: url(/@@/architecture);
+    }
+ul.build-success, li.build-success {
+    list-style-image: url(/@@/build-success);
+    }
+ul.bug.remote, li.bug.remote {
+    list-style-image: url(/@@/bug-remote);
+    }
+ul.language, li.language {
+    list-style-image: url(/@@/language);
+    /* Disable .language sprite. */
+    background: inherit;
+    }
+ul.mail, li.mail {
+    list-style-image: url(/@@/mail);
+    }
+ul.meeting, li.meeting {
+    list-style-image: url(/@@/meeting);
+    }
+ul.rss, li.rss {
+    list-style-image: url(/@@/rss);
+    }
+ul.translation, li.translation {
+    list-style-image: url(/@@/translation);
+    }
+ul.webref, li.webref {
+    list-style-image: url(/@@/link);
+    }
+ul.iconed {
+    list-style-type: none;
+    padding-left: 0 !important;
+    margin: 0 !important;
+    }
+ul.buttons {
+    /* without !important, gets overridden by the '#maincontent ol' rule */
+    margin: 0.5em 0 0.5em 0 !important;
+    padding: 0 !important;
+    }
+ul.buttons li {
+    display: inline;
+    margin: 0 0 0 0;
+    }
+.bulleted {
+    margin-bottom: 0.5em;
+    }
+.bulleted li {
+    margin: 0 0 0 2em;
+    list-style-type: disc;
+    }
+.horizontal {
+    margin: 1em 0 0 0;
+    }
+.horizontal li {
+    display: inline;
+    padding: 0 1.5em 0 0;
+    }
+.subordinate {
+    margin-left: 2em;
+    }
+ol.subordinate {
+    margin-left: 4em;
+    }
+.two-column-list dl {
+    width: 48%;
+    float: left;
+    display: inline;
+    margin: 0 0.25em 0 0;
+    }
+.two-column-list dl:first-child dt,
+.two-column-list dl:first-child + dl dt {
+    margin-top: 0;
+    }
+.three-column-list dl {
+    width: 31%;
+    float: left;
+    display: inline;
+    margin: 0 0.25em 0 0;
+    }
+.two-column-list li {
+    width: 48%;
+    float: left;
+    display: inline;
+    margin: 0 0.25em 0 0;
+    }
+.three-column-list li {
+    width: 31%;
+    float: left;
+    display: inline;
+    margin: 0 0.25em 0 0;
+    }
+.two-column-list:after,
+.three-column-list:after {
+    content: ".";
+    display: block;
+    height: 0;
+    clear: both;
+    visibility: hidden;
+    }
+.two-column-list dl.unseen,
+.two-column-list li.unseen,
+.three-column-list dl.unseen,
+.three-column-list li.unseen {
+    /* Keep the abilty to hide list entries. */
+    display: none;
+    }
+
+
+caption {
+    caption-side: bottom;
+    text-align: left;
+    }
+th {
+    text-align: right;
+    }
+th, td {
+    vertical-align: baseline;
+    }
+.head th,
+thead th, tr.thead th {
+    text-align: left;
+    vertical-align: bottom;
+    }
+th.icon, td.icon {
+    vertical-align: top;
+    white-space: nowrap;
+    width: 1px;
+    }
+th.icon.left, td.icon.left {
+    padding-right: 0;
+    }
+th.icon.right, td.icon.right {
+    padding-left: 0;
+    }
+th.nowrap, td.nowrap {
+    white-space: nowrap;
+    }
+tfoot th, table.contributions th {
+    text-align: left;
+    }
+tr.white {
+    background-color: #fff;
+    }
+tr.shaded {
+    background-color: #f6f6f6;
+    }
+table .amount {
+    text-align: right;
+    }
+table.contributions th {
+    font-weight: normal;
+    }
+table.contributions td {
+    vertical-align: middle;
+    width: 16px;
+    text-align: left;
+    }
+table.latest th, table.latest td {
+    padding-bottom: 2em;
+    }
+table.duplicate.listing * {
+    color: #999;
+    }
+.table-actions:nth-child(2) {
+    /* text-align only works here because the <li> also has the
+       style display:inline.
+    */
+    text-align: right;
+    }
+.table-actions {
+    margin: 1em 0 0 0;
+    }
+.table-actions li {
+    display: inline;
+    padding: 0 1.5em 0 0;
+    }
+table.compressed {
+    width: auto;
+    }
+table.compressed td {
+    padding: 0.25em 0.5em;
+    }
+table.cozy-listing {
+    width: 20em;
+    background-color: #fff;
+    border: 1px solid #d2d2d2;
+    border-bottom: 1px solid #d2d2d2;
+    }
+table.cozy-listing td {
+    border: 1px #d2d2d2;
+    border-style: dotted none none none;
+    }
+table.sortable a.sortheader {
+    color: #666;
+    font-weight: bold;
+    text-decoration: none;
+    display: block;
+    }
+table.sortable img.sortarrow {
+    padding-left: 2px;
+    }
+th.ascending {
+    background-image: url(/@@/arrowDown);
+    background-position: center right;
+    background-repeat: no-repeat;
+    }
+th.descending {
+    background-image: url(/@@/arrowUp);
+    background-position: center right;
+    background-repeat: no-repeat;
+    }
+.sortkey, .revsortkey {
+    /* Used to indicate a value to be used to sort cells in a row */
+    display: none;
+    }
+table.listing {
+    margin: 0;
+    width: 100%;
+    }
+table.listing, table.listing tbody, table.listing td.end-of-section {
+    border-bottom: 1px solid #d2d2d2;
+    }
+table.listing th {
+    font-weight: bold;
+    }
+table.listing .head, table.listing .head th,
+table.listing thead, table.listing thead th, table.listing tfoot tr,
+table.listing tr.thead th {
+    border: 1px solid #d2d2d2;
+    background-color: #fff;
+    }
+table.listing tr.category {
+    border-bottom: 1px solid #d2d2d2;
+    }
+table.listing tr.category th, table.listing tr.category td {
+    padding-top: 1em;
+    }
+table.listing thead td,
+table.listing table tbody, table.listing table thead,
+table.listing table thead th, table.listing tfoot tr,
+table.listing table tfoot td, table.listing table td {
+    border: none;
+    }
+table.listing tfoot td {
+    border: 1px solid #d2d2d2;
+    }
+table.listing th, table.listing td {
+    padding: 0.25em;
+    }
+table.listing table th, table.listing table td {
+    /* We don't want extra padding on nested tables, like batch navigation. */
+    padding: 0;
+    }
+table.listing thead th, table.listing tr.thead th {
+    white-space: nowrap;
+    }
+table.listing td {
+    border: 1px #d2d2d2;
+    border-style: dotted none none none;
+    }
+table.listing .section-break td {
+    border-width: 1px 0 0 0;
+    border-style: solid;
+    border-color: #d2d2d2;
+    height: 1em;
+    }
+table.listing .note td {
+    border-style: none;
+    }
+table.listing img {
+    vertical-align: middle;
+    }
+table.listing tr.secondary th, table.listing tr.secondary td {
+    border-top: none;
+    }
+table.listing table.simple {
+    margin-left: 2em;
+    }
+table.listing table.simple td {
+    padding: 0.25em;
+    }
+table.listing .section-heading {
+    border: none;
+    padding-top: 1.5em;
+    }
+table.summary th, table.summary td,
+table.listing table.summary th, table.listing table.summary td {
+    /* Summary tables present information with subdued headers and a little
+       row spacing. */
+    padding: 0 0.5em 0.5em 0;
+    }
+table.summary th {
+    font-weight: normal;
+    }
+table.summary caption {
+    font-style: italic;
+    margin-left: 1em;
+    }
+table.summary ul, table.summary ul li {
+    list-style-position: inside;
+    margin: 0;
+    padding: 0;
+    }
+.results {
+    background-color: #f4f4f4;
+    padding: 2px 10px 5px 10px;
+    -webkit-border-bottom-right-radius: 4px;
+    -webkit-border-bottom-left-radius: 4px;
+    -moz-border-radius-bottomright: 4px;
+    -moz-border-radius-bottomleft: 4px;
+    border-bottom-right-radius: 4px;
+    border-bottom-left-radius: 4px;
+    }

=== added file 'lib/canonical/launchpad/icing/css/colours.css'
--- lib/canonical/launchpad/icing/css/colours.css	1970-01-01 00:00:00 +0000
+++ lib/canonical/launchpad/icing/css/colours.css	2011-11-18 05:36:26 +0000
@@ -0,0 +1,321 @@
+
+
+.questionstatusOPEN {
+    color: #000;
+    }
+.questionstatusNEEDSINFO {
+    /* brown */
+    color: #930;
+    }
+.questionstatusANSWERED {
+    /* grey-green */
+    color: #363;
+    }
+.questionstatusSOLVED {
+    color: #090;
+    }
+.questionstatusEXPIRED {
+    color: #666;
+    }
+.questionstatusINVALID {
+    color: #c00;
+    }
+
+
+.specstatusAPPROVED, .specstatusAPPROVED a {
+    color: green;
+    }
+.specstatusPENDINGAPPROVAL, .specstatusPENDINGAPPROVAL a,
+.specstatusPENDINGREVIEW, .specstatusPENDINGREVIEW a {
+    color: #f09;
+    }
+.specstatusDRAFT, .specstatusDRAFT a,
+.specstatusDISCUSSION, .specstatusDISCUSSION a {
+    color: #930;
+    }
+.specstatusNEW, .specstatusNEW a {
+    color: red;
+    }
+.specstatusSUPERSEDED, .specstatusSUPERSEDED a,
+.specstatusOBSOLETE, .specstatusOBSOLETE a,
+.specpriorityNOTFORUS, .specpriorityNOTFORUS a,
+.specpriorityUNDEFINED, .specpriorityUNDEFINED a {
+    color: gray;
+    }
+.specpriorityLOW, .specpriorityLOW a {
+    color: black;
+    }
+.specpriorityMEDIUM, .specpriorityMEDIUM a {
+    color: #f60;
+    }
+.specpriorityHIGH, .specpriorityHIGH a,
+.specpriorityESSENTIAL, .specpriorityESSENTIAL a {
+    color: red;
+    }
+.specdeliveryUNKNOWN, .specdeliveryUNKNOWN a,
+.specdeliveryNOTSTARTED, .specdeliveryNOTSTARTED a {
+    color: gray;
+    }
+.specdeliveryDEFERRED, .specdeliveryDEFERRED a,
+.specdeliveryNEEDSINFRASTUCTURE, .specdeliveryNEEDSINFRASTUCTURE a,
+.specdeliveryBLOCKED, .specdeliveryBLOCKED a {
+    color: red;
+    }
+.specdeliverySTARTED, .specdeliverySTARTED a,
+.specdeliveryGOOD, .specdeliveryGOOD a {
+    color: blue;
+    }
+.specdeliverySLOW, .specdeliverySLOW a {
+    color: red;
+    }
+.specdeliveryBETA, .specdeliveryBETA a {
+    color: #f60;
+    }
+.specdeliveryNEEDSREVIEW, .specdeliveryNEEDSREVIEW a {
+    color: purple;
+    }
+.specdeliveryAWAITINGDEPLOYMENT, .specdeliveryAWAITINGDEPLOYMENT a {
+    color: red;
+    }
+.specdeliveryIMPLEMENTED, .specdeliveryIMPLEMENTED a,
+.specdeliveryINFORMATIONAL, .specdeliveryINFORMATIONAL a {
+    color: green;
+    }
+
+
+.bug-activity {
+    color: #555;
+    }
+.statusNEW, .statusNEW a {
+    color: #930;
+    }
+.statusINCOMPLETE, .statusINCOMPLETE a,
+.statusCONFIRMED, .statusCONFIRMED a {
+    color: red;
+    }
+.statusTRIAGED, .statusTRIAGED a {
+    color: #f60;
+    }
+.statusINPROGRESS, .statusINPROGRESS a {
+    color: black;
+    }
+.statusFIXCOMMITTED, .statusFIXCOMMITTED a {
+    color: #050;
+    }
+.statusFIXRELEASED, .statusFIXRELEASED a {
+    color: green;
+    }
+.statusINVALID, .statusINVALID a,
+.statusWONTFIX, .statusWONTFIX a {
+    color: gray;
+    }
+.importanceCRITICAL, .importanceCRITICAL a {
+    color: red;
+    }
+.importanceHIGH, .importanceHIGH a {
+    color: #f60;
+    }
+.importanceMEDIUM, .importanceMEDIUM a {
+    color: green;
+    }
+.importanceLOW, .importanceLOW a {
+    color: black;
+    }
+.importanceWISHLIST, .importanceWISHLIST a {
+    color: blue;
+    }
+.importanceUNDECIDED, .importanceUNDECIDED a {
+    color: #999;
+    }
+#client-listing .importanceCRITICAL, #client-listing .importanceCRITICAL a {
+    background: red;
+    color: white;
+    }
+#client-listing .importanceHIGH, #client-listing .importanceHIGH a {
+    background:#f60;
+    color: white;
+    }
+#client-listing .importanceMEDIUM, #client-listing .importanceMEDIUM a {
+    background: green;
+    color: white;
+    }
+#client-listing .importanceLOW, #client-listing .importanceLOW a {
+    background: black;
+    color: white;
+    }
+#client-listing .importanceWISHLIST, #client-listing .importanceWISHLIST a {
+    background: blue;
+    color: white;
+    }
+#client-listing .importanceUNDECIDED, #client-listing .importanceUNDECIDED a {
+    background: #999;
+    color: white;
+    }
+
+a.official-tag {
+    /* Looks just like a normal link  */
+    }
+a.unofficial-tag {
+    color: #6699ee;
+    }
+
+
+
+.vcsimportSUCCESS {
+    /* inherited text color */
+    }
+.vcsimportFAILURE {
+    color: Red;
+    }
+.greylink a:link, .greylink a:visited {
+    color: gray;
+    }
+.stale-diff {
+    color: #f60;
+    }
+.conflicts-diff {
+    color: red;
+    }
+.branchstatusMATURE, .branchstatusMATURE a {
+    color: #090;
+    }
+.branchstatusDEVELOPMENT, .branchstatusDEVELOPMENT a {
+    color: #900;
+    }
+.branchstatusEXPERIMENTAL, .branchstatusEXPERIMENTAL a {
+    color: #930;
+    }
+.branchstatusMERGED, .branchstatusMERGED a,
+.branchstatusABANDONED, .branchstatusABANDONED a {
+    color: gray;
+    }
+.branchstatusNEW, .branchstatusNEW a {
+    color: black;
+    }
+.voteAPPROVE {
+    color: green;
+    }
+.voteNEEDS_FIXING {
+    color: #930;
+    }
+.voteDISAPPROVE,
+.voteRESUBMIT {
+    color: red;
+    }
+.voteABSTAIN {
+    color: #bebebe;
+    }
+.votePENDING {
+    color: #f60;
+    }
+.mergestatusWORK_IN_PROGRESS, .mergestatusWORK_IN_PROGRESS a {
+    color: black;
+    }
+.mergestatusNEEDS_REVIEW, .mergestatusNEEDS_REVIEW a {
+    color: #f60;
+    }
+.mergestatusCODE_APPROVED, .mergestatusCODE_APPROVED a,
+.mergestatusMERGED, .mergestatusMERGED a {
+    color: green;
+    }
+.mergestatusREJECTED, .mergestatusREJECTED a,
+.mergestatusMERGE_FAILED, .mergestatusMERGE_FAILED a {
+    color: red;
+    }
+.mergestatusQUEUED, .mergestatusQUEUED a {
+    color: black;
+    }
+.mergestatusSUPERSEDED, .mergestatusSUPERSEDED a {
+    color: #bebebe;
+    }
+.codeimportNEW {
+    color: #930;
+    }
+.codeimportREVIEWED {
+    color: green;
+    }
+.codeimportINVALID,
+.codeimportSUSPENDED,
+.codeimportFAILING {
+    color: red;
+    }
+
+
+.translationimportstatusAPPROVED,
+.translationimportstatusAPPROVED a {
+    color: #050;
+    }
+.translationimportstatusIMPORTED,
+.translationimportstatusIMPORTED a {
+    color: green;
+    }
+.translationimportstatusDELETED,
+.translationimportstatusDELETED a {
+    color: black;
+    }
+.translationimportstatusFAILED,
+.translationimportstatusFAILED a {
+    color: red;
+    }
+.translationimportstatusNEEDS_REVIEW,
+.translationimportstatusNEEDS_REVIEW a {
+    color: #f60;
+    }
+.translationimportstatusBLOCKED,
+.translationimportstatusBLOCKED a {
+    color: blue;
+    }
+.translationimportstatusNEEDS_INFORMATION,
+.translationimportstatusNEEDS_INFORMATION a {
+    color: maroon;
+    }
+
+
+
+.distromirrorstatusUP,
+.distromirrorstatusONEHOURBEHIND,
+.distromirrorstatusTWOHOURSBEHIND,
+.distromirrorstatusFOURHOURSBEHIND,
+.distromirrorstatusSIXHOURSBEHIND {
+    color: green;
+    }
+.distromirrorstatusONEDAYBEHIND {
+    color: #f60;
+    }
+.distromirrorstatusTWODAYSBEHIND,
+.distromirrorstatusONEWEEKBEHIND {
+    color: red;
+    }
+.distromirrorstatusUNKNOWN {
+    color: #bebebe;
+    }
+.buildstatusNEEDSBUILD {
+    color: gray;
+    }
+.buildstatusBUILDING {
+    color: black;
+    }
+.buildstatusFULLYBUILT {
+    color: green;
+    }
+.buildstatusFAILEDTOBUILD,
+.buildstatusMANUALDEPWAIT,
+.buildstatusCHROOTWAIT,
+.buildstatusSUPERSEDED,
+.buildstatusFAILEDTOUPLOAD {
+    color: red;
+    }
+
+
+.launchpad-gold {
+    color: #F8C300;
+    }
+
+
+.green {
+    color: green;
+}
+
+.red {
+    color: red;
+}

=== added directory 'lib/canonical/launchpad/icing/css/components'
=== added file 'lib/canonical/launchpad/icing/css/components/batch_navigation.css'
--- lib/canonical/launchpad/icing/css/components/batch_navigation.css	1970-01-01 00:00:00 +0000
+++ lib/canonical/launchpad/icing/css/components/batch_navigation.css	2011-11-18 05:36:26 +0000
@@ -0,0 +1,23 @@
+.batch-navigation-links .next {
+    /* Next links have icons: */
+    background: center right no-repeat;
+    padding-right: 14px;
+    }
+.batch-navigation-links .next {
+    background-image: url(/@@/arrowRight);
+    }
+.batch-navigation-links .next.inactive {
+    background-image: url(/@@/arrowRight-inactive);
+    }
+.batch-navigation-links .inactive {
+    color: #999ea7;
+    }
+.batch-navigation-links .previous, .batch-navigation-links .next,
+.batch-navigation-links .last {
+    /* And all the links have spacing between them: */
+    margin-left: 0.25em;
+    }
+.batch-navigation-links .first, .batch-navigation-links .previous,
+.batch-navigation-links .next {
+    margin-right: 0.25em;
+    }

=== added file 'lib/canonical/launchpad/icing/css/components/beta_banner.css'
--- lib/canonical/launchpad/icing/css/components/beta_banner.css	1970-01-01 00:00:00 +0000
+++ lib/canonical/launchpad/icing/css/components/beta_banner.css	2011-11-18 05:36:26 +0000
@@ -0,0 +1,30 @@
+/* ===========
+   Beta banner
+*/
+.beta-banner {
+    position: fixed;
+    z-index: 9;
+    top: 0;
+    left: 0;
+    right: 0;
+    padding: 8px 20px;
+    /* Define colour for browsers that don't support transparency */
+    background-color: #606060;
+    /* Set transparent background for browsers that support it */
+    background-color: rgba(64, 64, 64,0.9);
+    color: #fff;
+    font-size: 14px;
+    line-height: 21px;
+    }
+.beta-banner .info-link {
+    color: #4884ef;
+}
+.beta-warning {
+    padding: 4px;
+    margin-right: 8px;
+    background-color: #be0000;
+    font-weight: bold;
+    }
+.beta-feature {
+    font-weight: bold;
+    }

=== added file 'lib/canonical/launchpad/icing/css/components/global_notification.css'
--- lib/canonical/launchpad/icing/css/components/global_notification.css	1970-01-01 00:00:00 +0000
+++ lib/canonical/launchpad/icing/css/components/global_notification.css	2011-11-18 05:36:26 +0000
@@ -0,0 +1,59 @@
+/* ====================
+   Global notifications
+*/
+/* Move the content down so the notification banner doesn't hide any content. */
+body.global-notification-visible {
+    padding-top: 40px;
+    }
+body.global-notification-visible .login-logout {
+    top: 45px;
+    }
+.global-notification {
+    position: fixed;
+    z-index: 10;
+    top: 0;
+    left: 0;
+    right: 0;
+    padding: 8px 20px;
+    /* Define colour for browsers that don't support transparency */
+    background-color: #8d1f1f;
+    /* Set transparent background for browsers that support it */
+    background-color: rgba(125,0,0,0.9);
+    color: #fff;
+    text-shadow: 0 -1px 0 #631616;
+    font-size: 14px;
+    line-height: 21px;
+    font-weight: bold;
+    -moz-box-shadow: 0 0 5px #333;
+    -webkit-box-shadow: 0 0 5px #333;
+    box-shadow: 0 0 5px #333;
+    }
+.global-notification .sprite.notification-private {
+    float: left;
+    display: inline-block;
+    height: 21px;
+    width: 20px;
+    margin-right: 10px;
+    padding: 0;
+    }
+.global-notification-close, .global-notification-close:active,
+.global-notification-close:visited {
+    color: #e47a7a;
+    }
+.global-notification-close {
+    display: block;
+    position: absolute;
+    top: 11px;
+    right: 20px;
+    font-size: 12px;
+    font-weight: normal;
+    line-height: 14px;
+    }
+.global-notification-close .sprite.notification-close {
+    float: right;
+    display: block;
+    height: 9px;
+    width: 8px;
+    margin: 3px 0 0 7px;
+    padding: 0;
+    }

=== added file 'lib/canonical/launchpad/icing/css/components/help_pane.css'
--- lib/canonical/launchpad/icing/css/components/help_pane.css	1970-01-01 00:00:00 +0000
+++ lib/canonical/launchpad/icing/css/components/help_pane.css	2011-11-18 05:36:26 +0000
@@ -0,0 +1,50 @@
+/* =========================
+   Universal
+   Help pane
+*/
+#help-pane {
+    /* Inline help is dynamically positioned by JavaScript.
+       This should appear above all other content.  Needs to be
+       above the Google Maps element on the profile pages, which
+       has a z-index of 9999.  See bug #380349. */
+    position: absolute;
+    border: 1px solid black;
+    padding: 1px 1px 5px 10px;
+    z-index: 11000;
+    background-color: #fff;
+    width: 600px; /* based on the help wiki, should change later */
+    }
+#help-pane.invisible {
+    /* We want the hidden pane to have dimensions so that we can position the
+       frame with them.  This works because the element an absolute position,
+       taking it out of the page flow. */
+    position: absolute;
+    visibility: hidden;
+    display: block;
+    left: 0px;
+    top: 0px;
+    }
+#help-body {
+    background: url(/@@/spinner) no-repeat center center;
+    }
+#help-pane iframe {
+    width: 100%;
+    height: 300px;
+    border: 0;
+    }
+#help-pane iframe.invisible {
+    visibility: hidden;
+    display: block;
+    }
+#help-footer {
+    padding: 3px;
+    border-top: 1px solid #ddd;
+    text-align: right;
+    }
+#help-footer button {
+    margin-bottom: 10px;
+    margin-top: 3px;
+    }
+span.help {
+    font-weight: normal;
+    }

=== added file 'lib/canonical/launchpad/icing/css/components/pofiling_info.css'
--- lib/canonical/launchpad/icing/css/components/pofiling_info.css	1970-01-01 00:00:00 +0000
+++ lib/canonical/launchpad/icing/css/components/pofiling_info.css	2011-11-18 05:36:26 +0000
@@ -0,0 +1,26 @@
+div.profiling_info {
+    position: absolute;
+    top: 0;
+    left: 0;
+    border: 3px solid red;
+    background-color: white;
+    text-align: left;
+    padding: 1em;
+    }
+div.profiling_info h1 {
+    color: red;
+    }
+div.profiling_info h2 {
+    border-bottom: 3px solid gray;
+    }
+div.profiling_info h3 {
+    border-bottom: 1px solid gray;
+    }
+div.profiling_info p {
+    color: black;
+    }
+div.hide_reveal_profiling {
+    text-decoration: underline;
+    color: #093;
+    font-size: 10px;
+    }

=== added file 'lib/canonical/launchpad/icing/css/components/portlet.css'
--- lib/canonical/launchpad/icing/css/components/portlet.css	1970-01-01 00:00:00 +0000
+++ lib/canonical/launchpad/icing/css/components/portlet.css	2011-11-18 05:36:26 +0000
@@ -0,0 +1,94 @@
+.portlet dd {
+    margin-bottom: 0.5em;
+    }
+.portlet dl strong {
+    color: #000;
+    font-weight: normal;
+    }
+.related {
+    /* Lists that link to related content. */
+    margin-top: 4em;
+    border-top: 1px solid #cbcbcb; /* matches color of mainarea_* images */
+    padding-top: 1em;
+    }
+.related ul {
+    list-style: none;
+    margin-left: 0 !important;
+    padding-left: 0 !important;
+    text-indent: 0.5em;
+    }
+.related ul.sourcepackage-links li.sourcepackage-not-dev-focus:before {
+    content: "";
+    display: inline-block;
+    width: 1.5em;
+    }
+.related ul.sourcepackage-links li.sourcepackage-dev-focus:before {
+    content: "⇒ ";
+    display: inline-block;
+    width: 1.5em;
+    }
+.related ul li:before {
+    content: "\00BB \0020";
+    }
+.gridflow {
+    /* A list that positions the items in a grid (like a table). */
+    margin: 0.0em;
+    padding: 0.0em;
+    }
+.gridflow ul {
+    margin: 0.5em 0.0em 0.5em 0.0em;
+    padding: 0.5em 0.0em 0.0em 0.0em;
+    }
+.gridflow li {
+    display: inline;
+    margin: 0.0em;
+    padding: 0.2em;
+    }
+.gridflow li span {
+    display: table-cell;
+    display: inline-table;
+    display: inline-block;
+    width: 192px;
+    text-align: center;
+    vertical-align: middle;
+    padding: 1em 1em 1em 0;
+    }
+.portlet-border {
+    border-top: 1px solid #EBEBEB;
+    padding: 1em 0;
+    }
+.portlet, .aside {
+    clear: both;
+    border-top: 1px solid #EBEBEB;
+    padding: 1em 0;
+    }
+.portlet > h2:first-child {
+    margin-top: 0;
+    }
+.top-portlet {
+    padding: 0 0 0.5em 0;
+    margin: 0 0 1em;
+    }
+.full-page-width {
+    z-index: 10;
+    width: 131%;
+    }
+.full-page-width .full-page-width {
+    /* The content is already full width. */
+    width: 100%;
+    }
+.warning.message {
+    margin-top: 17px;
+    }
+
+div.three.column.middle {
+    margin-right: 1%;
+    }
+div.three.column.left, div.three.column.middle, div.three.column.right {
+    clear: none;
+    float: left;
+    width: 33%;
+    }
+div.three.column.left, div.three.column.right {
+    margin: 0;
+    }

=== added file 'lib/canonical/launchpad/icing/css/components/sidebar_components.css'
--- lib/canonical/launchpad/icing/css/components/sidebar_components.css	1970-01-01 00:00:00 +0000
+++ lib/canonical/launchpad/icing/css/components/sidebar_components.css	2011-11-18 05:36:26 +0000
@@ -0,0 +1,130 @@
+/* =========================
+   Universal
+   Side portlets
+*/
+.side {
+    padding: 0.5em;
+    }
+.side .portlet {
+    width: 90%;
+    margin: 0 auto 1em;
+    border: 1px solid #dedede;
+    -moz-border-radius: 5px;
+    -webkit-border-radius: 5px;
+    -khtml-border-radius: 5px;
+    border-radius: 5px;
+    padding: 0.5em;
+    background: #fbfbfb;
+    }
+.side h2 {
+    font-size: 16px;
+    line-height: 20px;
+    }
+.side h3 {
+    font-size: 14px;
+    line-height: 18px;
+    }
+.side ul {
+    background: #fbfbfb;
+    }
+#privacy.private {
+    background: url(/@@/private-bg) top left repeat-x; /* 8px high */
+    padding-top: 12px; /* = 8px + the usual 4px top padding */
+    }
+/* Override for when the feature flag is active */
+.feature-flag-bugs-private-notification-enabled #privacy.private {
+    background-image: none;
+    background-color: #FBFBFB;
+    padding-top: 0.5em;
+    }
+.downloads li {
+    margin: 0;
+    padding: 2px 0 0;
+    font-weight: bold;
+    }
+.downloads li a {
+    display: block;
+    margin: 0;
+    border: 1px solid #4f843c;
+    -moz-border-radius: 3px;
+    -webkit-border-radius: 3px;
+    -khtml-border-radius: 3px;
+    border-radius: 3px;
+    background: #4f843c url(/@@/bg-project-downloads.png) center right no-repeat;
+    padding: 6%;
+    padding-right: 40px;
+    color: #fff;
+    }
+.downloads .version {
+    -moz-border-radius: 5px 5px 0 0;
+    -webkit-border-radius: 5px 5px 0 0;
+    -khtml-border-radius: 5px 5px 0 0;
+    border-radius: 5px 5px 0 0;
+    background: #d3e3c7;
+    padding: 0.2em 1em;
+    }
+.downloads .released {
+    margin: .3em 0 .5em 0;
+    -moz-border-radius: 0 0 5px 5px;
+    -webkit-border-radius: 0 0 5px 5px;
+    -khtml-border-radius: 0 0 5px 5px;
+    border-radius: 0 0 5px 5px;
+    background: #d3e3c7;
+    padding: 0.2em 1em;
+    }
+.downloads .alternate {
+    padding: 0 0 0 1em;
+    }
+.involvement li {
+    border-top: 1px solid #d0d0d0;
+    padding: 0;
+    font-weight: bold;
+    }
+.involvement li.single {
+    border-top: 0;
+}
+.involvement a {
+    display: block;
+    padding: 0.3em;
+    }
+.involvement li.disabled {
+    color: #cccccc;
+    }
+.involvement-service-links li.disabled img {
+    margin-bottom: 0;
+    }
+.involvement-service-links li.disabled span {
+    margin-bottom: 0;
+    }
+.involvement-service-links li.disabled table {
+    padding-top: 0.3em;
+    padding-bottom: 0.3em;
+    }
+.involvement a.bugs, .involvement a.answers,
+.involvement a.translations, .involvement a.code, .involvement a.blueprints {
+    background: url(/@@/answers-arrow-right.png) right center no-repeat;
+    }
+.involvement a:hover {
+    text-decoration: none;
+    background-color: #eee;
+    }
+.announcements li {
+    margin-bottom: 0.5em;
+    /* Some announcements have long strings of characters as section headers
+     * and such.  Since they don't have whitespace they can't wrap, so they
+     * would break out of their container if we didn't clip them here. */
+    overflow: hidden;
+    }
+.announcements li strong,
+.announcements li a {
+    font-weight: bold;
+    }
+.latest-announcement {
+    padding: 0.5em;
+    background: #dfe5f6;
+    border-top: 1px solid #d0d0d0;
+    border-bottom: 1px solid #d0d0d0;
+    }
+.announcement .registered {
+    margin-top: -2px;
+    }

=== added file 'lib/canonical/launchpad/icing/css/components/yui_picker.css'
--- lib/canonical/launchpad/icing/css/components/yui_picker.css	1970-01-01 00:00:00 +0000
+++ lib/canonical/launchpad/icing/css/components/yui_picker.css	2011-11-18 05:36:26 +0000
@@ -0,0 +1,26 @@
+.yui3-picker {
+    width: 40%;
+    }
+
+.yui3-picker-results div.badge {
+    position: absolute;
+    top: 3px;
+    right: 3px;
+    left: auto;
+    }
+.yui3-picker-results div.badge img {
+    position: relative;
+    padding-left: 3px;
+    padding-right: 0.5em;
+    }
+.yui3-picker-results div.affiliation img {
+    position: relative;
+    padding-left: 3px;
+    padding-right: 0.5em;
+    }
+.yui3-picker-results .affiliation-text {
+    padding-left: 20px;
+    }
+.yui3-picker-filter div {
+    padding-bottom: 1em;
+    }

=== added file 'lib/canonical/launchpad/icing/css/forms.css'
--- lib/canonical/launchpad/icing/css/forms.css	1970-01-01 00:00:00 +0000
+++ lib/canonical/launchpad/icing/css/forms.css	2011-11-18 05:36:26 +0000
@@ -0,0 +1,440 @@
+form {
+    margin-bottom: 1em;
+    }
+form h1 {
+    margin-bottom: 1em;
+    }
+form table th, form table td {
+    padding: 2px;
+    }
+form table tbody th {
+    font-weight: bold;
+    }
+form table label {
+    font-weight: bold;
+    }
+.compound {
+    margin-bottom: .5em;
+    }
+.field.subordinate label {
+    font-weight: normal;
+    }
+fieldset {
+    border-width: 2px 0 0;
+    margin: 1em 0;
+    padding: 1em 0 0;
+    }
+label {
+    white-space: nowrap;
+    }
+input[type='image'] {
+    vertical-align: middle;
+    }
+input {
+    visibility: inherit;
+    }
+input[type=radio] {
+    margin-left: 1em;
+    }
+input.urlTextType {
+    width: 40em;
+    }
+textarea {
+    display: block;
+    width: 90%;
+    max-width: 60em;
+    }
+button {
+    padding: 0;
+    }
+button.overlay-close-button {
+    float: right;
+    width: 15px;
+    height: 15px;
+    display: block;
+    margin-top: 4px;
+    }
+.fieldRequired, .fieldOptional {
+    color: #999;
+    }
+.field.subordinate {
+    margin-left: 2.6em;
+    }
+.formHelp {
+    max-width: 45em;
+    margin: 0.2em 0 0.5em 0.2em;
+    color: #777;
+    }
+.listbox {
+    /* a scrolling list of checkboxes or radio buttons */
+    border: 1px solid #8cacbb;
+    display: inline-block;
+    max-height: 12em;
+    overflow: auto;
+    overflow: -moz-scrollbars-vertical;
+    }
+.listbox label {
+    background-color: #f6f6f6;
+    border: solid white;
+    border-width: 0 0 1px 0;
+    display: block;
+    }
+.extra-form-buttons {
+    text-align: center;
+    padding-top: 1em;
+    white-space: nowrap;
+    }
+.extra-form-buttons button {
+    margin-right: 0.7em;
+    }
+.actions * {
+    /*
+      Action links are those that begin the process of doing something.
+      For example, "Register a branch", "Edit profile", "Link to CVE".
+      When presented inline, they are rendered by launchpad-inline-link.pt.
+
+      Action buttons are those that submit a multi-row form.
+      Often an action button will have an "or _Cancel_" link next to it.
+
+      We want 0.5em horizontal gap between links and buttons in these
+      sections. Using margin-left would cause a bad gap to the left of a
+      leftmost item. Using margin-right would cause a bad gap to the right of
+      a rightmost item. We could fix these problems with :first-child/:last-
+      child, but not in IE. So we do something a little tricky. We go ahead
+      and give each child of the actions container a right margin:
+    */
+    margin-right: 0.5em;
+    }
+.actions * * {
+    /* because ">" doesn't work in IE6 */
+    margin-right: 0;
+    }
+.actions {
+    /* Then in addition to the top/bottom margins of the actions container,
+       we give it a *negative* right margin, cancelling out that of the last
+       child. */
+    margin: 1em -0.5em 1em 0;
+    }
+table.radio-button-widget tr td {
+    /* Opera doesn't use the general tr above for the radio button table */
+    vertical-align: top;
+    }
+table.listing div.field>table {
+    /* Hack to add breathing room to bug status forms: */
+    margin-top: 0.5em;
+    }
+table.listing div.field>label,
+table.listing div.field>div>label,
+table.listing div.actions {
+    display: block;
+    margin-top: 1em;
+    }
+table.form, table.extra-options {
+    /* Many forms are laid out using tables, with appropriate spacing: */
+    /* http://launchpad.dev/firefox/+edit */
+    margin: 1em 0;
+    width: 100%;
+    }
+table.form th {
+    font-weight: normal;
+    }
+table.form th, table.form td,
+table.form table.extra-options td,
+table.form table.extra-options th {
+    padding-bottom: 1em;
+    }
+table.form table.listing th,
+table.form table.listing td {
+    padding-bottom: 0.25em;
+}
+table.form td td {
+    padding-bottom: 0;
+    }
+.long td {
+    /* Long forms are composed of multiple tables and visible fieldsets */
+    padding-right: 1em;
+    }
+.long fieldset {
+    margin-top: 1em;
+    }
+.long legend {
+    color: #666;
+    font-weight: bold;
+    }
+fieldset.collapsible {
+    /* Collapsible sections
+       Some page sections are hidden by default, expanded by clicking a link.
+       see lp.js:activate_collapsibles() */
+    border: none;
+    margin: 0;
+    padding: 16px 0 0; /* "Add a comment/attachment" form in bug reports */
+    }
+fieldset.collapsible h2 {
+    margin-top: 0;
+}
+fieldset .collapsed {
+    display: none;
+    }
+fieldset .expanded {
+    display: block;
+    }
+fieldset.collapsible legend {
+    font-weight: normal;
+    }
+.collapsible legend a, .collapsible legend a:hover {
+    text-decoration: none;
+    }
+img.collapseIcon {
+    text-decoration: none;
+    vertical-align: middle;
+    }
+.collapsible legend a span {
+    text-decoration: underline;
+    }
+.collapsed {
+    border: none;
+    margin-bottom: 0;
+    }
+.yui3-pretty-overlay #yui3-pretty-overlay-modal h1,
+.yui3-pretty-overlay #yui3-pretty-overlay-modal h2 {
+    /* lazr is injecting presumptive markup. */
+    color: #333;
+    margin-right: 15px;
+    }
+h1 .edit {
+    font-size: 12px;
+    position: relative;
+    top: -3px;
+    margin-left: 0.5em;
+    }
+.yui3-editable_text {
+    outline: none;
+    }
+.yui3-ieditor {
+    padding-right: 288px;
+    }
+.yui3-skin-sam .yui3-ieditor-input {
+    margin-top: 0;
+}
+h1 .yui3-ieditor-errors {
+    font-size: 12px;
+    }
+.steps h2 {
+    /* lazr is injecting presumptive markup. */
+    font-size: 12px;
+    line-height: 30px;
+    }
+.lazr-multiline-edit .yui3-ieditor {
+    padding-right: 0;
+    }
+.lazr-multiline-edit textarea {
+    max-width: inherit;
+    }
+.lazr-multiline-edit .clearfix h3 {
+    /* Undo the damage done by lazr. */
+    font-family: 'UbuntuBeta Regular', Ubuntu, 'Bitstream Vera Sans', 'DejaVu Sans', Tahoma, sans-serif;
+    line-height: 12px;
+    }
+.widget-hd.js-action {
+    /* The js-action class is also used for non-links, for example, with
+       expand/collapse sections. */
+    color: #093;
+    cursor: pointer;
+    }
+.widget-hd.js-action:hover {
+    text-decoration: underline;
+    }
+
+.yui3-ichoicesource-content .value:hover {
+    text-decoration: underline;
+    cursor: pointer;
+    }
+.yui3-buglisting-config-util a {
+    position: relative;
+    top: 3px;
+    left: 4px;
+    }
+.yui3-baseconfigutil a {
+    cursor: pointer;
+    }
+.yui3-buglisting-config-util-overlay a.close-button {
+    visibility: inherit;
+    }
+.yui3-buglisting-config-util-overlay form {
+    width: 80%;
+    }
+.yui3-buglisting-config-util-overlay div.yui3-lazr-formoverlay-actions {
+    text-align: left;
+    }
+.yui3-buglisting-config-util-overlay .reset-buglisting {
+    position: relative;
+    top: 20px;
+    left: 75px;
+    cursor: pointer;
+    }
+.error.message, .warning.message, .informational.message {
+    border: solid #666;
+    border-width: 1px 2px 2px 1px;
+    color: black;
+    margin: 1em auto 1em auto;
+    padding: 0 1em 1em 2em;
+    width: 30em;
+    }
+.error.message::before, .warning.message::before,
+.informational.message::before {
+    /* The alerts are preceded with an icon overlaying the top left corner: */
+    display: block;
+    margin: -15px 0 -6px -35px;
+    }
+.error {
+    /* Error messages are pink, with alerts having an error icon: */
+    background: #ffe4e4;
+    }
+.error.message::before {
+    content: url(/@@/error-large);
+    }
+.warning {
+    /* Warning messages are orange, with alerts having a warning icon: */
+    background: #fff59c;
+    }
+.warning.message::before {
+    content: url(/@@/warning-large);
+    }
+.informational {
+    /* Informational messages are blue-to-grey, alerts have an info icon. */
+
+    background: #d4e8ff url(/+icing/blue-fade-to-grey);
+    }
+.informational.message::before {
+    content: url(/@@/info-large);
+    }
+.informational p.last {
+    margin-bottom: 0;
+    }
+.debugging {
+    /* Debugging messages are white on grey, alerts have an info icon. */
+    background: #666;
+    color: white;
+    }
+.debugging.message::before {
+    content: url(/@@/info-large);
+    }
+.error .message {
+    /* And inside, the error message itself uses a smaller icon. */
+    background: url(/@@/error) center left no-repeat;
+    margin-bottom: 0.25em;
+    padding-left: 18px;
+    }
+table.form .error {
+    /* Form errors override this background color, because the lack of space
+       between the edge of fields and the edge of the color would look bad. */
+    background: none;
+    }
+.inline-warning {
+    /* Warning messages inlined in the page. */
+    color: red;
+    font-weight: bold;
+    }
+.sml-informational {
+    background: #d4e8ff url('/+icing/blue-fade-to-grey');
+    border: solid #666;
+    border-width: 1px 2px 2px 1px;
+    padding: 5px 5px 5px 5px;
+    width: 44em;
+    }
+.sml-informational::before {
+    content: url('/@@/info');
+    }
+.important-notice-popup {
+    padding: 1em 1em 0 1em;
+    width: auto;
+    overflow: hidden;
+    }
+.important-notice-container {
+    text-align: center;
+    width: 100%;
+    padding-bottom: 1em;
+    position: relative;
+    }
+.important-notice-balloon {
+    -moz-border-radius: 5px;
+    -o-border-radius: 5px;
+    -webkit-border-radius: 5px;
+    background-color: #ededed;
+    padding: 1em;
+    border: 1px solid #000;
+    width: auto;
+    overflow: hidden;
+    }
+.important-notice-buttons {
+    float: right;
+    }
+.important-notice-cancel-button {
+    visibility: hidden;
+    cursor: pointer;
+    }
+.important-notice {
+    padding: 0px 0px 40px 0px;
+    height: 32px;
+    overflow: hidden;
+    }
+.important-notice a {
+    font-weight: bold;
+    text-decoration: underline;
+    }
+
+
+/* ==================
+   Translations Forms
+*/
+
+/* ==== Translations hand-made forms ==== */
+
+form.translations div.fields {
+    padding: 1em;
+    }
+form.translations div.actions {
+    padding: 1em;
+    text-align: left;
+    clear: both;
+    }
+form.translations input {
+    padding-left: 0.5em;
+    padding-right: 0.5em;
+    }
+form.translations select {
+    margin-left: 0.5em;
+    padding-right: 0.5em;
+    }
+form.translations label {
+    padding-left: 0.5em;
+    padding-right: 1em;
+    }
+form.translations .listbox label {
+    padding: 2px 1em 2px 2px;
+    }
+
+/* Provide top-alignment for radio boxes and longer explanations
+ * without using tables.
+ *
+ * Examples:
+ *   https://translations.launchpad.dev/evolution/trunk/+pots/evolution-2.2/es/+upload
+ *   https://translations.launchpad.dev/evolution/trunk/+pots/evolution-2.2/+export
+ */
+form.translations div.alignment .content {
+    float: left;
+    }
+form.translations div.alignment .selector {
+    margin-right: 0.5em;
+    float: left;
+    clear: both;
+    }
+form.translations div.alignment .content label {
+    padding: 0px;
+    margin: 0px;
+    font-weight: bold;
+    }
+form.translations div.alignment .secondary label {
+    font-weight: normal;
+    padding: 2px 1em 2px 2px;
+    }

=== added file 'lib/canonical/launchpad/icing/css/import.css'
--- lib/canonical/launchpad/icing/css/import.css	1970-01-01 00:00:00 +0000
+++ lib/canonical/launchpad/icing/css/import.css	2011-11-18 05:36:26 +0000
@@ -0,0 +1,11 @@
+@import url("base.css");
+@import url("typography.css");
+@import url("colours.css");
+@import url("forms.css");
+@import url("layout.css");
+@import url("modifiers.css");
+
+/* We have a few files that need to include some base CSS.
+   This file is purely for that
+*/
+

=== added file 'lib/canonical/launchpad/icing/css/layout.css'
--- lib/canonical/launchpad/icing/css/layout.css	1970-01-01 00:00:00 +0000
+++ lib/canonical/launchpad/icing/css/layout.css	2011-11-18 05:36:26 +0000
@@ -0,0 +1,227 @@
+/* This probably shouldn't be here, but I'm not sure where to put it yet */
+.yui-d0 {
+    margin: 10px 20px;
+    }
+.yui-t4 .yui-b {
+    width: 21%;
+    }
+.yui-t4 .yui-main {
+    clear: both;
+    float: left;
+    margin-right: -25%;
+    }
+.yui-t4 .yui-main .yui-b {
+    width: auto;
+    margin-right: 25%;
+    }
+
+
+
+/* =========================
+   Header
+*/
+.demo {
+    background-color: #fee;
+    }
+.login-logout {
+    position: absolute;
+    top: .5em;
+    right: 1.5em;
+    }
+#rendertime {
+    float: left;
+    margin: 0.1em 1.2em 0 0;
+    color: #666;
+    font-size: 10px;
+    }
+#ajax-time {
+    float: left;
+    margin: 0 1.2em 0 0.2em;
+    position: relative;
+    }
+#ajax-time-list {
+    position: absolute;
+    z-index: 10;
+    top: 20px;
+    right: 0;
+    width: 200px;
+    background-color: #f2f2f2;
+    border: 2px solid #fff;
+    -moz-box-shadow: 0 0 5px rgba(0, 0, 0, 0.3);
+    -webkit-box-shadow: 0 0 5px rgba(0, 0, 0, 0.3);
+    box-shadow: 0 0 5px rgba(0, 0, 0, 0.3);
+    -webkit-border-radius: 4px;
+    -moz-border-radius: 4px;
+    border-radius: 4px;
+    }
+#ajax-time-list li {
+    border-bottom: 1px solid #e0e0e0;
+    padding: 3px 5px;
+    }
+#ajax-time-list li:last-child {
+    border-bottom: none;
+    }
+#ajax-time-list li span {
+    color: #999;
+    font-size: 11px;
+    display: block;
+    }
+#ajax-time-list strong.warning {
+    color: #f00;
+    background-color: transparent;
+    }
+div.watermark-apps-portlet {
+    clear: both;
+    margin-bottom: .5em;
+    white-space: no-wrap;
+    }
+div.watermark-apps-portlet .wide {
+    width: 75%;
+    vertical-align: bottom;
+    margin-bottom: 0.3em;
+    }
+div.watermark-apps-portlet img {
+    margin: 0 1.5em 0 0;
+    }
+div.watermark-apps-portlet h1, div.watermark-apps-portlet h2 {
+    margin-top: 0px;
+    margin-bottom: 6px;
+    color: #000000;
+    font-weight: bold;
+    font-size: 30px;
+    line-height: 34px;
+    clear: none;
+    }
+div.watermark-apps-portlet span img {
+    float: none;
+    margin: 0;
+    font-weight: bold;
+    clear: none;
+    }
+.watermark-apps-portlet li {
+    display: inline;
+    list-style-type: none;
+    }
+.watermark-apps-portlet li a, .watermark-apps-portlet li span {
+    padding: 0.3em 0.5em;
+    margin-right: 0.4em;
+    }
+.watermark-apps-portlet li:first-child a,
+.watermark-apps-portlet li:first-child span {
+    /* The text of the first tab should align with the heading directly
+       above it */
+    margin-left: -0.5em;
+    }
+.watermark-apps-portlet li a:link, .watermark-apps-portlet li a:visited {
+    color: #000;
+    background-color: #fff;
+    text-decoration: none;
+    }
+.watermark-apps-portlet li.active a, .watermark-apps-portlet li.active span {
+    font-weight: bold;
+    color: #fff;
+    background-color: #747474;
+    }
+.watermark-apps-portlet li a:hover {
+    color: #000;
+    background-color: #f3f3f3;
+    }
+.watermark-apps-portlet li.disabled-tab {
+    color: #747474;
+    }
+.flowed-block {
+    display: table-cell;
+    display: inline-table;
+    display: inline-block;
+    text-align: left;
+    vertical-align: top;
+    }
+.facetmenu {
+    /* Facet menu, a.k.a. application tabs */
+    width: 100%;
+    white-space: nowrap;
+    }
+.context-publication {
+    margin-bottom: 1em;
+    }
+.registering {
+    /* Registered slot */
+    margin: .5em 0 1em 0;
+    font-size: 10px;
+    color: #666;
+    }
+.breadcrumbs {
+    margin-left: 0;
+    list-style-type: none;
+    clear: both;
+    font-size: 10px;
+    }
+.breadcrumbs li {
+    display: inline;
+    padding: 0;
+    }
+.breadcrumbs li a {
+    color: #494949;
+    }
+.breadcrumbs li:after {
+    content: "\00BB \0020"
+    }
+.breadcrumbs li:last-child {
+    /* The following leaves a small margin in chrome/webkit, but using none
+       doesn't hide the » in webkit either (both work for FF3.5). */
+    font-weight: bold;
+    }
+.breadcrumbs li:last-child:after {
+    content: '';
+    }
+#logincontrol {
+    /* Top right of the page is a link to log in or a button to log out: */
+    float: right;
+    }
+#logincontrol img {
+    /* align the image with the text */
+    margin-bottom: -2px;
+    }
+#logincontrol form {
+    margin: 0;
+    }
+#logincontrol input[type='submit'] {
+    /* The button lacks the right margin that buttons usually have: */
+    font-size: 10px;
+    margin-right: 0;
+    }
+
+
+/* =========================
+   Footer
+*/
+.footer {
+    clear: both;
+    margin-top: 4em;
+    padding-top: 0.5em;
+    }
+.footer .lp-arcana {
+    background: url(/@@/footer-background.png) top left repeat-x;
+    padding: 0.8em;
+    -moz-border-radius: 5px 5px 0 0;
+    -webkit-border-radius: 5px 5px 0 0;
+    -khtml-border-radius: 5px 5px 0 0;
+    border-radius: 5px 5px 0 0;
+    height: 2em;
+    }
+.footer .lp-arcana img {
+    vertical-align: middle;
+    }
+.footer .sitemessage {
+    text-align: right;
+    }
+.footer .colophon {
+    margin: 3em 3em 1em 3em;
+    text-align: center;
+    }
+.footer .lp-branding {
+    float: left;
+    }
+.footer form {
+    display: inline;
+    }

=== added file 'lib/canonical/launchpad/icing/css/modifiers.css'
--- lib/canonical/launchpad/icing/css/modifiers.css	1970-01-01 00:00:00 +0000
+++ lib/canonical/launchpad/icing/css/modifiers.css	2011-11-18 05:36:26 +0000
@@ -0,0 +1,208 @@
+div.left, div.right {
+    width: 50%;
+    }
+div.left, .cves {
+    clear: both;
+    float: left;
+    }
+div.right {
+    clear: right;
+    float: right;
+    }
+div.centered {
+    text-align: center;
+    }
+div.centered table {
+    margin: 0 auto;
+    text-align: left;
+    }
+div.see-all {
+    text-align: right;
+    }
+span.nolink {
+    font-weight: bold;
+    }
+span.see-all {
+    float: right;
+    }
+.see-all a {
+    padding-left: 8px;
+    background: inherit;
+    font-size: 12px;
+    text-decoration: underline;
+    }
+.unseen, .hidden {
+    display: none;
+    }
+.invisible-link {
+    display: none;
+    }
+.invisible {
+    left: -9999em;
+    display: block;
+    }
+.transparent {
+  opacity: 0;
+  filter: alpha(opacity=0);
+  -ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=0)";
+}
+.rss-right {
+    background: url(/@@/rss.png) right center no-repeat;
+    }
+.logo {
+    float: left;
+    display: inline;
+    width: 64px;
+    height: 64px;
+    margin: 0 5px 0 0;
+    }
+.registered {
+    color: #666;
+    }
+.description {
+    clear: both;
+    }
+.search-results {
+    margin-top: 1em;
+    }
+.top-portlet .summary {
+    margin: 0 0 1em 0;
+    font-size: 16px; /* Same as h3, this appears under a h1. */
+    }
+.main-portlet {
+    margin: 1em 0 1em 0;
+    }
+.pre {
+    white-space: pre;
+    }
+.clearfix:after {
+    /* use class="clearfix" whenever floats should be enclosed */
+    content: ".";
+    display: block;
+    height: 0;
+    clear: both;
+    visibility: hidden;
+    }
+* html .clearfix {
+    /* Work around float bug in MSIE */
+    height: 1%;
+    }
+div.beta {
+    background-color: #c24848;
+    margin-bottom: 7px;
+    margin-top: 7px;
+    height: 10px;
+    width: 175px;
+    }
+div.beta img {
+    height: 10px;
+    }
+.exception {
+    color: #cc0000;
+    }
+.highlight {
+    background: #ddd;
+    border: 1px solid #ddd;
+    }
+.lowlight {
+    opacity: .5;
+    filter: alpha(opacity=50);
+    -ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=50)";
+}
+.status :link, .importance :link {
+    text-decoration: none;
+    }
+
+.discreet, .lesser, .duplicate-details {
+    font-size: 10px;
+    clear: left;
+    }
+pre.changelog, table.diff,
+.bug-comment, .bug-activity, .codereviewcomment {
+    font-family: 'UbuntuBeta Mono', 'Ubuntu Mono', monospace;
+    }
+.cloud-size-smallest {
+    font-size: 10px;
+    }
+.cloud-size-small {
+    font-size: 12px;
+    }
+.cloud-size-medium {
+    font-size: 14px;
+    }
+.cloud-size-large {
+    font-size: 16px;
+    }
+.cloud-size-largest {
+    font-size: 18px;
+    }
+.cloud-dark {
+    color: #00f;
+    }
+.cloud-medium {
+    color: #7878ff;
+    }
+.cloud-light {
+    color: #b8b8ff;
+    }
+
+/* =========================
+   Universal presentation
+   Sprites
+*/
+.sprite {
+    padding: 0px 0 0px 18px;
+    line-height: 18px;
+    }
+.sprite-after {
+    padding: 2px 18px 0 0;
+    }
+h1 a.sprite, h2 a.sprite, h3 a.sprite {
+    font-size: 12px;
+    }
+.icon-only {
+    border: 0;
+    padding: 0;
+    width: 14px;
+    }
+div.icon-only {
+    height: 14px;
+    }
+input[type="submit"].icon-only {
+    height: 14px;
+    background-color: inherit;
+    cursor: pointer;
+    }
+span.icon-only {
+    padding-right: 14px;
+    line-height: 14px;
+    }
+.vertical .sprite {
+    /* XXX: EdwinGrubbs 2009-10-29 bug=463032
+       The reduced padding is only necessary to prevent parts of the
+       adjacent sprites in the consolidated image from appearing
+       when the line wraps and the default font size is 16.
+    */
+    padding-bottom: 0px;
+    display: inline-block;
+    min-height: 16px;
+    width: 90%;
+    }
+.vertical .sprite:first-line {
+    line-height: 12px;
+    }
+body.tab-bugs #portlet-subscribers .sprite {
+    /* XXX: mars 2009-11-22 bug=484848
+      Override the styling in the Bug Subscribers portlet.  Trying to display
+      as inline-block is of little use, as the maximum name width is 20
+      characters, and we are unlikely to wrap the text. Not to mention that
+      setting the display in this way breaks the icons.
+    */
+    display: inline;
+    }
+body.tab-bugs #duplicate-actions .sprite {
+    /* Override sprite style for edit icon on "Mark as duplicate"
+       to make the text not appear on a second line.
+    */
+    display: inline;
+    }

=== added file 'lib/canonical/launchpad/icing/css/typography.css'
--- lib/canonical/launchpad/icing/css/typography.css	1970-01-01 00:00:00 +0000
+++ lib/canonical/launchpad/icing/css/typography.css	2011-11-18 05:36:26 +0000
@@ -0,0 +1,112 @@
+
+h1, h2, h3, h4, h5, h6 {
+    background: none;
+    clear: left;
+    }
+h1 {
+    clear: none;
+    font-size: 30px;
+    line-height: 34px;
+    }
+h2 {
+    margin-top: 16px;
+    margin-bottom: 8px;
+    font-size: 22px;
+    line-height: 26px;
+    }
+h3 {
+    margin-top: 16px;
+    margin-bottom: 8px;
+    font-size: 16px;
+    line-height: 20px;
+    }
+.yui-u > div > h3:first-child {
+    margin-top: 0;
+    }
+p {
+    width: auto;
+    margin-bottom: 0.8em;
+    }
+p, li, dt, dd, blockquote, .narrow, .narrow-listing {
+    /* Wrap the text before the eye gets lost. */
+    max-width: 45em;
+    }
+.wide * {
+    max-width: 60em;
+    }
+table.wide {
+    width: 60em;
+    }
+pre, code, samp, tt, .console {
+    font-family: 'UbuntuBeta Mono', 'Ubuntu Mono', monospace;
+    margin-bottom: 0.8em;
+    }
+pre.wrap {
+    /* From nice_pre in tales.py */
+    white-space: -moz-pre-wrap;
+    white-space: -o-pre-wrap;
+    white-space: pre-wrap;
+    word-wrap: break-word;
+    }
+:link, :visited {
+    /* Links are blue, brighter when clicked, and greyer once visited. */
+    color: #03a;
+    text-decoration: none;
+    }
+:link:hover, :visited:hover {
+    text-decoration: underline;
+    }
+:link:active, :visited:active {
+    color: #36c;
+    }
+a[onclick], .collapsible legend a, a.js-action,
+a[onclick]:active, .collapsible legend a:active, a.js-action,
+a.js-action:active {
+    /* Links that don't open separate pages are green. */
+    color: #093;
+    }
+a.help {
+    border-bottom: 1px dotted #03a;
+    cursor: help;
+    }
+a.help:hover, a.help:hover {
+    text-decoration: none;
+    }
+a.help.icon, a.sprite.maybe.help {
+    border: none;
+}
+a.invalid-link {
+    disabled: True;
+    color: #909090;
+    text-decoration: none;
+    cursor: default;
+    }
+img, a img {
+    /* No border on images that are links. */
+    border: none;
+    }
+abbr[title], acronym[title] {
+    border-bottom: 1px dotted black;
+    cursor: help;
+    }
+em {
+    font-style: italic;
+    }
+strong {
+    font-weight: bold;
+    }
+.title {
+    font-weight: bold;
+    }
+kbd {
+    background-color: #ddd;
+    border: 1px solid;
+    border-color: white gray gray white;
+    color: black;
+    margin: 1px;
+    min-width: 1em;
+    outline: 1px #666;
+    }
+.nowrap {
+    white-space: nowrap;
+    }

=== removed file 'lib/canonical/launchpad/icing/style-3-0.css'
--- lib/canonical/launchpad/icing/style-3-0.css	2011-11-17 17:57:58 +0000
+++ lib/canonical/launchpad/icing/style-3-0.css	1970-01-01 00:00:00 +0000
@@ -1,2378 +0,0 @@
-/* A brief introduction to this stylesheet
-   or how not to kill kittens.
-
-   1. This is a global style sheet. Add styles that can be used by all
-      launchpad. Rules for just an application or a page do not belong
-      in this file.
-   2. Do not use IDs because they discourage reuse.
-   3. Only use these font-sizes for text people read. Users use the zoom to
-      scale fonts, and rendering is optimized for this behavior.
-      10px -- smallest text
-      12px -- body
-      14px -- navigation
-      16px -- h3
-      22px -- h2
-      30px -- h1
-   4. Add rules to the appropriate section.
-      * Page layout
-      * Block
-      * Inline
-      * Block-lists
-      * Block-tables
-      * Forms
-      * Common presentations.
-      * Header, footer, side, help
-      * Colors
-      * Sprites
-      * Global notifications
-      * Application or page specifc styles that do not belong in this file.
-*/
-
-/* =========================
-   Universal presentation
-   Page layout
-*/
-.yui-d0 {
-    margin: 10px 20px;
-    }
-.yui-t4 .yui-b {
-    width: 21%;
-    }
-.yui-t4 .yui-main {
-    clear: both;
-    float: left;
-    margin-right: -25%;
-    }
-.yui-t4 .yui-main .yui-b {
-    width: auto;
-    margin-right: 25%;
-    }
-.footer {
-    clear: both;
-    margin-top: 4em;
-    padding-top: 0.5em;
-    }
-.footer .lp-arcana {
-    background: url(/@@/footer-background.png) top left repeat-x;
-    padding: 0.8em;
-    -moz-border-radius: 5px 5px 0 0;
-    -webkit-border-radius: 5px 5px 0 0;
-    -khtml-border-radius: 5px 5px 0 0;
-    border-radius: 5px 5px 0 0;
-    height: 2em;
-    }
-.footer .lp-arcana img {
-    vertical-align: middle;
-    }
-.footer .sitemessage {
-    text-align: right;
-    }
-.footer .colophon {
-    margin: 3em 3em 1em 3em;
-    text-align: center;
-    }
-.footer .lp-branding {
-    float: left;
-    }
-.footer form {
-    display: inline;
-    }
-.portlet-border {
-    border-top: 1px solid #EBEBEB;
-    padding: 1em 0;
-    }
-.portlet, .aside {
-    clear: both;
-    border-top: 1px solid #EBEBEB;
-    padding: 1em 0;
-    }
-.portlet > h2:first-child {
-    margin-top: 0;
-    }
-.top-portlet {
-    padding: 0 0 0.5em 0;
-    margin: 0 0 1em;
-    }
-.full-page-width {
-    z-index: 10;
-    width: 131%;
-    }
-.full-page-width .full-page-width {
-    /* The content is already full width. */
-    width: 100%;
-    }
-.warning.message {
-    margin-top: 17px;
-    }
-
-
-/* =========================
-   Universal presentation
-   Block elements.
-*/
-/* XXX EdwinGrubbs 2010-06-18 bug=570354
- * The PrettyOverlay css uses static values for the width, but
- * the overlay needs to stretch for forms with wide input fields.
- */
-.yui-pretty-overlay {
-    width: auto !important;
-    min-width: 402px;
-    }
-
-.yui-pretty-overlay #yui-pretty-overlay-modal {
-    width: auto !important;
-    min-width: 340px;
-    }
-body {
-    font-family: 'UbuntuBeta Regular', Ubuntu, 'Bitstream Vera Sans', 'DejaVu Sans', Tahoma, sans-serif;
-    font-size: 12px;
-    line-height: 18px; /* The same as the sprite height. */
-    color: #333;
-    }
-body.private {
-    /* It must be obvious to the user that the context is private */
-    background: url("/@@/private-y-bg") top left repeat-y;
-    }
-/* Override for when the feature flag is active */
-body.feature-flag-bugs-private-notification-enabled.private {
-    background-image: none;
-    }
-body.private .private-disallow {
-    /* We want to disable/hide some actions on private artifacts */
-    display: none
-    }
-.private-only {
-    /* We want to only show some items on private artifacts */
-    display: none;
-    }
-body.private .private-only {
-    /* We want to only show some items on private artifacts */
-    display: block;
-    }
-* html body {
-    /* stops floats dropping in IE 5.5/6 */
-    word-wrap: break-word;
-    }
-
-h1, h2, h3, h4, h5, h6 {
-    background: none;
-    clear: left;
-    }
-h1 {
-    clear: none;
-    font-size: 30px;
-    line-height: 34px;
-    }
-h2 {
-    margin-top: 16px;
-    margin-bottom: 8px;
-    font-size: 22px;
-    line-height: 26px;
-    }
-h3 {
-    margin-top: 16px;
-    margin-bottom: 8px;
-    font-size: 16px;
-    line-height: 20px;
-    }
-.yui-u > div > h3:first-child {
-    margin-top: 0;
-    }
-p {
-    width: auto;
-    margin-bottom: 0.8em;
-    }
-p, li, dt, dd, blockquote, .narrow, .narrow-listing {
-    /* Wrap the text before the eye gets lost. */
-    max-width: 45em;
-    }
-.wide * {
-    max-width: 60em;
-    }
-table.wide {
-    width: 60em;
-    }
-pre, code, samp, tt, .console {
-    font-family: 'UbuntuBeta Mono', 'Ubuntu Mono', monospace;
-    margin-bottom: 0.8em;
-    }
-pre.wrap {
-    /* From nice_pre in tales.py */
-    white-space: -moz-pre-wrap;
-    white-space: -o-pre-wrap;
-    white-space: pre-wrap;
-    word-wrap: break-word;
-    }
-div.left, div.right {
-    width: 50%;
-    }
-div.left, .cves {
-    clear: both;
-    float: left;
-    }
-div.right {
-    clear: right;
-    float: right;
-    }
-div.three.column.middle {
-    margin-right: 1%;
-    }
-div.three.column.left, div.three.column.middle, div.three.column.right {
-    clear: none;
-    float: left;
-    width: 33%;
-    }
-div.three.column.left, div.three.column.right {
-    margin: 0;
-    }
-hr {
-    display: none;
-    }
-div.profiling_info {
-    position: absolute;
-    top: 0;
-    left: 0;
-    border: 3px solid red;
-    background-color: white;
-    text-align: left;
-    padding: 1em;
-    }
-div.profiling_info h1 {
-    color: red;
-    }
-div.profiling_info h2 {
-    border-bottom: 3px solid gray;
-    }
-div.profiling_info h3 {
-    border-bottom: 1px solid gray;
-    }
-div.profiling_info p {
-    color: black;
-    }
-div.hide_reveal_profiling {
-    text-decoration: underline;
-    color: #093;
-    font-size: 10px;
-    }
-
-/* =========================
-   Universal presentation
-   Inline elements.
-*/
-:link, :visited {
-    /* Links are blue, brighter when clicked, and greyer once visited. */
-    color: #03a;
-    text-decoration: none;
-    }
-:link:hover, :visited:hover {
-    text-decoration: underline;
-    }
-:link:active, :visited:active {
-    color: #36c;
-    }
-a[onclick], .collapsible legend a, a.js-action,
-a[onclick]:active, .collapsible legend a:active, a.js-action,
-a.js-action:active {
-    /* Links that don't open separate pages are green. */
-    color: #093;
-    }
-a.help {
-    border-bottom: 1px dotted #03a;
-    cursor: help;
-    }
-a.help:hover, a.help:hover {
-    text-decoration: none;
-    }
-a.help.icon, a.sprite.maybe.help {
-    border: none;
-}
-a.invalid-link {
-    disabled: True;
-    color: #909090;
-    text-decoration: none;
-    cursor: default;
-    }
-img, a img {
-    /* No border on images that are links. */
-    border: none;
-    }
-abbr[title], acronym[title] {
-    border-bottom: 1px dotted black;
-    cursor: help;
-    }
-em {
-    font-style: italic;
-    }
-strong {
-    font-weight: bold;
-    }
-.title {
-    font-weight: bold;
-    }
-kbd {
-    background-color: #ddd;
-    border: 1px solid;
-    border-color: white gray gray white;
-    color: black;
-    margin: 1px;
-    min-width: 1em;
-    outline: 1px #666;
-    }
-.nowrap {
-    white-space: nowrap;
-    }
-
-/* =========================
-   Universal presentation
-   Block-list elements.
-*/
-dt {
-    margin-bottom: .3em;
-    margin-top: 0.5em;
-    font-weight: bold;
-    }
-dt dfn {
-    font-weight: bold;
-    }
-dd {
-    margin-bottom: .8em;
-    }
-dl.faq dd {
-    margin: 1em 0 2em 4em;
-    }
-.contributors dt strong {
-    padding-left: 1em;
-    }
-ol {
-    margin-left: 1.8em;
-    }
-ol li {
-    list-style: decimal outside;
-    }
-li {
-    padding-bottom: .3em;
-    }
-ul.news, li.news {
-    list-style-type: none;
-    margin-bottom: 1em;
-    }
-ul.architecture, li.architecture {
-    list-style-image: url(/@@/architecture);
-    }
-ul.build-success, li.build-success {
-    list-style-image: url(/@@/build-success);
-    }
-ul.bug.remote, li.bug.remote {
-    list-style-image: url(/@@/bug-remote);
-    }
-ul.language, li.language {
-    list-style-image: url(/@@/language);
-    /* Disable .language sprite. */
-    background: inherit;
-    }
-ul.mail, li.mail {
-    list-style-image: url(/@@/mail);
-    }
-ul.meeting, li.meeting {
-    list-style-image: url(/@@/meeting);
-    }
-ul.rss, li.rss {
-    list-style-image: url(/@@/rss);
-    }
-ul.translation, li.translation {
-    list-style-image: url(/@@/translation);
-    }
-ul.webref, li.webref {
-    list-style-image: url(/@@/link);
-    }
-ul.iconed {
-    list-style-type: none;
-    padding-left: 0 !important;
-    margin: 0 !important;
-    }
-ul.buttons {
-    /* without !important, gets overridden by the '#maincontent ol' rule */
-    margin: 0.5em 0 0.5em 0 !important;
-    padding: 0 !important;
-    }
-ul.buttons li {
-    display: inline;
-    margin: 0 0 0 0;
-    }
-.bulleted {
-    margin-bottom: 0.5em;
-    }
-.bulleted li {
-    margin: 0 0 0 2em;
-    list-style-type: disc;
-    }
-.horizontal {
-    margin: 1em 0 0 0;
-    }
-.horizontal li {
-    display: inline;
-    padding: 0 1.5em 0 0;
-    }
-.subordinate {
-    margin-left: 2em;
-    }
-ol.subordinate {
-    margin-left: 4em;
-    }
-.two-column-list dl {
-    width: 48%;
-    float: left;
-    display: inline;
-    margin: 0 0.25em 0 0;
-    }
-.two-column-list dl:first-child dt,
-.two-column-list dl:first-child + dl dt {
-    margin-top: 0;
-    }
-.three-column-list dl {
-    width: 31%;
-    float: left;
-    display: inline;
-    margin: 0 0.25em 0 0;
-    }
-.two-column-list li {
-    width: 48%;
-    float: left;
-    display: inline;
-    margin: 0 0.25em 0 0;
-    }
-.three-column-list li {
-    width: 31%;
-    float: left;
-    display: inline;
-    margin: 0 0.25em 0 0;
-    }
-.two-column-list:after,
-.three-column-list:after {
-    content: ".";
-    display: block;
-    height: 0;
-    clear: both;
-    visibility: hidden;
-    }
-.two-column-list dl.unseen,
-.two-column-list li.unseen,
-.three-column-list dl.unseen,
-.three-column-list li.unseen {
-    /* Keep the abilty to hide list entries. */
-    display: none;
-    }
-.portlet dd {
-    margin-bottom: 0.5em;
-    }
-.portlet dl strong {
-    color: #000;
-    font-weight: normal;
-    }
-.related {
-    /* Lists that link to related content. */
-    margin-top: 4em;
-    border-top: 1px solid #cbcbcb; /* matches color of mainarea_* images */
-    padding-top: 1em;
-    }
-.related ul {
-    list-style: none;
-    margin-left: 0 !important;
-    padding-left: 0 !important;
-    text-indent: 0.5em;
-    }
-.related ul.sourcepackage-links li.sourcepackage-not-dev-focus:before {
-    content: "";
-    display: inline-block;
-    width: 1.5em;
-    }
-.related ul.sourcepackage-links li.sourcepackage-dev-focus:before {
-    content: "⇒ ";
-    display: inline-block;
-    width: 1.5em;
-    }
-.related ul li:before {
-    content: "\00BB \0020";
-    }
-.gridflow {
-    /* A list that positions the items in a grid (like a table). */
-    margin: 0.0em;
-    padding: 0.0em;
-    }
-.gridflow ul {
-    margin: 0.5em 0.0em 0.5em 0.0em;
-    padding: 0.5em 0.0em 0.0em 0.0em;
-    }
-.gridflow li {
-    display: inline;
-    margin: 0.0em;
-    padding: 0.2em;
-    }
-.gridflow li span {
-    display: table-cell;
-    display: inline-table;
-    display: inline-block;
-    width: 192px;
-    text-align: center;
-    vertical-align: middle;
-    padding: 1em 1em 1em 0;
-    }
-
-
-/* =========================
-   Universal presentation
-   Block-table elements.
-*/
-caption {
-    caption-side: bottom;
-    text-align: left;
-    }
-th {
-    text-align: right;
-    }
-th, td {
-    vertical-align: baseline;
-    }
-.head th,
-thead th, tr.thead th {
-    text-align: left;
-    vertical-align: bottom;
-    }
-th.icon, td.icon {
-    vertical-align: top;
-    white-space: nowrap;
-    width: 1px;
-    }
-th.icon.left, td.icon.left {
-    padding-right: 0;
-    }
-th.icon.right, td.icon.right {
-    padding-left: 0;
-    }
-th.nowrap, td.nowrap {
-    white-space: nowrap;
-    }
-tfoot th, table.contributions th {
-    text-align: left;
-    }
-tr.white {
-    background-color: #fff;
-    }
-tr.shaded {
-    background-color: #f6f6f6;
-    }
-table .amount {
-    text-align: right;
-    }
-table.contributions th {
-    font-weight: normal;
-    }
-table.contributions td {
-    vertical-align: middle;
-    width: 16px;
-    text-align: left;
-    }
-table.latest th, table.latest td {
-    padding-bottom: 2em;
-    }
-table.duplicate.listing * {
-    color: #999;
-    }
-.table-actions:nth-child(2) {
-    /* text-align only works here because the <li> also has the
-       style display:inline.
-    */
-    text-align: right;
-    }
-.table-actions {
-    margin: 1em 0 0 0;
-    }
-.table-actions li {
-    display: inline;
-    padding: 0 1.5em 0 0;
-    }
-table.compressed {
-    width: auto;
-    }
-table.compressed td {
-    padding: 0.25em 0.5em;
-    }
-table.cozy-listing {
-    width: 20em;
-    background-color: #fff;
-    border: 1px solid #d2d2d2;
-    border-bottom: 1px solid #d2d2d2;
-    }
-table.cozy-listing td {
-    border: 1px #d2d2d2;
-    border-style: dotted none none none;
-    }
-table.sortable a.sortheader {
-    color: #666;
-    font-weight: bold;
-    text-decoration: none;
-    display: block;
-    }
-table.sortable img.sortarrow {
-    padding-left: 2px;
-    }
-th.ascending {
-    background-image: url(/@@/arrowDown);
-    background-position: center right;
-    background-repeat: no-repeat;
-    }
-th.descending {
-    background-image: url(/@@/arrowUp);
-    background-position: center right;
-    background-repeat: no-repeat;
-    }
-.sortkey, .revsortkey {
-    /* Used to indicate a value to be used to sort cells in a row */
-    display: none;
-    }
-table.listing {
-    margin: 0;
-    width: 100%;
-    }
-table.listing, table.listing tbody, table.listing td.end-of-section {
-    border-bottom: 1px solid #d2d2d2;
-    }
-table.listing th {
-    font-weight: bold;
-    }
-table.listing .head, table.listing .head th,
-table.listing thead, table.listing thead th, table.listing tfoot tr,
-table.listing tr.thead th {
-    border: 1px solid #d2d2d2;
-    background-color: #fff;
-    }
-table.listing tr.category {
-    border-bottom: 1px solid #d2d2d2;
-    }
-table.listing tr.category th, table.listing tr.category td {
-    padding-top: 1em;
-    }
-table.listing thead td,
-table.listing table tbody, table.listing table thead,
-table.listing table thead th, table.listing tfoot tr,
-table.listing table tfoot td, table.listing table td {
-    border: none;
-    }
-table.listing tfoot td {
-    border: 1px solid #d2d2d2;
-    }
-table.listing th, table.listing td {
-    padding: 0.25em;
-    }
-table.listing table th, table.listing table td {
-    /* We don't want extra padding on nested tables, like batch navigation. */
-    padding: 0;
-    }
-table.listing thead th, table.listing tr.thead th {
-    white-space: nowrap;
-    }
-table.listing td {
-    border: 1px #d2d2d2;
-    border-style: dotted none none none;
-    }
-table.listing .section-break td {
-    border-width: 1px 0 0 0;
-    border-style: solid;
-    border-color: #d2d2d2;
-    height: 1em;
-    }
-table.listing .note td {
-    border-style: none;
-    }
-table.listing img {
-    vertical-align: middle;
-    }
-table.listing tr.secondary th, table.listing tr.secondary td {
-    border-top: none;
-    }
-table.listing table.simple {
-    margin-left: 2em;
-    }
-table.listing table.simple td {
-    padding: 0.25em;
-    }
-table.listing .section-heading {
-    border: none;
-    padding-top: 1.5em;
-    }
-table.summary th, table.summary td,
-table.listing table.summary th, table.listing table.summary td {
-    /* Summary tables present information with subdued headers and a little
-       row spacing. */
-    padding: 0 0.5em 0.5em 0;
-    }
-table.summary th {
-    font-weight: normal;
-    }
-table.summary caption {
-    font-style: italic;
-    margin-left: 1em;
-    }
-table.summary ul, table.summary ul li {
-    list-style-position: inside;
-    margin: 0;
-    padding: 0;
-    }
-div.centered {
-    text-align: center;
-    }
-div.centered table {
-    margin: 0 auto;
-    text-align: left;
-    }
-.batch-navigation-links .next {
-    /* Next links have icons: */
-    background: center right no-repeat;
-    padding-right: 14px;
-    }
-.batch-navigation-links .next {
-    background-image: url(/@@/arrowRight);
-    }
-.batch-navigation-links .next.inactive {
-    background-image: url(/@@/arrowRight-inactive);
-    }
-.batch-navigation-links .inactive {
-    color: #999ea7;
-    }
-.batch-navigation-links .previous, .batch-navigation-links .next,
-.batch-navigation-links .last {
-    /* And all the links have spacing between them: */
-    margin-left: 0.25em;
-    }
-.batch-navigation-links .first, .batch-navigation-links .previous,
-.batch-navigation-links .next {
-    margin-right: 0.25em;
-    }
-.flowed-block {
-    display: table-cell;
-    display: inline-table;
-    display: inline-block;
-    text-align: left;
-    vertical-align: top;
-    }
-.results {
-    background-color: #f4f4f4;
-    padding: 2px 10px 5px 10px;
-    -webkit-border-bottom-right-radius: 4px;
-    -webkit-border-bottom-left-radius: 4px;
-    -moz-border-radius-bottomright: 4px;
-    -moz-border-radius-bottomleft: 4px;
-    border-bottom-right-radius: 4px;
-    border-bottom-left-radius: 4px;
-    }
-
-/* =========================
-   Universal presentation
-   Form elements.
-*/
-form {
-    margin-bottom: 1em;
-    }
-form h1 {
-    margin-bottom: 1em;
-    }
-form table th, form table td {
-    padding: 2px;
-    }
-form table tbody th {
-    font-weight: bold;
-    }
-form table label {
-    font-weight: bold;
-    }
-.compound {
-    margin-bottom: .5em;
-    }
-.field.subordinate label {
-    font-weight: normal;
-    }
-fieldset {
-    border-width: 2px 0 0;
-    margin: 1em 0;
-    padding: 1em 0 0;
-    }
-label {
-    white-space: nowrap;
-    }
-input[type='image'] {
-    vertical-align: middle;
-    }
-input {
-    visibility: inherit;
-    }
-input[type=radio] {
-    margin-left: 1em;
-    }
-input.urlTextType {
-    width: 40em;
-    }
-textarea {
-    display: block;
-    width: 90%;
-    max-width: 60em;
-    }
-button {
-    padding: 0;
-    }
-button.overlay-close-button {
-    float: right;
-    width: 15px;
-    height: 15px;
-    display: block;
-    margin-top: 4px;
-    }
-.fieldRequired, .fieldOptional {
-    color: #999;
-    }
-.field.subordinate {
-    margin-left: 2.6em;
-    }
-.formHelp {
-    max-width: 45em;
-    margin: 0.2em 0 0.5em 0.2em;
-    color: #777;
-    }
-.listbox {
-    /* a scrolling list of checkboxes or radio buttons */
-    border: 1px solid #8cacbb;
-    display: inline-block;
-    max-height: 12em;
-    overflow: auto;
-    overflow: -moz-scrollbars-vertical;
-    }
-.listbox label {
-    background-color: #f6f6f6;
-    border: solid white;
-    border-width: 0 0 1px 0;
-    display: block;
-    }
-.extra-form-buttons {
-    text-align: center;
-    padding-top: 1em;
-    white-space: nowrap;
-    }
-.extra-form-buttons button {
-    margin-right: 0.7em;
-    }
-.actions * {
-    /*
-      Action links are those that begin the process of doing something.
-      For example, "Register a branch", "Edit profile", "Link to CVE".
-      When presented inline, they are rendered by launchpad-inline-link.pt.
-
-      Action buttons are those that submit a multi-row form.
-      Often an action button will have an "or _Cancel_" link next to it.
-
-      We want 0.5em horizontal gap between links and buttons in these
-      sections. Using margin-left would cause a bad gap to the left of a
-      leftmost item. Using margin-right would cause a bad gap to the right of
-      a rightmost item. We could fix these problems with :first-child/:last-
-      child, but not in IE. So we do something a little tricky. We go ahead
-      and give each child of the actions container a right margin:
-    */
-    margin-right: 0.5em;
-    }
-.actions * * {
-    /* because ">" doesn't work in IE6 */
-    margin-right: 0;
-    }
-.actions {
-    /* Then in addition to the top/bottom margins of the actions container,
-       we give it a *negative* right margin, cancelling out that of the last
-       child. */
-    margin: 1em -0.5em 1em 0;
-    }
-table.radio-button-widget tr td {
-    /* Opera doesn't use the general tr above for the radio button table */
-    vertical-align: top;
-    }
-table.listing div.field>table {
-    /* Hack to add breathing room to bug status forms: */
-    margin-top: 0.5em;
-    }
-table.listing div.field>label,
-table.listing div.field>div>label,
-table.listing div.actions {
-    display: block;
-    margin-top: 1em;
-    }
-table.form, table.extra-options {
-    /* Many forms are laid out using tables, with appropriate spacing: */
-    /* http://launchpad.dev/firefox/+edit */
-    margin: 1em 0;
-    width: 100%;
-    }
-table.form th {
-    font-weight: normal;
-    }
-table.form th, table.form td,
-table.form table.extra-options td,
-table.form table.extra-options th {
-    padding-bottom: 1em;
-    }
-table.form table.listing th,
-table.form table.listing td {
-    padding-bottom: 0.25em;
-}
-table.form td td {
-    padding-bottom: 0;
-    }
-.long td {
-    /* Long forms are composed of multiple tables and visible fieldsets */
-    padding-right: 1em;
-    }
-.long fieldset {
-    margin-top: 1em;
-    }
-.long legend {
-    color: #666;
-    font-weight: bold;
-    }
-fieldset.collapsible {
-    /* Collapsible sections
-       Some page sections are hidden by default, expanded by clicking a link.
-       see lp.js:activate_collapsibles() */
-    border: none;
-    margin: 0;
-    padding: 16px 0 0; /* "Add a comment/attachment" form in bug reports */
-    }
-fieldset.collapsible h2 {
-    margin-top: 0;
-}
-fieldset .collapsed {
-    display: none;
-    }
-fieldset .expanded {
-    display: block;
-    }
-fieldset.collapsible legend {
-    font-weight: normal;
-    }
-.collapsible legend a, .collapsible legend a:hover {
-    text-decoration: none;
-    }
-img.collapseIcon {
-    text-decoration: none;
-    vertical-align: middle;
-    }
-.collapsible legend a span {
-    text-decoration: underline;
-    }
-.collapsed {
-    border: none;
-    margin-bottom: 0;
-    }
-.yui3-pretty-overlay #yui3-pretty-overlay-modal h1,
-.yui3-pretty-overlay #yui3-pretty-overlay-modal h2 {
-    /* lazr is injecting presumptive markup. */
-    color: #333;
-    margin-right: 15px;
-    }
-h1 .edit {
-    font-size: 12px;
-    position: relative;
-    top: -3px;
-    margin-left: 0.5em;
-    }
-.yui3-editable_text {
-    outline: none;
-    }
-.yui3-ieditor {
-    padding-right: 288px;
-    }
-.yui3-skin-sam .yui3-ieditor-input {
-    margin-top: 0;
-}
-h1 .yui3-ieditor-errors {
-    font-size: 12px;
-    }
-.steps h2 {
-    /* lazr is injecting presumptive markup. */
-    font-size: 12px;
-    line-height: 30px;
-    }
-.lazr-multiline-edit .yui3-ieditor {
-    padding-right: 0;
-    }
-.lazr-multiline-edit textarea {
-    max-width: inherit;
-    }
-.lazr-multiline-edit .clearfix h3 {
-    /* Undo the damage done by lazr. */
-    font-family: 'UbuntuBeta Regular', Ubuntu, 'Bitstream Vera Sans', 'DejaVu Sans', Tahoma, sans-serif;
-    line-height: 12px;
-    }
-.widget-hd.js-action {
-    /* The js-action class is also used for non-links, for example, with
-       expand/collapse sections. */
-    color: #093;
-    cursor: pointer;
-    }
-.widget-hd.js-action:hover {
-    text-decoration: underline;
-    }
-
-.yui3-ichoicesource-content .value:hover {
-    text-decoration: underline;
-    cursor: pointer;
-    }
-.yui3-buglisting-config-util a {
-    position: relative;
-    top: 3px;
-    left: 4px;
-    }
-.yui3-baseconfigutil a {
-    cursor: pointer;
-    }
-.yui3-buglisting-config-util-overlay a.close-button {
-    visibility: inherit;
-    }
-.yui3-buglisting-config-util-overlay form {
-    width: 80%;
-    }
-.yui3-buglisting-config-util-overlay div.yui3-lazr-formoverlay-actions {
-    text-align: left;
-    }
-.yui3-buglisting-config-util-overlay .reset-buglisting {
-    position: relative;
-    top: 20px;
-    left: 75px;
-    cursor: pointer;
-    }
-.error.message, .warning.message, .informational.message {
-    border: solid #666;
-    border-width: 1px 2px 2px 1px;
-    color: black;
-    margin: 1em auto 1em auto;
-    padding: 0 1em 1em 2em;
-    width: 30em;
-    }
-.error.message::before, .warning.message::before,
-.informational.message::before {
-    /* The alerts are preceded with an icon overlaying the top left corner: */
-    display: block;
-    margin: -15px 0 -6px -35px;
-    }
-.error {
-    /* Error messages are pink, with alerts having an error icon: */
-    background: #ffe4e4;
-    }
-.error.message::before {
-    content: url(/@@/error-large);
-    }
-.warning {
-    /* Warning messages are orange, with alerts having a warning icon: */
-    background: #fff59c;
-    }
-.warning.message::before {
-    content: url(/@@/warning-large);
-    }
-.informational {
-    /* Informational messages are blue-to-grey, alerts have an info icon. */
-
-    background: #d4e8ff url(/+icing/blue-fade-to-grey);
-    }
-.informational.message::before {
-    content: url(/@@/info-large);
-    }
-.informational p.last {
-    margin-bottom: 0;
-    }
-.debugging {
-    /* Debugging messages are white on grey, alerts have an info icon. */
-    background: #666;
-    color: white;
-    }
-.debugging.message::before {
-    content: url(/@@/info-large);
-    }
-.error .message {
-    /* And inside, the error message itself uses a smaller icon. */
-    background: url(/@@/error) center left no-repeat;
-    margin-bottom: 0.25em;
-    padding-left: 18px;
-    }
-table.form .error {
-    /* Form errors override this background color, because the lack of space
-       between the edge of fields and the edge of the color would look bad. */
-    background: none;
-    }
-.inline-warning {
-    /* Warning messages inlined in the page. */
-    color: red;
-    font-weight: bold;
-    }
-.sml-informational {
-    background: #d4e8ff url('/+icing/blue-fade-to-grey');
-    border: solid #666;
-    border-width: 1px 2px 2px 1px;
-    padding: 5px 5px 5px 5px;
-    width: 44em;
-    }
-.sml-informational::before {
-    content: url('/@@/info');
-    }
-.important-notice-popup {
-    padding: 1em 1em 0 1em;
-    width: auto;
-    overflow: hidden;
-    }
-.important-notice-container {
-    text-align: center;
-    width: 100%;
-    padding-bottom: 1em;
-    position: relative;
-    }
-.important-notice-balloon {
-    -moz-border-radius: 5px;
-    -o-border-radius: 5px;
-    -webkit-border-radius: 5px;
-    background-color: #ededed;
-    padding: 1em;
-    border: 1px solid #000;
-    width: auto;
-    overflow: hidden;
-    }
-.important-notice-buttons {
-    float: right;
-    }
-.important-notice-cancel-button {
-    visibility: hidden;
-    cursor: pointer;
-    }
-.important-notice {
-    padding: 0px 0px 40px 0px;
-    height: 32px;
-    overflow: hidden;
-    }
-.important-notice a {
-    font-weight: bold;
-    text-decoration: underline;
-    }
-
-
-/* =========================
-   Common presentations
-   These appear to be 3.0 specific.
-*/
-div.see-all {
-    text-align: right;
-    }
-span.nolink {
-    font-weight: bold;
-    }
-span.see-all {
-    float: right;
-    }
-.see-all a {
-    padding-left: 8px;
-    background: inherit;
-    font-size: 12px;
-    text-decoration: underline;
-    }
-.unseen, .hidden {
-    display: none;
-    }
-.invisible-link {
-    display: none;
-    }
-.invisible {
-    left: -9999em;
-    display: block;
-    }
-.transparent {
-  opacity: 0;
-  filter: alpha(opacity=0);
-  -ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=0)";
-}
-.rss-right {
-    background: url(/@@/rss.png) right center no-repeat;
-    }
-.logo {
-    float: left;
-    display: inline;
-    width: 64px;
-    height: 64px;
-    margin: 0 5px 0 0;
-    }
-.registered {
-    color: #666;
-    }
-.description {
-    clear: both;
-    }
-.search-results {
-    margin-top: 1em;
-    }
-.top-portlet .summary {
-    margin: 0 0 1em 0;
-    font-size: 16px; /* Same as h3, this appears under a h1. */
-    }
-.main-portlet {
-    margin: 1em 0 1em 0;
-    }
-.pre {
-    white-space: pre;
-    }
-.clearfix:after {
-    /* use class="clearfix" whenever floats should be enclosed */
-    content: ".";
-    display: block;
-    height: 0;
-    clear: both;
-    visibility: hidden;
-    }
-* html .clearfix {
-    /* Work around float bug in MSIE */
-    height: 1%;
-    }
-div.beta {
-    background-color: #c24848;
-    margin-bottom: 7px;
-    margin-top: 7px;
-    height: 10px;
-    width: 175px;
-    }
-div.beta img {
-    height: 10px;
-    }
-
-/* =========================
-   Universal
-   Header
-*/
-.demo {
-    background-color: #fee;
-    }
-.login-logout {
-    position: absolute;
-    top: .5em;
-    right: 1.5em;
-    }
-#rendertime {
-    float: left;
-    margin: 0.1em 1.2em 0 0;
-    color: #666;
-    font-size: 10px;
-    }
-#ajax-time {
-    float: left;
-    margin: 0 1.2em 0 0.2em;
-    position: relative;
-    }
-#ajax-time-list {
-    position: absolute;
-    z-index: 10;
-    top: 20px;
-    right: 0;
-    width: 200px;
-    background-color: #f2f2f2;
-    border: 2px solid #fff;
-    -moz-box-shadow: 0 0 5px rgba(0, 0, 0, 0.3);
-    -webkit-box-shadow: 0 0 5px rgba(0, 0, 0, 0.3);
-    box-shadow: 0 0 5px rgba(0, 0, 0, 0.3);
-    -webkit-border-radius: 4px;
-    -moz-border-radius: 4px;
-    border-radius: 4px;
-    }
-#ajax-time-list li {
-    border-bottom: 1px solid #e0e0e0;
-    padding: 3px 5px;
-    }
-#ajax-time-list li:last-child {
-    border-bottom: none;
-    }
-#ajax-time-list li span {
-    color: #999;
-    font-size: 11px;
-    display: block;
-    }
-#ajax-time-list strong.warning {
-    color: #f00;
-    background-color: transparent;
-    }
-div.watermark-apps-portlet {
-    clear: both;
-    margin-bottom: .5em;
-    white-space: no-wrap;
-    }
-div.watermark-apps-portlet .wide {
-    width: 75%;
-    vertical-align: bottom;
-    margin-bottom: 0.3em;
-    }
-div.watermark-apps-portlet img {
-    margin: 0 1.5em 0 0;
-    }
-div.watermark-apps-portlet h1, div.watermark-apps-portlet h2 {
-    margin-top: 0px;
-    margin-bottom: 6px;
-    color: #000000;
-    font-weight: bold;
-    font-size: 30px;
-    line-height: 34px;
-    clear: none;
-    }
-div.watermark-apps-portlet span img {
-    float: none;
-    margin: 0;
-    font-weight: bold;
-    clear: none;
-    }
-.watermark-apps-portlet li {
-    display: inline;
-    list-style-type: none;
-    }
-.watermark-apps-portlet li a, .watermark-apps-portlet li span {
-    padding: 0.3em 0.5em;
-    margin-right: 0.4em;
-    }
-.watermark-apps-portlet li:first-child a,
-.watermark-apps-portlet li:first-child span {
-    /* The text of the first tab should align with the heading directly
-       above it */
-    margin-left: -0.5em;
-    }
-.watermark-apps-portlet li a:link, .watermark-apps-portlet li a:visited {
-    color: #000;
-    background-color: #fff;
-    text-decoration: none;
-    }
-.watermark-apps-portlet li.active a, .watermark-apps-portlet li.active span {
-    font-weight: bold;
-    color: #fff;
-    background-color: #747474;
-    }
-.watermark-apps-portlet li a:hover {
-    color: #000;
-    background-color: #f3f3f3;
-    }
-.watermark-apps-portlet li.disabled-tab {
-    color: #747474;
-    }
-.facetmenu {
-    /* Facet menu, a.k.a. application tabs */
-    width: 100%;
-    white-space: nowrap;
-    }
-.context-publication {
-    margin-bottom: 1em;
-    }
-.registering {
-    /* Registered slot */
-    margin: .5em 0 1em 0;
-    font-size: 10px;
-    color: #666;
-    }
-.breadcrumbs {
-    margin-left: 0;
-    list-style-type: none;
-    clear: both;
-    font-size: 10px;
-    }
-.breadcrumbs li {
-    display: inline;
-    padding: 0;
-    }
-.breadcrumbs li a {
-    color: #494949;
-    }
-.breadcrumbs li:after {
-    content: "\00BB \0020"
-    }
-.breadcrumbs li:last-child {
-    /* The following leaves a small margin in chrome/webkit, but using none
-       doesn't hide the » in webkit either (both work for FF3.5). */
-    font-weight: bold;
-    }
-.breadcrumbs li:last-child:after {
-    content: '';
-    }
-#logincontrol {
-    /* Top right of the page is a link to log in or a button to log out: */
-    float: right;
-    }
-#logincontrol img {
-    /* align the image with the text */
-    margin-bottom: -2px;
-    }
-#logincontrol form {
-    margin: 0;
-    }
-#logincontrol input[type='submit'] {
-    /* The button lacks the right margin that buttons usually have: */
-    font-size: 10px;
-    margin-right: 0;
-    }
-
-
-/* =========================
-   Universal
-   Side portlets
-*/
-.side {
-    padding: 0.5em;
-    }
-.side .portlet {
-    width: 90%;
-    margin: 0 auto 1em;
-    border: 1px solid #dedede;
-    -moz-border-radius: 5px;
-    -webkit-border-radius: 5px;
-    -khtml-border-radius: 5px;
-    border-radius: 5px;
-    padding: 0.5em;
-    background: #fbfbfb;
-    }
-.side h2 {
-    font-size: 16px;
-    line-height: 20px;
-    }
-.side h3 {
-    font-size: 14px;
-    line-height: 18px;
-    }
-.side ul {
-    background: #fbfbfb;
-    }
-#privacy.private {
-    background: url(/@@/private-bg) top left repeat-x; /* 8px high */
-    padding-top: 12px; /* = 8px + the usual 4px top padding */
-    }
-/* Override for when the feature flag is active */
-.feature-flag-bugs-private-notification-enabled #privacy.private {
-    background-image: none;
-    background-color: #FBFBFB;
-    padding-top: 0.5em;
-    }
-.downloads li {
-    margin: 0;
-    padding: 2px 0 0;
-    font-weight: bold;
-    }
-.downloads li a {
-    display: block;
-    margin: 0;
-    border: 1px solid #4f843c;
-    -moz-border-radius: 3px;
-    -webkit-border-radius: 3px;
-    -khtml-border-radius: 3px;
-    border-radius: 3px;
-    background: #4f843c url(/@@/bg-project-downloads.png) center right no-repeat;
-    padding: 6%;
-    padding-right: 40px;
-    color: #fff;
-    }
-.downloads .version {
-    -moz-border-radius: 5px 5px 0 0;
-    -webkit-border-radius: 5px 5px 0 0;
-    -khtml-border-radius: 5px 5px 0 0;
-    border-radius: 5px 5px 0 0;
-    background: #d3e3c7;
-    padding: 0.2em 1em;
-    }
-.downloads .released {
-    margin: .3em 0 .5em 0;
-    -moz-border-radius: 0 0 5px 5px;
-    -webkit-border-radius: 0 0 5px 5px;
-    -khtml-border-radius: 0 0 5px 5px;
-    border-radius: 0 0 5px 5px;
-    background: #d3e3c7;
-    padding: 0.2em 1em;
-    }
-.downloads .alternate {
-    padding: 0 0 0 1em;
-    }
-.involvement li {
-    border-top: 1px solid #d0d0d0;
-    padding: 0;
-    font-weight: bold;
-    }
-.involvement li.single {
-    border-top: 0;
-}
-.involvement a {
-    display: block;
-    padding: 0.3em;
-    }
-.involvement li.disabled {
-    color: #cccccc;
-    }
-.involvement-service-links li.disabled img {
-    margin-bottom: 0;
-    }
-.involvement-service-links li.disabled span {
-    margin-bottom: 0;
-    }
-.involvement-service-links li.disabled table {
-    padding-top: 0.3em;
-    padding-bottom: 0.3em;
-    }
-.involvement a.bugs, .involvement a.answers,
-.involvement a.translations, .involvement a.code, .involvement a.blueprints {
-    background: url(/@@/answers-arrow-right.png) right center no-repeat;
-    }
-.involvement a:hover {
-    text-decoration: none;
-    background-color: #eee;
-    }
-.announcements li {
-    margin-bottom: 0.5em;
-    /* Some announcements have long strings of characters as section headers
-     * and such.  Since they don't have whitespace they can't wrap, so they
-     * would break out of their container if we didn't clip them here. */
-    overflow: hidden;
-    }
-.announcements li strong,
-.announcements li a {
-    font-weight: bold;
-    }
-.latest-announcement {
-    padding: 0.5em;
-    background: #dfe5f6;
-    border-top: 1px solid #d0d0d0;
-    border-bottom: 1px solid #d0d0d0;
-    }
-.announcement .registered {
-    margin-top: -2px;
-    }
-
-
-/* =========================
-   Universal
-   Help pane
-*/
-#help-pane {
-    /* Inline help is dynamically positioned by JavaScript.
-       This should appear above all other content.  Needs to be
-       above the Google Maps element on the profile pages, which
-       has a z-index of 9999.  See bug #380349. */
-    position: absolute;
-    border: 1px solid black;
-    padding: 1px 1px 5px 10px;
-    z-index: 11000;
-    background-color: #fff;
-    width: 600px; /* based on the help wiki, should change later */
-    }
-#help-pane.invisible {
-    /* We want the hidden pane to have dimensions so that we can position the
-       frame with them.  This works because the element an absolute position,
-       taking it out of the page flow. */
-    position: absolute;
-    visibility: hidden;
-    display: block;
-    left: 0px;
-    top: 0px;
-    }
-#help-body {
-    background: url(/@@/spinner) no-repeat center center;
-    }
-#help-pane iframe {
-    width: 100%;
-    height: 300px;
-    border: 0;
-    }
-#help-pane iframe.invisible {
-    visibility: hidden;
-    display: block;
-    }
-#help-footer {
-    padding: 3px;
-    border-top: 1px solid #ddd;
-    text-align: right;
-    }
-#help-footer button {
-    margin-bottom: 10px;
-    margin-top: 3px;
-    }
-span.help {
-    font-weight: normal;
-    }
-
-
-/* =========================
-   Universal presentation
-   Colors and fonts
-*/
-
-.exception {
-    color: #cc0000;
-    }
-.highlight {
-    background: #ddd;
-    border: 1px solid #ddd;
-    }
-.lowlight {
-    opacity: .5;
-    filter: alpha(opacity=50);
-    -ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=50)";
-}
-
-
-.questionstatusOPEN {
-    color: #000;
-    }
-.questionstatusNEEDSINFO {
-    /* brown */
-    color: #930;
-    }
-.questionstatusANSWERED {
-    /* grey-green */
-    color: #363;
-    }
-.questionstatusSOLVED {
-    color: #090;
-    }
-.questionstatusEXPIRED {
-    color: #666;
-    }
-.questionstatusINVALID {
-    color: #c00;
-    }
-
-
-.specstatusAPPROVED, .specstatusAPPROVED a {
-    color: green;
-    }
-.specstatusPENDINGAPPROVAL, .specstatusPENDINGAPPROVAL a,
-.specstatusPENDINGREVIEW, .specstatusPENDINGREVIEW a {
-    color: #f09;
-    }
-.specstatusDRAFT, .specstatusDRAFT a,
-.specstatusDISCUSSION, .specstatusDISCUSSION a {
-    color: #930;
-    }
-.specstatusNEW, .specstatusNEW a {
-    color: red;
-    }
-.specstatusSUPERSEDED, .specstatusSUPERSEDED a,
-.specstatusOBSOLETE, .specstatusOBSOLETE a,
-.specpriorityNOTFORUS, .specpriorityNOTFORUS a,
-.specpriorityUNDEFINED, .specpriorityUNDEFINED a {
-    color: gray;
-    }
-.specpriorityLOW, .specpriorityLOW a {
-    color: black;
-    }
-.specpriorityMEDIUM, .specpriorityMEDIUM a {
-    color: #f60;
-    }
-.specpriorityHIGH, .specpriorityHIGH a,
-.specpriorityESSENTIAL, .specpriorityESSENTIAL a {
-    color: red;
-    }
-.specdeliveryUNKNOWN, .specdeliveryUNKNOWN a,
-.specdeliveryNOTSTARTED, .specdeliveryNOTSTARTED a {
-    color: gray;
-    }
-.specdeliveryDEFERRED, .specdeliveryDEFERRED a,
-.specdeliveryNEEDSINFRASTUCTURE, .specdeliveryNEEDSINFRASTUCTURE a,
-.specdeliveryBLOCKED, .specdeliveryBLOCKED a {
-    color: red;
-    }
-.specdeliverySTARTED, .specdeliverySTARTED a,
-.specdeliveryGOOD, .specdeliveryGOOD a {
-    color: blue;
-    }
-.specdeliverySLOW, .specdeliverySLOW a {
-    color: red;
-    }
-.specdeliveryBETA, .specdeliveryBETA a {
-    color: #f60;
-    }
-.specdeliveryNEEDSREVIEW, .specdeliveryNEEDSREVIEW a {
-    color: purple;
-    }
-.specdeliveryAWAITINGDEPLOYMENT, .specdeliveryAWAITINGDEPLOYMENT a {
-    color: red;
-    }
-.specdeliveryIMPLEMENTED, .specdeliveryIMPLEMENTED a,
-.specdeliveryINFORMATIONAL, .specdeliveryINFORMATIONAL a {
-    color: green;
-    }
-
-
-.bug-activity {
-    color: #555;
-    }
-.statusNEW, .statusNEW a {
-    color: #930;
-    }
-.statusINCOMPLETE, .statusINCOMPLETE a,
-.statusCONFIRMED, .statusCONFIRMED a {
-    color: red;
-    }
-.statusTRIAGED, .statusTRIAGED a {
-    color: #f60;
-    }
-.statusINPROGRESS, .statusINPROGRESS a {
-    color: black;
-    }
-.statusFIXCOMMITTED, .statusFIXCOMMITTED a {
-    color: #050;
-    }
-.statusFIXRELEASED, .statusFIXRELEASED a {
-    color: green;
-    }
-.statusINVALID, .statusINVALID a,
-.statusWONTFIX, .statusWONTFIX a {
-    color: gray;
-    }
-.importanceCRITICAL, .importanceCRITICAL a {
-    color: red;
-    }
-.importanceHIGH, .importanceHIGH a {
-    color: #f60;
-    }
-.importanceMEDIUM, .importanceMEDIUM a {
-    color: green;
-    }
-.importanceLOW, .importanceLOW a {
-    color: black;
-    }
-.importanceWISHLIST, .importanceWISHLIST a {
-    color: blue;
-    }
-.importanceUNDECIDED, .importanceUNDECIDED a {
-    color: #999;
-    }
-#client-listing .importanceCRITICAL, #client-listing .importanceCRITICAL a {
-    background: red;
-    color: white;
-    }
-#client-listing .importanceHIGH, #client-listing .importanceHIGH a {
-    background:#f60;
-    color: white;
-    }
-#client-listing .importanceMEDIUM, #client-listing .importanceMEDIUM a {
-    background: green;
-    color: white;
-    }
-#client-listing .importanceLOW, #client-listing .importanceLOW a {
-    background: black;
-    color: white;
-    }
-#client-listing .importanceWISHLIST, #client-listing .importanceWISHLIST a {
-    background: blue;
-    color: white;
-    }
-#client-listing .importanceUNDECIDED, #client-listing .importanceUNDECIDED a {
-    background: #999;
-    color: white;
-    }
-
-.status :link, .importance :link {
-    text-decoration: none;
-    }
-a.official-tag {
-    /* Looks just like a normal link  */
-    }
-a.unofficial-tag {
-    color: #6699ee;
-    }
-
-
-.vcsimportSUCCESS {
-    /* inherited text color */
-    }
-.vcsimportFAILURE {
-    color: Red;
-    }
-.greylink a:link, .greylink a:visited {
-    color: gray;
-    }
-.stale-diff {
-    color: #f60;
-    }
-.conflicts-diff {
-    color: red;
-    }
-.branchstatusMATURE, .branchstatusMATURE a {
-    color: #090;
-    }
-.branchstatusDEVELOPMENT, .branchstatusDEVELOPMENT a {
-    color: #900;
-    }
-.branchstatusEXPERIMENTAL, .branchstatusEXPERIMENTAL a {
-    color: #930;
-    }
-.branchstatusMERGED, .branchstatusMERGED a,
-.branchstatusABANDONED, .branchstatusABANDONED a {
-    color: gray;
-    }
-.branchstatusNEW, .branchstatusNEW a {
-    color: black;
-    }
-.voteAPPROVE {
-    color: green;
-    }
-.voteNEEDS_FIXING {
-    color: #930;
-    }
-.voteDISAPPROVE,
-.voteRESUBMIT {
-    color: red;
-    }
-.voteABSTAIN {
-    color: #bebebe;
-    }
-.votePENDING {
-    color: #f60;
-    }
-.mergestatusWORK_IN_PROGRESS, .mergestatusWORK_IN_PROGRESS a {
-    color: black;
-    }
-.mergestatusNEEDS_REVIEW, .mergestatusNEEDS_REVIEW a {
-    color: #f60;
-    }
-.mergestatusCODE_APPROVED, .mergestatusCODE_APPROVED a,
-.mergestatusMERGED, .mergestatusMERGED a {
-    color: green;
-    }
-.mergestatusREJECTED, .mergestatusREJECTED a,
-.mergestatusMERGE_FAILED, .mergestatusMERGE_FAILED a {
-    color: red;
-    }
-.mergestatusQUEUED, .mergestatusQUEUED a {
-    color: black;
-    }
-.mergestatusSUPERSEDED, .mergestatusSUPERSEDED a {
-    color: #bebebe;
-    }
-.codeimportNEW {
-    color: #930;
-    }
-.codeimportREVIEWED {
-    color: green;
-    }
-.codeimportINVALID,
-.codeimportSUSPENDED,
-.codeimportFAILING {
-    color: red;
-    }
-
-
-.translationimportstatusAPPROVED,
-.translationimportstatusAPPROVED a {
-    color: #050;
-    }
-.translationimportstatusIMPORTED,
-.translationimportstatusIMPORTED a {
-    color: green;
-    }
-.translationimportstatusDELETED,
-.translationimportstatusDELETED a {
-    color: black;
-    }
-.translationimportstatusFAILED,
-.translationimportstatusFAILED a {
-    color: red;
-    }
-.translationimportstatusNEEDS_REVIEW,
-.translationimportstatusNEEDS_REVIEW a {
-    color: #f60;
-    }
-.translationimportstatusBLOCKED,
-.translationimportstatusBLOCKED a {
-    color: blue;
-    }
-.translationimportstatusNEEDS_INFORMATION,
-.translationimportstatusNEEDS_INFORMATION a {
-    color: maroon;
-    }
-
-
-
-.distromirrorstatusUP,
-.distromirrorstatusONEHOURBEHIND,
-.distromirrorstatusTWOHOURSBEHIND,
-.distromirrorstatusFOURHOURSBEHIND,
-.distromirrorstatusSIXHOURSBEHIND {
-    color: green;
-    }
-.distromirrorstatusONEDAYBEHIND {
-    color: #f60;
-    }
-.distromirrorstatusTWODAYSBEHIND,
-.distromirrorstatusONEWEEKBEHIND {
-    color: red;
-    }
-.distromirrorstatusUNKNOWN {
-    color: #bebebe;
-    }
-.buildstatusNEEDSBUILD {
-    color: gray;
-    }
-.buildstatusBUILDING {
-    color: black;
-    }
-.buildstatusFULLYBUILT {
-    color: green;
-    }
-.buildstatusFAILEDTOBUILD,
-.buildstatusMANUALDEPWAIT,
-.buildstatusCHROOTWAIT,
-.buildstatusSUPERSEDED,
-.buildstatusFAILEDTOUPLOAD {
-    color: red;
-    }
-
-
-.launchpad-gold {
-    color: #F8C300;
-    }
-
-.discreet, .lesser, .duplicate-details {
-    font-size: 10px;
-    clear: left;
-    }
-pre.changelog, table.diff,
-.bug-comment, .bug-activity, .codereviewcomment {
-    font-family: 'UbuntuBeta Mono', 'Ubuntu Mono', monospace;
-    }
-.cloud-size-smallest {
-    font-size: 10px;
-    }
-.cloud-size-small {
-    font-size: 12px;
-    }
-.cloud-size-medium {
-    font-size: 14px;
-    }
-.cloud-size-large {
-    font-size: 16px;
-    }
-.cloud-size-largest {
-    font-size: 18px;
-    }
-.cloud-dark {
-    color: #00f;
-    }
-.cloud-medium {
-    color: #7878ff;
-    }
-.cloud-light {
-    color: #b8b8ff;
-    }
-
-/* Inline description editing.
- * Override the lazr-js style for all uses.
- */
-div#edit-description,
-div#edit-commit_message {
-    font-family: 'UbuntuBeta Mono', 'Ubuntu Mono', monospace;
-    margin: 1em 0;
-    }
-
-.yui3-ieditor-multiline .yui3-ieditor-input {
-    top: 0;
-    }
-
-
-/* =========================
-   Universal presentation
-   Sprites
-*/
-.sprite {
-    padding: 0px 0 0px 18px;
-    line-height: 18px;
-    }
-.sprite-after {
-    padding: 2px 18px 0 0;
-    }
-h1 a.sprite, h2 a.sprite, h3 a.sprite {
-    font-size: 12px;
-    }
-.icon-only {
-    border: 0;
-    padding: 0;
-    width: 14px;
-    }
-div.icon-only {
-    height: 14px;
-    }
-input[type="submit"].icon-only {
-    height: 14px;
-    background-color: inherit;
-    cursor: pointer;
-    }
-span.icon-only {
-    padding-right: 14px;
-    line-height: 14px;
-    }
-.vertical .sprite {
-    /* XXX: EdwinGrubbs 2009-10-29 bug=463032
-       The reduced padding is only necessary to prevent parts of the
-       adjacent sprites in the consolidated image from appearing
-       when the line wraps and the default font size is 16.
-    */
-    padding-bottom: 0px;
-    display: inline-block;
-    min-height: 16px;
-    width: 90%;
-    }
-.vertical .sprite:first-line {
-    line-height: 12px;
-    }
-body.tab-bugs #portlet-subscribers .sprite {
-    /* XXX: mars 2009-11-22 bug=484848
-      Override the styling in the Bug Subscribers portlet.  Trying to display
-      as inline-block is of little use, as the maximum name width is 20
-      characters, and we are unlikely to wrap the text. Not to mention that
-      setting the display in this way breaks the icons.
-    */
-    display: inline;
-    }
-body.tab-bugs #duplicate-actions .sprite {
-    /* Override sprite style for edit icon on "Mark as duplicate"
-       to make the text not appear on a second line.
-    */
-    display: inline;
-    }
-
-/* Picker styles */
-.yui3-picker {
-    width: 40%;
-    }
-
-.yui3-picker-results div.badge {
-    position: absolute;
-    top: 3px;
-    right: 3px;
-    left: auto;
-    }
-.yui3-picker-results div.badge img {
-    position: relative;
-    padding-left: 3px;
-    padding-right: 0.5em;
-    }
-.yui3-picker-results div.affiliation img {
-    position: relative;
-    padding-left: 3px;
-    padding-right: 0.5em;
-    }
-.yui3-picker-results .affiliation-text {
-    padding-left: 20px;
-    }
-.yui3-picker-filter div {
-    padding-bottom: 1em;
-    }
-
-/* ====================
-   Global notifications
-*/
-/* Move the content down so the notification banner doesn't hide any content. */
-body.global-notification-visible {
-    padding-top: 40px;
-    }
-body.global-notification-visible .login-logout {
-    top: 45px;
-    }
-.global-notification {
-    position: fixed;
-    z-index: 10;
-    top: 0;
-    left: 0;
-    right: 0;
-    padding: 8px 20px;
-    /* Define colour for browsers that don't support transparency */
-    background-color: #8d1f1f;
-    /* Set transparent background for browsers that support it */
-    background-color: rgba(125,0,0,0.9);
-    color: #fff;
-    text-shadow: 0 -1px 0 #631616;
-    font-size: 14px;
-    line-height: 21px;
-    font-weight: bold;
-    -moz-box-shadow: 0 0 5px #333;
-    -webkit-box-shadow: 0 0 5px #333;
-    box-shadow: 0 0 5px #333;
-    }
-.global-notification .sprite.notification-private {
-    float: left;
-    display: inline-block;
-    height: 21px;
-    width: 20px;
-    margin-right: 10px;
-    padding: 0;
-    }
-.global-notification-close, .global-notification-close:active,
-.global-notification-close:visited {
-    color: #e47a7a;
-    }
-.global-notification-close {
-    display: block;
-    position: absolute;
-    top: 11px;
-    right: 20px;
-    font-size: 12px;
-    font-weight: normal;
-    line-height: 14px;
-    }
-.global-notification-close .sprite.notification-close {
-    float: right;
-    display: block;
-    height: 9px;
-    width: 8px;
-    margin: 3px 0 0 7px;
-    padding: 0;
-    }
-
-/* ===========
-   Beta banner
-*/
-.beta-banner {
-    position: fixed;
-    z-index: 9;
-    top: 0;
-    left: 0;
-    right: 0;
-    padding: 8px 20px;
-    /* Define colour for browsers that don't support transparency */
-    background-color: #606060;
-    /* Set transparent background for browsers that support it */
-    background-color: rgba(64, 64, 64,0.9);
-    color: #fff;
-    font-size: 14px;
-    line-height: 21px;
-    }
-.beta-banner .info-link {
-    color: #4884ef;
-}
-.beta-warning {
-    padding: 4px;
-    margin-right: 8px;
-    background-color: #be0000;
-    font-weight: bold;
-    }
-.beta-feature {
-    font-weight: bold;
-    }
-
-
-/*
- * YOU HAVE REACHED THE END OF THIS FILE. IF YOU SEE ANYTHING BELOW SPRITES
- * YOU SHOULD WORK TO GET IT OUT OF THIS GLOBAL STYLE SHEET.
- */
-
-
-/* ========
-   Registry
-*/
-div.yui-timelinegraph-content .yui-timelinegraph-zoom-box {
-    visibility: hidden;
-    }
-div.yui-timelinegraph-content:hover .yui-timelinegraph-zoom-box {
-    visibility: visible;
-    }
-
-
-/* ====
-   Bugs
-*/
-
-tr.bug-branch-summary td {
-    padding: 0px 6px;
-    }
-tr.bug-branch-summary td.first {
-    padding-left: 0px;
-    }
-
-
-/* =====
-   Soyuz
-*/
-
-ul.latest-ppa-updates li {
-    padding: 3px;
-    background-repeat: no-repeat;
-    background-position: right center;
-    }
-table#packages_list tr.superseded, tr.blacklisted {
-    background-color: #eee;
-    }
-ul.latest-ppa-updates li:nth-child(odd) {
-    /* The following could be generalised for use to the following selector:
-       .side .portlet li.nth-child(odd)
-       if needed. */
-    border-top: 1px solid #dedede;
-    border-bottom: 1px solid #dedede;
-    background-color: #eeeeff;
-    }
-ul.latest-ppa-updates li.FULLYBUILT {
-    background-image: url('/@@/yes');
-    }
-ul.latest-ppa-updates li.FULLYBUILT_PENDING {
-    background-image: url('/@@/build-success-publishing');
-    }
-ul.latest-ppa-updates li.NEEDSBUILD {
-    background-image: url('/@@/build-needed');
-    }
-ul.latest-ppa-updates li.FAILEDTOBUILD {
-    background-image: url('/@@/build-failed');
-    }
-ul.latest-ppa-updates li.BUILDING {
-    background-image: url('/@@/processing');
-    }
-
-.package-diff-status span.COMPLETED {
-    background-image: url('/@@/packagediff-ok');
-    background-position: 0 0;
-    background-repeat: no-repeat;
-     }
-.package-diff-status span.PENDING {
-    background-image: url('/@@/packagediff-loading');
-    background-position: 0 0;
-    background-repeat: no-repeat;
-    }
-.package-diff-status span.FAILED {
-    background-image: url('/@@/packagediff-failed');
-    background-position: 0 0;
-    background-repeat: no-repeat;
-    }
-.package-diff-status span.request-derived-diff {
-    background-image: url('/@@/packagediff-unknown');
-    background-position: 0 0;
-    background-repeat: no-repeat;
-    }
-
-/* ====
-   Code
-*/
-table.code {
-    margin-bottom: 1em;
-    }
-table.code th {
-    text-align: left;
-    font-weight: bold;
-    }
-table.code th, table.code td {
-    padding-right: 3em;
-    }
-
-
-/* ============
-   Translations
-*/
-
-/* ==== Translations hand-made forms ==== */
-
-form.translations div.fields {
-    padding: 1em;
-    }
-form.translations div.actions {
-    padding: 1em;
-    text-align: left;
-    clear: both;
-    }
-form.translations input {
-    padding-left: 0.5em;
-    padding-right: 0.5em;
-    }
-form.translations select {
-    margin-left: 0.5em;
-    padding-right: 0.5em;
-    }
-form.translations label {
-    padding-left: 0.5em;
-    padding-right: 1em;
-    }
-form.translations .listbox label {
-    padding: 2px 1em 2px 2px;
-    }
-
-/* Provide top-alignment for radio boxes and longer explanations
- * without using tables.
- *
- * Examples:
- *   https://translations.launchpad.dev/evolution/trunk/+pots/evolution-2.2/es/+upload
- *   https://translations.launchpad.dev/evolution/trunk/+pots/evolution-2.2/+export
- */
-form.translations div.alignment .content {
-    float: left;
-    }
-form.translations div.alignment .selector {
-    margin-right: 0.5em;
-    float: left;
-    clear: both;
-    }
-form.translations div.alignment .content label {
-    padding: 0px;
-    margin: 0px;
-    font-weight: bold;
-    }
-form.translations div.alignment .secondary label {
-    font-weight: normal;
-    padding: 2px 1em 2px 2px;
-    }
-
-/* Templates listing.
- *
- * Examples:
- *   https://translations.launchpad.dev/ubuntu/hoary/+templates
- *   https://translations.launchpad.dev/evolution/trunk/+templates
- */
-.inactive-template td {
-    background-color: #fee;
-    color: #855;
-    }
-
-
-/* Translations statistics and legend.
- *
- * Examples:
- *   https://translations.launchpad.dev/ubuntu/hoary/+lang/es
- *   https://translations.launchpad.dev/evolution/trunk/+lang/es
- */
-
-div.translations-legend {
-    padding-top: 2em;
-    padding-bottom: 1em;
-    }
-table.translation-stats td {
-    text-align: center;
-    }
-table.translation-stats td.template-name {
-    text-align: left;
-    }
-table.translation-stats tfoot td,
-table.translation-stats tfoot th {
-    background-color: #f7f7f7;
-    border: 0px;
-    border-top: 2px solid #d2d2d2;
-    border-bottom: 2px solid #d2d2d2;
-    padding-top: 5px;
-    padding-bottom: 5px;
-    font-weight: bold;
-    }
-table.translation-stats tfoot th {
-    text-align: left;
-    }
-table.translation-stats tfoot td {
-    text-align: center;
-    }
-
-/* Translations help links.
- *
- * Examples:
- *   https://translations.launchpad.dev/ubuntu/hoary/+source/evolution/+pots/evolution-2.2/
- *   https://translations.launchpad.dev/ubuntu/hoary/+source/evolution/+translations
- *   https://translations.launchpad.dev/ubuntu/hoary/
- *
- */
-div.translation-help-links a {
-    float: right;
-    }
-div.translation-help-links div {
-    clear: both;
-    }
-/* Message boxes (especially error boxes) should be visible above other
- * elments. */
-.yui3-activator-message-box {
-    z-index: 9999;
-    }

=== modified file 'lib/canonical/launchpad/icing/style.css'
--- lib/canonical/launchpad/icing/style.css	2011-11-11 21:02:22 +0000
+++ lib/canonical/launchpad/icing/style.css	2011-11-18 05:36:26 +0000
@@ -22,6 +22,18 @@
 ...
 */
 
+/* Inline description editing.
+ * Override the lazr-js style for all uses.
+ */
+div#edit-description,
+div#edit-commit_message {
+    font-family: 'UbuntuBeta Mono', 'Ubuntu Mono', monospace;
+    margin: 1em 0;
+    }
+
+.yui3-ieditor-multiline .yui3-ieditor-input {
+    top: 0;
+    }
 
 /* === Fonts and colors === */
 
@@ -36,15 +48,6 @@
     margin-bottom: 0.2em;
 }
 
-/* Using colored text as you wish. */
-.green {
-    color: green;
-}
-
-.red {
-    color: red;
-}
-
 .helpwanted {
     background-color: #fafca9;
     border: 1px solid black;
@@ -273,6 +276,60 @@
 /* Soyuz-related styles (that don't have a facet, but generally are
  * under Overview)
  */
+
+ul.latest-ppa-updates li {
+    padding: 3px;
+    background-repeat: no-repeat;
+    background-position: right center;
+    }
+table#packages_list tr.superseded, tr.blacklisted {
+    background-color: #eee;
+    }
+ul.latest-ppa-updates li:nth-child(odd) {
+    /* The following could be generalised for use to the following selector:
+       .side .portlet li.nth-child(odd)
+       if needed. */
+    border-top: 1px solid #dedede;
+    border-bottom: 1px solid #dedede;
+    background-color: #eeeeff;
+    }
+ul.latest-ppa-updates li.FULLYBUILT {
+    background-image: url('/@@/yes');
+    }
+ul.latest-ppa-updates li.FULLYBUILT_PENDING {
+    background-image: url('/@@/build-success-publishing');
+    }
+ul.latest-ppa-updates li.NEEDSBUILD {
+    background-image: url('/@@/build-needed');
+    }
+ul.latest-ppa-updates li.FAILEDTOBUILD {
+    background-image: url('/@@/build-failed');
+    }
+ul.latest-ppa-updates li.BUILDING {
+    background-image: url('/@@/processing');
+    }
+
+.package-diff-status span.COMPLETED {
+    background-image: url('/@@/packagediff-ok');
+    background-position: 0 0;
+    background-repeat: no-repeat;
+     }
+.package-diff-status span.PENDING {
+    background-image: url('/@@/packagediff-loading');
+    background-position: 0 0;
+    background-repeat: no-repeat;
+    }
+.package-diff-status span.FAILED {
+    background-image: url('/@@/packagediff-failed');
+    background-position: 0 0;
+    background-repeat: no-repeat;
+    }
+.package-diff-status span.request-derived-diff {
+    background-image: url('/@@/packagediff-unknown');
+    background-position: 0 0;
+    background-repeat: no-repeat;
+    }
+
 #sources-list-entries {
   border: 1px solid gray;
   padding: 0.3em;
@@ -447,6 +504,17 @@
 
 /* --- Code --- */
 
+table.code {
+    margin-bottom: 1em;
+    }
+table.code th {
+    text-align: left;
+    font-weight: bold;
+    }
+table.code th, table.code td {
+    padding-right: 3em;
+    }
+
 .branch-no-dev-focus {
   background: #FFF59C;
   vertical-align: middle;
@@ -543,6 +611,13 @@
 
 /* === Bugs === */
 
+tr.bug-branch-summary td {
+    padding: 0px 6px;
+    }
+tr.bug-branch-summary td.first {
+    padding-left: 0px;
+    }
+
 /* In a bug report page, the current context is highlighted in yellow: */
 #affected-software tr.highlight {background-color: #ff9;}
 
@@ -670,6 +745,75 @@
 available width, just like multi-line fields (see "textarea" above): */
 input.translate {width: 90%; max-width: 60em;}
 
+
+
+/* Templates listing.
+ *
+ * Examples:
+ *   https://translations.launchpad.dev/ubuntu/hoary/+templates
+ *   https://translations.launchpad.dev/evolution/trunk/+templates
+ */
+.inactive-template td {
+    background-color: #fee;
+    color: #855;
+    }
+
+/* Translations statistics and legend.
+ *
+ * Examples:
+ *   https://translations.launchpad.dev/ubuntu/hoary/+lang/es
+ *   https://translations.launchpad.dev/evolution/trunk/+lang/es
+ */
+
+div.translations-legend {
+    padding-top: 2em;
+    padding-bottom: 1em;
+    }
+table.translation-stats td {
+    text-align: center;
+    }
+table.translation-stats td.template-name {
+    text-align: left;
+    }
+table.translation-stats tfoot td,
+table.translation-stats tfoot th {
+    background-color: #f7f7f7;
+    border: 0px;
+    border-top: 2px solid #d2d2d2;
+    border-bottom: 2px solid #d2d2d2;
+    padding-top: 5px;
+    padding-bottom: 5px;
+    font-weight: bold;
+    }
+table.translation-stats tfoot th {
+    text-align: left;
+    }
+table.translation-stats tfoot td {
+    text-align: center;
+    }
+
+/* Translations help links.
+ *
+ * Examples:
+ *   https://translations.launchpad.dev/ubuntu/hoary/+source/evolution/+pots/evolution-2.2/
+ *   https://translations.launchpad.dev/ubuntu/hoary/+source/evolution/+translations
+ *   https://translations.launchpad.dev/ubuntu/hoary/
+ *
+ */
+div.translation-help-links a {
+    float: right;
+    }
+div.translation-help-links div {
+    clear: both;
+    }
+/* Message boxes (especially error boxes) should be visible above other
+ * elments. */
+.yui3-activator-message-box {
+    z-index: 9999;
+    }
+
+
+
 /* ====== Content area styles ====== */
 
 /* -- Front pages -- */

=== modified file 'lib/lp/app/javascript/testing/test.css'
--- lib/lp/app/javascript/testing/test.css	2011-07-08 05:12:39 +0000
+++ lib/lp/app/javascript/testing/test.css	2011-11-18 05:36:26 +0000
@@ -1,4 +1,4 @@
-@import url("../../../../canonical/launchpad/icing/style-3-0.css");
+@import url("../../../../canonical/launchpad/icing/css/import.css");
 @import url("../../../../canonical/launchpad/icing/yui/assets/skins/sam/skin.css");
 @import url("../../../../canonical/launchpad/icing/yui/cssreset/reset.css");
 @import url("../../../../canonical/launchpad/icing/yui/cssfonts/fonts.css");

=== modified file 'lib/lp/services/mailman/monkeypatches/lp-mhonarc-common.mrc'
--- lib/lp/services/mailman/monkeypatches/lp-mhonarc-common.mrc	2011-04-06 18:08:26 +0000
+++ lib/lp/services/mailman/monkeypatches/lp-mhonarc-common.mrc	2011-11-18 05:36:26 +0000
@@ -118,7 +118,7 @@
     margin-left: .5em;
     }
 </style>
-<link rel="stylesheet" href="https://launchpad.net/+icing/import.css"; />
+<link rel="stylesheet" href="https://launchpad.net/+icing/css/import.css"; />
 <link rel="shortcut icon" href="https://launchpad.net/@@/launchpad.png"; />
 </head>
 <body>