← Back to team overview

launchpad-reviewers team mailing list archive

[Merge] ~andrey-fedoseev/launchpad:broken-css-links into launchpad:master

 

Andrey Fedoseev has proposed merging ~andrey-fedoseev/launchpad:broken-css-links into launchpad:master.

Commit message:
Fix broken CSS links in help popup messages

Replaced the broken links such as `/+icing/yui/cssreset/reset.css` with `/+icing/combo.css`

Adjusted the HTML content to be displayed properly:

- Wrapped with <div class="yui-d0">
- Increase the level of all headers (h1 -> h2, etc.). Even though each help page is rendered as a complete HTML document, it is displayed in a popup within a larger document, so using a top-level header in it doesn't make sense. Also, using the higher-level headers make it look nicer.
- Add the required styles and class names (styles for `<dt>`/`<dd>`, `<ul class="bulleted">`, etc.)
- Fixed some minor HTML oddities

LP: #1514071

Requested reviews:
  Launchpad code reviewers (launchpad-reviewers)
Related bugs:
  Bug #1514071 in Launchpad itself: "Bug heat iframe accesses non-existent assets"
  https://bugs.launchpad.net/launchpad/+bug/1514071

For more details, see:
https://code.launchpad.net/~andrey-fedoseev/launchpad/+git/launchpad/+merge/422721

The HTML files with help popup messages have outdated/broken links to CSS files.

This changeset addresses that issue. I also made some style adjustments to these pages to make them look better.

Sample help message (currently broken): https://bugs.launchpad.net/+help-bugs/bug-heat.html
-- 
Your team Launchpad code reviewers is requested to review the proposed merge of ~andrey-fedoseev/launchpad:broken-css-links into launchpad:master.
diff --git a/lib/lp/app/javascript/testing/test.css b/lib/lp/app/javascript/testing/test.css
index 1bfc94b..f9232e0 100644
--- a/lib/lp/app/javascript/testing/test.css
+++ b/lib/lp/app/javascript/testing/test.css
@@ -1,7 +1,7 @@
 @import url("../../../../canonical/launchpad/icing/import.css");
-@import url("../../../../canonical/launchpad/icing/yui/cssreset/reset.css");
-@import url("../../../../canonical/launchpad/icing/yui/cssfonts/fonts.css");
-@import url("../../../../canonical/launchpad/icing/yui/cssbase/base.css");
+@import url("../../../../canonical/launchpad/icing/yui/cssreset/cssreset.css");
+@import url("../../../../canonical/launchpad/icing/yui/cssfonts/cssfonts.css");
+@import url("../../../../canonical/launchpad/icing/yui/cssbase/cssbase.css");
 
 /* Taken and customized from testlogger.css */
 .yui-console-entry-src { display:none; }
diff --git a/lib/lp/blueprints/help/workitems-help.html b/lib/lp/blueprints/help/workitems-help.html
index a07be03..db89366 100644
--- a/lib/lp/blueprints/help/workitems-help.html
+++ b/lib/lp/blueprints/help/workitems-help.html
@@ -1,50 +1,50 @@
 <html>
   <head>
     <title>Blueprint work items</title>
-    <link rel="stylesheet" type="text/css"
-          href="/+icing/yui/cssreset/reset.css" />
-    <link rel="stylesheet" type="text/css"
-          href="/+icing/yui/cssfonts/fonts.css" />
-    <link rel="stylesheet" type="text/css"
-          href="/+icing/yui/cssbase/base.css" />
+    <link rel="stylesheet" type="text/css" href="/+icing/combo.css" />
   </head>
   <body>
-    <h1>Using work items</h1>
+    <div class="yui-d0">
+      <h2>Using work items</h2>
 
-    <p>Often, it can take a few separate steps to complete the work described
-    in a blueprint. Launchpad lets you track these steps in the "Work items"
-    text box.</p>
+      <p>Often, it can take a few separate steps to complete the work
+        described in a blueprint. Launchpad lets you track these steps in the
+        "Work items" text box.</p>
 
-    <h2>Describing work items</h2>
+      <h3>Describing work items</h3>
 
-    <p>It's easy to track the steps, or work items, necessary to complete the
-    blueprint. Using the <em>Work items</em> text box, give a short
-    description of each work item along with its status. For example:</p>
+      <p>It's easy to track the steps, or work items, necessary to complete
+        the blueprint. Using the <em>Work items</em> text box, give a short
+        description of each work item along with its status. For example:</p>
 
-    <pre>
-      Design the UI: DONE
-      Test the UI: TODO
-      Bootstrap the dev environment: POSTPONED
-    </pre>
+      <p>
+        <code>
+          Design the UI: DONE<br/>
+          Test the UI: TODO<br/>
+          Bootstrap the dev environment: POSTPONED<br/>
+        </code>
+      </p>
 
-    <p>Each work item goes on its own line, followed by a colon and its
-    status.</p>
+      <p>Each work item goes on its own line, followed by a colon and its
+        status.</p>
 
-    <h2>Work item statuses</h2>
+      <h3>Work item statuses</h3>
 
-    <p>Each work item can have one of four statuses:</p>
+      <p>Each work item can have one of four statuses:</p>
 
-    <ul>
-      <li>TODO</li>
-      <li>INPROGRESS</li>
-      <li>DONE</li>
-      <li>POSTPONED</li>
-    </ul>
+      <ul class="bulleted">
+        <li>TODO</li>
+        <li>INPROGRESS</li>
+        <li>DONE</li>
+        <li>POSTPONED</li>
+      </ul>
 
-    <h2>More about work items</h2>
+      <h3>More about work items</h3>
 
-    <p>There's <a href="https://help.launchpad.net/WorkItems";
-      target="_blank">more about using work items</a> in the Launchpad help
-    wiki.</p>
+      <p>There's <a href="https://help.launchpad.net/WorkItems";
+          target="_blank">more about using work items</a> in the
+        Launchpad help
+        wiki.</p>
+    </div>
   </body>
 </html>
diff --git a/lib/lp/bugs/help/also-affects-project-help.html b/lib/lp/bugs/help/also-affects-project-help.html
index 3abf2ee..efceb9b 100644
--- a/lib/lp/bugs/help/also-affects-project-help.html
+++ b/lib/lp/bugs/help/also-affects-project-help.html
@@ -1,58 +1,65 @@
 <html>
   <head>
     <title>Adding another target to a bug report</title>
-    <link rel="stylesheet" type="text/css"
-          href="/+icing/yui/cssreset/reset.css" />
-    <link rel="stylesheet" type="text/css"
-          href="/+icing/yui/cssfonts/fonts.css" />
-    <link rel="stylesheet" type="text/css"
-          href="/+icing/yui/cssbase/base.css" />
+    <link rel="stylesheet" type="text/css" href="/+icing/combo.css" />
   </head>
   <body>
-    <h1>Adding another target to a bug report</h1>
-
-    <p>
-      The same bug can crop up in different places.
-    </p>
-    
-    <p>         
-      Imagine a bug in a video driver. Not only do the video driver maintainers need to fix the bug in their code but so do the people who package that driver for Ubuntu and other distros.
-    </p>
-    
-    <p>
-      Of course, the version and packaging of that driver may differ between different releases of a particularly distro.
-    </p>
-    
-    <p>
-      And the bug may initially be reported against X.org or some other part of the operating system.
-    </p>
-    
-    <p>
-      Launchpad helps manage this by allowing bug reports to relate to more than one context.
-    </p>
-    
-    <p>
-      So, if you suspect that an existing bug also affects another project or distribution you can add it to the report. That bug report, with the same number and comment history, will then show up just like any other bug report for that project/distro.
-    </p>
-    
-    <h2>Where you can report a bug</h2>
-    
-    <p>
-      Launchpad can track bugs for:
-    </p>
-    
-    <ul>
-      <li>projects</li>
-      <li>project series</li>
-      <li>project groups</li>
-      <li>distributions</li>
-      <li>distro series</li>
-      <li>source packages</li>
-      <li>distro series source packages.</li>
-    </ul>
-      
-    <p>
-      <a href="https://help.launchpad.net/Bugs/MultiProjectBugs"; target="_blank">Read more about multi-context bugs &gt;</a>
-    </p>
+    <div class="yui-d0">
+      <h2>Adding another target to a bug report</h2>
+
+      <p>
+        The same bug can crop up in different places.
+      </p>
+
+      <p>
+        Imagine a bug in a video driver. Not only do the video driver
+        maintainers need to fix the bug in their code but so do the people who
+        package that driver for Ubuntu and other distros.
+      </p>
+
+      <p>
+        Of course, the version and packaging of that driver may differ between
+        different releases of a particularly distro.
+      </p>
+
+      <p>
+        And the bug may initially be reported against X.org or some other part
+        of the operating system.
+      </p>
+
+      <p>
+        Launchpad helps manage this by allowing bug reports to relate to more
+        than one context.
+      </p>
+
+      <p>
+        So, if you suspect that an existing bug also affects another project
+        or distribution you can add it to the report. That bug report, with
+        the same number and comment history, will then show up just like any
+        other bug report for that project/distro.
+      </p>
+
+      <h3>Where you can report a bug</h3>
+
+      <p>
+        Launchpad can track bugs for:
+      </p>
+
+      <ul class="bulleted">
+        <li>projects</li>
+        <li>project series</li>
+        <li>project groups</li>
+        <li>distributions</li>
+        <li>distro series</li>
+        <li>source packages</li>
+        <li>distro series source packages.</li>
+      </ul>
+
+      <p>
+        <a href="https://help.launchpad.net/Bugs/MultiProjectBugs";
+          target="_blank">Read more about multi-context bugs
+          &gt;</a>
+      </p>
+    </div>
   </body>
 </html>
diff --git a/lib/lp/bugs/help/bug-heat.html b/lib/lp/bugs/help/bug-heat.html
index d17c006..206c126 100644
--- a/lib/lp/bugs/help/bug-heat.html
+++ b/lib/lp/bugs/help/bug-heat.html
@@ -1,81 +1,84 @@
 <html>
   <head>
     <title>Bug heat</title>
-    <link rel="stylesheet" type="text/css"
-          href="/+icing/yui/cssreset/reset.css" />
-    <link rel="stylesheet" type="text/css"
-          href="/+icing/yui/cssfonts/fonts.css" />
-    <link rel="stylesheet" type="text/css"
-          href="/+icing/yui/cssbase/base.css" />
+    <link rel="stylesheet" type="text/css" href="/+icing/combo.css" />
+    <style>
+      table {
+        font-size: inherit;
+      }
+
+    </style>
   </head>
   <body>
-    <h1>Bug heat</h1>
+    <div class="yui-d0">
+      <h2>Bug heat</h2>
 
-    <p>
-      Launchpad helps you to appraise a bug by giving you a calculated measure
-      &mdash; called bug heat &mdash; of its likely significance. You can see
-      bug heat in bug listings, and also on individual bug pages, as a
-      number next to a flame icon.
-    </p>
+      <p>
+        Launchpad helps you to appraise a bug by giving you a calculated
+        measure &mdash; called bug heat &mdash; of its likely significance.
+        You can see bug heat in bug listings, and also on individual bug
+        pages, as a number next to a flame icon.
+      </p>
 
-    <p>
-      Here's how Launchpad calculates the bug heat score:
-    </p>
+      <p>
+        Here's how Launchpad calculates the bug heat score:
+      </p>
 
-    <table width="100%">
-      <tr>
-        <th>
-          <strong>Attribute</strong>
-        </th>
-        <th>
-          <strong>Calculation</strong>
-        </th>
-      </tr>
+      <table width="100%" class="listing">
+        <tr class="head">
+          <th>
+            Attribute
+          </th>
+          <th>
+            Calculation
+          </th>
+        </tr>
 
-      <tr>
-        <td>
-          Private
-        </td>
-        <td>
-          Adds 150 points
-        </td>
-      </tr>
+        <tr>
+          <td>
+            Private
+          </td>
+          <td>
+            Adds 150 points
+          </td>
+        </tr>
 
-      <tr>
-        <td>
-          Security issue
-        </td>
-        <td>
-          Adds 250 points
-        </td>
-      </tr>
+        <tr>
+          <td>
+            Security issue
+          </td>
+          <td>
+            Adds 250 points
+          </td>
+        </tr>
 
-      <tr>
-        <td>
-          Duplicates
-        </td>
-        <td>
-          Adds 6 points per duplicate bug
-        </td>
-      </tr>
+        <tr>
+          <td>
+            Duplicates
+          </td>
+          <td>
+            Adds 6 points per duplicate bug
+          </td>
+        </tr>
 
-      <tr>
-        <td>
-          Affected users
-        </td>
-        <td>
-          Adds 4 points per affected user
-        </td>
-      </tr>
+        <tr>
+          <td>
+            Affected users
+          </td>
+          <td>
+            Adds 4 points per affected user
+          </td>
+        </tr>
 
-      <tr>
-        <td>
-          Subscribers (incl. subscribers to duplicates)
-        </td>
-        <td>
-          Adds 2 points per subscriber
-        </td>
-      </tr>
-    </table>
+        <tr>
+          <td>
+            Subscribers (incl. subscribers to duplicates)
+          </td>
+          <td>
+            Adds 2 points per subscriber
+          </td>
+        </tr>
+      </table>
+    </div>
   </body>
 </html>
diff --git a/lib/lp/bugs/help/structural-subscription-mute.html b/lib/lp/bugs/help/structural-subscription-mute.html
index 5d575dc..e3710f5 100644
--- a/lib/lp/bugs/help/structural-subscription-mute.html
+++ b/lib/lp/bugs/help/structural-subscription-mute.html
@@ -1,26 +1,23 @@
 <html>
   <head>
     <title>What happens when I stop delivery?</title>
-    <link rel="stylesheet" type="text/css"
-          href="/+icing/yui/cssreset/reset.css" />
-    <link rel="stylesheet" type="text/css"
-          href="/+icing/yui/cssfonts/fonts.css" />
-    <link rel="stylesheet" type="text/css"
-          href="/+icing/yui/cssbase/base.css" />
+    <link rel="stylesheet" type="text/css" href="/+icing/combo.css" />
   </head>
   <body>
-    <h1>What happens when I stop delivery?</h1>
+    <div class="yui-d0">
+      <h2>What happens when I stop delivery?</h2>
 
-    <p>
-      Sometimes you will have bug subscriptions via a team and you no longer
-      want to receive the emails.  If so, you can disable the delivery of the
-      messages to yourself without affecting the other team members.
-    </p>
-    <p>
-      However, if a team delivers its bug messages via a mailing list or some
-      other preferred email, disabling email delivery will not be honored
-      because doing so would prevent the other team members from receiving the
-      notifications.
-    </p>
+      <p>
+        Sometimes you will have bug subscriptions via a team and you no longer
+        want to receive the emails. If so, you can disable the delivery of the
+        messages to yourself without affecting the other team members.
+      </p>
+      <p>
+        However, if a team delivers its bug messages via a mailing list or
+        some other preferred email, disabling email delivery will not be
+        honored because doing so would prevent the other team members from
+        receiving the notifications.
+      </p>
+    </div>
   </body>
 </html>
diff --git a/lib/lp/bugs/help/subscription-mute.html b/lib/lp/bugs/help/subscription-mute.html
index 61a65c1..2133688 100644
--- a/lib/lp/bugs/help/subscription-mute.html
+++ b/lib/lp/bugs/help/subscription-mute.html
@@ -1,47 +1,44 @@
 <html>
   <head>
     <title>What happens when I "mute" or "unmute" a bug?</title>
-    <link rel="stylesheet" type="text/css"
-          href="/+icing/yui/cssreset/reset.css" />
-    <link rel="stylesheet" type="text/css"
-          href="/+icing/yui/cssfonts/fonts.css" />
-    <link rel="stylesheet" type="text/css"
-          href="/+icing/yui/cssbase/base.css" />
+    <link rel="stylesheet" type="text/css" href="/+icing/combo.css" />
   </head>
   <body>
-    <h1>What happens when I "mute" a bug?</h1>
+    <div class="yui-d0">
+      <h2>What happens when I "mute" a bug?</h2>
 
-    <p>
-      Muting a bug tells Launchpad to stop sending you all email about 
-      that bug.
-    </p>
-    <p>
-      This is most useful when you've subscribed to the bugs for an entire
-      milestone, series, project or distribution. If there's one bug that
-      doesn't interest you, you can mute it without affecting your overall 
-      subscription.
-    </p>
-    <h2>Unmuting</h2>
-    <p>
-      When "unmuting" a bug you can choose what sorts of thing you want to
-      hear about, just like when you make a new subscription.
-    </p>
-    <h2>Muting bugs that come from a team subscription</h2>
-    <p>
-      If you are subscribed via a team, but the team delivers its bug mail
-      via a mailing list or some other team email address, you can't mute 
-      bugs you hear about thanks to that subscription.
-    </p>
-    <p>
-      That's because in that case Launchpad delivers each email just once: 
-      to the team's mailing list or other specified email address. So, it 
-      can't filter out email intended specifically for you because it 
-      doesn't exist.
-    </p>
-    <p>
-      Instead, you could try filtering the bug mail you receive via the 
-      team's mailing list and then subscribing to the project's bugs 
-      yourself. That will let you mute whichever bugs you like.
-    </p>
+      <p>
+        Muting a bug tells Launchpad to stop sending you all email about
+        that bug.
+      </p>
+      <p>
+        This is most useful when you've subscribed to the bugs for an entire
+        milestone, series, project or distribution. If there's one bug that
+        doesn't interest you, you can mute it without affecting your overall
+        subscription.
+      </p>
+      <h3>Unmuting</h3>
+      <p>
+        When "unmuting" a bug you can choose what sorts of thing you want to
+        hear about, just like when you make a new subscription.
+      </p>
+      <h3>Muting bugs that come from a team subscription</h3>
+      <p>
+        If you are subscribed via a team, but the team delivers its bug mail
+        via a mailing list or some other team email address, you can't mute
+        bugs you hear about thanks to that subscription.
+      </p>
+      <p>
+        That's because in that case Launchpad delivers each email just once:
+        to the team's mailing list or other specified email address. So, it
+        can't filter out email intended specifically for you because it
+        doesn't exist.
+      </p>
+      <p>
+        Instead, you could try filtering the bug mail you receive via the
+        team's mailing list and then subscribing to the project's bugs
+        yourself. That will let you mute whichever bugs you like.
+      </p>
+    </div>
   </body>
 </html>
diff --git a/lib/lp/bugs/help/tag-help.html b/lib/lp/bugs/help/tag-help.html
index 50e8bc1..589359b 100644
--- a/lib/lp/bugs/help/tag-help.html
+++ b/lib/lp/bugs/help/tag-help.html
@@ -1,30 +1,27 @@
 <html>
   <head>
     <title>Bug tag search</title>
-    <link rel="stylesheet" type="text/css"
-          href="/+icing/yui/cssreset/reset.css" />
-    <link rel="stylesheet" type="text/css"
-          href="/+icing/yui/cssfonts/fonts.css" />
-    <link rel="stylesheet" type="text/css"
-          href="/+icing/yui/cssbase/base.css" />
+    <link rel="stylesheet" type="text/css" href="/+icing/combo.css" />
   </head>
   <body>
-    <h1>Using bug tags</h1>
+    <div class="yui-d0">
+      <h2>Using bug tags</h2>
 
-    <p>
-      A bug tag can be anything that you think will help better categorise the
-      bug report.
-    </p>
+      <p>
+        A bug tag can be anything that you think will help better categorise
+        the bug report.
+      </p>
 
-    <p>
-      For example, if it's a user interface bug you might tag it with
-      '<code>ui</code>'.
-    </p>
+      <p>
+        For example, if it's a user interface bug you might tag it with
+        '<code>ui</code>'.
+      </p>
 
-    <p>
-      Where one exists, you should use an official project bug tag. Each
-      project can define its own official bug tags. Launchpad will offer to
-      autocomplete matching official bug tags.
-    </p>
+      <p>
+        Where one exists, you should use an official project bug tag. Each
+        project can define its own official bug tags. Launchpad will offer to
+        autocomplete matching official bug tags.
+      </p>
+    </div>
   </body>
 </html>
diff --git a/lib/lp/bugs/help/tag-search.html b/lib/lp/bugs/help/tag-search.html
index a462e15..fc9dec2 100644
--- a/lib/lp/bugs/help/tag-search.html
+++ b/lib/lp/bugs/help/tag-search.html
@@ -1,65 +1,61 @@
 <html>
   <head>
     <title>Bug tag search</title>
-    <link rel="stylesheet" type="text/css"
-          href="/+icing/yui/cssreset/reset.css" />
-    <link rel="stylesheet" type="text/css"
-          href="/+icing/yui/cssfonts/fonts.css" />
-    <link rel="stylesheet" type="text/css"
-          href="/+icing/yui/cssbase/base.css" />
+    <link rel="stylesheet" type="text/css" href="/+icing/combo.css" />
   </head>
   <body>
