Index: src/branch.c
==================================================================
--- src/branch.c
+++ src/branch.c
@@ -229,11 +229,12 @@
   }else{
     style_submenu_element("Closed","Closed","brlist?closed");
   }
   login_anonymous_available();
   compute_leaves(0, 1);
-  style_sidebox_begin("Nomenclature:", "33%");
+  @ <div class="nomenclatureSidebox">
+  @ Nomenclature:
   @ <ol>
   @ <li> An <a href="brlist">open branch</a> is a branch that has one or
   @ more <a href="leaves">open leaves.</a>
   @ The presence of open leaves presumably means
   @ that the branch is still being extended with new check-ins.</li>
@@ -240,11 +241,11 @@
   @ <li> A <a href="brlist?closed">closed branch</a> is a branch with only
   @ <a href="leaves?closed">closed leaves</a>.
   @ Closed branches are fixed and do not change (unless they are first
   @ reopened)</li>
   @ </ol>
-  style_sidebox_end();
+  @ </div>
 
   cnt = 0;
   if( !showClosed ){
     db_prepare(&q,
       "SELECT DISTINCT value FROM tagxref"

Index: src/descendants.c
==================================================================
--- src/descendants.c
+++ src/descendants.c
@@ -316,19 +316,20 @@
     style_submenu_element("Open", "Open", "leaves");
   }
   style_header("Leaves");
   login_anonymous_available();
   compute_leaves(0, showAll ? 0 : showClosed ? 2 : 1);
-  style_sidebox_begin("Nomenclature:", "33%");
+  @ <div class="nomenclatureSidebox">
+  @ Nomenclature:
   @ <ol>
   @ <li> A <b>leaf</b> is a check-in with no descendants.</li>
   @ <li> An <b>open leaf</b> is a leaf that does not have a "closed" tag
   @ and is thus assumed to still be in use.</li>
   @ <li> A <b>closed leaf</b> has a "closed" tag and is thus assumed to
   @ be historical and no longer in active use.</li>
   @ </ol>
-  style_sidebox_end();
+  @ </div>
 
   if( showAll ){
     @ <h1>All leaves, both open and closed:</h1>
   }else if( showClosed ){
     @ <h1>Closed leaves:</h1>

Index: src/login.c
==================================================================
--- src/login.c
+++ src/login.c
@@ -596,11 +596,11 @@
   if( !g.okHistory &&
       db_exists("SELECT 1 FROM user"
                 " WHERE login='anonymous'"
                 "   AND cap LIKE '%%h%%'") ){
     const char *zUrl = PD("REQUEST_URI", "index");
-    @ <p>Many <font color="red">hyperlinks are disabled.</font><br />
+    @ <p>Many <span class="disabledLinks">hyperlinks are disabled.</span><br />
     @ Use <a href="%s(g.zTop)/login?anon=1&g=%T(zUrl)">anonymous login</a>
     @ to enable hyperlinks.</p>
   }
 }
 

Index: src/setup.c
==================================================================
--- src/setup.c
+++ src/setup.c
@@ -909,10 +909,18 @@
   @ of CSS files can be seen on the <a href="setup_skin">skins page</a>.
   @ See also the <a href="setup_header">header</a> and
   @ <a href="setup_footer">footer</a> editing screens.
   @ <blockquote><pre>
   @ %h(zDefaultCSS)
+  @ /* internal page layout */
+  @ %h(zTdTimelineTable)
+  @ %h(zTdTimelineTimeStampCell)
+  @ %h(zTdTimelineOmitted)
+  @ %h(zTdTimelineComment)
+  @ %h(zDivTimelineLeafDsp)
+  @ %h(zDivNomenclatureSidebox)
+  @ %h(zSpanDisabledLinks)
   @ </pre></blockquote>
   style_footer();
   db_end_transaction(0);
 }
 

Index: src/style.c
==================================================================
--- src/style.c
+++ src/style.c
@@ -337,10 +337,11 @@
 @   padding: 1px 1px 1px 1px;
 @   font-size: 1.2em;
 @   font-weight: bold;
 @   background-color: #558195;
 @   color: white;
+@   white-space: nowrap;
 @ }
 @
 @ /* The "Date" that occurs on the left hand side of timelines */
 @ div.divider {
 @   background: #a1c4d4;
@@ -379,10 +380,62 @@
 @   vertical-align: top;
 @   text-align: right;
 @   padding: 0.2ex 2ex;
 @ }
 ;
+const char zTdTimelineTable[] = 
+@ /* The time column in timeline tables */
+@ table.timelineTable {
+@   cellspacing: 0;
+@   border: 0;
+@   cellpadding: 0;
+@}
+;
+const char zTdTimelineTimeStampCell[] = 
+@ /* The time column in timeline tables */
+@ td.timelineTimeStampCell {
+@   valign: top;
+@   text-align: right;
+@}
+;
+const char zTdTimelineOmitted[] =
+@ /* The omitted line in timeline tables */
+@ td.timelineOmitted {
+@   font-size: small;
+@   font-style: italic;
+@ }
+;
+const char zTdTimelineComment[] =
+@ /* The comment cell in timeline tables */
+@ td.timelineComment {
+@   valign: top;
+@   text-align: left;
+@ }
+;
+const char zDivTimelineLeafDsp[] =
+@ /* The leaf description in timeline tables */
+@ div.timelineLeafDsp {
+@   font-weight: bold;
+@   display: inline;
+@ }
+;
+const char zDivNomenclatureSidebox[] =
+@ /* The nomenclature sidebox for branches,.. */
+@ div.nomenclatureSidebox {
+@   float: right;
+@   width: 33%;
+@   border-width: medium;
+@   border-style: double;
+@   margin: 10;
+@ }
+;
+const char zSpanDisabledLinks[] =
+@ /* hyperlinks disabled text */
+@ span.disabledLinks {
+@   color: red;
+@ }
+;
 
 /*
 ** WEBPAGE: style.css
 */
 void page_style_css(void){
@@ -389,10 +442,26 @@
   char *zCSS = 0;
 
   cgi_set_content_type("text/css");
   zCSS = db_get("css",(char*)zDefaultCSS);
   cgi_append_content(zCSS, -1);
+  cgi_append_content("\n", -1);
+  /* append internal classes, if not already in style sheet */
+  if (!strstr(zCSS,"timelineTable"))
+    cgi_append_content(zTdTimelineTable,-1);
+  if (!strstr(zCSS,"timelineTimeStampCell"))
+    cgi_append_content(zTdTimelineTimeStampCell,-1);
+  if (!strstr(zCSS,"timelineOmitted"))
+    cgi_append_content(zTdTimelineOmitted,-1);
+  if (!strstr(zCSS,"timelineComment"))
+    cgi_append_content(zTdTimelineComment,-1);
+  if (!strstr(zCSS,"timelineLeafDsp"))
+    cgi_append_content(zDivTimelineLeafDsp,-1);
+  if (!strstr(zCSS,"nomenclatureSidebox"))
+    cgi_append_content(zDivNomenclatureSidebox,-1);
+  if (!strstr(zCSS,"disabledLinks"))
+    cgi_append_content(zSpanDisabledLinks,-1);
   g.isConst = 1;
 }
 
 /*
 ** WEBPAGE: test_env

Index: src/timeline.c
==================================================================
--- src/timeline.c
+++ src/timeline.c
@@ -192,11 +192,11 @@
   if( tmFlags & TIMELINE_GRAPH ){
     pGraph = graph_init();
     @ <div id="canvas" style="position:relative;width:1px;height:1px;"></div>
   }
 
-  @ <table cellspacing=0 border=0 cellpadding=0>
+  @ <table class="timelineTable">
   blob_zero(&comment);
   while( db_step(pQuery)==SQLITE_ROW ){
     int rid = db_column_int(pQuery, 0);
     const char *zUuid = db_column_text(pQuery, 1);
     int isLeaf = db_column_int(pQuery, 5);
@@ -218,29 +218,29 @@
         }
       }
     }
     prevTagid = tagid;
     if( suppressCnt ){
-      @ <tr><td><td><td>
-      @ <small><i>... %d(suppressCnt) similar
-      @ event%s(suppressCnt>1?"s":"") omitted.</i></small></tr>
+      @ <tr><td><td><td class="timelineOmitted">
+      @ ... %d(suppressCnt) similar event%s(suppressCnt>1?"s":"") omitted.
+      @ </tr>
       suppressCnt = 0;
     }
     if( strcmp(zType,"div")==0 ){
       @ <tr><td colspan=3><hr></td></tr>
       continue;
     }
     if( memcmp(zDate, zPrevDate, 10) ){
       sprintf(zPrevDate, "%.10s", zDate);
       @ <tr><td>
-      @   <div class="divider"><nobr>%s(zPrevDate)</nobr></div>
+      @   <div class="divider">%s(zPrevDate)</div>
       @ </td></tr>
     }
     memcpy(zTime, &zDate[11], 5);
     zTime[5] = 0;
     @ <tr>
-    @ <td valign="top" align="right">%s(zTime)</td>
+    @ <td class="timelineTimeStampCell">%s(zTime)</td>
     @ <td width="20" align="left" valign="top">
     if( pGraph && zType[0]=='c' ){
       int nParent = 0;
       int aParent[32];
       const char *zBr;
@@ -268,23 +268,23 @@
       gidx = graph_add_row(pGraph, rid, nParent, aParent, zBr, zBgClr);
       db_reset(&qbranch);
       @ <div id="m%d(gidx)"></div>
     }
     if( zBgClr && zBgClr[0] ){
-      @ <td valign="top" align="left" bgcolor="%h(zBgClr)">
+      @ <td class="timelineComment" bgcolor="%h(zBgClr)">
     }else{
-      @ <td valign="top" align="left">
+      @ <td class="timelineComment">
     }
     if( zType[0]=='c' ){
       hyperlink_to_uuid(zUuid);
       if( isLeaf ){
         if( db_exists("SELECT 1 FROM tagxref"
                       " WHERE rid=%d AND tagid=%d AND tagtype>0",
                       rid, TAG_CLOSED) ){
-          @ <b>Closed-Leaf:</b>
+          @ <div class="timelineLeafDsp">Closed-Leaf:</div>
         }else{
-          @ <b>Leaf:</b>
+          @ <div class="timelineLeafDsp">Leaf:</div>
         }
       }
     }else if( (tmFlags & TIMELINE_ARTID)!=0 ){
       hyperlink_to_uuid(zUuid);
     }
@@ -310,12 +310,13 @@
     }
     @ </td></tr>
   }
   if( suppressCnt ){
     @ <tr><td><td><td>
-    @ <small><i>... %d(suppressCnt) similar
-    @ event%s(suppressCnt>1?"s":"") omitted.</i></small></tr>
+    @ <tr><td><td><td class="timelineOmitted">
+    @ ... %d(suppressCnt) similar event%s(suppressCnt>1?"s":"") omitted.
+    @ </tr>
     suppressCnt = 0;
   }
   if( pGraph ){
     graph_finish(pGraph, (tmFlags & TIMELINE_DISJOINT)!=0);
     if( pGraph->nErr ){