-    <h1>Bug tag search</h1>
-
-    <p>
-      You can get a list of bugs depending on the tags that those bugs have or
-      don't have.
-    </p>
-
-    <p>
-      Next to the <em>Tags</em> search box are two radio buttons: <em>Any</em>
-      and <em>All</em>. Select <em>Any</em> and Launchpad will return bugs
-      that match any part of your search term. Select <em>All</em> for bugs
-      that match your entire search query.
-    </p>
-
-    <p>
-      To search for the absence of a particular bug tag, place a minus sign
-      before its name: e.g. <code>-test</code>
-    </p>
-
-
-    <h2>Examples</h2>
-
-    <ul>
-      <li>
-        <strong>Find bugs with the <em>test</em> tag:</strong> search for
-        <code>test</code>
-      </li>
-      <li>
-        <strong>Find bugs that don't have the <em>test</em> tag:</strong>
-        search for <code>-test</code>
-      </li>
-      <li>
-        <strong>Find bugs that have both the <em>test</em> and <em>ui</em>
-        tags:</strong> search for <code>test ui</code> and select the <em>All
-        </em> radio button.
-      </li>
-      <li>
-        <strong>Find bugs that have either the <em>test</em> tag or do not
-        have the <em>ui</em> tag:</strong> search for <code>test -ui</code>
-        and select the <em>Any</em> radio button.
-      </li>
-      <li>
-        <strong>Find all bugs with one or more tags:</strong> search for
-        <code>*</code>
-      </li>
-      <li><strong>Find all bugs that have no tags:</strong> search for <code>
-        -*</code>
-      </li>
-    </ul>
-
-    <p>You can mix the different types of search.</p>
-
+    <div class="yui-d0">
+      <h2>Bug tag search</h2>
+
+      <p>
+        You can get a list of bugs depending on the tags that those bugs have
+        or don't have.
+      </p>
+
+      <p>
+        Next to the <em>Tags</em> search box are two radio buttons:
+        <em>Any</em> and <em>All</em>. Select <em>Any</em> and Launchpad will
+        return bugs that match any part of your search term. Select
+        <em>All</em> for bugs that match your entire search query.
+      </p>
+
+      <p>
+        To search for the absence of a particular bug tag, place a minus sign
+        before its name: e.g. <code>-test</code>
+      </p>
+
+
+      <h3>Examples</h3>
+
+      <ul class="bulleted">
+        <li>
+          <strong>Find bugs with the <em>test</em> tag:</strong> search for
+          <code>test</code>
+        </li>
+        <li>
+          <strong>Find bugs that don't have the <em>test</em> tag:</strong>
+          search for <code>-test</code>
+        </li>
+        <li>
+          <strong>Find bugs that have both the <em>test</em> and <em>ui</em>
+            tags:</strong> search for <code>test ui</code> and select the
+          <em>All</em> radio button.
+        </li>
+        <li>
+          <strong>Find bugs that have either the <em>test</em> tag or do not
+            have the <em>ui</em> tag:</strong> search for
+          <code>test -ui</code> and select the <em>Any</em> radio button.
+        </li>
+        <li>
+          <strong>Find all bugs with one or more tags:</strong> search for
+          <code>*</code>
+        </li>
+        <li><strong>Find all bugs that have no tags:</strong> search for
+          <code>-*</code>
+        </li>
+      </ul>
+
+      <p>You can mix the different types of search.</p>
+    </div>
   </body>
 </html>
diff --git a/lib/lp/bugs/templates/bugwatch-error-help.pt b/lib/lp/bugs/templates/bugwatch-error-help.pt
index f329b7e..2e6ba06 100644
--- a/lib/lp/bugs/templates/bugwatch-error-help.pt
+++ b/lib/lp/bugs/templates/bugwatch-error-help.pt
@@ -3,184 +3,185 @@
   <head>
     <title>Bug watch errors</title>
     <link rel="stylesheet" type="text/css"
-          href="/+icing/yui/cssreset/reset.css" />
-    <link rel="stylesheet" type="text/css"
-          href="/+icing/yui/cssfonts/fonts.css" />
-    <link rel="stylesheet" type="text/css"
-          href="/+icing/yui/cssbase/base.css" />
+          href="/+icing/combo.css" />
+    <style type="text/css">
+      h4 { font-weight: bold; margin-bottom: 0.5em; }
+    </style>
   </head>
   <body tal:define="watch view/context">
-    <h1>Bug watch update errors</h1>
-    <p>
-      Bug watches don't always update successfully. When a bug watch
-      fails to update, Launchpad records what went wrong.
-    </p>
-    <a name="UNKNOWN"></a>
-    <h2>Unknown error (Launchpad couldn't import bug)</h2>
-    <h3>What went wrong?</h3>
-    <p>
-      Launchpad encountered an unexpected error when trying to retrieve
-      the bug from the remote server.
-    </p>
-    <h3>How can I help fix it?</h3>
-    <p>
-      <a href="/support">Contact us</a> and let us
-      know about the problem.
-    </p>
-    <a name="BUG_NOT_FOUND"></a>
-    <h2>Bug Not Found</h2>
-    <h3>What went wrong?</h3>
-    <p>
-      Launchpad could not find the specified bug on the remote server.
-    </p>
-    <h3>How can I help fix it?</h3>
-    <p>
-      Check that the remote bug
-      (<a tal:replace="structure watch/fmt:external-link" />)
-      exists on the external bug tracker. If it doesn't, you should try
-      to find the correct bug and
-      <a tal:attributes="href watch/fmt:url">update the watch</a> so
-      that it points to the correct remote bug.
-    </p>
-    <a name="CONNECTION_ERROR"></a>
-    <h2>Connection Error</h2>
-    <h3>What went wrong?</h3>
-    <p>
-      Launchpad was unable to connect to the remote server.
-    </p>
-    <h3>How can I help fix it?</h3>
-    <p>
-      Check that the remote bug tracker
-      (<a tal:replace="structure watch/bugtracker/fmt:external-link" />)
-      is on-line. If it is, you should
-      <a href="/support">contact us</a> and let us
-      know about the problem.
-    </p>
-    <a name="INVALID_BUG_ID"></a>
-    <h2>Invalid Bug ID</h2>
-    <h3>What went wrong?</h3>
-    <p>
-      The remote bug ID that the bug watch is linked to isn't valid on
-      the remote bug tracker.
-    </p>
-    <h3>How can I help fix it?</h3>
-    <p>
-      <a href="/support">Contact us</a> and let us
-      know about the problem.
-    </p>
-    <a name="TIMEOUT"></a>
-    <h2>Timeout</h2>
-    <h3>What went wrong?</h3>
-    <p>
-      Launchpad encountered a timeout when trying to connect to the
-      remote server and was unable to retrieve the bug's status.
-    </p>
-    <h3>How can I help fix it?</h3>
-    <p>
-      <a href="/support">Contact us</a> and let us
-      know about the problem.
-    </p>
-    <p>
-      Check that the remote bug tracker
-      (<a tal:replace="structure watch/bugtracker/fmt:external-link" />)
-      is on-line. If it is, you should
-      <a href="/support">contact us</a> and let us
-      know about the problem.
-    </p>
-    <a name="UNPARSABLE_BUG"></a>
-    <h2>Unparsable Bug</h2>
-    <h3>What went wrong?</h3>
-    <p>
-      Launchpad could not extract a status from the data it received
-      from the remote server.
-    </p>
-    <h3>How can I help fix it?</h3>
-    <p>
-      Check the <a attributes="href watch/fmt:url">bug watch page</a> to
-      see if this error has happened more than once. If it hasn't, it
-      could be due to bad data in the most recent update.
-    </p>
-    <p>
-      If the error has occurred more than once, you should
-      <a href="/support">contact us</a> and let us
-      know about the problem.
-    </p>
-    <a name="UNPARSABLE_BUG_TRACKER"></a>
-    <h2>Unparsable Bug Tracker Version</h2>
-    <h3>What went wrong?</h3>
-    <p>
-      Launchpad could not determine the version of the bug tracker
-      software running on the remote server.
-    </p>
-    <h3>How can I help fix it?</h3>
-    <p>
-      <a href="/support">Contact us</a> and let us
-      know about the problem.
-    </p>
-    <a name="UNSUPPORTED_BUG_TRACKER"></a>
-    <h2>Unsupported Bugtracker</h2>
-    <h3>What went wrong?</h3>
-    <p>
-      The remote server is using bug tracker software which Launchpad
-      does not currently support.
-    </p>
-    <h3>How can I help fix it?</h3>
-    <p>
-      <a href="https://bugs.launchpad.net/launchpad/+filebug";
-      >File a bug</a> requesting that Launchpad support interactions
-      with the remote bug tracker.
-    </p>
-    <a name="PRIVATE_REMOTE_BUG"></a>
-    <h2>Private Remote Bug</h2>
-    <h3>What went wrong?</h3>
-    <p>
-      The bug is marked as private on the remote bug tracker.  Launchpad
-      cannot import the status of private remote bugs.
-    </p>
-    <h3>How can I help fix it?</h3>
-    <p>
-      Unfortunately there isn't a lot that can be done about this.
-      You can manually update any bug task linked to the bug watch by
-      choosing "None, the status of the bug is updated manually" for
-      the Remote Watch option of each linked bug task.
-    </p>
-    <a name="COMMENT_IMPORT_FAILED"></a>
-    <h2>Unable to import comments</h2>
-    <h3>What went wrong?</h3>
-    <p>
-      The remote bug's status was synchronized successfully but comments
-      could not be imported from the remote bug.
-    </p>
-    <h3>How can I help fix it?</h3>
-    <p>
-      <a href="/support">Contact us</a> and let us
-      know about the problem.
-    </p>
-    <a name="COMMENT_PUSH_FAILED"></a>
-    <h2>Unable to push comments</h2>
-    <h3>What went wrong?</h3>
-    <p>
-      The remote bug's status was synchronized successfully and its
-      comments were successfully imported but Launchpad was unable to
-      push comments back to the remote bug.
-    </p>
-    <h3>How can I help fix it?</h3>
-    <p>
-      <a href="/support">Contact us</a> and let us
-      know about the problem.
-    </p>
-    <a name="BACKLINK_FAILED"></a>
-    <h2>Unable to set the link to the Launchpad bug on the remote server</h2>
-    <h3>What went wrong?</h3>
-    <p>
-      The remote bug's status and comments were synchronized sucessfully
-      with Launchpad but Launchpad was unable to set the remote bug's
-      link back to the relevant Launchpad bug.
-    </p>
-    <h3>How can I help fix it?</h3>
-    <p>
-      <a href="/support">Contact us</a> and let us
-      know about the problem.
-    </p>
+    <div class="yui-d0">
+      <h2>Bug watch update errors</h2>
+      <p>
+        Bug watches don't always update successfully. When a bug watch
+        fails to update, Launchpad records what went wrong.
+      </p>
+      <a name="UNKNOWN"></a>
+      <h3>Unknown error (Launchpad couldn't import bug)</h3>
+      <h4>What went wrong?</h4>
+      <p>
+        Launchpad encountered an unexpected error when trying to retrieve
+        the bug from the remote server.
+      </p>
+      <h4>How can I help fix it?</h4>
+      <p>
+        <a href="/support">Contact us</a> and let us
+        know about the problem.
+      </p>
+      <a name="BUG_NOT_FOUND"></a>
+      <h3>Bug Not Found</h3>
+      <h4>What went wrong?</h4>
+      <p>
+        Launchpad could not find the specified bug on the remote server.
+      </p>
+      <h4>How can I help fix it?</h4>
+      <p>
+        Check that the remote bug
+        (<a tal:replace="structure watch/fmt:external-link" />)
+        exists on the external bug tracker. If it doesn't, you should try
+        to find the correct bug and
+        <a tal:attributes="href watch/fmt:url">update the watch</a> so
+        that it points to the correct remote bug.
+      </p>
+      <a name="CONNECTION_ERROR"></a>
+      <h3>Connection Error</h3>
+      <h4>What went wrong?</h4>
+      <p>
+        Launchpad was unable to connect to the remote server.
+      </p>
+      <h4>How can I help fix it?</h4>
+      <p>
+        Check that the remote bug tracker
+        (<a tal:replace="structure watch/bugtracker/fmt:external-link" />)
+        is on-line. If it is, you should
+        <a href="/support">contact us</a> and let us
+        know about the problem.
+      </p>
+      <a name="INVALID_BUG_ID"></a>
+      <h3>Invalid Bug ID</h3>
+      <h4>What went wrong?</h4>
+      <p>
+        The remote bug ID that the bug watch is linked to isn't valid on
+        the remote bug tracker.
+      </p>
+      <h4>How can I help fix it?</h4>
+      <p>
+        <a href="/support">Contact us</a> and let us
+        know about the problem.
+      </p>
+      <a name="TIMEOUT"></a>
+      <h3>Timeout</h3>
+      <h4>What went wrong?</h4>
+      <p>
+        Launchpad encountered a timeout when trying to connect to the
+        remote server and was unable to retrieve the bug's status.
+      </p>
+      <h4>How can I help fix it?</h4>
+      <p>
+        <a href="/support">Contact us</a> and let us
+        know about the problem.
+      </p>
+      <p>
+        Check that the remote bug tracker
+        (<a tal:replace="structure watch/bugtracker/fmt:external-link" />)
+        is on-line. If it is, you should
+        <a href="/support">contact us</a> and let us
+        know about the problem.
+      </p>
+      <a name="UNPARSABLE_BUG"></a>
+      <h3>Unparsable Bug</h3>
+      <h4>What went wrong?</h4>
+      <p>
+        Launchpad could not extract a status from the data it received
+        from the remote server.
+      </p>
+      <h4>How can I help fix it?</h4>
+      <p>
+        Check the <a attributes="href watch/fmt:url">bug watch page</a> to
+        see if this error has happened more than once. If it hasn't, it
+        could be due to bad data in the most recent update.
+      </p>
+      <p>
+        If the error has occurred more than once, you should
+        <a href="/support">contact us</a> and let us
+        know about the problem.
+      </p>
+      <a name="UNPARSABLE_BUG_TRACKER"></a>
+      <h3>Unparsable Bug Tracker Version</h3>
+      <h4>What went wrong?</h4>
+      <p>
+        Launchpad could not determine the version of the bug tracker
+        software running on the remote server.
+      </p>
+      <h4>How can I help fix it?</h4>
+      <p>
+        <a href="/support">Contact us</a> and let us
+        know about the problem.
+      </p>
+      <a name="UNSUPPORTED_BUG_TRACKER"></a>
+      <h3>Unsupported Bugtracker</h3>
+      <h4>What went wrong?</h4>
+      <p>
+        The remote server is using bug tracker software which Launchpad
+        does not currently support.
+      </p>
+      <h4>How can I help fix it?</h4>
+      <p>
+        <a href="https://bugs.launchpad.net/launchpad/+filebug";
+        >File a bug</a> requesting that Launchpad support interactions
+        with the remote bug tracker.
+      </p>
+      <a name="PRIVATE_REMOTE_BUG"></a>
+      <h3>Private Remote Bug</h3>
+      <h4>What went wrong?</h4>
+      <p>
+        The bug is marked as private on the remote bug tracker.  Launchpad
+        cannot import the status of private remote bugs.
+      </p>
+      <h4>How can I help fix it?</h4>
+      <p>
+        Unfortunately there isn't a lot that can be done about this.
+        You can manually update any bug task linked to the bug watch by
+        choosing "None, the status of the bug is updated manually" for
+        the Remote Watch option of each linked bug task.
+      </p>
+      <a name="COMMENT_IMPORT_FAILED"></a>
+      <h3>Unable to import comments</h3>
+      <h4>What went wrong?</h4>
+      <p>
+        The remote bug's status was synchronized successfully but comments
+        could not be imported from the remote bug.
+      </p>
+      <h4>How can I help fix it?</h4>
+      <p>
+        <a href="/support">Contact us</a> and let us
+        know about the problem.
+      </p>
+      <a name="COMMENT_PUSH_FAILED"></a>
+      <h3>Unable to push comments</h3>
+      <h4>What went wrong?</h4>
+      <p>
+        The remote bug's status was synchronized successfully and its
+        comments were successfully imported but Launchpad was unable to
+        push comments back to the remote bug.
+      </p>
+      <h4>How can I help fix it?</h4>
+      <p>
+        <a href="/support">Contact us</a> and let us
+        know about the problem.
+      </p>
+      <a name="BACKLINK_FAILED"></a>
+      <h3>Unable to set the link to the Launchpad bug on the remote server</h3>
+      <h4>What went wrong?</h4>
+      <p>
+        The remote bug's status and comments were synchronized sucessfully
+        with Launchpad but Launchpad was unable to set the remote bug's
+        link back to the relevant Launchpad bug.
+      </p>
+      <h4>How can I help fix it?</h4>
+      <p>
+        <a href="/support">Contact us</a> and let us
+        know about the problem.
+      </p>
+    </div>
   </body>
 </html>
diff --git a/lib/lp/charms/help/charm-recipe-build-frequency.html b/lib/lp/charms/help/charm-recipe-build-frequency.html
index b15cf50..47163ab 100644
--- a/lib/lp/charms/help/charm-recipe-build-frequency.html
+++ b/lib/lp/charms/help/charm-recipe-build-frequency.html
@@ -1,38 +1,40 @@
 <html>
   <head>
     <title>Charm recipe build schedule</title>
-    <link rel="stylesheet" type="text/css"
-          href="/+icing/yui/cssreset/reset.css" />
-    <link rel="stylesheet" type="text/css"
-          href="/+icing/yui/cssfonts/fonts.css" />
-    <link rel="stylesheet" type="text/css"
-          href="/+icing/yui/cssbase/base.css" />
+    <link rel="stylesheet" type="text/css" href="/+icing/combo.css" />
     <style type="text/css">
-      dt { font-weight: bold }
-      dd p { margin-bottom: 0.5em }
+      dt {
+        font-weight: bold
+      }
+
+      dd p {
+        margin-bottom: 0.5em
+      }
+
     </style>
   </head>
   <body>
-    <h1>Charm recipe build schedule</h1>
-
-    <p>There are two options for when charm recipes get built:</p>
-    <dl>
-      <dt>Built automatically</dt>
-      <dd>
-        <p>A build will be scheduled automatically once a change to the
-          top-level source branch for the charm recipe is detected.</p>
-        <p>If there has been a build of the charm recipe within the previous
-          hour, the build will not be scheduled until an hour since the last
-          build.</p>
-        <p>If you really want the build to happen before the one-hour period
-          is up, you can use the "Request builds" action.</p>
-      </dd>
-      <dt>Built on request</dt>
-      <dd>
-        <p>Builds of the charm recipe have to be manually requested using
-          the "Request builds" action.</p>
-      </dd>
-    </dl>
+    <div class="yui-d0">
+      <h2>Charm recipe build schedule</h2>
 
+      <p>There are two options for when charm recipes get built:</p>
+      <dl>
+        <dt>Built automatically</dt>
+        <dd>
+          <p>A build will be scheduled automatically once a change to the
+            top-level source branch for the charm recipe is detected.</p>
+          <p>If there has been a build of the charm recipe within the previous
+            hour, the build will not be scheduled until an hour since the last
+            build.</p>
+          <p>If you really want the build to happen before the one-hour period
+            is up, you can use the "Request builds" action.</p>
+        </dd>
+        <dt>Built on request</dt>
+        <dd>
+          <p>Builds of the charm recipe have to be manually requested using
+            the "Request builds" action.</p>
+        </dd>
+      </dl>
+    </div>
   </body>
 </html>
diff --git a/lib/lp/code/help/recipe-build-frequency.html b/lib/lp/code/help/recipe-build-frequency.html
index 392cb50..0703579 100644
--- a/lib/lp/code/help/recipe-build-frequency.html
+++ b/lib/lp/code/help/recipe-build-frequency.html
@@ -1,41 +1,43 @@
 <html>
   <head>
     <title>Source package recipe build schedule</title>
-    <link rel="stylesheet" type="text/css"
-          href="/+icing/yui/cssreset/reset.css" />
-    <link rel="stylesheet" type="text/css"
-          href="/+icing/yui/cssfonts/fonts.css" />
-    <link rel="stylesheet" type="text/css"
-          href="/+icing/yui/cssbase/base.css" />
+    <link rel="stylesheet" type="text/css" href="/+icing/combo.css" />
     <style type="text/css">
-      dt { font-weight: bold }
-      dd p { margin-bottom: 0.5em }
+      dt {
+        font-weight: bold
+      }
+
+      dd p {
+        margin-bottom: 0.5em
+      }
+
     </style>
   </head>
   <body>
-    <h1>Source package recipe build schedule</h1>
-
-    <p>There are two options for when recipes get built:</p>
-    <dl>
-      <dt>Built daily</dt>
-      <dd>
-        <p>A build will be scheduled automatically once a change in any
-        of the branches used in the recipe is detected.</p>
-        <p>If there has been a build of the recipe within the previous
-          24 hours into the daily build PPA, the build will not be scheduled
-          until 24 hours since the last build into the daily build PPA.</p>
-        <p>If the recipe had been built within the last 24 hours into a
-          different PPA using the "Request build" action, this will not
-          delay the daily build.</p>
-        <p>If you really want the build to happen before the 24 hour period is up,
-          you can use the "Request build" action.</p>
-      </dd>
-      <dt>Built on request</dt>
-      <dd>
-        <p>Builds of the recipe have to be manually requested using the
-          "Request build" action.</p>
-      </dd>
-    </dl>
+    <div class="yui-d0">
+      <h2>Source package recipe build schedule</h2>
 
+      <p>There are two options for when recipes get built:</p>
+      <dl>
+        <dt>Built daily</dt>
+        <dd>
+          <p>A build will be scheduled automatically once a change in any
+            of the branches used in the recipe is detected.</p>
+          <p>If there has been a build of the recipe within the previous
+            24 hours into the daily build PPA, the build will not be scheduled
+            until 24 hours since the last build into the daily build PPA.</p>
+          <p>If the recipe had been built within the last 24 hours into a
+            different PPA using the "Request build" action, this will not
+            delay the daily build.</p>
+          <p>If you really want the build to happen before the 24 hour period
+            is up, you can use the "Request build" action.</p>
+        </dd>
+        <dt>Built on request</dt>
+        <dd>
+          <p>Builds of the recipe have to be manually requested using the
+            "Request build" action.</p>
+        </dd>
+      </dl>
+    </div>
   </body>
 </html>
diff --git a/lib/lp/code/help/recipe-syntax.html b/lib/lp/code/help/recipe-syntax.html
index b5d97a9..5438791 100644
--- a/lib/lp/code/help/recipe-syntax.html
+++ b/lib/lp/code/help/recipe-syntax.html
@@ -1,91 +1,84 @@
 <html>
   <head>
     <title>Source package recipe syntax</title>
-    <link rel="stylesheet" type="text/css"
-          href="/+icing/yui/cssreset/reset.css" />
-    <link rel="stylesheet" type="text/css"
-          href="/+icing/yui/cssfonts/fonts.css" />
-    <link rel="stylesheet" type="text/css"
-          href="/+icing/yui/cssbase/base.css" />
+    <link rel="stylesheet" type="text/css" href="/+icing/combo.css" />
   </head>
   <body>
-    <h1>Source package recipe syntax</h1>
+    <div class="yui-d0">
+      <h2>Source package recipe syntax</h2>
 
-    <p>A recipe is just text that starts with a line such as:</p>
-    <dl>
-      <dd>
-        <tt># bzr-builder format 0.2 deb-version {debupstream}-0~{revno}</tt>
-      </dd>
-    </dl>
+      <p>A recipe is just text that starts with a line such as:</p>
+      <p>
+        <code># bzr-builder format 0.2 deb-version {debupstream}-0~{revno}</code>
+      </p>
 
-    <p>
-      The format specifier is there to allow the syntax to be changed in later
-      versions, and the meaning of "deb-version" will be explained below.
-    </p>
+      <p>
+        The format specifier is there to allow the syntax to be changed in
+        later versions, and the meaning of "deb-version" will be explained
+        below.
+      </p>
 
-    <p>
-      The next line specifies the base branch, this is the branch that will
-      be used to define the initial files and directory structure.
-    </p>
+      <p>
+        The next line specifies the base branch, this is the branch that will
+        be used to define the initial files and directory structure.
+      </p>
 
-    <p>
-      Next comes any number of lines of other branches to be merged in, but
-      using a slightly different format. To merge a branch in to the base
-      specify something like:
-    </p>
+      <p>
+        Next comes any number of lines of other branches to be merged in, but
+        using a slightly different format. To merge a branch in to the base
+        specify something like:
+      </p>
 
-    <dl>
-      <dd>
-        <tt>merge packaging lp:~foo-dev/foo/packaging</tt>
-      </dd>
-    </dl>
+      <p>
+        <code>merge packaging lp:~foo-dev/foo/packaging</code>
+      </p>
 
-    <p>
-      which specifies we are merging a branch we will refer to as "packaging",
-      which can be found at the given URI. The name you give to the branch as
-      the second item doesn't have to match anything else, it's just an
-      identifier specific to the recipe.
-    </p>
+      <p>
+        which specifies we are merging a branch we will refer to as
+        "packaging", which can be found at the given URI. The name you give to
+        the branch as the second item doesn't have to match anything else,
+        it's just an identifier specific to the recipe.
+      </p>
 
-    <p>
-      <a href="https://help.launchpad.net/Packaging/SourceBuilds/Recipes";
-         target="_blank">Read more &gt;</a> on recipe syntax for other commands and
-         specifying revisions for the branches.
-    </p>
+      <p>
+        <a href="https://help.launchpad.net/Packaging/SourceBuilds/Recipes";
+          target="_blank">Read more &gt;</a> on recipe syntax for other
+        commands and specifying revisions for the branches.
+      </p>
 
-    <h2>deb-version</h2>
+      <h3>deb-version</h3>
 
-    <p>
-      To build Debian source package that you desire you should make sure that
-      "deb-version" is set to an appropriate value on the first line of your
-      recipe. This will be used as the version number of the package. The
-      value you put there also allows for substitution of values in to it
-      based on various things when the recipe is processed:
-    </p>
+      <p>
+        To build Debian source package that you desire you should make sure
+        that "deb-version" is set to an appropriate value on the first line of
+        your recipe. This will be used as the version number of the package.
+        The value you put there also allows for substitution of values in to
+        it based on various things when the recipe is processed:
+      </p>
 
-    <ul class="bulleted">
-      <li><tt>{date}</tt> &mdash; will be substituted with just the current
-        date, such as <tt>20090819</tt></li>
-      <li><tt>{debupstream}</tt> &mdash; will be replaced by the upstream
-        portion of the version number taken from debian/changelog in the final
-        tree. If when the tree is built the top of debian/changelog has a
-        version number of "<tt>1.0-1</tt>" then this would evaluate to
-        "<tt>1.0</tt>".
-      </li>
-      <li><tt>{revno}</tt> &mdash; will be the revno of the base branch (the
-        first specified)</li>
-      <li><tt>{revno:&lt;branch name&gt;}</tt> &mdash; will be substituted
-        with the revno for the branch named &lt;branch name&gt; in the
-        recipe</li>
-      <li><tt>{time}</tt> &mdash; will be substituted with the current date
-        and time, such as <tt>200908191512</tt></li>
-    </ul>
-
-    <p>
-      <a href="https://help.launchpad.net/Packaging/SourceBuilds/Recipes";
-         target="_blank">Read more &gt;</a> on recipe syntax for other commands and
-         specifying revisions for the branches.
-    </p>
+      <ul class="bulleted">
+        <li><code>{date}</code> &mdash; will be substituted with just the
+          current date, such as <code>20090819</code></li>
+        <li><code>{debupstream}</code> &mdash; will be replaced by the
+          upstream portion of the version number taken from debian/changelog
+          in the final tree. If when the tree is built the top of
+          debian/changelog has a version number of "<code>1.0-1</code>" then
+          this would evaluate to "<code>1.0</code>".
+        </li>
+        <li><code>{revno}</code> &mdash; will be the revno of the base branch
+          (the first specified)</li>
+        <li><code>{revno:&lt;branch name&gt;}</code> &mdash; will be
+          substituted with the revno for the branch named &lt;branch name&gt;
+          in the recipe</li>
+        <li><code>{time}</code> &mdash; will be substituted with the current
+          date and time, such as <code>200908191512</code></li>
+      </ul>
 
+      <p>
+        <a href="https://help.launchpad.net/Packaging/SourceBuilds/Recipes";
+          target="_blank">Read more &gt;</a> on recipe syntax for other
+        commands and specifying revisions for the branches.
+      </p>
+    </div>
   </body>
 </html>
diff --git a/lib/lp/code/help/register-branch.html b/lib/lp/code/help/register-branch.html
index bb2d6ac..f91219f 100644
--- a/lib/lp/code/help/register-branch.html
+++ b/lib/lp/code/help/register-branch.html
@@ -1,38 +1,42 @@
 <html>
   <head>
     <title>Uploading a branch without registering</title>
-    <link rel="stylesheet" type="text/css"
-          href="/+icing/yui/cssreset/reset.css" />
-    <link rel="stylesheet" type="text/css"
-          href="/+icing/yui/cssfonts/fonts.css" />
-    <link rel="stylesheet" type="text/css"
-          href="/+icing/yui/cssbase/base.css" />
+    <link rel="stylesheet" type="text/css" href="/+icing/combo.css" />
   </head>
   <body>
-    <h1>Uploading a branch without registering</h1>
+    <div class="yui-d0">
+      <h2>Uploading a branch without registering</h2>
 
-    <p>If you want to host a Bazaar branch on Launchpad, you can push it straight to Launchpad without first registering.</p>
+      <p>If you want to host a Bazaar branch on Launchpad, you can push it
+        straight to Launchpad without first registering.</p>
 
-    <p>Simply open up your terminal, change to the directory that contains your Bazaar branch and type:</p>
+      <p>Simply open up your terminal, change to the directory that contains
+        your Bazaar branch and type:</p>
 
-    <p>
-      <code>
-       bzr launchpad-login userid<br />
-       bzr push lp:~userid/project-name/branch-name
-      </code>
-    </p>
+      <p>
+        <code>
+         bzr launchpad-login userid<br/>
+         bzr push lp:~userid/project-name/branch-name
+        </code>
+      </p>
 
-    <p>Replace <em>userid</em> with your Launchpad id, <em>project-name</em> with the project's Launchpad id and then chose whichever branch name you want.</p>
+      <p>Replace <em>userid</em> with your Launchpad id, <em>project-name</em>
+        with the project's Launchpad id and then chose whichever branch name
+        you want.</p>
 
-    <p><a href="https://help.launchpad.net/Code/UploadingABranch"; target="_blank">Read more about pushing Bazaar branches to Launchpad &gt;</a></p>
+      <p><a href="https://help.launchpad.net/Code/UploadingABranch";
+          target="_blank">Read more about pushing Bazaar branches to Launchpad
+          &gt;</a></p>
 
-    <h2>If you register the branch in Launchpad before pushing to it</h2>
+      <h3>If you register the branch in Launchpad before pushing to it</h3>
 
-    <p>If you register the branch in Launchpad's web interface, before pushing anything to it, you'll need to use a slightly different Bazaar command the first time you push anything to the branch:</p>
-
-    <p>
-      <code>bzr push lp:~userid/project-name/branch-name --use-existing-dir</code>
-    </p>
+      <p>If you register the branch in Launchpad's web interface, before
+        pushing anything to it, you'll need to use a slightly different Bazaar
+        command the first time you push anything to the branch:</p>
 
+      <p>
+        <code>bzr push lp:~userid/project-name/branch-name --use-existing-dir</code>
+      </p>
+    </div>
   </body>
 </html>
diff --git a/lib/lp/code/help/related-recipes.html b/lib/lp/code/help/related-recipes.html
index cb0c822..2e21294 100644
--- a/lib/lp/code/help/related-recipes.html
+++ b/lib/lp/code/help/related-recipes.html
@@ -1,38 +1,37 @@
 <html>
   <head>
     <title>Related source package recipes</title>
-    <link rel="stylesheet" type="text/css"
-          href="/+icing/yui/cssreset/reset.css" />
-    <link rel="stylesheet" type="text/css"
-          href="/+icing/yui/cssfonts/fonts.css" />
-    <link rel="stylesheet" type="text/css"
-          href="/+icing/yui/cssbase/base.css" />
+    <link rel="stylesheet" type="text/css" href="/+icing/combo.css" />
   </head>
   <body>
-    <h1>Related source package recipes</h1>
+    <div class="yui-d0">
+      <h2>Related source package recipes</h2>
 
-    <p>
-      You can ask Launchpad to make an automatic daily build
-      of the code in this branch and place the resultant package(s)
-      in your chosen PPA. (<a href="https://help.launchpad.net/Packaging/SourceBuilds"; target="_blank">Read more</a>)
-    </p>
+      <p>
+        You can ask Launchpad to make an automatic daily build
+        of the code in this branch and place the resultant package(s)
+        in your chosen PPA. (<a
+          href="https://help.launchpad.net/Packaging/SourceBuilds";
+          target="_blank">Read more</a>)
+      </p>
 
-    <p>A "recipe" is a description of the steps Launchpad's package builder
-      should take to construct a source package from a set of Bazaar or Git
-      branches that you specify.
-    </p>
-
-    <p>
-      Using a recipe, you tell Launchpad:
-    </p>
-    <ul class="bulleted">
-      <li>in which branch to find the code</li>
-      <li>where to find the packaging information &mdash; e.g. in a separate
-      branch or in an existing Ubuntu package branch</li>
-      <li>the correct package version (so users will still be able to upgrade
-      to the stable version of the distro once it gets released)</li>
-      <li>any modifications necessary to make the source build properly</li>
-    </ul>
+      <p>A "recipe" is a description of the steps Launchpad's package builder
+        should take to construct a source package from a set of Bazaar or Git
+        branches that you specify.
+      </p>
 
+      <p>
+        Using a recipe, you tell Launchpad:
+      </p>
+      <ul class="bulleted">
+        <li>in which branch to find the code</li>
+        <li>where to find the packaging information &mdash; e.g. in a separate
+          branch or in an existing Ubuntu package branch</li>
+        <li>the correct package version (so users will still be able to
+          upgrade
+          to the stable version of the distro once it gets released)</li>
+        <li>any modifications necessary to make the source build properly</li>
+      </ul>
+    </div>
   </body>
 </html>
diff --git a/lib/lp/registry/help/distribution-add-series.html b/lib/lp/registry/help/distribution-add-series.html
index ae7d203..7d9a51c 100644
--- a/lib/lp/registry/help/distribution-add-series.html
+++ b/lib/lp/registry/help/distribution-add-series.html
@@ -1,30 +1,27 @@
 <html>
   <head>
     <title>Adding a new series</title>
-    <link rel="stylesheet" type="text/css"
-          href="/+icing/yui/cssreset/reset.css" />
-    <link rel="stylesheet" type="text/css"
-          href="/+icing/yui/cssfonts/fonts.css" />
-    <link rel="stylesheet" type="text/css"
-          href="/+icing/yui/cssbase/base.css" />
+    <link rel="stylesheet" type="text/css" href="/+icing/combo.css" />
   </head>
   <body>
-    <h1>Adding a new series</h1>
-    <p>
-      This page creates a new distribution series. The series can
-      later be renamed and initialized with packages from a parent
-      series.
-    </p>
-    <h2 id="codename">Code name</h2>
-    <p>
-      The code name for the new distribution series will form part of
-      its URL, so choose carefully. The new series is also referenced
-      by its code name throughout Launchpad while it's in a
-      non-released state.
-    </p>
-    <p>
-      Once the series is released, its version is used instead in
-      titles, etc.
-    </p>
+    <div class="yui-d0">
+      <h2>Adding a new series</h2>
+      <p>
+        This page creates a new distribution series. The series can
+        later be renamed and initialized with packages from a parent
+        series.
+      </p>
+      <h3 id="codename">Code name</h3>
+      <p>
+        The code name for the new distribution series will form part of
+        its URL, so choose carefully. The new series is also referenced
+        by its code name throughout Launchpad while it's in a
+        non-released state.
+      </p>
+      <p>
+        Once the series is released, its version is used instead in
+        titles, etc.
+      </p>
+    </div>
   </body>
 </html>
diff --git a/lib/lp/registry/help/driver.html b/lib/lp/registry/help/driver.html
index 7d1b0ef..3bce002 100644
--- a/lib/lp/registry/help/driver.html
+++ b/lib/lp/registry/help/driver.html
@@ -1,26 +1,22 @@
 <html>
   <head>
     <title>What is a project driver?</title>
-    <link rel="stylesheet" type="text/css"
-          href="/+icing/yui/cssreset/reset.css" />
-    <link rel="stylesheet" type="text/css"
-          href="/+icing/yui/cssfonts/fonts.css" />
-    <link rel="stylesheet" type="text/css"
-          href="/+icing/yui/cssbase/base.css" />
+    <link rel="stylesheet" type="text/css" href="/+icing/combo.css" />
   </head>
   <body>
-    <h1>What is a project driver?</h1>
-
-    <p>
-      The project driver is a person or team who is responsible for setting
-      the direction for the project.  The driver can set goals, approve bug
-      targeting, or set backporting for <b>any</b> major series in the
-      project.
-    </p>
-    <p>
-      Alternatively, you can chose to leave the project driver unset and
-      appoint a team for each series.
-    </p>
+    <div class="yui-d0">
+      <h2>What is a project driver?</h2>
 
+      <p>
+        The project driver is a person or team who is responsible for setting
+        the direction for the project. The driver can set goals, approve bug
+        targeting, or set backporting for <strong>any</strong> major series in
+        the project.
+      </p>
+      <p>
+        Alternatively, you can chose to leave the project driver unset and
+        appoint a team for each series.
+      </p>
+    </div>
   </body>
 </html>
diff --git a/lib/lp/registry/help/home-page-staging-help.html b/lib/lp/registry/help/home-page-staging-help.html
index 6690a64..cb30f82 100644
--- a/lib/lp/registry/help/home-page-staging-help.html
+++ b/lib/lp/registry/help/home-page-staging-help.html
@@ -1,30 +1,42 @@
 <html>
   <head>
     <title>Staging &mdash; Launchpad's sandbox</title>
-    <link rel="stylesheet" type="text/css"
-          href="/+icing/yui/cssreset/reset.css" />
-    <link rel="stylesheet" type="text/css"
-          href="/+icing/yui/cssfonts/fonts.css" />
-    <link rel="stylesheet" type="text/css"
-          href="/+icing/yui/cssbase/base.css" />
+    <link rel="stylesheet" type="text/css" href="/+icing/combo.css" />
   </head>
   <body>
-    <h1>Staging &mdash; Launchpad's sandbox</h1>
+    <div class="yui-d0">
+      <h2>Staging &mdash; Launchpad's sandbox</h2>
 
-    <p>
-      If you want to try Launchpad out, you can use the staging environment (at  <a href="https://staging.launchpad.net/"; target="parent">https://staging.launchpad.net/</a>) to experiment with real data and functionality, but without affecting the day-to-day work of other Launchpad users.
-    </p>
+      <p>
+        If you want to try Launchpad out, you can use the staging environment
+        (at <a href="https://staging.launchpad.net/";
+          target="parent">https://staging.launchpad.net/</a>) to experiment
+        with real data and functionality, but without affecting the day-to-day
+        work of other Launchpad users.
+      </p>
 
-    <p>However, there are a few things to note about staging:</p>
-
-    <ul>
-      <li>Every week, staging's database is replaced with a fresh snapshot of Launchpad's production database: you will lose anything you do on staging.</li>
-      <li>Staging runs the latest code with changed database models from the Launchpad developers &mdash; if things go wrong, <a target="_blank" href="https://bugs.launchpad.net/launchpad/+filebug";>please let us know</a>.</li>
-      <li>You can't create a new account on staging &mdash; instead, create one in <a href="https://launchpad.net/";>Launchpad's production environment</a> and then wait up to 24 hours for your account to be available on staging.</li>
-      <li>Staging does not send email.</li>
-      <li>You can upload translations and templates but not export them &mdash; uploaded translations/templates will disappear after 24 hours.</li>
-      <li>To push code branches to staging you need use <code>bzr push lp://staging/~your-id/branch-name</code>.</li>
-    </ul>
+      <p>However, there are a few things to note about staging:</p>
 
+      <ul class="bulleted">
+        <li>Every week, staging's database is replaced with a fresh snapshot
+          of Launchpad's production database: you
+          will lose anything you do on staging.</li>
+        <li>Staging runs the latest code with changed database models from the
+          Launchpad developers &mdash; if things go wrong, <a target="_blank"
+            href="https://bugs.launchpad.net/launchpad/+filebug";>please let us
+            know</a>.</li>
+        <li>You can't create a new account on staging &mdash; instead, create
+          one in <a href="https://launchpad.net/";>Launchpad's production
+            environment</a> and then wait up to 24 hours for your account to
+          be available on staging.</li>
+        <li>Staging does not send email.</li>
+        <li>You can upload translations and templates but not export them
+          &mdash; uploaded translations/templates will disappear after 24
+          hours.</li>
+        <li>To push code branches to staging you need use
+          <code>bzr push lp://staging/~your-id/branch-name</code>.
+        </li>
+      </ul>
+    </div>
   </body>
 </html>
diff --git a/lib/lp/registry/help/import-pgp-key.html b/lib/lp/registry/help/import-pgp-key.html
index c9b02cd..d6e7f75 100644
--- a/lib/lp/registry/help/import-pgp-key.html
+++ b/lib/lp/registry/help/import-pgp-key.html
@@ -1,64 +1,66 @@
 <html>
   <head>
     <title>Importing an OpenPGP key</title>
-    <link rel="stylesheet" type="text/css"
-          href="/+icing/yui/cssreset/reset.css" />
-    <link rel="stylesheet" type="text/css"
-          href="/+icing/yui/cssfonts/fonts.css" />
-    <link rel="stylesheet" type="text/css"
-          href="/+icing/yui/cssbase/base.css" />
+    <link rel="stylesheet" type="text/css" href="/+icing/combo.css" />
   </head>
   <body>
-    <h1>Importing an OpenPGP key</h1>
+    <div class="yui-d0">
+      <h2>Importing an OpenPGP key</h2>
 
-    <p>To import your OpenPGP key into Launchpad, you first need the key's fingerprint.</p>
+      <p>To import your OpenPGP key into Launchpad, you first need the key's
+        fingerprint.</p>
 
-    <p><strong>Note:</strong> You must ensure your <a href="/+help-registry/openpgp-keys.html#publish">key is in the Ubuntu keyserver</a> before you try to add it to Launchpad.</p>
+      <p><strong>Note:</strong> You must ensure your <a
+          href="/+help-registry/openpgp-keys.html#publish">key is in the
+          Ubuntu keyserver</a> before you try to add it to Launchpad.</p>
 
-    <h2>Retrieving the key in Ubuntu</h2>
+      <h3>Retrieving the key in Ubuntu</h3>
 
-    <p>
-      The easiest way to generate a new OpenPGP key in Ubuntu is to use the
-      <em>Passwords and Encryption Keys</em> tool. If you are using Ubuntu
-      10.04 or an earlier version, it is located at
-      <em>Applications &gt; Accessories &gt; Passwords and Encryption Keys</em>.
-      In Ubuntu 10.10 and later versions, it is located at
-      <em>System &gt; Preferences &gt; Passwords and Encryption Keys</em>.
-    </p>
+      <p>
+        The easiest way to generate a new OpenPGP key in Ubuntu is to use the
+        <em>Passwords and Encryption Keys</em> tool. If you are using Ubuntu
+        10.04 or an earlier version, it is located at <em>Applications &gt;
+          Accessories &gt; Passwords and Encryption Keys</em>. In Ubuntu 10.10
+        and later versions, it is located at <em>System &gt; Preferences &gt;
+          Passwords and Encryption Keys</em>.
+      </p>
 
-    <p>
-      <strong>Step 1</strong> Open <em>Passwords and Encryption Keys</em>.
-    </p>
+      <p>
+        <strong>Step 1</strong> Open <em>Passwords and Encryption Keys</em>.
+      </p>
 
-    <p>
-      <strong>Step 2</strong> Select the <em>My Personal Keys</em> tab, select
-      your key and open the property window by pressing Space Bar or double
-      clicking with your pointer. Select the Details tab of the property
-      window.
-    </p>
+      <p>
+        <strong>Step 2</strong> Select the <em>My Personal Keys</em> tab,
+        select your key and open the property window by pressing Space Bar or
+        double clicking with your pointer. Select the Details tab of the
+        property window.
+      </p>
 
-    <p>
-      <strong>Step 3</strong> Select the Fingerprint text (the ten blocks of
-      numbers and letter). Copy the text by pressing the
-      <code>Ctrl+c</code> keys together.
-    </p>
+      <p>
+        <strong>Step 3</strong> Select the Fingerprint text (the ten blocks of
+        numbers and letter). Copy the text by pressing the <code>Ctrl+c</code>
+        keys together.
+      </p>
 
-    <h2>Retrieving the key using the GPG command</h2>
+      <h3>Retrieving the key using the GPG command</h3>
 
-    <p>Open a terminal and enter:</p>
+      <p>Open a terminal and enter:</p>
 
-    <p><code>gpg --fingerprint</code></p>
+      <p><code>gpg --fingerprint</code></p>
 
-    <p>GPG will display a message similar to:</p>
+      <p>GPG will display a message similar to:</p>
 
-    <p><code>pub   1024D/12345678 2007-01-26<br />
-             Key fingerprint = 0464 39CD 2486 190A 2C5A  0739 0E68 04DC 16E7 CB72<br />
-             Geoffrey Hayes (My OpenPGP key) &lt;geoffrey@xxxxxxxxxx&gt;<br />
-             sub   2048g/ABCDEF12 2007-01-26</code>
-    </p>
+      <p><code>pub   1024D/12345678 2007-01-26<br />
+               Key fingerprint = 0464 39CD 2486 190A 2C5A  0739 0E68 04DC 16E7 CB72<br />
+               Geoffrey Hayes (My OpenPGP key) &lt;geoffrey@xxxxxxxxxx&gt;<br />
+               sub   2048g/ABCDEF12 2007-01-26</code>
+      </p>
 
-    <p>
-      Highlight and copy only the numeric fingerprint: <code>0464 39CD 2486 190A 2C5A  0739 0E68 04DC 16E7 CB72</code> in the example above.
-    </p>
+      <p>
+        Highlight and copy only the numeric fingerprint:
+        <code>0464 39CD 2486 190A 2C5A  0739 0E68 04DC 16E7 CB72</code>
+        in the example above.
+      </p>
+    </div>
   </body>
 </html>
diff --git a/lib/lp/registry/help/init-series-packageset-help.html b/lib/lp/registry/help/init-series-packageset-help.html
index 2f82b08..187f5af 100644
--- a/lib/lp/registry/help/init-series-packageset-help.html
+++ b/lib/lp/registry/help/init-series-packageset-help.html
@@ -1,20 +1,17 @@
 <html>
   <head>
     <title>Package sets</title>
-    <link rel="stylesheet" type="text/css"
-          href="/+icing/yui/cssreset/reset.css" />
-    <link rel="stylesheet" type="text/css"
-          href="/+icing/yui/cssfonts/fonts.css" />
-    <link rel="stylesheet" type="text/css"
-          href="/+icing/yui/cssbase/base.css" />
+    <link rel="stylesheet" type="text/css" href="/+icing/combo.css" />
   </head>
   <body>
-    <h1>Package sets</h1>
-    <p>
-      Packages in a distribution are typically organized into groups of packages
-      that are termed "package sets". Examples of these are those packages that form
-      the set required for a server installation, a desktop installation, or a
-      custom installation such as mythbuntu.
-    </p>
+    <div class="yui-d0">
+      <h2>Package sets</h2>
+      <p>
+        Packages in a distribution are typically organized into groups of
+        packages that are termed "package sets". Examples of these are those
+        packages that form the set required for a server installation, a
+        desktop installation, or a custom installation such as mythbuntu.
+      </p>
+    </div>
   </body>
 </html>
diff --git a/lib/lp/registry/help/init-series-title-help.html b/lib/lp/registry/help/init-series-title-help.html
index f843cb1..e60f5bc 100644
--- a/lib/lp/registry/help/init-series-title-help.html
+++ b/lib/lp/registry/help/init-series-title-help.html
@@ -1,77 +1,90 @@
 <html>
   <head>
     <title>Series initialisation</title>
-    <link rel="stylesheet" type="text/css"
-          href="/+icing/yui/cssreset/reset.css" />
-    <link rel="stylesheet" type="text/css"
-          href="/+icing/yui/cssfonts/fonts.css" />
-    <link rel="stylesheet" type="text/css"
-          href="/+icing/yui/cssbase/base.css" />
+    <link rel="stylesheet" type="text/css" href="/+icing/combo.css" />
+    <style type="text/css">
+      dt {
+        font-weight: bold
+      }
+
+      dd p {
+        margin-bottom: 0.5em
+      }
+
+    </style>
   </head>
   <body>
-    <h1>There are two ways to initialise a new series:</h1>
-    <ul>
-      <li>A continuation of a distribution with existing series. For example,
-      after the previous series was released you might want to open a new
-      development series by copying the previous one.
-      </li>
-      <li>A derived distribution series. This is where you have a new
-      distribution and you want to copy the packages from a series in a
-      different distribution.
-      </li>
-    </ul>
-    <p>
+    <div class="yui-d0">
+      <h2>There are two ways to initialise a new series:</h2>
+      <ul class="bulleted">
+        <li>A continuation of a distribution with existing series. For
+          example, after the previous series was released you might want to
+          open a new development series by copying the previous one.
+        </li>
+        <li>A derived distribution series. This is where you have a new
+          distribution and you want to copy the packages from a series in a
+          different distribution.
+        </li>
+      </ul>
+      <p>
         In both cases, initialisation is done as a background task after the
         "Initialize Series" button is pressed.
-    </p>
-
-     <h3>Continuation series</h3>
-     <p>This will copy all the sources and binaries from the previous
-         series in the distribution.  Its parent series default to the
-         parent series used in the previous series, but they can be changed.
-         This is useful, for example, when the new series has a longer
-         support period and you wish to sync packages from a more stable
-         upstream series.  On an Ubuntu-sized distribution,
-         expect the background task to complete in around 10 minutes.
-     </p>
-     <p>It will also copy all of the settings from the previous series,
-         such as upload permissions and packagesets.</p>
+      </p>
 
-     <h3>New derived distribution series</h3>
-     <p>Initializing a new distribution is a complicated task. It takes a
-         long time and has a lot of checks. There are various things that
-         you need to specify:
-         <ul>
-           <li>One or more parents to inherit packages from.</li>
-           <li>Which architectures available in parents that you want to use.</li>
-           <li>Which packagesets you want to copy from the parents.</li>
-           <li>Whether to rebuild the copied packages,
-               or copy binaries from the parents.</li>
-         </ul>
-         Normally you can expect the initialisation to complete in minutes
-         if you have less than around 1000 packages, but it will non-linearly
-         increase as the number of copied packages increases, because it has
-         to check that you are not copying conflicting packages.
-     </p>
+      <h3>Continuation series</h3>
+      <p>
+        This will copy all the sources and binaries from the previous
+        series in the distribution. Its parent series default to the
+        parent series used in the previous series, but they can be changed.
+        This is useful, for example, when the new series has a longer
+        support period and you wish to sync packages from a more stable
+        upstream series. On an Ubuntu-sized distribution,
+        expect the background task to complete in around 10 minutes.
+      </p>
+      <p>
+        It will also copy all of the settings from the previous series,
+        such as upload permissions and packagesets.
+      </p>
 
-     <h3>Pre-initialisation checks and errors</h3>
-     <p>
-       <ul>
-        <li><em>Parent Builds:</em> If the parent has any builds in
-            progress for sources that you are copying,
-            the initialisation will be refused. This is to stop you ending
-            up with the same version binary with contents that differ between
-            parent and child, because the child would rebuild a source
-            that didn't get its binary copied too.
-        </li>
-        <li><em>Pending (Queued) Parent Builds:</em> If the parent has any
-            builds for sources that you are copying that are waiting in the
-            pending-acceptance queues (pending archive admin action),
-            the initialisation will be refused for the same reasons as
-            copying "Parent Builds" above.
+      <h3>New derived distribution series</h3>
+      <p>
+        Initializing a new distribution is a complicated task. It takes a
+        long time and has a lot of checks. There are various things that
+        you need to specify:
+      </p>
+      <ul class="bulleted">
+        <li>One or more parents to inherit packages from.</li>
+        <li>Which architectures available in parents that you want to use.
         </li>
-       </ul>
-     </p>
+        <li>Which packagesets you want to copy from the parents.</li>
+        <li>Whether to rebuild the copied packages,
+          or copy binaries from the parents.</li>
+      </ul>
+      <p>
+        Normally you can expect the initialisation to complete in minutes
+        if you have less than around 1000 packages, but it will non-linearly
+        increase as the number of copied packages increases, because it has
+        to check that you are not copying conflicting packages.
+      </p>
 
+      <h3>Pre-initialisation checks and errors</h3>
+      <dl>
+        <dt>Parent Builds:</dt>
+        <dd>
+          If the parent has any builds in progress for sources that you are
+          copying, the initialisation will be refused. This is to stop you
+          ending up with the same version binary with contents that differ
+          between parent and child, because the child would rebuild a source
+          that didn't get its binary copied too.
+        </dd>
+        <dt>Pending (Queued) Parent Builds:</dt>
+        <dd>
+          If the parent has any builds for sources that you are copying that
+          are waiting in the pending-acceptance queues (pending archive admin
+          action), the initialisation will be refused for the same reasons as
+          copying "Parent Builds" above.
+        </dd>
+      </dl>
+    </div>
   </body>
 </html>
diff --git a/lib/lp/registry/help/karma.html b/lib/lp/registry/help/karma.html
index 7a2d43f..3abe1ce 100644
--- a/lib/lp/registry/help/karma.html
+++ b/lib/lp/registry/help/karma.html
@@ -1,38 +1,34 @@
 <html>
   <head>
     <title>What is karma?</title>
-    <link rel="stylesheet" type="text/css"
-          href="/+icing/yui/cssreset/reset.css" />
-    <link rel="stylesheet" type="text/css"
-          href="/+icing/yui/cssfonts/fonts.css" />
-    <link rel="stylesheet" type="text/css"
-          href="/+icing/yui/cssbase/base.css" />
+    <link rel="stylesheet" type="text/css" href="/+icing/combo.css" />
   </head>
   <body>
-    <h1>What is karma?</h1>
+    <div class="yui-d0">
+      <h2>What is karma?</h2>
 
-    <p>
-      Karma is one of the ways in which you can get a feel for the work 
-      that someone has done recently in Launchpad.
-    </p>
-    
-    <p>
-      Almost everything you do in Launchpad helps you to build karma. For 
-      example: registering bugs, translating strings and answering support 
-      requests. Different types of work earn different levels of karma. 
-      Also, the amount of karma a particular action gives you fades over 
-      time.
-    </p>
-    
-    <p>
-      Karma is only attributed for work done in Launchpad and does not 
-      apply to items imported from other sources.
-    </p>
+      <p>
+        Karma is one of the ways in which you can get a feel for the work
+        that someone has done recently in Launchpad.
+      </p>
 
-    <p>
-      <a href="https://help.launchpad.net/YourAccount/Karma"; target="top">Read about how Launchpad calculates karma</a>.
-    </p>
+      <p>
+        Almost everything you do in Launchpad helps you to build karma. For
+        example: registering bugs, translating strings and answering support
+        requests. Different types of work earn different levels of karma.
+        Also, the amount of karma a particular action gives you fades over
+        time.
+      </p>
 
+      <p>
+        Karma is only attributed for work done in Launchpad and does not
+        apply to items imported from other sources.
+      </p>
 
+      <p>
+        <a href="https://help.launchpad.net/YourAccount/Karma";
+          target="top">Read about how Launchpad calculates karma</a>.
+      </p>
+    </div>
   </body>
 </html>
diff --git a/lib/lp/registry/help/milestone-tags.html b/lib/lp/registry/help/milestone-tags.html
index 23ac3e1..b6e12cb 100644
--- a/lib/lp/registry/help/milestone-tags.html
+++ b/lib/lp/registry/help/milestone-tags.html
@@ -1,20 +1,17 @@
 <html>
   <head>
     <title>What is a milestone tag?</title>
-    <link rel="stylesheet" type="text/css"
-          href="/+icing/yui/cssreset/reset.css" />
-    <link rel="stylesheet" type="text/css"
-          href="/+icing/yui/cssfonts/fonts.css" />
-    <link rel="stylesheet" type="text/css"
-          href="/+icing/yui/cssbase/base.css" />
+    <link rel="stylesheet" type="text/css" href="/+icing/combo.css" />
   </head>
   <body>
-    <h1>What is a milestone tag?</h1>
+    <div class="yui-d0">
+      <h2>What is a milestone tag?</h2>
 
-    <p>
-      Milestone tags are a way to group milestones within a project group.
-      You can filter based on one or more tags to see the bugs and blueprints
-      assigned to all milestones that have the given tags.
-    </p>
+      <p>
+        Milestone tags are a way to group milestones within a project group.
+        You can filter based on one or more tags to see the bugs and
+        blueprints assigned to all milestones that have the given tags.
+      </p>
+    </div>
   </body>
 </html>
diff --git a/lib/lp/registry/help/openid.html b/lib/lp/registry/help/openid.html
index e734633..04fcf0a 100644
--- a/lib/lp/registry/help/openid.html
+++ b/lib/lp/registry/help/openid.html
@@ -1,23 +1,21 @@
 <html>
   <head>
     <title>What is OpenID?</title>
-    <link rel="stylesheet" type="text/css"
-          href="/+icing/yui/cssreset/reset.css" />
-    <link rel="stylesheet" type="text/css"
-          href="/+icing/yui/cssfonts/fonts.css" />
-    <link rel="stylesheet" type="text/css"
-          href="/+icing/yui/cssbase/base.css" />
+    <link rel="stylesheet" type="text/css" href="/+icing/combo.css" />
   </head>
   <body>
-    <h1>What is OpenID?</h1>
+    <div class="yui-d0">
+      <h2>What is OpenID?</h2>
 
-    <p>Launchpad allows you to use your profile URL as an OpenID identifier.
-    A lot of sites like LiveJournal, SourceForge, etc. will allow you to log
-    in using this.
-    </p>
+      <p>Launchpad allows you to use your profile URL as an OpenID identifier.
+        A lot of sites like LiveJournal, SourceForge, etc. will allow you to
+        log in using this.
+      </p>
 
-    <p>Consult our <a href="https://help.launchpad.net/OpenID";
-      target="_top">OpenID help page on the wiki</a> for more information.
-    </p>
+      <p>
+        Consult our <a href="https://help.launchpad.net/OpenID";
+          target="_top">OpenID help page on the wiki</a> for more information.
+      </p>
+    </div>
   </body>
 </html>
diff --git a/lib/lp/registry/help/openpgp-keys.html b/lib/lp/registry/help/openpgp-keys.html
index 5dd0fdd..7d1cef3 100644
--- a/lib/lp/registry/help/openpgp-keys.html
+++ b/lib/lp/registry/help/openpgp-keys.html
@@ -1,121 +1,138 @@
 <html>
   <head>
     <title>Introducing OpenPGP keys</title>
-    <link rel="stylesheet" type="text/css"
-          href="/+icing/yui/cssreset/reset.css" />
-    <link rel="stylesheet" type="text/css"
-          href="/+icing/yui/cssfonts/fonts.css" />
-    <link rel="stylesheet" type="text/css"
-          href="/+icing/yui/cssbase/base.css" />
+    <link rel="stylesheet" type="text/css" href="/+icing/combo.css" />
+    <style>
+      h4 {
+        font-weight: bold;
+        margin-bottom: 0.5em;
+      }
+
+      h4 em {
+        font-weight: bold
+      }
+
+    </style>
   </head>
   <body>
-    <h1>Introducing OpenPGP keys</h1>
-
-    <p>
-      An OpenPGP (also called GnuPrivacyGuard) key allows you to sign documents, such as emails or text files, using a digital key.
-    </p>
-
-    <p>There are two parts to an OpenPGP key: one public that you share with the world and the other private,
-       which you should guard closely. Both are standard text files that make up a digital signature.
-    </p>
-
-    <p>
-      In Launchpad, you can use your OpenPGP key to identify yourself when using the bug
-      tracker's email interface, when uploading distribution packages and when signing a code
-      of conduct.
-    </p>
-
-    <h2>Generating your key in Ubuntu</h2>
-
-    <p>
-      The easiest way to generate a new OpenPGP key in Ubuntu is to use the
-      <em>Passwords and Encryption Keys</em> tool. If you are using Ubuntu
-      10.04 or an earlier version, it is located at
-      <em>Applications &gt; Accessories &gt; Passwords and Encryption Keys</em>.
-      In Ubuntu 10.10 and later versions, it is located at
-      <em>System &gt; Preferences &gt; Passwords and Encryption Keys</em>.
-    </p>
-
-    <p>
-      <strong>Step 1</strong> open <em>Passwords and Encryption Keys</em>.
-    </p>
-
-    <p>
-      <strong>Step 2</strong> Select <em>File &gt; New</em>, select <em>PGP Key</em> and then follow the on-screen instructions.
-    </p>
-
-    <p>Now you'll see your new key listed in the
-      <em>Passwords and Encryption Keys</em> tool.
-    </p>
-
-    <a name="publish"></a>
-    <h2>Publishing your key</h2>
-
-    <p>Your key is useful only if other people can verify items that you sign. By publishing your key to a keyserver, which acts as a directory of people's public keys, you can make your public key available to anyone else.</p>
-
-    <p>Before you add your key to Launchpad, you need to push it to the Ubuntu keyserver.</p>
-
-    <h3>Using <em>Passwords and Encryption Keys</em></h3>
-
-    <p>
-      <strong>Step 1</strong> Open <em>Passwords and Encryption Keys</em>.
-    </p>
-
-    <p>
-      <strong>Step 2</strong> Select the <em>My Personal Keys</em> tab,
-      select your key.
-    </p>
-
-    <p>
-      <strong>Step 3</strong> Select <em>Remote &gt; Sync and Publish Keys</em>
-      from the menu. Choose the <em>Sync</em> button. (You may need to add
-      hkp://keyserver.ubuntu.com to your key servers if you are not
-      using Ubuntu.)
-    </p>
-
-    <p>
-      It can take up to thirty minutes before your key is available to
-      Launchpad. After that time, you're ready to
-      <a href="/+help-registry/import-pgp-key.html">import your new key into
-      Launchpad</a>!
-    </p>
-
-    <h2>Renewing your key</h2>
-
-    <p>
-      You may have set your key to expire. You can update your key and
-      republish it.
-    </p>
-
-    <p>
-      <strong>Step 1</strong> Open <em>Passwords and Encryption Keys</em>.
-    </p>
-
-    <p>
-      <strong>Step 2</strong> Select the <em>My Personal Keys</em> tab,
-      select your key, and open the property window by pressing Space Bar
-      our double clicking with your pointer.
-    </p>
-
-    <p>
-      <strong>Step 3</strong> Set a new expiration date or choose never.
-    </p>
-
-    <p>
-      See the <em>Publishing your key</em> section above.
-    </p>
-
-    <h2>More about GPG</h2>
-
-    <p>
-      <a href="https://help.launchpad.net/YourAccount/ImportingYourPGPKey";
-        target="_blank">Importing Your PGP Key &gt;</a> at Launchpad Help
-      has more information about using OpenPGP with Launchpad and provides
-      examples using the GPG command found on most Linux distributions.
-      Read the
-      <a href="https://help.ubuntu.com/community/GnuPrivacyGuardHowto";
-        target="_blank">Ubuntu community's guide to OpenPGP keys &gt;</a>
-      to learn about how to other uses.
-    </p>
+    <div class="yui-d0">
+      <h2>Introducing OpenPGP keys</h2>
+
+      <p>
+        An OpenPGP (also called GnuPrivacyGuard) key allows you to sign
+        documents, such as emails or text files, using a digital key.
+      </p>
+
+      <p>
+        There are two parts to an OpenPGP key: one public that you share with
+        the world and the other private, which you should guard closely. Both
+        are standard text files that make up a digital signature.
+      </p>
+
+      <p>
+        In Launchpad, you can use your OpenPGP key to identify yourself when
+        using the bug tracker's email interface, when uploading distribution
+        packages and when signing a code of conduct.
+      </p>
+
+      <h3>Generating your key in Ubuntu</h3>
+
+      <p>
+        The easiest way to generate a new OpenPGP key in Ubuntu is to use the
+        <em>Passwords and Encryption Keys</em> tool. If you are using Ubuntu
+        10.04 or an earlier version, it is located at <em>Applications &gt;
+          Accessories &gt; Passwords and Encryption Keys</em>. In Ubuntu 10.10
+        and later versions, it is located at <em>System &gt; Preferences &gt;
+          Passwords and Encryption Keys</em>.
+      </p>
+
+      <p>
+        <strong>Step 1</strong> open <em>Passwords and Encryption Keys</em>.
+      </p>
+
+      <p>
+        <strong>Step 2</strong> Select <em>File &gt; New</em>, select <em>PGP
+          Key</em> and then follow the on-screen
+        instructions.
+      </p>
+
+      <p>Now you'll see your new key listed in the
+        <em>Passwords and Encryption Keys</em> tool.
+      </p>
+
+      <a name="publish"></a>
+      <h3>Publishing your key</h3>
+
+      <p>Your key is useful only if other people can verify items that you
+        sign. By publishing your key to a keyserver, which acts as a directory
+        of people's public keys, you can make your public key available to
+        anyone else.</p>
+
+      <p>Before you add your key to Launchpad, you need to push it to the
+        Ubuntu keyserver.</p>
+
+      <h4>Using <em>Passwords and Encryption Keys</em></h4>
+
+      <p>
+        <strong>Step 1</strong> Open <em>Passwords and Encryption Keys</em>.
+      </p>
+
+      <p>
+        <strong>Step 2</strong> Select the <em>My Personal Keys</em> tab,
+        select your key.
+      </p>
+
+      <p>
+        <strong>Step 3</strong> Select <em>Remote &gt; Sync and Publish
+          Keys</em> from the menu. Choose the <em>Sync</em> button. (You may
+        need to add hkp://keyserver.ubuntu.com to your key servers if you are
+        not using Ubuntu.)
+      </p>
+
+      <p>
+        It can take up to thirty minutes before your key is available to
+        Launchpad. After that time, you're ready to
+        <a href="/+help-registry/import-pgp-key.html">import your new key into
+          Launchpad</a>!
+      </p>
+
+      <h3>Renewing your key</h3>
+
+      <p>
+        You may have set your key to expire. You can update your key and
+        republish it.
+      </p>
+
+      <p>
+        <strong>Step 1</strong> Open <em>Passwords and Encryption Keys</em>.
+      </p>
+
+      <p>
+        <strong>Step 2</strong> Select the <em>My Personal Keys</em> tab,
+        select your key, and open the property window by pressing Space Bar
+        our double clicking with your pointer.
+      </p>
+
+      <p>
+        <strong>Step 3</strong> Set a new expiration date or choose never.
+      </p>
+
+      <p>
+        See the <em>Publishing your key</em> section above.
+      </p>
+
+      <h3>More about GPG</h3>
+
+      <p>
+        <a href="https://help.launchpad.net/YourAccount/ImportingYourPGPKey";
+          target="_blank">Importing Your PGP Key &gt;</a> at Launchpad Help
+        has more information about using OpenPGP with Launchpad and provides
+        examples using the GPG command found on most Linux distributions.
+        Read the
+        <a href="https://help.ubuntu.com/community/GnuPrivacyGuardHowto";
+          target="_blank">Ubuntu community's guide to
+          OpenPGP keys &gt;</a> to learn about how to other uses.
+      </p>
+    </div>
   </body>
 </html>
diff --git a/lib/lp/registry/help/pgp-key-clearsign.html b/lib/lp/registry/help/pgp-key-clearsign.html
index 1062119..de291a5 100644
--- a/lib/lp/registry/help/pgp-key-clearsign.html
+++ b/lib/lp/registry/help/pgp-key-clearsign.html
@@ -1,38 +1,46 @@
 <html>
   <head>
     <title>Importing an OpenPGP key</title>
-    <link rel="stylesheet" type="text/css"
-          href="/+icing/yui/cssreset/reset.css" />
-    <link rel="stylesheet" type="text/css"
-          href="/+icing/yui/cssfonts/fonts.css" />
-    <link rel="stylesheet" type="text/css"
-          href="/+icing/yui/cssbase/base.css" />
+    <link rel="stylesheet" type="text/css" href="/+icing/combo.css" />
   </head>
   <body>
-    <h1>Confirming your OpenPGP key</h1>
-
-    <p>To confirm that you own the OpenPGP key you want to use with Launchpad, you need to use the key to sign some text. Launchpad can then compare the signature on the text against the key you want to import.</p>
-
-    <p><strong>Step 1:</strong> Copy the confirmation text from the Launchpad page, paste it into a text editor and then save the file.</p>
-
-    <p><strong>Step 2:</strong> Open a terminal (you may need to adjust the next few steps if you're not using Ubuntu or another GNU/Linux based system) and enter:</p>
-
-    <p><code>gpg --clearsign FILENAME</code></p>
-
-    <p>Replace <em>FILENAME</em> with the name of the text file you saved in step 1.</p>
-
-    <p><strong>Step 3:</strong> Open the resultant text file (its name will be the same as your original file but with <em>.asc</em> appended) and paste its contents into the text-box on the Launchpad <em>Confirm OpenPGP Key</em> page. The signed text should look something like this:</p>
-
-    <p><code>-----BEGIN PGP SIGNED MESSAGE-----<br />
-             Hash: SHA1<br />
-             Please register ABCDEF... to the Launchpad user joe 2005-04-01 10:30:42 UTC<br />
-             -----BEGIN PGP SIGNATURE-----<br />
-             Version: GnuPG v1.4.9 (GNU/Linux)<br />
-             <br />
-             iEYEARECAAYFAkoueSsACgkQHxW0nUGJ7lrbQgCePRELoPGpEz5YjXcdlWRl/jIx<br />
-             6IsAn0qhfZlGGXSOBo/c2gjAnZym0KGg<br />
-             =o4L8<br />
-             -----END PGP SIGNATURE-----</code></p>
-
+    <div class="yui-d0">
+      <h2>Confirming your OpenPGP key</h2>
+
+      <p>To confirm that you own the OpenPGP key you want to use with
+        Launchpad, you need to use the key to sign some text. Launchpad can
+        then compare the signature on the text against the key you want to
+        import.</p>
+
+      <p><strong>Step 1:</strong> Copy the confirmation text from the
+        Launchpad page, paste it into a text editor and then save the file.
+      </p>
+
+      <p><strong>Step 2:</strong> Open a terminal (you may need to adjust the
+        next few steps if you're not using Ubuntu or another GNU/Linux based
+        system) and enter:</p>
+
+      <p><code>gpg --clearsign FILENAME</code></p>
+
+      <p>Replace <em>FILENAME</em> with the name of the text file you saved in
+        step 1.</p>
+
+      <p><strong>Step 3:</strong> Open the resultant text file (its name will
+        be the same as your original file but with <em>.asc</em> appended) and
+        paste its contents into the text-box on the Launchpad <em>Confirm
+          OpenPGP Key</em> page. The signed text should look something like
+        this: </p>
+
+      <p><code>-----BEGIN PGP SIGNED MESSAGE-----<br />
+               Hash: SHA1<br />
+               Please register ABCDEF... to the Launchpad user joe 2005-04-01 10:30:42 UTC<br />
+               -----BEGIN PGP SIGNATURE-----<br />
+               Version: GnuPG v1.4.9 (GNU/Linux)<br />
+               <br />
+               iEYEARECAAYFAkoueSsACgkQHxW0nUGJ7lrbQgCePRELoPGpEz5YjXcdlWRl/jIx<br />
+               6IsAn0qhfZlGGXSOBo/c2gjAnZym0KGg<br />
+               =o4L8<br />
+               -----END PGP SIGNATURE-----</code></p>
+    </div>
   </body>
 </html>
diff --git a/lib/lp/registry/help/sharing.html b/lib/lp/registry/help/sharing.html
index 70c112b..3bb4edf 100644
--- a/lib/lp/registry/help/sharing.html
+++ b/lib/lp/registry/help/sharing.html
@@ -1,86 +1,96 @@
 <!DOCTYPE html>
 <html>
+
   <head>
     <title>Sharing kinds of information</title>
-    <link rel="stylesheet" type="text/css"
-          href="/+icing/yui/cssreset/reset.css" />
-    <link rel="stylesheet" type="text/css"
-          href="/+icing/yui/cssfonts/fonts.css" />
-    <link rel="stylesheet" type="text/css"
-          href="/+icing/yui/cssbase/base.css" />
+    <link rel="stylesheet" type="text/css" href="/+icing/combo.css" />
+    <style type="text/css">
+      dt {
+        font-weight: bold
+      }
+
+      dd p {
+        margin-bottom: 0.5em
+      }
+
+    </style>
   </head>
+
   <body>
-    <h1>Sharing kinds of information</h1>
+    <div class="yui-d0">
+      <h2>Sharing kinds of information</h2>
 
-    <p>
+      <p>
         Launchpad has three kinds of restricted information &mdash;
         proprietary, embargoed and user-data. You'll only see them if they're
         shared with you.
-    </p>
+      </p>
 
-    <p>
+      <p>
         There are also three ways to share &mdash; share all, share some or
         share none.
-    </p>
+      </p>
 
-    <h3>Share some</h3>
+      <h3>Share some</h3>
 
-    <p>
+      <p>
         If you are a project maintainer, you may need to share a single bug or
         branch with a user or team to address an issue. You can share
         proprietary, private security, or private bugs and branches by
         subscribing users and teams to the bug or branch. You can then view
         the exceptional bugs and branches that you've shared.
-    </p>
+      </p>
 
 
-    <h2>Kinds of information</h2>
+      <h3>Kinds of information</h3>
 
-    <dl>
+      <dl>
         <dt>Proprietary</dt>
         <dd>
-            Information owned by an organisation, held in confidence. Visible
-            to people affiliated with the project and its organisation.
+          Information owned by an organisation, held in confidence. Visible
+          to people affiliated with the project and its organisation.
         </dd>
 
         <dt>Private Security</dt>
         <dd>
-            Visible if you're involved in fixing and deploying critical
-            vulnerability and exploits
-            (<a class="sprite external-link"
-                href="https://cve.mitre.org/";>CVEs</a>). Embargo will be lifted
-            after the fixes have been made, so that the information is visible
-            to anyone who may need to ensure that their version is secure.
+          Visible if you're involved in fixing and deploying critical
+          vulnerability and exploits
+          (<a class="sprite external-link"
+            href="https://cve.mitre.org/";>CVEs</a>). Embargo will be lifted
+          after the fixes have been made, so that the information is visible
+          to anyone who may need to ensure that their version is secure.
         </dd>
 
         <dt>User-data</dt>
         <dd>
-            Information containing personal data. Visible if you're working
-            with, or able to remove, the personal data from the information.
-            It can only be made public after the personal data is removed.
+          Information containing personal data. Visible if you're working
+          with, or able to remove, the personal data from the information.
+          It can only be made public after the personal data is removed.
         </dd>
-    </dl>
+      </dl>
 
-    <h2>Sharing</h2>
+      <h3>Sharing</h3>
 
-    <dl>
+      <dl>
         <dt>All</dt>
         <dd>
-            All proprietary, private security, or private project
-            information is shared.
+          All proprietary, private security, or private project
+          information is shared.
         </dd>
 
         <dt>Some</dt>
         <dd>
-            Some proprietary, private security, or private project
-            information is shared via a bug or branch subscription.
+          Some proprietary, private security, or private project
+          information is shared via a bug or branch subscription.
         </dd>
 
         <dt>Nothing</dt>
         <dd>
-            No proprietary, private security, or private project
-            information is shared.
+          No proprietary, private security, or private project
+          information is shared.
         </dd>
-    </dl>
+      </dl>
+    </div>
   </body>
+
 </html>
diff --git a/lib/lp/registry/help/structural-subscription-name.html b/lib/lp/registry/help/structural-subscription-name.html
index d21d674..bd93dca 100644
--- a/lib/lp/registry/help/structural-subscription-name.html
+++ b/lib/lp/registry/help/structural-subscription-name.html
@@ -1,30 +1,27 @@
 <html>
   <head>
     <title>Why do I need a "Subscription name"?</title>
-    <link rel="stylesheet" type="text/css"
-          href="/+icing/yui/cssreset/reset.css" />
-    <link rel="stylesheet" type="text/css"
-          href="/+icing/yui/cssfonts/fonts.css" />
-    <link rel="stylesheet" type="text/css"
-          href="/+icing/yui/cssbase/base.css" />
+    <link rel="stylesheet" type="text/css" href="/+icing/combo.css" />
   </head>
   <body>
-    <h1>Why do I need a "Subscription name"?</h1>
+    <div class="yui-d0">
+      <h2>Why do I need a "Subscription name"?</h2>
 
-    <p>
-      You may have more than one structural subscription per project, each
-      with different criteria.  You may provide a name in order to identify
-      them in the future in order to edit or delete them.
-    </p>
-    <p>
-      Also, each email generated by this subscription will quote the name
-      you choose, both in the email body and as a header
-      (<code>X-Launchpad-Subscription</code>), making it easy to filter
-      your bug mail.
-    </p>
-    <p>
-      So, please provide a short, descriptive name to help you remember this
-      subscription.
-    </p>
+      <p>
+        You may have more than one structural subscription per project, each
+        with different criteria. You may provide a name in order to identify
+        them in the future in order to edit or delete them.
+      </p>
+      <p>
+        Also, each email generated by this subscription will quote the name
+        you choose, both in the email body and as a header
+        (<code>X-Launchpad-Subscription</code>), making it easy to filter
+        your bug mail.
+      </p>
+      <p>
+        So, please provide a short, descriptive name to help you remember this
+        subscription.
+      </p>
+    </div>
   </body>
 </html>
diff --git a/lib/lp/registry/help/structural-subscription-tags.html b/lib/lp/registry/help/structural-subscription-tags.html
index 8d34e43..8215593 100644
--- a/lib/lp/registry/help/structural-subscription-tags.html
+++ b/lib/lp/registry/help/structural-subscription-tags.html
@@ -1,28 +1,25 @@
 <html>
   <head>
     <title>Help for filtering on tags</title>
-    <link rel="stylesheet" type="text/css"
-          href="/+icing/yui/cssreset/reset.css" />
-    <link rel="stylesheet" type="text/css"
-          href="/+icing/yui/cssfonts/fonts.css" />
-    <link rel="stylesheet" type="text/css"
-          href="/+icing/yui/cssbase/base.css" />
+    <link rel="stylesheet" type="text/css" href="/+icing/combo.css" />
   </head>
   <body>
-    <h1>Help for filtering on tags</h1>
+    <div class="yui-d0">
+      <h2>Help for filtering on tags</h2>
 
-    <p>
-      Bugs can be tagged to help the project categorise the bug report.  You
-      can filter your subscription based on one or more tags.  If you choose
-      to <em>Match all tags</em> then your filter will only match bugs that
-      have each of those tags you enter here.
-    </p>
-    <p>
-      If you select <em>Match any tags</em> then bugs that have one or more of
-      the tags you specify will be found.
-    </p>
-    <p>
-      Enter the tags as a space-separated list.
-    </p>
+      <p>
+        Bugs can be tagged to help the project categorise the bug report. You
+        can filter your subscription based on one or more tags. If you choose
+        to <em>Match all tags</em> then your filter will only match bugs that
+        have each of those tags you enter here.
+      </p>
+      <p>
+        If you select <em>Match any tags</em> then bugs that have one or more
+        of the tags you specify will be found.
+      </p>
+      <p>
+        Enter the tags as a space-separated list.
+      </p>
+    </div>
   </body>
 </html>
diff --git a/lib/lp/registry/help/team-subscription-policy.html b/lib/lp/registry/help/team-subscription-policy.html
index aab39a2..46d897c 100644
--- a/lib/lp/registry/help/team-subscription-policy.html
+++ b/lib/lp/registry/help/team-subscription-policy.html
@@ -1,59 +1,67 @@
 <html>
   <head>
     <title>Team membership policy</title>
-    <link rel="stylesheet" type="text/css"
-          href="/+icing/yui/cssreset/reset.css" />
-    <link rel="stylesheet" type="text/css"
-          href="/+icing/yui/cssfonts/fonts.css" />
-    <link rel="stylesheet" type="text/css"
-          href="/+icing/yui/cssbase/base.css" />
+    <link rel="stylesheet" type="text/css" href="/+icing/combo.css" />
+    <style type="text/css">
+      dt {
+        font-weight: bold
+      }
+
+      dd p {
+        margin-bottom: 0.5em
+      }
+
+    </style>
   </head>
   <body>
-    <h1>Team membership policy</h1>
+    <div class="yui-d0">
+      <h2>Team membership policy</h2>
 
-    <p>
-      There are four kinds of policy that describe who can be a member and
-      how new memberships are handled. The choice of policy reflects the need
-      to build a community versus the need to control Launchpad assets.
-    </p>
+      <p>
+        There are four kinds of policy that describe who can be a member and
+        how new memberships are handled. The choice of policy reflects the
+        need to build a community versus the need to control Launchpad assets.
+      </p>
 
-    <dl>
-      <dt>Open</dt>
-      <dd>
-        Membership is open, no approval required, and subteams can be open or
-        closed. Any user can be a member of the team and no approval is
-        required. Subteams can be Open, Delegated, Moderated, or Restricted.
-        Open is a good choice for encouraging a community of contributors.
-        Open teams cannot have PPAs.
-      </dd>
+      <dl>
+        <dt>Open</dt>
+        <dd>
+          Membership is open, no approval required, and subteams can be open
+          or closed. Any user can be a member of the team and no approval is
+          required. Subteams can be Open, Delegated, Moderated, or Restricted.
+          Open is a good choice for encouraging a community of contributors.
+          Open teams cannot have PPAs.
+        </dd>
 
-      <dt>Delegated</dt>
-      <dd>
-        Membership is open, requires approval, and subteams can be open or
-        closed. Any user can be a member of the team via a subteam, but team
-        administrators approve direct memberships. Subteams can be Open,
-        Delegated, Moderated, or Restricted. Delegated is a good choice for
-        managing a large community of contributors. Delegated teams cannot
-        have PPAs.
-      </dd>
+        <dt>Delegated</dt>
+        <dd>
+          Membership is open, requires approval, and subteams can be open or
+          closed. Any user can be a member of the team via a subteam, but team
+          administrators approve direct memberships. Subteams can be Open,
+          Delegated, Moderated, or Restricted. Delegated is a good choice for
+          managing a large community of contributors. Delegated teams cannot
+          have PPAs.
+        </dd>
 
-      <dt>Moderated</dt>
-      <dd>
-        Membership is closed, requires approval, and subteams must be closed.
-        Any user can propose a new member, but team administrators approve
-        membership. Subteams must be Moderated or Restricted. Moderated is a
-        good choice for teams that manage things that need to be secure, like
-        projects, branches, or PPAs, but want to encourage users to help.
-      </dd>
+        <dt>Moderated</dt>
+        <dd>
+          Membership is closed, requires approval, and subteams must be
+          closed. Any user can propose a new member, but team administrators
+          approve membership. Subteams must be Moderated or Restricted.
+          Moderated is a good choice for teams that manage things that need to
+          be secure, like projects, branches, or PPAs, but want to encourage
+          users to help.
+        </dd>
 
-      <dt>Restricted</dt>
-      <dd>
-        Membership is closed, requires approval, and subteams must be closed.
-        Only the team's administrators can invite a user to be a member.
-        Subteams must be Moderated or Restricted. Restricted is a good choice
-        for teams that manage things that need to be secure, like projects,
-        branches, or PPAs.
-      </dd>
-    </dl>
+        <dt>Restricted</dt>
+        <dd>
+          Membership is closed, requires approval, and subteams must be
+          closed. Only the team's administrators can invite a user to be a
+          member. Subteams must be Moderated or Restricted. Restricted is a
+          good choice for teams that manage things that need to be secure,
+          like projects, branches, or PPAs.
+        </dd>
+      </dl>
+    </div>
   </body>
 </html>
diff --git a/lib/lp/registry/help/verify-downloads.html b/lib/lp/registry/help/verify-downloads.html
index 69d521f..8cda9d3 100644
--- a/lib/lp/registry/help/verify-downloads.html
+++ b/lib/lp/registry/help/verify-downloads.html
@@ -1,187 +1,176 @@
 <html>
   <head>
     <title>Verifying a download</title>
-    <link rel="stylesheet" type="text/css"
-          href="/+icing/yui/cssreset/reset.css" />
-    <link rel="stylesheet" type="text/css"
-          href="/+icing/yui/cssfonts/fonts.css" />
-    <link rel="stylesheet" type="text/css"
-          href="/+icing/yui/cssbase/base.css" />
+    <link rel="stylesheet" type="text/css" href="/+icing/combo.css" />
   </head>
   <body>
-    <h1>Verifying a download</h1>
+    <div class="yui-d0">
+      <h2>Verifying a download</h2>
 
-    <p>
-      There are two ways to check the files you've downloaded from a project:
-    </p>
+      <p>
+        There are two ways to check the files you've downloaded from a
+        project:
+      </p>
 
-    <ul>
-      <li>using the MD5 sum that Launchpad generates</li>
-      <li>optionally, using the digital signature generated if the uploader
+      <ul>
+        <li>using the MD5 sum that Launchpad generates</li>
+        <li>optionally, using the digital signature generated if the uploader
           signed the file.</li>
-    </ul>
-
-    <p>
-      The difference between the two is that the MD5 lets you check the file
-      hasn't changed between leaving Launchpad and arriving on your machine,
-      whereas the signature lets you check that the file hasn't changed since
-      it was signed.
-    </p>
-
-    <h2>Using the MD5 sum</h2>
-
-    <p>
-      When a project maintainer uploads a file that they want to make
-      available for download, Launchpad analyzes the file using the MD5
-      hashing algorithm. This produces a short sequence of letters and
-      numbers.
-    </p>
-
-    <p>
-      You can use that sequence, called the MD5 sum, to check that the file
-      has arrived on your machine intact.
-    </p>
-
-    <p>
-      <strong>Step 1:</strong> Get the MD5 sum by following the <code>md5
-      </code> link next to the file you've downloaded.
-    </p>
-
-    <p>
-      <strong>Step 2:</strong> Open a terminal, enter the directory where you
-      downloaded the file and type:
-    </p>
-
-    <p>
-      <code>md5sum filename</code>
-    </p>
-
-    <p>
-      Obviously you need to replace <em>filename</em> with the name of the
-      file you downloaded.
-    </p>
-
-    <p>
-      <strong>Step 3:</strong> You'll see an MD5 sum. Check that it's the same
-      as the one you obtained in step 1. If the two sums are different, there
-      has been a problem downloading the file.  You should delete the file and
-      try downloading it again.  Do not use the file if the MD5 sums do not
-      match.
-    </p>
-
-    <h2>Verifying a signature</h2>
-
-    <p>
-      When a project maintainer uploads a file to Launchpad, they have the
-      option of also digitally signing the file and uploading the resultant
-      signature.
-    </p>
-
-    <p>
-      You can tell which files have a signature by looking out for the <em>sig
-      </em> link alongside the <em>md5</em> link. Verifying the files
-      signature lets you check that the file is exactly as intended by whoever
-      signed the file.
-    </p>
-
-    <p>
-      <strong>Step 1:</strong> Download the signature file to the same
-      directory where you've downloaded the project file you want to verify.
-      The signature file will have the same name as the project file you've
-      downloaded but with <em>.asc</em> or <em>.sig</em> appended to the end.
-    </p>
-
-    <p>
-      <strong>Step 2:</strong> Open a terminal, change to the directory where
-      you have saved the file and accompanying signature, then enter the
-      following:
-    </p>
-
-    <p>
-      <code>gpg --verify <em>signaturefilename</em></code>
-    </p>
-
-    <p>
-      Replace <em>signaturefilename</em> with the signature's filename.
-    </p>
-
-    <p>
-      gpg will now try to check the signature against the signer's public
-      key. If your version of gpg is configured to retrieve public keys
-      automatically, you can skip to step 4. Otherwise, you'll need to fetch
-      the signer's public key manually.</p>
-
-    <p>
-      <strong>Step 3:</strong> If gpg can't find the public key on your local
-      system, it will give you an error message similar to this:
-    </p>
-
-    <p>
-      <code>gpg: Signature made Sun 28 Jun 2009 02:20:52 BST using DSA key ID
-      2F9532C8<br />
-      gpg: Can't check signature: public key not found</code>
-    </p>
-
-    <p>
-      That's no problem: you can easily retrieve the public key. Simply copy
-      the key ID; it's the alphanumeric code, <code>2F9532C8</code>, at the
-      end of the first line of the error message.
-    </p>
-
-    <p>Next, enter:</p>
-
-    <p><code>gpg --recv-keys 2F9532C8</code></p>
-
-    <p>
-      gpg will now pull down the public key and you can re-run <code>gpg
-      --verify <em>signaturefilename</em></code>
-    </p>
-
-    <p>
-      <strong>Step 4:</strong> We're nearly done! You'll see a message from
-      gpg that is similar to this:
-    </p>
-
-    <p>
-      <code>gpg: Signature made Sun 28 Jun 2009 02:20:52 BST using DSA key ID
-      2F9532C8<br />
-      gpg: Good signature from "Guillermo Gonzalez &lt;
-      guillermo.gonzalez@xxxxxxxxxxxxx&gt;"<br />
-      gpg: WARNING: This key is not certified with a trusted signature!<br />
-      gpg:          There is no indication that the signature belongs to the
-      owner.<br />
-      Primary key fingerprint: CDD8 87C2 C5CE CD1A C593  8EEF 698A D97E 2F95
-      32C8</code></p>
-
-    <p>
-      This message shows that the file hasn't changed since it was signed by
-      the uploader. Because Launchpad allows only a project's owners and
-      series release managers to upload files for download, you may decide
-      that this is enough confirmation that the file is good.
-    </p>
-
-    <p>
-      However, you can verify that the public key is owned by someone that you
-      trust from the project.
-    </p>
-
-    <p>
-      <strong>Step 5:</strong> Visit <a href="https://launchpad.net/people";
-      target="_blank">Launchpad's people search</a> page and search for the
-      person name in the output from <code>gpg --verify</code>.
-    </p>
-
-    <p>
-      From their profile page, you can check their involvement in the project
-      and also that they own the key used to sign the file you downloaded.
-    </p>
-
-
-
-
-
-
-
-
+      </ul>
+
+      <p>
+        The difference between the two is that the MD5 lets you check the file
+        hasn't changed between leaving Launchpad and arriving on your machine,
+        whereas the signature lets you check that the file hasn't changed
+        since it was signed.
+      </p>
+
+      <h3>Using the MD5 sum</h3>
+
+      <p>
+        When a project maintainer uploads a file that they want to make
+        available for download, Launchpad analyzes the file using the MD5
+        hashing algorithm. This produces a short sequence of letters and
+        numbers.
+      </p>
+
+      <p>
+        You can use that sequence, called the MD5 sum, to check that the file
+        has arrived on your machine intact.
+      </p>
+
+      <p>
+        <strong>Step 1:</strong> Get the MD5 sum by following the <code>md5
+        </code> link next to the file you've downloaded.
+      </p>
+
+      <p>
+        <strong>Step 2:</strong> Open a terminal, enter the directory where
+        you downloaded the file and type:
+      </p>
+
+      <p>
+        <code>md5sum filename</code>
+      </p>
+
+      <p>
+        Obviously you need to replace <em>filename</em> with the name of the
+        file you downloaded.
+      </p>
+
+      <p>
+        <strong>Step 3:</strong> You'll see an MD5 sum. Check that it's the
+        same as the one you obtained in step 1. If the two sums are different,
+        there has been a problem downloading the file. You should delete the
+        file and try downloading it again. Do not use the file if the MD5 sums
+        do not match.
+      </p>
+
+      <h3>Verifying a signature</h3>
+
+      <p>
+        When a project maintainer uploads a file to Launchpad, they have the
+        option of also digitally signing the file and uploading the resultant
+        signature.
+      </p>
+
+      <p>
+        You can tell which files have a signature by looking out for the
+        <em>sig </em> link alongside the <em>md5</em> link. Verifying the
+        files signature lets you check that the file is exactly as intended by
+        whoever signed the file.
+      </p>
+
+      <p>
+        <strong>Step 1:</strong> Download the signature file to the same
+        directory where you've downloaded the project file you want to verify.
+        The signature file will have the same name as the project file you've
+        downloaded but with <em>.asc</em> or <em>.sig</em> appended to the
+        end.
+      </p>
+
+      <p>
+        <strong>Step 2:</strong> Open a terminal, change to the directory
+        where you have saved the file and accompanying signature, then enter
+        the following:
+      </p>
+
+      <p>
+        <code>gpg --verify <em>signaturefilename</em></code>
+      </p>
+
+      <p>
+        Replace <em>signaturefilename</em> with the signature's filename.
+      </p>
+
+      <p>
+        gpg will now try to check the signature against the signer's public
+        key. If your version of gpg is configured to retrieve public keys
+        automatically, you can skip to step 4. Otherwise, you'll need to fetch
+        the signer's public key manually.</p>
+
+      <p>
+        <strong>Step 3:</strong> If gpg can't find the public key on your
+        local system, it will give you an error message similar to this:
+      </p>
+
+      <p>
+        <code>gpg: Signature made Sun 28 Jun 2009 02:20:52 BST using DSA key ID 2F9532C8<br />
+        gpg: Can't check signature: public key not found</code>
+      </p>
+
+      <p>
+        That's no problem: you can easily retrieve the public key. Simply copy
+        the key ID; it's the alphanumeric code, <code>2F9532C8</code>, at the
+        end of the first line of the error message.
+      </p>
+
+      <p>Next, enter:</p>
+
+      <p><code>gpg --recv-keys 2F9532C8</code></p>
+
+      <p>
+        gpg will now pull down the public key and you can re-run <code>gpg
+        --verify <em>signaturefilename</em></code>
+      </p>
+
+      <p>
+        <strong>Step 4:</strong> We're nearly done! You'll see a message from
+        gpg that is similar to this:
+      </p>
+
+      <p>
+        <code>gpg: Signature made Sun 28 Jun 2009 02:20:52 BST using DSA key ID 2F9532C8<br />
+        gpg: Good signature from "Guillermo Gonzalez &lt; guillermo.gonzalez@xxxxxxxxxxxxx&gt;"<br />
+        gpg: WARNING: This key is not certified with a trusted signature!<br />
+        gpg:          There is no indication that the signature belongs to the owner.<br />
+        Primary key fingerprint: CDD8 87C2 C5CE CD1A C593  8EEF 698A D97E 2F95 32C8</code>
+      </p>
+
+      <p>
+        This message shows that the file hasn't changed since it was signed by
+        the uploader. Because Launchpad allows only a project's owners and
+        series release managers to upload files for download, you may decide
+        that this is enough confirmation that the file is good.
+      </p>
+
+      <p>
+        However, you can verify that the public key is owned by someone that
+        you trust from the project.
+      </p>
+
+      <p>
+        <strong>Step 5:</strong> Visit <a href="https://launchpad.net/people";
+          target="_blank">Launchpad's people
+          search</a> page and search for the person name in the output from
+        <code>gpg --verify</code>.
+      </p>
+
+      <p>
+        From their profile page, you can check their involvement in the
+        project and also that they own the key used to sign the file you
+        downloaded.
+      </p>
+    </div>
   </body>
 </html>
diff --git a/lib/lp/snappy/help/snap-build-frequency.html b/lib/lp/snappy/help/snap-build-frequency.html
index 6276f98..e2ff640 100644
--- a/lib/lp/snappy/help/snap-build-frequency.html
+++ b/lib/lp/snappy/help/snap-build-frequency.html
@@ -1,42 +1,43 @@
 <html>
   <head>
     <title>Snap package build schedule</title>
-    <link rel="stylesheet" type="text/css"
-          href="/+icing/yui/cssreset/reset.css" />
-    <link rel="stylesheet" type="text/css"
-          href="/+icing/yui/cssfonts/fonts.css" />
-    <link rel="stylesheet" type="text/css"
-          href="/+icing/yui/cssbase/base.css" />
+    <link rel="stylesheet" type="text/css" href="/+icing/combo.css" />
     <style type="text/css">
-      dt { font-weight: bold }
-      dd p { margin-bottom: 0.5em }
+      dt {
+        font-weight: bold
+      }
+
+      dd p {
+        margin-bottom: 0.5em
+      }
+
     </style>
   </head>
   <body>
-    <h1>Snap package build schedule</h1>
-
-    <p>There are two options for when snap packages get built:</p>
-    <dl>
-      <dt>Built automatically</dt>
-      <dd>
-        <p>A build will be scheduled automatically once a change to the
-          top-level source branch for the snap package is detected.</p>
-        <p>If there has been a build of the snap package within the previous
-          hour from the source archive, the build will not be scheduled
-          until an hour since the last build from the source archive.</p>
-        <p>If the snap package has been built within the last hour from a
-          different archive using the "Request builds" action, this will not
-          delay the automatic build.</p>
-        <p>If you really want the build to happen before the one-hour period
-          is up, you can use the "Request builds" action.</p>
-      </dd>
-      <dt>Built on request</dt>
-      <dd>
-        <p>Builds of the snap package have to be manually requested using
-          the "Request builds" action.</p>
-      </dd>
-    </dl>
+    <div class="yui-d0">
+      <h2>Snap package build schedule</h2>
 
+      <p>There are two options for when snap packages get built:</p>
+      <dl>
+        <dt>Built automatically</dt>
+        <dd>
+          <p>A build will be scheduled automatically once a change to the
+            top-level source branch for the snap package is detected.</p>
+          <p>If there has been a build of the snap package within the previous
+            hour from the source archive, the build will not be scheduled
+            until an hour since the last build from the source archive.</p>
+          <p>If the snap package has been built within the last hour from a
+            different archive using the "Request builds" action, this will not
+            delay the automatic build.</p>
+          <p>If you really want the build to happen before the one-hour period
+            is up, you can use the "Request builds" action.</p>
+        </dd>
+        <dt>Built on request</dt>
+        <dd>
+          <p>Builds of the snap package have to be manually requested using
+            the "Request builds" action.</p>
+        </dd>
+      </dl>
+    </div>
   </body>
 </html>
-
diff --git a/lib/lp/snappy/help/snap-build-pocket.html b/lib/lp/snappy/help/snap-build-pocket.html
index dc15060..7cda8fd 100644
--- a/lib/lp/snappy/help/snap-build-pocket.html
+++ b/lib/lp/snappy/help/snap-build-pocket.html
@@ -1,32 +1,58 @@
 <html>
   <head>
     <title>Pocket for snap builds</title>
-    <link rel="stylesheet" type="text/css"
-          href="/+icing/yui/cssreset/reset.css" />
-    <link rel="stylesheet" type="text/css"
-          href="/+icing/yui/cssfonts/fonts.css" />
-    <link rel="stylesheet" type="text/css"
-          href="/+icing/yui/cssbase/base.css" />
+    <link rel="stylesheet" type="text/css" href="/+icing/combo.css" />
     <style type="text/css">
-      p { margin-bottom: 0.5em }
+      dt {
+        font-weight: bold
+      }
+
+      dd p {
+        margin-bottom: 0.5em
+      }
+
     </style>
   </head>
   <body>
-    <h1>Pocket for snap builds</h1>
+    <div class="yui-d0">
+      <h2>Pocket for snap builds</h2>
 
-    <p>Each distribution series in a package repository is divided into several parts, called <em>pockets</em>. These refer to different update streams that users of that series may wish to use. You can similarly choose to build snap packages based on any of those different update streams.</p>
-    <p>If unsure, choose <strong>Updates</strong>.</p>
-    <dl>
-        <dt><strong>Release</strong></dt>
-        <dd>The package versions that were published when the distribution release was made.</dd>
-        <dt><strong>Security</strong></dt>
-        <dd>Package versions containing security fixes for the released distribution. Packages in <em>Security</em> are built with dependencies from <em>Release</em> and <em>Security</em>.</dd>
-        <dt><strong>Updates</strong></dt>
-        <dd>Updates for serious bugs that do not affect the security of the system. Packages in <em>Updates</em> are copied from <em>Proposed</em> or <em>Security</em> once they have been tested.</dd>
-        <dt><strong>Proposed</strong></dt>
-        <dd>The testing area for updates. This repository is recommended only to those interested in helping to test updates and provide feedback. Packages in <em>Proposed</em> are built with dependencies from <em>Release</em>, <em>Security</em>, <em>Updates</em> and <em>Proposed</em>.</dd>
-        <dt><strong>Backports</strong></dt>
-        <dd>As the name states, these are unsupported new versions of packages which have been backported to an older release. Packages may contain new features, may introduce new interfaces, and bugs. Packages in <em>Backports</em> are built with dependencies from <em>Release</em>, <em>Security</em>, <em>Updates</em> and <em>Backports</em>.</dd>
-    </dl>
+      <p>Each distribution series in a package repository is divided into
+        several parts, called <em>pockets</em>. These refer to different
+        update streams that users of that series may wish to use. You can
+        similarly choose to build snap packages based on any of those
+        different update streams.</p>
+      <p>If unsure, choose <strong>Updates</strong>.</p>
+      <dl>
+        <dt>Release</dt>
+        <dd>The package versions that were published when the distribution
+          release was made.</dd>
+        <dt>Security</dt>
+        <dd>Package versions containing security fixes for the released
+          distribution. Packages in <em>Security</em> are built with
+          dependencies from <em>Release</em> and <em>Security</em>.
+        </dd>
+        <dt>Updates</dt>
+        <dd>Updates for serious bugs that do not affect the security of the
+          system. Packages in <em>Updates</em> are copied from
+          <em>Proposed</em> or <em>Security</em> once they have been tested.
+        </dd>
+        <dt>Proposed</dt>
+        <dd>The testing area for updates. This repository is recommended only
+          to those interested in helping to test updates and provide feedback.
+          Packages in <em>Proposed</em> are built with dependencies from
+          <em>Release</em>, <em>Security</em>, <em>Updates</em> and
+          <em>Proposed</em>.
+        </dd>
+        <dt>Backports</dt>
+        <dd>As the name states, these are unsupported new versions of packages
+          which have been backported to an older release. Packages may contain
+          new features, may introduce new interfaces, and bugs. Packages in
+          <em>Backports</em> are built with dependencies from
+          <em>Release</em>, <em>Security</em>, <em>Updates</em> and
+          <em>Backports</em>.
+        </dd>
+      </dl>
+    </div>
   </body>
 </html>
diff --git a/lib/lp/soyuz/help/derived-series-syncing.html b/lib/lp/soyuz/help/derived-series-syncing.html
index 02bb618..dd3b043 100644
--- a/lib/lp/soyuz/help/derived-series-syncing.html
+++ b/lib/lp/soyuz/help/derived-series-syncing.html
@@ -1,87 +1,102 @@
 <html>
   <head>
     <title>Syncing software from a parent series</title>
-    <link rel="stylesheet" type="text/css"
-          href="/+icing/yui/cssreset/reset.css" />
-    <link rel="stylesheet" type="text/css"
-          href="/+icing/yui/cssfonts/fonts.css" />
-    <link rel="stylesheet" type="text/css"
-          href="/+icing/yui/cssbase/base.css" />
+    <link rel="stylesheet" type="text/css" href="/+icing/combo.css" />
+    <style type="text/css">
+      h4 {
+        font-weight: bold;
+        margin-bottom: 0.5em;
+      }
+
+      dt {
+        font-weight: bold
+      }
+
+      dd p {
+        margin-bottom: 0.5em
+      }
+
+    </style>
   </head>
   <body>
-    <h1>Syncing software from a parent series</h1>
+    <div class="yui-d0">
+      <h2>Syncing software from a parent series</h2>
 
-    <p>
-      Syncing software from a parent series will take the package that's
-      currently published in it, and upload it to the derived series without
-      you having to use command line tools such as <em>dput</em> or 
-      <em>ftp</em>.
-    </p>
+      <p>
+        Syncing software from a parent series will take the package that's
+        currently published in it, and upload it to the derived series without
+        you having to use command line tools such as <em>dput</em> or
+        <em>ftp</em>.
+      </p>
 
-    <p>
-      <strong>Important:</strong> Syncing a package from the parent
-      series will supersede any changes made in the derived version. If there
-      are local changes you don't wish to lose, you will need to manually
-      merge the changes into the upstream package and upload that to the
-      derived series.
-    </p>
+      <p>
+        <strong>Important:</strong> Syncing a package from the parent series
+        will supersede any changes made in the derived version. If there are
+        local changes you don't wish to lose, you will need to manually merge
+        the changes into the upstream package and upload that to the derived
+        series.
+      </p>
 
-    <h2>Checking the differences</h2>
+      <h3>Checking the differences</h3>
 
-    <p>
-    Each row in the table shows a package that has different versions in
-    the derived series and the parent(s).  Clicking the package name
-    will expand the row to show more details about the package and allow 
-    you to take some actions:
-      <ul>
+      <p>
+        Each row in the table shows a package that has different versions in
+        the derived series and the parent(s). Clicking the package name
+        will expand the row to show more details about the package and allow
+        you to take some actions:
+      </p>
+
+      <ul class="bulleted">
         <li>Add a comment about this package.</li>
         <li>Request debdiffs</li>
         <li>Ignoring this difference, or all differences for this package</li>
       </ul>
-    </p>
 
-    <h3>Adding comments</h3>
-    <p>
-    Click the green "Add comment" button and enter the comment inline.
-    All previous comments are shown here also.
-    </p>
+      <h4>Adding comments</h4>
+      <p>
+        Click the green "Add comment" button and enter the comment inline.
+        All previous comments are shown here also.
+      </p>
 
-    <h3>Requesting debdiffs</h3>
-    <p>
-    Click the "Compute differences from last common version".  A request is
-    sent to the server to initiate the debdiff calculation.  While you wait
-    for the calculation the icon will flash. The page will update
-    automatically when the debdiff becomes available, giving you a link to
-    download the debdiff file.
-    </p>
+      <h4>Requesting debdiffs</h4>
+      <p>
+        Click the "Compute differences from last common version". A request is
+        sent to the server to initiate the debdiff calculation. While you wait
+        for the calculation the icon will flash. The page will update
+        automatically when the debdiff becomes available, giving you a link to
+        download the debdiff file.
+      </p>
 
-    <h3>Ignoring differences</h3>
-    <p>
-    If you don't care about this package you have the option of setting it to
-    <em>ignored</em>, which means that it will no longer appear in the list.   
-    You can choose to ignore just "These versions", which means if a new 
-    version is uploaded it will re-appear, or "All Versions" which means 
-    you won't see it again unless you search explicitly for ignored 
-    packages in the search criteria at the top of the page.
-    </p>
+      <h4>Ignoring differences</h4>
+      <p>
+        If you don't care about this package you have the option of setting it
+        to <em>ignored</em>, which means that it will no longer appear in the
+        list. You can choose to ignore just "These versions", which means if a
+        new version is uploaded it will re-appear, or "All Versions" which
+        means you won't see it again unless you search explicitly for ignored
+        packages in the search criteria at the top of the page.
+      </p>
 
-    <h2>Requesting a sync</h2>
-    <p>
-    There are two methods of syncing:
-      <ul>
-        <li><strong>A mass-sync:</strong>  This grabs all packages in all 
-            parents that have a higher version and uploads them to the 
-            derived series by clicking the mass-sync button at the bottom 
-            of the page.  To do this you need to have archive administrator 
-            permissions.</li>
-        <li><strong>A selective sync:</strong>  You can check the box next 
-            to each package and then click the sync button at the bottom of
-            the page. To do this you need to have permissions to upload 
-            each package.</li>
-      </ul>
-    After you request a sync the operation will complete in the background
-    and the package(s) will flow into the distribution just like a normal 
-    upload, including being held in the upload queue as appropriate.
-    </p>
+      <h3>Requesting a sync</h3>
+      <p>
+        There are two methods of syncing:
+      </p>
+      <dl>
+        <dt>A mass-sync:</dt>
+        <dd>This grabs all packages in all parents that have a higher version
+          and uploads them to the derived series by clicking the mass-sync
+          button at the bottom of the page. To do this you need to have
+          archive administrator permissions.</dd>
+        <dt>A selective sync:</dt>
+        <dd>You can check the box next to each package and then click the sync
+          button at the bottom of the page. To do this you need to have
+          permissions to upload each package.</dd>
+      </dl>
+      <p>
+        After you request a sync the operation will complete in the background
+        and the package(s) will flow into the distribution just like a normal
+        upload, including being held in the upload queue as appropriate.
+      </p>
+    </div>
   </body>
 </html>
diff --git a/lib/lp/soyuz/help/ppa-sources-list.html b/lib/lp/soyuz/help/ppa-sources-list.html
index fa15da5..58108d1 100644
--- a/lib/lp/soyuz/help/ppa-sources-list.html
+++ b/lib/lp/soyuz/help/ppa-sources-list.html
@@ -1,84 +1,86 @@
 <html>
   <head>
     <title>How do I use software from a PPA?</title>
-    <link rel="stylesheet" type="text/css"
-          href="/+icing/yui/cssreset/reset.css" />
-    <link rel="stylesheet" type="text/css"
-          href="/+icing/yui/cssfonts/fonts.css" />
-    <link rel="stylesheet" type="text/css"
-          href="/+icing/yui/cssbase/base.css" />
+    <link rel="stylesheet" type="text/css" href="/+icing/combo.css" />
   </head>
   <body>
-    <h1>How do I use software from a PPA?</h1>
-
-    <p>
-      To start installing and using software from a Personal Package Archive,
-       you first need to tell Ubuntu where to find the PPA.
-    </p>
-
-    <p>
-      <strong>Important:</strong> The contents of Personal Package Archives
-      are not checked or monitored. You install software from them at your own
-      risk.
-    </p>
-
-    <p>
-      If you're using the most recent version of Ubuntu (or any version from
-      Ubuntu 9.10 onwards), you can add a PPA to your system with a single
-      line in your terminal.
-    </p>
-
-    <p>
-      <strong>Step 1:</strong> On the PPA's overview page, look for the
-      heading that reads <em>Adding this PPA to your system</em>. Make a note
-      of the PPA's location, which looks like:
-    </p>
-
-    <p>
-      <code>ppa:gwibber-daily/ppa</code>
-    </p>
-
-    <p>
-      <strong>Step 2:</strong> Open a terminal and enter:
-    </p>
-
-    <p>
-      <code>sudo add-apt-repository ppa:user/ppa-name</code>
-    </p>
-
-    <p>
-      Replace <code>ppa:user/ppa-name</code> with the PPA's location that you
-      noted above.
-    </p>
-
-    <img src="images/add-apt-repo1.png" alt="Screen shot of a terminal with the sudo add-apt-repoistory line" style="margin-bottom: 15px;" />
-
-    <p>
-      Your system will now fetch the PPA's key. This enables your Ubuntu
-      system to verify that the packages in the PPA have not been interfered
-      with since they were built.
-    </p>
-
-    <img src="images/add-apt-repo2.png" alt="Screen shot of a system retrieving the PPA details" style="margin-bottom: 15px;" />
-
-    <p>
-      <strong>Step 3:</strong> Now, as a one-off, you should tell your system
-      to pull down the latest list of software from each archive it knows
-      about, including the PPA you just added:
-    </p>
-
-    <p>
-      <code>sudo apt update</code>
-    </p>
-
-    <p>
-      Now you're ready to start installing software from the PPA!
-    </p>
-
-   <p>
-     <a href="https://help.launchpad.net/Packaging/PPA"; target="_blank">Read
-     more about Personal Package Archives</a> in our help wiki.
-   </p>
-
+    <div class="yui-d0">
+      <h2>How do I use software from a PPA?</h2>
+
+      <p>
+        To start installing and using software from a Personal Package
+        Archive, you first need to tell Ubuntu where to find the PPA.
+      </p>
+
+      <p>
+        <strong>Important:</strong> The contents of Personal Package Archives
+        are not checked or monitored. You install software from them at your
+        own risk.
+      </p>
+
+      <p>
+        If you're using the most recent version of Ubuntu (or any version from
+        Ubuntu 9.10 onwards), you can add a PPA to your system with a single
+        line in your terminal.
+      </p>
+
+      <p>
+        <strong>Step 1:</strong> On the PPA's overview page, look for the
+        heading that reads <em>Adding this PPA to your system</em>. Make a
+        note of the PPA's location, which looks like:
+      </p>
+
+      <p>
+        <code>ppa:gwibber-daily/ppa</code>
+      </p>
+
+      <p>
+        <strong>Step 2:</strong> Open a terminal and enter:
+      </p>
+
+      <p>
+        <code>sudo add-apt-repository ppa:user/ppa-name</code>
+      </p>
+
+      <p>
+        Replace <code>ppa:user/ppa-name</code> with the PPA's location that
+        you noted above.
+      </p>
+
+      <img src="images/add-apt-repo1.png"
+        alt="Screen shot of a terminal with the sudo add-apt-repoistory line"
+        style="margin-bottom: 15px;" />
+
+      <p>
+        Your system will now fetch the PPA's key. This enables your Ubuntu
+        system to verify that the packages in the PPA have not been interfered
+        with since they were built.
+      </p>
+
+      <img src="images/add-apt-repo2.png"
+        alt="Screen shot of a system retrieving the PPA details"
+        style="margin-bottom: 15px;" />
+
+      <p>
+        <strong>Step 3:</strong> Now, as a one-off, you should tell your
+        system to pull down the latest list of software from each archive it
+        knows about, including the PPA you just added:
+      </p>
+
+      <p>
+        <code>sudo apt update</code>
+      </p>
+
+      <p>
+        Now you're ready to start installing software from the PPA!
+      </p>
+
+      <p>
+        <a href="https://help.launchpad.net/Packaging/PPA";
+          target="_blank">Read more about Personal Package Archives</a> in our
+        help wiki.
+      </p>
+
+    </div>
   </body>
 </html>
diff --git a/lib/lp/translations/help/directory-example.html b/lib/lp/translations/help/directory-example.html
index 86e4a94..85107f5 100644
--- a/lib/lp/translations/help/directory-example.html
+++ b/lib/lp/translations/help/directory-example.html
@@ -1,53 +1,51 @@
 <html>
   <head>
     <title>Example directory layout for translation files</title>
-    <link rel="stylesheet" type="text/css"
-          href="/+icing/yui/cssreset/reset.css" />
-    <link rel="stylesheet" type="text/css"
-          href="/+icing/yui/cssfonts/fonts.css" />
-    <link rel="stylesheet" type="text/css"
-          href="/+icing/yui/cssbase/base.css" />
+    <link rel="stylesheet" type="text/css" href="/+icing/combo.css" />
   </head>
   <body>
-    <h1>Example directory layout for translation files</h1>
+    <div class="yui-d0">
+      <h2>Example directory layout for translation files</h2>
 
-    <p>
-      Each template (<code>.pot</code>) file must be in its own
-      directory. For example:
-    </p>
+      <p>
+        Each template (<code>.pot</code>) file must be in its own
+        directory. For example:
+      </p>
 
-    <ul>
-      <li>template1/template1.pot
-        <ul>
-          <li>template1/de.po</li>
-          <li>template1/fr.po</li>
-        </ul>
-      </li>
-      <li>template2/template2.pot
-        <ul>
-          <li>template2/de.po</li>
-          <li>template2/fr.po</li>
-        </ul>
-      </li>
-    </ul>
+      <ul class="bulleted">
+        <li>template1/template1.pot
+          <ul class="bulleted">
+            <li>template1/de.po</li>
+            <li>template1/fr.po</li>
+          </ul>
+        </li>
+        <li>template2/template2.pot
+          <ul>
+            <li>template2/de.po</li>
+            <li>template2/fr.po</li>
+          </ul>
+        </li>
+      </ul>
 
-    <p>
-      You should follow Launchpad <a target="_blank"
-      href="https://help.launchpad.net/Translations/ImportPolicy";>
-      translation import guidelines</a> to ensure your translation
-      files are imported successfully.
-    </p>
+      <p>
+        You should follow Launchpad <a target="_blank"
+          href="https://help.launchpad.net/Translations/ImportPolicy";>
+          translation import guidelines</a> to ensure your translation files
+        are imported successfully.
+      </p>
 
-    <h2>.mo-style layouts</h2>
+      <h3>.mo-style layouts</h3>
 
-    <p>
-      Launchpad will not import your files if they use a <code>.mo</code>-style
-      directory layout, such as:
-    </p>
-
-    <p>
-      <strong>NOT SUPPORTED:</strong> <code>template1/LC_MESSAGES/de/template1.po</code>
-    </p>
+      <p>
+        Launchpad will not import your files if they use a
+        <code>.mo</code>-style
+        directory layout, such as:
+      </p>
 
+      <p>
+        <strong>NOT SUPPORTED:</strong>
+        <code>template1/LC_MESSAGES/de/template1.po</code>
+      </p>
+    </div>
   </body>
 </html>
diff --git a/lib/lp/translations/help/getting-started-for-your-project.html b/lib/lp/translations/help/getting-started-for-your-project.html
index 87504e8..94928ab 100644
--- a/lib/lp/translations/help/getting-started-for-your-project.html
+++ b/lib/lp/translations/help/getting-started-for-your-project.html
@@ -1,57 +1,56 @@
 <html>
   <head>
-    <title>Getting started with Launchpad Translations for your project</title>
-    <link rel="stylesheet" type="text/css"
-          href="/+icing/yui/cssreset/reset.css" />
-    <link rel="stylesheet" type="text/css"
-          href="/+icing/yui/cssfonts/fonts.css" />
-    <link rel="stylesheet" type="text/css"
-          href="/+icing/yui/cssbase/base.css" />
+    <title>Getting started with Launchpad Translations for your project
+    </title>
+    <link rel="stylesheet" type="text/css" href="/+icing/combo.css" />
   </head>
   <body>
-    <h1>Getting started with Launchpad Translations for your project</h1>
+    <div class="yui-d0">
 
-    <p>
-      Launchpad lets you open your project to translation by a community of
-      thousands.</p>
+      <h2>Getting started with Launchpad Translations for your project</h2>
 
-    <p>
-      Before you start using Launchpad to translate your project, you need to
-      activate translations for your project and then:
-    </p>
+      <p>
+        Launchpad lets you open your project to translation by a community of
+        thousands.</p>
 
-    <ul>
-      <li>
-        join a translations group, who will help you review your project's
-        translations &mdash; <a href="/+help-translations/translation-groups.html">Read
-        about translation groups &gt;</a>
-      </li>
-      <li>
-        select a translation permissions policy &mdash; <a
-        href="/+help-translations/permissions-policies.html">Read about permissions
-        policies &gt;</a>
-      </li>
-      <li>
-        format then import your project's translation templates and any
-        existing translations &mdash; <a
-        href="https://help.launchpad.net/Translations/ImportPolicy";
-        target="_blank">Read how to format and import your templates &gt;</a>
-      </li>
-    </ul>
+      <p>
+        Before you start using Launchpad to translate your project, you need
+        to activate translations for your project and then:
+      </p>
 
-    <p>
-      <strong>Important:</strong> you also need to learn the GNU GetText
-      method of integrating translations in your software.
-      <a href="http://www.gnu.org/software/gettext/manual/gettext.html";
-      target="_blank">Read the GNU GetText manual &gt;</a>
-    </p>
-
-    <p>
-      <a href="https://help.launchpad.net/Translations/YourProject";
-      target="_blank">Read the full guide to translating your project using
-      Launchpad &gt;</a>
-    </p>
+      <ul class="bulleted">
+        <li>
+          join a translations group, who will help you review your project's
+          translations &mdash; <a
+            href="/+help-translations/translation-groups.html">Read about
+            translation groups &gt;</a>
+        </li>
+        <li>
+          select a translation permissions policy &mdash; <a
+            href="/+help-translations/permissions-policies.html">Read about
+            permissions policies &gt;</a>
+        </li>
+        <li>
+          format then import your project's translation templates and any
+          existing translations &mdash; <a
+            href="https://help.launchpad.net/Translations/ImportPolicy";
+            target="_blank">Read how to format and import your templates
+            &gt;</a>
+        </li>
+      </ul>
 
+      <p>
+        <strong>Important:</strong> you also need to learn the GNU GetText
+        method of integrating translations in your software. <a
+          href="http://www.gnu.org/software/gettext/manual/gettext.html";
+          target="_blank">Read the GNU GetText manual &gt;</a>
+      </p>
 
+      <p>
+        <a href="https://help.launchpad.net/Translations/YourProject";
+          target="_blank">Read the full guide to translating your project
+          using Launchpad &gt;</a>
+      </p>
+    </div>
   </body>
 </html>
diff --git a/lib/lp/translations/help/importing-from-bzr.html b/lib/lp/translations/help/importing-from-bzr.html
index 1f1ac08..81a8786 100644
--- a/lib/lp/translations/help/importing-from-bzr.html
+++ b/lib/lp/translations/help/importing-from-bzr.html
@@ -1,37 +1,33 @@
 <html>
   <head>
     <title>Importing translation files from a Bazaar branch</title>
-    <link rel="stylesheet" type="text/css"
-          href="/+icing/yui/cssreset/reset.css" />
-    <link rel="stylesheet" type="text/css"
-          href="/+icing/yui/cssfonts/fonts.css" />
-    <link rel="stylesheet" type="text/css"
-          href="/+icing/yui/cssbase/base.css" />
+    <link rel="stylesheet" type="text/css" href="/+icing/combo.css" />
   </head>
   <body>
-    <h1>Importing translation files from a Bazaar branch</h1>
+    <div class="yui-d0">
+      <h2>Importing translation files from a Bazaar branch</h2>
 
-    <p>
-      You can make either one-off or continuous imports of translation
-      files in a Bazaar branch. Which you choose will most likely depend
-      on whether you expect to make frequent updates to either types of
-      file.
-    </p>
+      <p>
+        You can make either one-off or continuous imports of translation
+        files in a Bazaar branch. Which you choose will most likely depend
+        on whether you expect to make frequent updates to either types of
+        file.
+      </p>
 
-    <p>Read more about:</p>
-
-    <ul>
-      <li>
-        <a href="https://help.launchpad.net/Translations/YourProject/ImportingTemplates";
-        target="_blank">importing templates</a> (<code>.pot</code> files)
-      </li>
-
-      <li>
-        <a href="https://help.launchpad.net/Translations/YourProject/ImportingTranslations";
-        target="_blank">importing translations</a> (<code>.po</code> files)
-      </li>
-    </ul>
+      <p>Read more about:</p>
 
+      <ul class="bulleted">
+        <li>
+          <a href="https://help.launchpad.net/Translations/YourProject/ImportingTemplates";
+            target="_blank">importing templates</a> (<code>.pot</code> files)
+        </li>
 
+        <li>
+          <a href="https://help.launchpad.net/Translations/YourProject/ImportingTranslations";
+            target="_blank">importing translations</a> (<code>.po</code>
+          files)
+        </li>
+      </ul>
+    </div>
   </body>
 </html>
diff --git a/lib/lp/translations/help/new-to-translating.html b/lib/lp/translations/help/new-to-translating.html
index fd933f1..83ebcf1 100644
--- a/lib/lp/translations/help/new-to-translating.html
+++ b/lib/lp/translations/help/new-to-translating.html
@@ -1,44 +1,40 @@
 <html>
   <head>
     <title>Tips for new translators</title>
-    <link rel="stylesheet" type="text/css"
-          href="/+icing/yui/cssreset/reset.css" />
-    <link rel="stylesheet" type="text/css"
-          href="/+icing/yui/cssfonts/fonts.css" />
-    <link rel="stylesheet" type="text/css"
-          href="/+icing/yui/cssbase/base.css" />
+    <link rel="stylesheet" type="text/css" href="/+icing/combo.css" />
   </head>
   <body>
-    <h1>Tips for new translators</h1>
+    <div class="yui-d0">
+      <h2>Tips for new translators</h2>
 
-    <p>
-      If you're new to translating using Launchpad, there are a few things you
-      might find it useful to know.
-    </p>
+      <p>
+        If you're new to translating using Launchpad, there are a few things
+        you might find it useful to know.
+      </p>
 
-    <ul>
-      <li>
-        You can <a href="/people/+me/+editlanguages" target="_blank">tell
-        Launchpad which languages you prefer to work in</a>.
-      </li>
-      <li>
-        You can help any of hundreds of projects that use Launchpad to
-        translate their software. Also, you can help translate distributions,
-        such as Ubuntu.
-      </li>
-      <li>
-        Each project/distribution decides how to balance openness with the
-        need for review of translations by selecting a <a
-        href="/+help-translations/permissions-policies.html">permissions policy</a>. For
-        most projects, you'll be able to suggest translations that will then
-        be reviewed by someone else.
-      </li>
-    </ul>
-
-    <p>
-      <a href="https://help.launchpad.net/Translations/StartingToTranslate";
-      target="_blank">read more about translating in Launchpad &gt;</a>
-    </p>
+      <ul class="bulleted">
+        <li>
+          You can <a href="/people/+me/+editlanguages" target="_blank">tell
+            Launchpad which languages you prefer to work in</a>.
+        </li>
+        <li>
+          You can help any of hundreds of projects that use Launchpad to
+          translate their software. Also, you can help translate
+          distributions, such as Ubuntu.
+        </li>
+        <li>
+          Each project/distribution decides how to balance openness with the
+          need for review of translations by selecting a <a
+            href="/+help-translations/permissions-policies.html">permissions
+            policy</a>. For most projects, you'll be able to suggest
+          translations that will then be reviewed by someone else.
+        </li>
+      </ul>
 
+      <p>
+        <a href="https://help.launchpad.net/Translations/StartingToTranslate";
+          target="_blank">read more about translating in Launchpad &gt;</a>
+      </p>
+    </div>
   </body>
 </html>
diff --git a/lib/lp/translations/help/permissions-policies.html b/lib/lp/translations/help/permissions-policies.html
index 9148256..6eeb776 100644
--- a/lib/lp/translations/help/permissions-policies.html
+++ b/lib/lp/translations/help/permissions-policies.html
@@ -1,62 +1,70 @@
 <html>
   <head>
     <title>Translation permission policies</title>
-    <link rel="stylesheet" type="text/css"
-          href="/+icing/yui/cssreset/reset.css" />
-    <link rel="stylesheet" type="text/css"
-          href="/+icing/yui/cssfonts/fonts.css" />
-    <link rel="stylesheet" type="text/css"
-          href="/+icing/yui/cssbase/base.css" />
+    <link rel="stylesheet" type="text/css" href="/+icing/combo.css" />
+    <style type="text/css">
+      dt {
+        font-weight: bold
+      }
+
+      dd p {
+        margin-bottom: 0.5em
+      }
+
+    </style>
   </head>
   <body>
-    <h1>Translation permission policies</h1>
-
-    <p>
-      Each project and distribution can choose what they feel to be the right
-      mix of openness and control for their translations.
-    </p>
+    <div class="yui-d0">
+      <h2>Translation permission policies</h2>
 
-    <p>
-      Launchpad offers four permission policies:
-    </p>
+      <p>
+        Each project and distribution can choose what they feel to be the
+        right mix of openness and control for their translations.
+      </p>
 
-    <ul>
-      <li><strong>Open:</strong> anyone can submit translations directly to
-          your project in Launchpad. Great for encouraging drive-by
-          contributions.</li>
-      <li><strong>Structured:</strong> if your project's translation group has
-          assigned an individual or team to a particular language, only that
-          person or members of that team can review and accept translation
-          strings for that language. Anyone can suggest a translation for
-          those languages, though. For languages that aren't covered by a
-          translation group, anyone can directly submit a translation.</li>
-      <li><strong>Restricted:</strong> ideal if your priority is to manage
-           translation quality, or if translation to some languages is managed
-           elsewhere. It is similar to Structured. However, the ability to
-           translate is unavailable for those languages that don't have an
-           individual or team assigned to it within the translation group.
-      </li>
-      <li><strong>Closed:</strong> only people or teams appointed in the
-          translation group can suggest or make translations. Translation is
-          closed to everyone else. This is ideal if your project requires an
-          agreement to transfer copyright before starting work.</li>
-    </ul>
+      <p>
+        Launchpad offers four permission policies:
+      </p>
 
-    <p>
-      Make your translations count!  Unless you're just making a quick
-      correction, you should get in touch with the project's translation
-      community before you start work. That way you can learn where your help
-      is most needed, what words they use to translate common terms and what
-      gives your translations the best chance of being approved.
-    </p>
-    <p>
-      Follow the link to the project's translations group to contact them.
-    </p>
+      <dl>
+        <dt>Open:</dt>
+        <dd>Anyone can submit translations directly to your project in
+          Launchpad. Great for encouraging drive-by contributions.</dd>
+        <dt>Structured:</dt>
+        <dd>If your project's translation group has assigned an individual or
+          team to a particular language, only that person or members of that
+          team can review and accept translation strings for that language.
+          Anyone can suggest a translation for those languages, though. For
+          languages that aren't covered by a translation group, anyone can
+          directly submit a translation.</dd>
+        <dt>Restricted:</dt>
+        <dd>Ideal if your priority is to manage translation quality, or if
+          translation to some languages is managed elsewhere. It is similar to
+          Structured. However, the ability to translate is unavailable for
+          those languages that don't have an individual or team assigned to it
+          within the translation group.</dd>
+        <dt>Closed:</dt>
+        <dd>Only people or teams appointed in the translation group can
+          suggest or make translations. Translation is closed to everyone
+          else. This is ideal if your project requires an agreement to
+          transfer copyright before starting work.</dd>
+      </dl>
 
-    <p>
-      There's <a href="https://help.launchpad.net/Translations";
-      target="_blank">more help with translations</a> in our help wiki.
-    </p>
+      <p>
+        Make your translations count! Unless you're just making a quick
+        correction, you should get in touch with the project's translation
+        community before you start work. That way you can learn where your
+        help is most needed, what words they use to translate common terms and
+        what gives your translations the best chance of being approved.
+      </p>
+      <p>
+        Follow the link to the project's translations group to contact them.
+      </p>
 
+      <p>
+        There's <a href="https://help.launchpad.net/Translations";
+          target="_blank">more help with translations</a> in our help wiki.
+      </p>
+    </div>
   </body>
 </html>
diff --git a/lib/lp/translations/help/pofile-upload.html b/lib/lp/translations/help/pofile-upload.html
index 3ca92e3..6059df9 100644
--- a/lib/lp/translations/help/pofile-upload.html
+++ b/lib/lp/translations/help/pofile-upload.html
@@ -1,36 +1,32 @@
 <html>
   <head>
     <title>Uploading an updated .po file</title>
-    <link rel="stylesheet" type="text/css"
-          href="/+icing/yui/cssreset/reset.css" />
-    <link rel="stylesheet" type="text/css"
-          href="/+icing/yui/cssfonts/fonts.css" />
-    <link rel="stylesheet" type="text/css"
-          href="/+icing/yui/cssbase/base.css" />
+    <link rel="stylesheet" type="text/css" href="/+icing/combo.css" />
   </head>
   <body>
-    <h1>Uploading an updated .po file</h1>
+    <div class="yui-d0">
+      <h2>Uploading an updated .po file</h2>
 
-    <p>
-      When you download a .po file from Launchpad, update it, and then
-      upload your edited .po file back to Launchpad, it will be treated
-      the same as if the translations had been made using Launchpad's web
-      interface.
-    </p>
+      <p>
+        When you download a .po file from Launchpad, update it, and then
+        upload your edited .po file back to Launchpad, it will be treated
+        the same as if the translations had been made using Launchpad's web
+        interface.
+      </p>
 
-    <h2>Structuring the .po file</h2>
+      <h3>Structuring the .po file</h3>
 
-    <p>
-      Launchpad will only accept the .po file if it has the
-      <code>X-Exported-From-Launchpad</code> header. That header is
-      automatically added when you export a .po file from Launchpad.
-    </p>
-
-    <p>
-      The easiest way to ensure Launchpad accepts your .po file as an
-      update is to export a .po file from Launchpad, edit only the
-      strings and then upload it back to Launchpad.
-    </p>
+      <p>
+        Launchpad will only accept the .po file if it has the
+        <code>X-Exported-From-Launchpad</code> header. That header is
+        automatically added when you export a .po file from Launchpad.
+      </p>
 
+      <p>
+        The easiest way to ensure Launchpad accepts your .po file as an
+        update is to export a .po file from Launchpad, edit only the
+        strings and then upload it back to Launchpad.
+      </p>
+    </div>
   </body>
 </html>
diff --git a/lib/lp/translations/help/reviewing.html b/lib/lp/translations/help/reviewing.html
index ea3fca4..69f0531 100644
--- a/lib/lp/translations/help/reviewing.html
+++ b/lib/lp/translations/help/reviewing.html
@@ -1,52 +1,48 @@
 <html>
   <head>
     <title>Reviewing translations</title>
-    <link rel="stylesheet" type="text/css"
-          href="/+icing/yui/cssreset/reset.css" />
-    <link rel="stylesheet" type="text/css"
-          href="/+icing/yui/cssfonts/fonts.css" />
-    <link rel="stylesheet" type="text/css"
-          href="/+icing/yui/cssbase/base.css" />
+    <link rel="stylesheet" type="text/css" href="/+icing/combo.css" />
   </head>
   <body>
-    <h1>Reviewing translations</h1>
+    <div class="yui-d0">
+      <h2>Reviewing translations</h2>
 
-    <p>
-      <strong>Important:</strong> You can find the translation guidelines
-      you must follow as a reviewer by visiting the appropriate
-      translation group from the <a href="/+groups/" target="_blank">
-      translation group overview page</a>.
-    </p>
+      <p>
+        <strong>Important:</strong> You can find the translation guidelines
+        you must follow as a reviewer by visiting the appropriate
+        translation group from the <a href="/+groups/" target="_blank">
+          translation group overview page</a>.
+      </p>
 
-    <p>
-      As a member of one or more translation teams, you can help make
-      sure that that the work of other translators makes it into
-      published software.
-    </p>
+      <p>
+        As a member of one or more translation teams, you can help make
+        sure that that the work of other translators makes it into
+        published software.
+      </p>
 
-    <p>
-      One of the quickest ways is to review translated strings in the
-      languages with which you're familiar. The more reviews you do, the
-      more software will be available in the languages you care about.
-    </p>
+      <p>
+        One of the quickest ways is to review translated strings in the
+        languages with which you're familiar. The more reviews you do, the
+        more software will be available in the languages you care about.
+      </p>
 
-    <p>
-      To get started, simply follow the review links on your
-      <a href="https://translations.launchpad.net/people/+me/"; target="_blank">
-      translation dashboard</a>.
-    </p>
+      <p>
+        To get started, simply follow the review links on your <a
+          href="https://translations.launchpad.net/people/+me/";
+          target="_blank"> translation dashboard</a>.
+      </p>
 
-    <p>
-      <strong>Note:</strong> there's a lot more to being a member of
-      a translation team than just reviewing strings. Most translation
-      teams have an active community that works to set standards and
-      divide up work among its members.
-    </p>
-
-    <p>
-      <a href="https://help.launchpad.net/Translations/JoiningATranslationGroup";
-     target="_blank">Learn more about translation groups &gt;</a>
-    </p>
+      <p>
+        <strong>Note:</strong> there's a lot more to being a member of
+        a translation team than just reviewing strings. Most translation
+        teams have an active community that works to set standards and
+        divide up work among its members.
+      </p>
 
+      <p>
+        <a href="https://help.launchpad.net/Translations/JoiningATranslationGroup";
+          target="_blank">Learn more about translation groups &gt;</a>
+      </p>
+    </div>
   </body>
 </html>
diff --git a/lib/lp/translations/help/successful-imports.html b/lib/lp/translations/help/successful-imports.html
index 898c619..b3a6445 100644
--- a/lib/lp/translations/help/successful-imports.html
+++ b/lib/lp/translations/help/successful-imports.html
@@ -1,46 +1,43 @@
 <html>
   <head>
     <title>Importing translation files from a Bazaar branch</title>
-    <link rel="stylesheet" type="text/css"
-          href="/+icing/yui/cssreset/reset.css" />
-    <link rel="stylesheet" type="text/css"
-          href="/+icing/yui/cssfonts/fonts.css" />
-    <link rel="stylesheet" type="text/css"
-          href="/+icing/yui/cssbase/base.css" />
+    <link rel="stylesheet" type="text/css" href="/+icing/combo.css" />
   </head>
   <body>
-    <h1>Importing translation files from a Bazaar branch</h1>
+    <div class="yui-d0">
+      <h2>Importing translation files from a Bazaar branch</h2>
 
-    <p>
-      When importing translation files into Launchpad from a tarball or
-      a Bazaar branch, you must follow our <a
-      href="https://help.launchpad.net/Translations/YourProject/ImportPolicy";
-      target="_blank">translations import policy</a>. At a minimum, your
-      tarball or branch must:
-    </p>
+      <p>
+        When importing translation files into Launchpad from a tarball or
+        a Bazaar branch, you must follow our <a
+          href="https://help.launchpad.net/Translations/YourProject/ImportPolicy";
+          target="_blank">translations import policy</a>. At a minimum, your
+        tarball or branch must:
+      </p>
 
-    <ul class="bulleted">
-      <li>Contain at least one <code>.pot</code> file with English strings,
-      rather than message IDs or another language. You cannot upload a
-      <code>.po</code> file on its own.</li>
-      <li>Give each template its own directory (<a href="/+help-translations/directory-example.html"
-      >see an example directory layout</a>).</li>
-    </ul>
+      <ul class="bulleted">
+        <li>Contain at least one <code>.pot</code> file with English strings,
+          rather than message IDs or another language. You cannot upload a
+          <code>.po</code> file on its own.</li>
+        <li>Give each template its own directory (<a
+            href="/+help-translations/directory-example.html">see an example
+            directory layout</a>).</li>
+      </ul>
 
-    <p>The first time you upload a template, it'll usually take a few days
-       before it is approved. However, imports from Bazaar branches are
-       usually approved sooner than imports from tarballs.
-    </p>
+      <p>The first time you upload a template, it'll usually take a few days
+        before it is approved. However, imports from Bazaar branches are
+        usually approved sooner than imports from tarballs.
+      </p>
 
-    <p>
-      Subsequent updates to templates, and <code>.po</code> files will be
-      approved automatically.
-    </p>
-
-    <p>
-      Following approval, the English strings, and any translations, will be
-      available in Launchpad within one day and usually much sooner.
-    </p>
+      <p>
+        Subsequent updates to templates, and <code>.po</code> files will be
+        approved automatically.
+      </p>
 
+      <p>
+        Following approval, the English strings, and any translations, will be
+        available in Launchpad within one day and usually much sooner.
+      </p>
+    </div>
   </body>
 </html>
diff --git a/lib/lp/translations/help/translation-groups.html b/lib/lp/translations/help/translation-groups.html
index 6f1f5c3..c1ef39d 100644
--- a/lib/lp/translations/help/translation-groups.html
+++ b/lib/lp/translations/help/translation-groups.html
@@ -1,62 +1,62 @@
 <html>
   <head>
     <title>Translation groups</title>
-    <link rel="stylesheet" type="text/css"
-          href="/+icing/yui/cssreset/reset.css" />
-    <link rel="stylesheet" type="text/css"
-          href="/+icing/yui/cssfonts/fonts.css" />
-    <link rel="stylesheet" type="text/css"
-          href="/+icing/yui/cssbase/base.css" />
+    <link rel="stylesheet" type="text/css" href="/+icing/combo.css" />
   </head>
   <body>
-    <h1>Translation groups</h1>
-
-    <p>
-      Launchpad makes it easy for anyone to make or suggest translations for
-      your project.
-    </p>
-
-    <p>
-      Translation groups are a convenient way to delegate responsibility for
-      reviewing the translations that people suggest for your project.
-    </p>
-
-    <p>Each translation group is an umbrella organisations &mdash; made up of
-      <a href="https://help.launchpad.net/Teams"; target="_blank">teams</a> and
-      individuals &mdash; that have taken responsibility for a particular
-      language.
-    </p>
-
-    <p>When you choose a translation group, you're entrusting the review of
-       your project's translations to its members. Each group has its own
-       policies for standard vocabulary, how to handle plural forms and so on.
-    </p>
-
-    <p>Unless your project is a member of an umbrella group that has its own
-       translations group in Launchpad, or you have other specific needs, you
-       should choose the <a
-       href="https://translations.launchpad.net/+groups/launchpad-translators";
-       target="_blank">Launchpad Translators group</a>. (<a
-       href="https://help.launchpad.net/Translations/LaunchpadTranslators";
-       target="_blank">Read Launchpad Translators' policy &gt;</a>)
-    </p>
-
-    <p>To choose an alternative group, <a
-       href="https://translations.launchpad.net/+groups"; target="_blank">
-       browse the list of translation groups</a> in Launchpad. If you are
-       certain none of the existing groups is suitable, <a
-       href="https://answers.launchpad.net/rosetta/+addquestion";
-       target="_blank">contact the Launchpad team</a>.
-     </p>
-
-     <p>
-       <a href="https://help.launchpad.net/Translations/YourProject";
-       target="blank">Read more about translating your project &gt;</a><br />
-       <a href="https://help.launchpad.net/Translations/Groups";
-       target="_blank">Read about translation groups from a translator's
-       perspective &gt;</a>
-     </p>
-
-
+    <div class="yui-d0">
+      <h2>Translation groups</h2>
+
+      <p>
+        Launchpad makes it easy for anyone to make or suggest translations for
+        your project.
+      </p>
+
+      <p>
+        Translation groups are a convenient way to delegate responsibility for
+        reviewing the translations that people suggest for your project.
+      </p>
+
+      <p>
+        Each translation group is an umbrella organisations &mdash; made up
+        of <a href="https://help.launchpad.net/Teams";
+          target="_blank">teams</a> and individuals &mdash; that have taken
+        responsibility for a particular language.</p>
+
+      <p>
+        When you choose a translation group, you're entrusting the review of
+        your project's translations to its members. Each group has its own
+        policies for standard vocabulary, how to handle plural forms and so
+        on.
+      </p>
+
+      <p>
+        Unless your project is a member of an umbrella group that has its own
+        translations group in Launchpad, or you have other specific needs, you
+        should choose the <a
+          href="https://translations.launchpad.net/+groups/launchpad-translators";
+          target="_blank">Launchpad Translators group</a>. (<a
+          href="https://help.launchpad.net/Translations/LaunchpadTranslators";
+          target="_blank">Read Launchpad Translators' policy &gt;</a>)
+      </p>
+
+      <p>
+        To choose an alternative group, <a
+          href="https://translations.launchpad.net/+groups"; target="_blank">
+          browse the list of translation groups</a> in Launchpad. If you are
+        certain none of the existing groups is suitable, <a
+          href="https://answers.launchpad.net/rosetta/+addquestion";
+          target="_blank">contact the Launchpad team</a>.
+      </p>
+
+      <p>
+        <a href="https://help.launchpad.net/Translations/YourProject";
+          target="blank">Read more about translating your project
+          &gt;</a><br /> <a
+          href="https://help.launchpad.net/Translations/Groups";
+          target="_blank">Read about translation groups from a translator's
+          perspective &gt;</a>
+      </p>
+    </div>
   </body>
 </html>
diff --git a/lib/lp/translations/help/working-modes.html b/lib/lp/translations/help/working-modes.html
index a572ccf..9a52591 100644
--- a/lib/lp/translations/help/working-modes.html
+++ b/lib/lp/translations/help/working-modes.html
@@ -1,57 +1,70 @@
 <html>
   <head>
     <title>Translation working modes</title>
-    <link rel="stylesheet" type="text/css"
-          href="/+icing/yui/cssreset/reset.css" />
-    <link rel="stylesheet" type="text/css"
-          href="/+icing/yui/cssfonts/fonts.css" />
-    <link rel="stylesheet" type="text/css"
-          href="/+icing/yui/cssbase/base.css" />
+    <link rel="stylesheet" type="text/css" href="/+icing/combo.css" />
+    <style type="text/css">
+      dt {
+        font-weight: bold
+      }
+
+      dd p {
+        margin-bottom: 0.5em
+      }
+
+    </style>
   </head>
   <body>
-    <h1>Switching between "translator" and "reviewer" modes</h1>
-
-    <p>
-      If you're making translations for a project that uses a <em>Structured
-      </em> or <em>Restricted</em>
-      <a href="/+help-translations/permissions-policies.html">permissions
-      policy</a> <strong>and</strong> you're a member of the appropriate
-      <a href="/+help-translations/translation-groups.html">translation
-      team</a> you can work in one of two modes:
-    </p>
-
-    <ul>
-      <li>
-        <strong>Reviewer:</strong> This is the default working mode. All
-        changes you make are approved automatically. If you want to make a
-        suggestion, rather than a new translation, you need to manually select
-        the <em>Someone should to review this translation</em> check-box.
-      </li>
-      <li>
-        <strong>Translator:</strong> When entering new translations, they're
-        treated as suggestions that someone else needs to review. You can make
-        a direct translation by deselecting the <em>Someone should to review
-        this translation</em> check-box.</li>
-    </ul>
-
-    <h2>How this affects team workflows</h2>
-
-    <p>
-      When you're reviewing translations made by other people, or you're
-      working in a small team, you usually want your translations to be applied
-      automatically. This is when you'd choose <em>Reviewer</em> mode.
-    </p>
-
-    <p>
-      However, if you're working in a team that uses a peer review process
-      <em>Translator</em> mode will be more suitable as it holds each of your
-      translations as suggestions that should be reviewed by someone else.
-    </p>
-
-    <p>
-      There's <a href="https://help.launchpad.net/Translations";
-      target="_blank">more help with translations</a> in our help wiki.
-    </p>
+    <div class="yui-d0">
+      <h2>Switching between "translator" and "reviewer" modes</h2>
+
+      <p>
+        If you're making translations for a project that uses a
+        <em>Structured</em> or <em>Restricted</em>
+        <a href="/+help-translations/permissions-policies.html">permissions
+          policy</a> <strong>and</strong> you're a member of the appropriate
+        <a href="/+help-translations/translation-groups.html">translation
+          team</a> you can work in one of two modes:
+      </p>
+
+      <dl>
+        <dt>Reviewer:</dt>
+        <dd>
+          This is the default working mode. All
+          changes you make are approved automatically. If you want to make a
+          suggestion, rather than a new translation, you need to manually
+          select
+          the <em>Someone should to review this translation</em> check-box.
+        </dd>
+        <dt>Translator:</dt>
+        <dd>
+          When entering new translations, they're
+          treated as suggestions that someone else needs to review. You can
+          make
+          a direct translation by deselecting the <em>Someone should to review
+            this translation</em> check-box.
+        </dd>
+      </dl>
+
+      <h2>How this affects team workflows</h2>
+
+      <p>
+        When you're reviewing translations made by other people, or you're
+        working in a small team, you usually want your translations to be
+        applied automatically. This is when you'd choose <em>Reviewer</em>
+        mode.
+      </p>
+
+      <p>
+        However, if you're working in a team that uses a peer review process
+        <em>Translator</em> mode will be more suitable as it holds each of
+        your translations as suggestions that should be reviewed by someone
+        else.
+      </p>
 
+      <p>
+        There's <a href="https://help.launchpad.net/Translations";
+          target="_blank">more help with translations</a> in our help wiki.
+      </p>
+    </div>
   </body>
 </html>

Follow ups